From fa668c325f2dac348fb9f80c0c6c679f9ce1e41b Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 10 三月 2026 18:28:17 +0800
Subject: [PATCH] 小程序   接口开发

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java |   99 ++++++++++++++++++++++++++-----------------------
 1 files changed, 52 insertions(+), 47 deletions(-)

diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java
index bab7944..62db222 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
@@ -1049,78 +1050,81 @@
         aftersale.setReturnShopSettlement(BigDecimal.ZERO);
         aftersale.setCode(getNextInCode());
 
-        //璁㈠崟閫�鍥炶繑鍥炵粰缁忛攢鍟嗙殑绉垎
-        if(Objects.nonNull(goodsorder.getDistributionShopId())){
-            Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId());
-            //缁忛攢鍟嗗瓨鍦ㄥ墿浣欑Н鍒�
-            if(Objects.nonNull(shop)&&shop.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
-                //寮�鍚簡鎵i櫎杩旇繕缁忛攢鍟嗙Н鍒�
-                if(Constants.equalsInteger(afterSaleApplyRequest.getReturnShopIntegralStatus(),Constants.ONE)){
-                    //璁板綍鎵i櫎缁忛攢鍟嗙Н鍒嗗��
-                    aftersale.setReturnShopIntegral(shop.getIntegral().compareTo(goodsorder.getReturnCustomerIntegral())>Constants.ZERO
-                            ?goodsorder.getReturnCustomerIntegral():shop.getIntegral());
-                    DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
-                    dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral());
-                    dealIntegralRequest.setDealType(Constants.ONE);
-                    dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
-                    dealIntegralRequest.setObjId(goodsorder.getId());
-                    dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
-                    dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_REFUND_INTEGRAL);
-                    integralService.dealShopIntegral(dealIntegralRequest,null);
-                }
+        //璁㈠崟閫�鍥� 鎵i櫎宸茬粨绠� 璁㈠崟璧犻�佺Н鍒� - 缁忛攢鍟�
+        if(Constants.equalsInteger(afterSaleApplyRequest.getReturnShopIntegralStatus(),Constants.ONE)){
+            //璁㈠崟閫�鍥炶繑鍥炵粰缁忛攢鍟嗙殑绉垎
+            if(Objects.nonNull(goodsorder.getDistributionShopId())){
+                Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId());
+                //缁忛攢鍟嗗瓨鍦ㄥ墿浣欑Н鍒�
+                if(Objects.nonNull(shop)&&shop.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+                        //璁板綍鎵i櫎缁忛攢鍟嗙Н鍒嗗��
+                        aftersale.setReturnShopIntegral(shop.getIntegral().compareTo(goodsorder.getReturnCustomerIntegral())>Constants.ZERO
+                                ?goodsorder.getReturnCustomerIntegral():shop.getIntegral());
+                        DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+                        dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral());
+                        dealIntegralRequest.setDealType(Constants.ONE);
+                        dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
+                        dealIntegralRequest.setObjId(goodsorder.getId());
+                        dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
+                        dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_REFUND_INTEGRAL);
+                        integralService.dealShopIntegral(dealIntegralRequest,null);
+                    }
             }
         }
 
