From 0a206f3acb9af0ec9db650861d34a256cda1c960 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 26 二月 2026 17:48:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java |   98 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 83 insertions(+), 15 deletions(-)

diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
index 5cf3eb0..b941c7c 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
@@ -7,15 +7,11 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.IntegralMapper;
-import com.doumee.dao.business.MemberMapper;
-import com.doumee.dao.business.ShopMapper;
+import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.IntegralJoinMapper;
-import com.doumee.dao.business.model.Fund;
-import com.doumee.dao.business.model.Integral;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Shop;
+import com.doumee.dao.business.model.*;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.web.dto.IntegralDTO;
 import com.doumee.dao.web.dto.IntegralRecordDTO;
@@ -67,6 +63,12 @@
 
     @Autowired
     private ShopMapper shopMapper;
+
+    @Autowired
+    private WithdrawRecordMapper withdrawRecordMapper;
+
+    @Autowired
+    private GoodsorderMapper goodsorderMapper;
 
     @Autowired
     private NoticeService noticeService;
@@ -445,6 +447,10 @@
                 .lambda()
                 .eq(Objects.nonNull(model.getUserType()),Integral::getUserType,model.getUserType())
                 .eq(Objects.nonNull(model.getType()),Integral::getType,model.getType())
+                .eq(Objects.nonNull(model.getObjType()),Integral::getObjType,model.getObjType())
+                .ge(Objects.nonNull(model.getStartDate()),Integral::getCreateDate,  model.getStartDate()+" 00:00:00")
+                .le(Objects.nonNull(model.getEndDate()),Integral::getCreateDate,  model.getEndDate()+" 23:59:59")
+                .eq(Objects.nonNull(model.getObjType()),Integral::getObjType,model.getObjType())
                 .eq(Integral::getMemberId,model.getMemberId())
                 .orderByDesc(Integral::getCreateDate)
         );
@@ -452,9 +458,46 @@
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(result.getRecords())){
             for (Integral integral:result.getRecords()) {
                 integral.setStrObjType(Constants.IntegralObjType.getName(integral.getObjType()));
+                //浣欓鎻愮幇 鍏宠仈 鎻愮幇璁板綍
+                if(Constants.equalsInteger(integral.getObjType(),Constants.IntegralObjType.WITHDRAW_APPLY.getKey())){
+                    WithdrawRecord withdrawRecord = withdrawRecordMapper.selectById(integral.getObjId());
+                    if(Objects.nonNull(withdrawRecord)){
+                        integral.setWithdrawStatus(withdrawRecord.getStatus());
+                    }
+                }
             }
         }
