Commit dad56fd0963e46eb866923a5f39bcef3fc237b42
1 parent
9aee08ee
trade: 1.支付成功后,增加用户经验;2.退款成功后,扣减用户经验
Showing
1 changed file
with
30 additions
and
2 deletions
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
| ... | ... | @@ -12,8 +12,10 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 12 | 12 | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; |
| 13 | 13 | import cn.iocoder.yudao.module.member.api.address.AddressApi; |
| 14 | 14 | import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO; |
| 15 | +import cn.iocoder.yudao.module.member.api.level.MemberLevelApi; | |
| 15 | 16 | import cn.iocoder.yudao.module.member.api.user.MemberUserApi; |
| 16 | 17 | import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; |
| 18 | +import cn.iocoder.yudao.module.member.enums.MemberExperienceBizTypeEnum; | |
| 17 | 19 | import cn.iocoder.yudao.module.pay.api.order.PayOrderApi; |
| 18 | 20 | import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO; |
| 19 | 21 | import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderRespDTO; |
| ... | ... | @@ -29,10 +31,10 @@ import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordUp |
| 29 | 31 | import cn.iocoder.yudao.module.promotion.api.coupon.CouponApi; |
| 30 | 32 | import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponUseReqDTO; |
| 31 | 33 | import cn.iocoder.yudao.module.promotion.enums.combination.CombinationRecordStatusEnum; |
| 32 | -import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO; | |
| 33 | -import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderUpdatePriceReqVO; | |
| 34 | 34 | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO; |
| 35 | 35 | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderRemarkReqVO; |
| 36 | +import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO; | |
| 37 | +import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderUpdatePriceReqVO; | |
| 36 | 38 | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; |
| 37 | 39 | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO; |
| 38 | 40 | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO; |
| ... | ... | @@ -57,6 +59,7 @@ import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO; |
| 57 | 59 | import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO; |
| 58 | 60 | import lombok.extern.slf4j.Slf4j; |
| 59 | 61 | import org.jetbrains.annotations.NotNull; |
| 62 | +import org.springframework.scheduling.annotation.Async; | |
| 60 | 63 | import org.springframework.stereotype.Service; |
| 61 | 64 | import org.springframework.transaction.annotation.Transactional; |
| 62 | 65 | |
| ... | ... | @@ -101,9 +104,13 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { |
| 101 | 104 | private AddressApi addressApi; |
| 102 | 105 | @Resource |
| 103 | 106 | private CouponApi couponApi; |
| 107 | + | |
| 104 | 108 | @Resource |
| 105 | 109 | private MemberUserApi memberUserApi; |
| 106 | 110 | @Resource |
| 111 | + private MemberLevelApi memberLevelApi; | |
| 112 | + | |
| 113 | + @Resource | |
| 107 | 114 | private ProductCommentApi productCommentApi; |
| 108 | 115 | @Resource |
| 109 | 116 | private TradeMessageService tradeMessageService; |
| ... | ... | @@ -336,6 +343,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { |
| 336 | 343 | // TODO 芋艿:发送站内信 |
| 337 | 344 | |
| 338 | 345 | // TODO 芋艿:OrderLog |
| 346 | + | |
| 347 | + // todo 增加用户积分 | |
| 348 | + | |
| 349 | + // 增加用户经验 | |
| 350 | + addUserExperienceAsync(order.getUserId(), order.getPayPrice(), order.getId()); | |
| 339 | 351 | } |
| 340 | 352 | |
| 341 | 353 | /** |
| ... | ... | @@ -602,6 +614,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { |
| 602 | 614 | } |
| 603 | 615 | |
| 604 | 616 | // TODO 芋艿:未来如果有分佣,需要更新相关分佣订单为已失效 |
| 617 | + | |
| 618 | + // todo 取消用户积分 | |
| 619 | + | |
| 620 | + // 取消用户经验 | |
| 621 | + reduceUserExperienceAsync(order.getUserId(), orderRefundPrice, afterSaleId); | |
| 605 | 622 | } |
| 606 | 623 | |
| 607 | 624 | @Override |
| ... | ... | @@ -649,4 +666,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { |
| 649 | 666 | TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus())); |
| 650 | 667 | } |
| 651 | 668 | |
| 669 | + @Async | |
| 670 | + protected void addUserExperienceAsync(Long userId, Integer payPrice, Long orderId) { | |
| 671 | + int bizType = MemberExperienceBizTypeEnum.ORDER.getType(); | |
| 672 | + memberLevelApi.addExperience(userId, payPrice, bizType, String.valueOf(orderId)); | |
| 673 | + } | |
| 674 | + | |
| 675 | + @Async | |
| 676 | + protected void reduceUserExperienceAsync(Long userId, Integer refundPrice, Long afterSaleId){ | |
| 677 | + int bizType = MemberExperienceBizTypeEnum.REFUND.getType(); | |
| 678 | + memberLevelApi.addExperience(userId, -refundPrice, bizType, String.valueOf(afterSaleId)); | |
| 679 | + } | |
| 652 | 680 | } | ... | ... |