-        //璁㈠崟閫�鍥� 缁忛攢鍟嗙粨绠椾綑棰�
-        if(Objects.nonNull(goodsorder.getDistributionShopId())){
-            Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId());
-            //缁忛攢鍟嗗瓨鍦ㄥ墿浣欑Н鍒�
-            if(Objects.nonNull(shop)&&shop.getAmount().compareTo(BigDecimal.ZERO)>Constants.ZERO){
-                //寮�鍚簡鎵i櫎杩旇繕缁忛攢鍟嗙Н鍒�
-                if(Constants.equalsInteger(afterSaleApplyRequest.getReturnShopSettlementStatus(),Constants.ONE)){
-                    //璁板綍鎵i櫎缁忛攢鍟嗙Н鍒嗗��
-                    aftersale.setReturnShopSettlement(shop.getAmount().compareTo(goodsorder.getShopSettlement())>Constants.ZERO
-                            ?goodsorder.getShopSettlement():shop.getAmount());
-                    DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
-                    dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral());
-                    dealIntegralRequest.setDealType(Constants.ONE);
-                    dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
-                    dealIntegralRequest.setObjId(goodsorder.getId());
-                    dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
-                    dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_REFUND_CASH);
-                    integralService.dealShopAmount(dealIntegralRequest);
-
-                }
+        //璁㈠崟閫�鍥� 鎵i櫎宸茬粨绠� 缁撶畻浣欓 - 缁忛攢鍟�
+        if(Constants.equalsInteger(afterSaleApplyRequest.getReturnShopSettlementStatus(),Constants.ONE)){
+            if(Objects.nonNull(goodsorder.getDistributionShopId())){
+                Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId());
+                //鏌ヨ璁㈠崟鏄庣粏缁忛攢鍟嗙粨绠楅噾棰�
+                List<GoodsorderDetail> list = goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().lambda()
+                        .eq(GoodsorderDetail::getIsdeleted,Constants.ZERO)
+                        .eq(GoodsorderDetail::getOrderId,goodsorder.getId())
+                        .isNotNull(GoodsorderDetail::getShopSettlement)
+                );
+                //缁忛攢鍟嗗瓨鍦ㄥ墿浣欎綑棰�
+                if(Objects.nonNull(shop)&&shop.getAmount().compareTo(BigDecimal.ZERO)>Constants.ZERO&&list.size()>Constants.ZERO){
+                        BigDecimal total = list.stream().map(i->i.getShopSettlement()).reduce(BigDecimal.ZERO, BigDecimal::add);
+                        //璁板綍鎵i櫎缁忛攢鍟嗙Н鍒嗗��
+                        aftersale.setReturnShopSettlement(shop.getAmount().compareTo(total)>Constants.ZERO
+                                ?total:shop.getAmount());
+                        DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+                        dealIntegralRequest.setIntegralNum(aftersale.getReturnShopSettlement());
+                        dealIntegralRequest.setDealType(Constants.ONE);
+                        dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
+                        dealIntegralRequest.setObjId(goodsorder.getId());
+                        dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
+                        dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_REFUND_CASH);
+                        dealIntegralRequest.setParam1(goodsorder.getCode().toString());
+                        integralService.dealShopAmount(dealIntegralRequest);
+                    }
             }
         }
 
-        //璁㈠崟閫�鍥� 杩旇繕缁欏鎴风殑绉垎
-        if(Objects.nonNull(goodsorder.getDistributionShopId())){
+        //鎵i櫎宸茶繑杩樼敤鎴风Н鍒� - 鐢ㄦ埛
+        if(Constants.equalsInteger(afterSaleApplyRequest.getReturnIntegralStatus(),Constants.ONE)){
             Member member = memberMapper.selectById(goodsorder.getMemberId());
             //瀹㈡埛瀛樺湪鍓╀綑绉垎
             if(Objects.nonNull(member)&&member.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
-                //寮�鍚簡鎵i櫎杩旇繕瀹㈡埛绉垎
-                if(Constants.equalsInteger(afterSaleApplyRequest.getReturnIntegralStatus(),Constants.ONE)){
                     //璁板綍鎵i櫎缁忛攢鍟嗙Н鍒嗗��
                     aftersale.setReturnIntegral(member.getIntegral().compareTo(goodsorder.getReturnCustomerIntegral())>Constants.ZERO
                             ?goodsorder.getReturnCustomerIntegral():member.getIntegral());
                     DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
-                    dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral());
+                    dealIntegralRequest.setIntegralNum(aftersale.getReturnIntegral());
                     dealIntegralRequest.setDealType(Constants.ONE);
                     dealIntegralRequest.setMemberId(member.getId());
                     dealIntegralRequest.setObjId(goodsorder.getId());
                     dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
                     dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_REFUND_RETURN);
                     integralService.dealIntegral(dealIntegralRequest,null);
-                }
             }
         }
 
         //璁㈠崟閫�娆� 杩旇繕瀹㈡埛浣跨敤鐨勭Н鍒�
-        if(Constants.equalsInteger(afterSaleApplyRequest.getReturnIntegralStatus(),Constants.ONE)
+        if(Constants.equalsInteger(afterSaleApplyRequest.getReturnUseIntegralStatus(),Constants.ONE)
             && goodsorder.getUseIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
             DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
-            dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral());
+            dealIntegralRequest.setIntegralNum(goodsorder.getUseIntegral());
             dealIntegralRequest.setDealType(Constants.ZERO);
             dealIntegralRequest.setMemberId(goodsorder.getMemberId());
             dealIntegralRequest.setObjId(goodsorder.getId());
@@ -1172,6 +1176,7 @@
                 .set(Goodsorder::getRefundMoney, afterSaleApplyRequest.getMoney())
                 .set(Goodsorder::getRefundUserId, loginUserInfo.getId())
                 .set(Goodsorder::getRefundInfo, afterSaleApplyRequest.getRemark())
+                .set(Goodsorder::getRefundConfigInfo, JSONObject.toJSONString(afterSaleApplyRequest))
                 .eq(Goodsorder::getId, goodsorder.getId())
         );
 

--
Gitblit v1.9.3