Commit 6ffb4ed1163efef19ca188d3f2577e353c38f09d
1 parent
01fca4e9
【缺陷修复】商城: 订单支付后记录 log error 日志,保证订单最大化可推导。
Showing
6 changed files
with
17 additions
and
24 deletions
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. 增加积分记录 |