Commit 6ffb4ed1163efef19ca188d3f2577e353c38f09d

Authored by YunaiV
1 parent 01fca4e9

【缺陷修复】商城: 订单支付后记录 log error 日志,保证订单最大化可推导。

yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageRecordServiceImpl.java
@@ -2,10 +2,7 @@ package cn.iocoder.yudao.module.trade.service.brokerage; @@ -2,10 +2,7 @@ package cn.iocoder.yudao.module.trade.service.brokerage;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.collection.ListUtil; 4 import cn.hutool.core.collection.ListUtil;
5 -import cn.hutool.core.util.ArrayUtil;  
6 -import cn.hutool.core.util.BooleanUtil;  
7 -import cn.hutool.core.util.ObjUtil;  
8 -import cn.hutool.core.util.ObjectUtil; 5 +import cn.hutool.core.util.*;
9 import cn.hutool.extra.spring.SpringUtil; 6 import cn.hutool.extra.spring.SpringUtil;
10 import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; 8 import cn.iocoder.yudao.framework.common.util.number.MoneyUtils;
@@ -183,10 +180,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService { @@ -183,10 +180,7 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
183 } else if (Objects.equals(sourceUserLevel, 2)) { 180 } else if (Objects.equals(sourceUserLevel, 2)) {
184 fixedPrice = item.getSecondFixedPrice(); 181 fixedPrice = item.getSecondFixedPrice();
185 } else { 182 } else {
186 - log.error("[addBrokerage][user({}) list({}) brokerageFrozenDays({}) brokeragePercent({}) " +  
187 - "bizType({}) 用户等级sourceUserLevel({}) 不合法]", user, list, brokerageFrozenDays,  
188 - brokeragePercent, bizType, sourceUserLevel);  
189 - return; 183 + throw new IllegalArgumentException(StrUtil.format("用户等级({}) 不合法", sourceUserLevel));
190 } 184 }
191 int brokeragePrice = calculatePrice(item.getBasePrice(), brokeragePercent, fixedPrice); 185 int brokeragePrice = calculatePrice(item.getBasePrice(), brokeragePercent, fixedPrice);
192 if (brokeragePrice <= 0) { 186 if (brokeragePrice <= 0) {
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
@@ -920,9 +920,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -920,9 +920,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
920 // 1. 检验订单存在 920 // 1. 检验订单存在
921 TradeOrderDO order = tradeOrderMapper.selectOrderByIdAndUserId(orderId, userId); 921 TradeOrderDO order = tradeOrderMapper.selectOrderByIdAndUserId(orderId, userId);
922 if (order == null) { 922 if (order == null) {
923 - log.error("[updateOrderGiveCouponIds][userId({}) orderId({}) giveCouponIds({}) {}]", userId, orderId,  
924 - giveCouponIds, ORDER_NOT_FOUND);  
925 - return; 923 + throw exception(ORDER_NOT_FOUND);
926 } 924 }
927 925
928 // 2. 更新订单赠送的优惠券编号列表 926 // 2. 更新订单赠送的优惠券编号列表
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeCouponOrderHandler.java
@@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; @@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
8 import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService; 8 import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService;
9 import cn.iocoder.yudao.module.trade.service.order.TradeOrderUpdateService; 9 import cn.iocoder.yudao.module.trade.service.order.TradeOrderUpdateService;
10 import jakarta.annotation.Resource; 10 import jakarta.annotation.Resource;
  11 +import lombok.extern.slf4j.Slf4j;
11 import org.springframework.context.annotation.Lazy; 12 import org.springframework.context.annotation.Lazy;
12 import org.springframework.stereotype.Component; 13 import org.springframework.stereotype.Component;
13 14
@@ -19,6 +20,7 @@ import java.util.List; @@ -19,6 +20,7 @@ import java.util.List;
19 * @author 芋道源码 20 * @author 芋道源码
20 */ 21 */
21 @Component 22 @Component
  23 +@Slf4j
22 public class TradeCouponOrderHandler implements TradeOrderHandler { 24 public class TradeCouponOrderHandler implements TradeOrderHandler {
23 25
24 @Resource 26 @Resource
@@ -46,11 +48,15 @@ public class TradeCouponOrderHandler implements TradeOrderHandler { @@ -46,11 +48,15 @@ public class TradeCouponOrderHandler implements TradeOrderHandler {
46 return; 48 return;
47 } 49 }
48 // 赠送优惠券 50 // 赠送优惠券
49 - List<Long> couponIds = couponApi.takeCouponsByAdmin(order.getGiveCouponTemplateCounts(), order.getUserId());  
50 - if (CollUtil.isEmpty(couponIds)) {  
51 - return; 51 + try {
  52 + List<Long> couponIds = couponApi.takeCouponsByAdmin(order.getGiveCouponTemplateCounts(), order.getUserId());
  53 + if (CollUtil.isEmpty(couponIds)) {
  54 + return;
  55 + }
  56 + orderUpdateService.updateOrderGiveCouponIds(order.getUserId(), order.getId(), couponIds);
  57 + } catch (Exception e) {
  58 + log.error("[afterPayOrder][order({}) 赠送优惠券({})失败,需要手工补偿]", order.getId(), order.getGiveCouponTemplateCounts(), e);
52 } 59 }
53 - orderUpdateService.updateOrderGiveCouponIds(order.getUserId(), order.getId(), couponIds);  
54 } 60 }
55 61
56 @Override 62 @Override
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/level/MemberLevelApiImpl.java
@@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j; @@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j;
9 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
10 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
11 11
  12 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
12 import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.EXPERIENCE_BIZ_NOT_SUPPORT; 13 import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.EXPERIENCE_BIZ_NOT_SUPPORT;
13 14
14 /** 15 /**
@@ -33,9 +34,7 @@ public class MemberLevelApiImpl implements MemberLevelApi { @@ -33,9 +34,7 @@ public class MemberLevelApiImpl implements MemberLevelApi {
33 public void addExperience(Long userId, Integer experience, Integer bizType, String bizId) { 34 public void addExperience(Long userId, Integer experience, Integer bizType, String bizId) {
34 MemberExperienceBizTypeEnum bizTypeEnum = MemberExperienceBizTypeEnum.getByType(bizType); 35 MemberExperienceBizTypeEnum bizTypeEnum = MemberExperienceBizTypeEnum.getByType(bizType);
35 if (bizTypeEnum == null) { 36 if (bizTypeEnum == null) {
36 - log.error("[addExperience][userId({}) experience({}) bizType({}) bizId({}) {}]", userId, experience, bizType,  
37 - bizId, EXPERIENCE_BIZ_NOT_SUPPORT);  
38 - return; 37 + throw exception(EXPERIENCE_BIZ_NOT_SUPPORT);
39 } 38 }
40 memberLevelService.addExperience(userId, experience, bizTypeEnum, bizId); 39 memberLevelService.addExperience(userId, experience, bizTypeEnum, bizId);
41 } 40 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/point/MemberPointApiImpl.java
@@ -41,9 +41,7 @@ public class MemberPointApiImpl implements MemberPointApi { @@ -41,9 +41,7 @@ public class MemberPointApiImpl implements MemberPointApi {
41 Assert.isTrue(point > 0); 41 Assert.isTrue(point > 0);
42 MemberPointBizTypeEnum bizTypeEnum = MemberPointBizTypeEnum.getByType(bizType); 42 MemberPointBizTypeEnum bizTypeEnum = MemberPointBizTypeEnum.getByType(bizType);
43 if (bizTypeEnum == null) { 43 if (bizTypeEnum == null) {
44 - log.error("[addPoint][userId({}) point({}) bizType({}) bizId({}) {}]", userId, point, bizType, bizId,  
45 - POINT_RECORD_BIZ_NOT_SUPPORT);  
46 - return; 44 + throw exception(POINT_RECORD_BIZ_NOT_SUPPORT);
47 } 45 }
48 memberPointRecordService.createPointRecord(userId, -point, bizTypeEnum, bizId); 46 memberPointRecordService.createPointRecord(userId, -point, bizTypeEnum, bizId);
49 } 47 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointRecordServiceImpl.java
@@ -82,9 +82,7 @@ public class MemberPointRecordServiceImpl implements MemberPointRecordService { @@ -82,9 +82,7 @@ public class MemberPointRecordServiceImpl implements MemberPointRecordService {
82 // 2. 更新用户积分 82 // 2. 更新用户积分
83 boolean success = memberUserService.updateUserPoint(userId, point); 83 boolean success = memberUserService.updateUserPoint(userId, point);
84 if (!success) { 84 if (!success) {
85 - log.error("[createPointRecord][userId({}) point({}) bizType({}) bizId({}) {}]", userId, point, bizType, bizId,  
86 - USER_POINT_NOT_ENOUGH);  
87 - return; 85 + throw exception(USER_POINT_NOT_ENOUGH);
88 } 86 }
89 87
90 // 3. 增加积分记录 88 // 3. 增加积分记录