-        return PageData.from(result);
+        PageData<Integral> rr =  PageData.from(result);
+        if(pageWrap.getPage() == 1  && Constants.equalsInteger(model.getUserType(),Constants.TWO)){
+            //濡傛灉鏌ヨ绗竴椤碉紝鍋氭暟鎹粺璁�
+            rr.setCountData(dealCountIntegralNum(pageWrap));
+        }
+
+        return rr;
+    }
+
+    private Integral dealCountIntegralNum(PageWrap<IntegralRecordDTO> pageWrap) {
+        IntegralRecordDTO model = pageWrap.getModel();
+        List<Integral> result = integralMapper.selectList(new QueryWrapper<Integral>()
+                .lambda()
+                .eq(Objects.nonNull(model.getUserType()),Integral::getUserType,model.getUserType())
+                .eq(Objects.nonNull(model.getType()),Integral::getType,model.getType())
+                .eq(Objects.nonNull(model.getObjType()),Integral::getObjType,model.getObjType())
+                .ge(Objects.nonNull(model.getStartDate()),Integral::getCreateDate,  model.getStartDate()+" 00:00:00")
+                .le(Objects.nonNull(model.getEndDate()),Integral::getCreateDate,  model.getEndDate()+" 23:59:59")
+                .eq(Objects.nonNull(model.getObjType()),Integral::getObjType,model.getObjType())
+                .eq(Integral::getMemberId,model.getMemberId())
+                .orderByDesc(Integral::getCreateDate)
+        );
+        Integral integral = new Integral();
+        integral.setInAmount(BigDecimal.ZERO);
+        integral.setOutAmount(BigDecimal.ZERO);
+        if(CollectionUtils.isEmpty( result)){
+            return integral;
+        }
+        integral.setInAmount(result.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).map(i->i.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        integral.setOutAmount(result.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        return integral;
     }
 
     @Override
@@ -569,22 +612,47 @@
         IntegralDataResponse integralDataResponse = new IntegralDataResponse();
         integralDataResponse.setSurplusIntegral(BigDecimal.ZERO);
         integralDataResponse.setExpiredIntegral(BigDecimal.ZERO);
+        Shop shop = shopMapper.selectById(model.getMemberId());
+        if (Objects.nonNull(shop)) {
+            integralDataResponse.setSurplusIntegral(
+                    Constants.equalsInteger(model.getUserType(),Constants.TWO)?shop.getAmount():shop.getIntegral());
+        }
         List<Integral> list = integralMapper.selectList(new QueryWrapper<Integral>().lambda()
                 .eq(Objects.nonNull(model.getUserType()),Integral::getUserType,model.getUserType())
-//                .eq(Objects.nonNull(model.getType()),Integral::getType,model.getType())
                 .eq(Integral::getMemberId,model.getMemberId())
                 .orderByDesc(Integral::getCreateDate));
 
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
-            integralDataResponse.setSurplusIntegral(
-                    list.stream().map(i->i.getNum().multiply(new BigDecimal(i.getType().toString()))
-                    ).reduce(BigDecimal.ZERO, BigDecimal::add)
-            );
-
+            //鎻愮幇涓氬姟鏁版嵁
+            if(Constants.equalsInteger(model.getUserType(),Constants.TWO)){
+                integralDataResponse.setWithdrawAmount(
+                        withdrawRecordMapper.selectList(new QueryWrapper<WithdrawRecord>().lambda()
+                                .eq(WithdrawRecord::getMemberId,model.getMemberId())
+                                .eq(WithdrawRecord::getStatus,Constants.ONE)
+                        ).stream().map(WithdrawRecord::getAmount)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add)
+                );
+                integralDataResponse.setWithdrawIngAmount(
+                        withdrawRecordMapper.selectList(new QueryWrapper<WithdrawRecord>().lambda()
+                                        .eq(WithdrawRecord::getMemberId,model.getMemberId())
+                                        .eq(WithdrawRecord::getStatus,Constants.ZERO)
+                                ).stream().map(WithdrawRecord::getAmount)
+                                .reduce(BigDecimal.ZERO, BigDecimal::add)
+                );
+                integralDataResponse.setWaitPayAmount(
+                        goodsorderMapper.selectList(new QueryWrapper<Goodsorder>().lambda()
+                                .eq(Goodsorder::getDistributionShopId,model.getMemberId())
+                                .in(Goodsorder::getStatus,Constants.OrderStatus.WAIT_PAY.getKey(),
+                                        Constants.OrderStatus.PAY_DONE.getKey(),
+                                        Constants.OrderStatus.WAIT_RECEIVE.getKey())
+                        ).stream().map(Goodsorder::getShopSettlement)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add)
+                );
+            }
             //绉垎澶辨晥鏂瑰紡 0闀挎湡鏈夋晥 1鎸夌Н鍒嗕骇鐢熸椂闂村け鏁�
             Integer type  = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.INTEGRAL_SET, Constants.INTERALSET_INTEGRALINVALIDTYPE).getCode());
             //娑堣垂鑰呯Н鍒� 闇�瑕佹煡璇㈠嵆灏嗚繃鏈熺Н鍒�
-            if(Constants.equalsInteger(type,Constants.ONE)){
+            if(Constants.equalsInteger(type,Constants.ONE)&& Constants.equalsInteger(model.getUserType(),Constants.ONE)){
                 Integer validYear  = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.INTEGRAL_SET, Constants.INTERALSET_INTEGRALINVALIDCIRCLE).getCode());
                 if(validYear.compareTo(Constants.ZERO)>Constants.ZERO){
                      list = integralMapper.selectList(new QueryWrapper<Integral>().lambda()

--
Gitblit v1.9.3