Browse Source

修改退款程序:购物有用积分的,才记返还积分日志

Ben 8 months ago
parent
commit
08bc557d8c
16 changed files with 47 additions and 18 deletions
  1. 6 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptprofitlog/vo/PtProfitLogSaveReqVO.java
  2. 0 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/duser/DuserDO.java
  3. 0 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/integral/IntegralDO.java
  4. 0 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/ptprofit/PtProfitDO.java
  5. 17 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/ptprofitlog/PtProfitLogDO.java
  6. 1 1
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/integral/IntegralMapper.java
  7. 1 1
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/ptprofit/PtProfitMapper.java
  8. 1 1
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/ptprofitlog/PtProfitLogMapper.java
  9. 2 1
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/integral/IntegralService.java
  10. 4 3
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/integral/IntegralServiceImpl.java
  11. 4 2
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ptprofitlog/PtProfitLogService.java
  12. 5 3
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ptprofitlog/PtProfitLogServiceImpl.java
  13. 1 1
      feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/integral/IntegralMapper.xml
  14. 1 1
      feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/ptprofit/PtProfitMapper.xml
  15. 1 1
      feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/ptprofitlog/PtProfitLogMapper.xml
  16. 3 3
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/aftersale/AfterSaleServiceImpl.java

+ 6 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/ptprofitlog/vo/PtProfitLogSaveReqVO.java

