Pārlūkot izejas kodu

Merge branch 'dev/2024/0624/update-app-Y' of Harper/feifan-backend-zx-app into master

修改超时订单未退回积分
Yangzw 9 mēneši atpakaļ
vecāks
revīzija
64e3b316b7

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

@@ -97,4 +97,14 @@ public interface IntegralService {
      * @param orderNum 订单号
      */
     void updateIntegralFreezeHighQuota(Long generateUserId, Long userId, CaclEnum caclEnum, Long totalFreezeHighQuota, Long tradeOrderId, String orderNum);
+
+    /**
+     * 修改用户积分
+     * @param userId 用户ID
+     * @param caclEnum 变化类型
+     * @param payIntegral 变化积分
+     * @param tradeOrderId 订单ID
+     * @param orderNum 订单号
+     */
+    void updateUserIntegral(Long userId, CaclEnum caclEnum, Long payIntegral, Long tradeOrderId, String orderNum);
 }

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

@@ -192,4 +192,15 @@ public class IntegralServiceImpl implements IntegralService {
                 .build();
         ptProfitLogService.createPtProfitLog(profitLogSaveReqVO);
     }
+
+    @Override
+    public void updateUserIntegral(Long userId, CaclEnum caclEnum, Long payIntegral, Long tradeOrderId, String orderNum) {
+        //退还订单支付过期积分
+        IntegralDO integralDO = integralMapper.selectOne(new LambdaQueryWrapper<IntegralDO>().eq(IntegralDO::getUserId, userId));
+        integralDO.setCurrentQuota(integralDO.getCurrentQuota() + payIntegral);
+
+        integralMapper.updateById(integralDO);
+
+        ptProfitLogService.addMessage(userId,userId,caclEnum,payIntegral,integralDO.getCurrentQuota(),0L,0L,null,tradeOrderId,orderNum);
+    }
 }

+ 2 - 1
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateServiceImpl.java

@@ -1474,6 +1474,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
      * @return 数量
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int cancelOrderBySystem() {
         // 1. 查询过期的待支付订单
         LocalDateTime expireTime = minusTime(tradeOrderProperties.getPayExpireTime());
@@ -1496,7 +1497,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
                 Long userId = order.getUserId();
                 //如果订单有使用积分,则退回积分
                 if (payIntegral > 0) {
-                    integralService.updateUserIntegral(userId, userId, CaclEnum.ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL, payIntegral, 0L, tradeOrderId, orderNum);
+                    integralService.updateUserIntegral(userId,CaclEnum.ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL,payIntegral,tradeOrderId,orderNum);
                 }
 
                 count++;