@@ -14,6 +14,12 @@ public class PtProfitLogSaveReqVO {
     @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12046")
     private Long id;
 
+    /**
+     * 产生积分的用户ID,例如:下订单的用户ID
+     */
+    @Schema(description = "产生积分的用户ID", example = "6982")
+    private Long generateUserId;
+
     @Schema(description = "增加金额")
     private Long amount;
 

+ 0 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/dataobject/duser/DuserDO.java → feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/duser/DuserDO.java


+ 0 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/dataobject/integral/IntegralDO.java → feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/integral/IntegralDO.java


+ 0 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/dataobject/ptprofit/PtProfitDO.java → feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/ptprofit/PtProfitDO.java


+ 17 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/dataobject/ptprofitlog/PtProfitLogDO.java → feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/ptprofitlog/PtProfitLogDO.java

@@ -1,4 +1,5 @@
 package cn.newfeifan.mall.module.distri.dal.dataobject.ptprofitlog;
+import cn.newfeifan.mall.module.distri.dal.dataobject.ptprofitlog.PtProfitLogDO;
 
 import lombok.*;
 import com.baomidou.mybatisplus.annotation.*;
@@ -32,6 +33,17 @@ public class PtProfitLogDO extends BaseDO {
      * 增加后金额
      */
     private Long afterAmount;
+
+    /**
+     * 增加冻结金额
+     */
+    private Long freezeAmount;
+    /**
+     * 增加后冻结金额
+     */
+    private Long afterFreezeAmount;
+
+
     /**
      * 收益类型 1:平台服务器费 2:平台收益 3用户下单返回毛利额度 4直推人额度 5合赢奖
      */
@@ -41,6 +53,11 @@ public class PtProfitLogDO extends BaseDO {
      */
     private Long userId;
 
+    /**
+     * 导致积分发生变化的用户ID
+     */
+    private Long generateUserId;
+
     /**
      * 订单Id
      */

+ 1 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/integral/IntegralMapper.java → feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/integral/IntegralMapper.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.distri.dal.mysql.integral;
+package cn.newfeifan.mall.module.distri.dal.integral;
 
 import cn.newfeifan.mall.framework.mybatis.core.mapper.BaseMapperX;
 import cn.newfeifan.mall.module.distri.dal.dataobject.integral.IntegralDO;

+ 1 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/ptprofit/PtProfitMapper.java → feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/ptprofit/PtProfitMapper.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.distri.dal.mysql.ptprofit;
+package cn.newfeifan.mall.module.distri.dal.ptprofit;
 
 import cn.newfeifan.mall.framework.mybatis.core.mapper.BaseMapperX;
 import cn.newfeifan.mall.module.distri.dal.dataobject.ptprofit.PtProfitDO;

+ 1 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/ptprofitlog/PtProfitLogMapper.java → feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/ptprofitlog/PtProfitLogMapper.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.distri.dal.mysql.ptprofitlog;
+package cn.newfeifan.mall.module.distri.dal.ptprofitlog;
 
 
 import cn.newfeifan.mall.framework.mybatis.core.mapper.BaseMapperX;

+ 2 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/integral/IntegralService.java

@@ -64,7 +64,8 @@ public interface IntegralService {
      * @param freezeAmount 用户冻结积分变化金额,可为负数
      * @return 返回是否执行成功。执行失败,通常是就是用户积分不足,没积分抵扣
      */
-    Boolean updateUserIntegral(Long userId, CaclEnum caclEnum, Long amount, Long freezeAmount,
+    Boolean updateUserIntegral(Long generateUserId,//导致产生积分变动的用户ID
+            Long userId, CaclEnum caclEnum, Long amount, Long freezeAmount,
                                Long tradeOrderId,
                                String orderNum
                                );

+ 4 - 3
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/integral/IntegralServiceImpl.java

@@ -1,6 +1,6 @@
 package cn.newfeifan.mall.module.distri.service.integral;
 
-import cn.newfeifan.mall.module.distri.dal.mysql.ptprofit.PtProfitMapper;
+import cn.newfeifan.mall.module.distri.dal.ptprofit.PtProfitMapper;
 import cn.newfeifan.mall.module.distri.enums.CaclEnum;
 import cn.newfeifan.mall.module.distri.service.ptprofitlog.PtProfitLogService;
 import org.springframework.stereotype.Service;
@@ -88,7 +88,8 @@ public class IntegralServiceImpl implements IntegralService {
      * @return 返回是否执行成功。执行失败,通常是就是用户积分不足,没积分抵扣
      */
     @Override
-    public Boolean updateUserIntegral(Long userId, CaclEnum caclEnum, Long amount, Long freezeAmount,
+    public Boolean updateUserIntegral(Long generateUserId,//导致产生积分变动的用户ID
+            Long userId, CaclEnum caclEnum, Long amount, Long freezeAmount,
                                       Long tradeOrderId,
                                       String OrderNum
                                       ) {
@@ -118,7 +119,7 @@ public class IntegralServiceImpl implements IntegralService {
             }
 
             //记录用户的积分变动日志
-            ptProfitLogService.addMessage(userId, caclEnum, amount, afterAmount,
+            ptProfitLogService.addMessage(generateUserId,userId, caclEnum, amount, afterAmount,
                     freezeAmount, afterFreezeAmount,null,tradeOrderId,OrderNum);
 
         }else if(effectRowNum<1){//如果钱包积分不足,不够抵扣

+ 4 - 2
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ptprofitlog/PtProfitLogService.java

@@ -62,14 +62,16 @@ public interface PtProfitLogService {
     void saveBatch(List<PtProfitLogSaveReqVO> ptProfitLogSaveReqVOS);
 
     //记录用户的积分变动日志
-    void addMessage(Long userId, CaclEnum caclEnum, Integer amount,
+    void addMessage(Long generateUserId,//导致产生积分变动的用户ID
+                    Long userId, CaclEnum caclEnum, Integer amount,
                     Integer afterAmount, Integer freezeAmount,
                     Integer afterFreezeAmount, String percentTemplate,
                     Long tradeOrderId,
                     String OrderNum
                     );
 
-    void addMessage(Long userId, CaclEnum caclEnum, Long amount, Long afterAmount,
+    void addMessage(Long generateUserId,//导致产生积分变动的用户ID
+            Long userId, CaclEnum caclEnum, Long amount, Long afterAmount,
                     Long freezeAmount, Long afterFreezeAmount,
                     String percentTemplate,
                     Long tradeOrderId,

+ 5 - 3
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ptprofitlog/PtProfitLogServiceImpl.java

@@ -7,7 +7,7 @@ import cn.newfeifan.mall.module.distri.controller.admin.ptprofitlog.vo.PtProfitL
 import cn.newfeifan.mall.module.distri.controller.admin.ptprofitlog.vo.PtProfitLogRespVO;
 import cn.newfeifan.mall.module.distri.controller.admin.ptprofitlog.vo.PtProfitLogSaveReqVO;
 import cn.newfeifan.mall.module.distri.dal.dataobject.ptprofitlog.PtProfitLogDO;
-import cn.newfeifan.mall.module.distri.dal.mysql.ptprofitlog.PtProfitLogMapper;
+import cn.newfeifan.mall.module.distri.dal.ptprofitlog.PtProfitLogMapper;
 import cn.newfeifan.mall.module.distri.enums.CaclEnum;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -87,7 +87,7 @@ public class PtProfitLogServiceImpl implements PtProfitLogService {
     }
 
     @Override
-    public void addMessage(Long userId, CaclEnum caclEnum, Integer amount, Integer afterAmount, Integer freezeAmount, Integer afterFreezeAmount, String percentTemplate, Long tradeOrderId, String OrderNum) {
+    public void addMessage(Long generateUserId,Long userId, CaclEnum caclEnum, Integer amount, Integer afterAmount, Integer freezeAmount, Integer afterFreezeAmount, String percentTemplate, Long tradeOrderId, String OrderNum) {
 
     }
 
@@ -104,7 +104,8 @@ public class PtProfitLogServiceImpl implements PtProfitLogService {
      * @param OrderNum
      */
     @Override
-    public void addMessage(Long userId, CaclEnum caclEnum, Long amount, Long afterAmount,
+    public void addMessage(Long generateUserId,//导致产生积分变动的用户ID
+            Long userId, CaclEnum caclEnum, Long amount, Long afterAmount,
                            Long freezeAmount, Long afterFreezeAmount,
                            String percentTemplate,
                            Long tradeOrderId,
@@ -115,6 +116,7 @@ public class PtProfitLogServiceImpl implements PtProfitLogService {
                 .amount(amount)
                 .percentTemplate(percentTemplate)
                 .userId(userId)
+                .generateUserId(generateUserId)
                 .profitStatus(caclEnum.getType()).orderId(tradeOrderId).orderNo(OrderNum)
                 .freezeAmount(freezeAmount).afterFreezeAmount(afterFreezeAmount)
                 .build();

+ 1 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/integral/IntegralMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.newfeifan.mall.module.distri.dal.mysql.integral.IntegralMapper">
+<mapper namespace="cn.newfeifan.mall.module.distri.dal.integral.IntegralMapper">
 
     <!--
         一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。

+ 1 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/ptprofit/PtProfitMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.newfeifan.mall.module.distri.dal.mysql.ptprofit.PtProfitMapper">
+<mapper namespace="cn.newfeifan.mall.module.distri.dal.ptprofit.PtProfitMapper">
 
     <!--
         一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。

+ 1 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/ptprofitlog/PtProfitLogMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.newfeifan.mall.module.distri.dal.mysql.ptprofitlog.PtProfitLogMapper">
+<mapper namespace="cn.newfeifan.mall.module.distri.dal.ptprofitlog.PtProfitLogMapper">
 
     <!--
         一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。

+ 3 - 3
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/aftersale/AfterSaleServiceImpl.java

@@ -405,7 +405,7 @@ public class AfterSaleServiceImpl implements AfterSaleService {
             toid.setRefundIntegral(payIntegral);
             tradeOrderItemMapper.updateById(toid);
             //退回退款订单项,购物者支付的积分
-            integralService.updateUserIntegral(orderUserId, CaclEnum.ORDER_REFUND_INTEGRAL, payIntegral, 0l, tradeOrderId, tradeOrderNum);
+            integralService.updateUserIntegral(orderUserId,orderUserId, CaclEnum.ORDER_REFUND_INTEGRAL, payIntegral, 0l, tradeOrderId, tradeOrderNum);
         }
 
         //2. 减少退货物品对应的冻结积分
@@ -414,12 +414,12 @@ public class AfterSaleServiceImpl implements AfterSaleService {
 
 
         //订单退款,收回消费者获得的冻结积分
-        integralService.updateUserIntegral(orderUserId, CaclEnum.ORDER_REFUND_INTEGRAL_CONSUMER, 0l,increaseIntegral*(-1),tradeOrderId,tradeOrderNum);
+        integralService.updateUserIntegral(orderUserId,orderUserId, CaclEnum.ORDER_REFUND_INTEGRAL_CONSUMER, 0l,increaseIntegral*(-1),tradeOrderId,tradeOrderNum);
 
         //20240604 推荐人(上级用户ID)
         Long ancesterUserId = tradeOrderMapper.selectAncesterByMemberUserId(orderUserId);
         //订单退款,收回消费者推荐人获得的冻结积分
-        integralService.updateUserIntegral(ancesterUserId, CaclEnum.ORDER_REFUND_INTEGRAL_ANCESTER, 0l,ancestorIncreaseIntegral*(-1),tradeOrderId,tradeOrderNum);
+        integralService.updateUserIntegral(orderUserId,ancesterUserId, CaclEnum.ORDER_REFUND_INTEGRAL_ANCESTER, 0l,ancestorIncreaseIntegral*(-1),tradeOrderId,tradeOrderNum);
 
         // 发起退款单。注意,需要在事务提交后,再进行发起,避免重复发起
         createPayRefund(userIp, afterSale);