Commit dad56fd0963e46eb866923a5f39bcef3fc237b42

Authored by owen
1 parent 9aee08ee

trade: 1.支付成功后,增加用户经验;2.退款成功后,扣减用户经验

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,8 +12,10 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
12 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 12 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
13 import cn.iocoder.yudao.module.member.api.address.AddressApi; 13 import cn.iocoder.yudao.module.member.api.address.AddressApi;
14 import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO; 14 import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO;
  15 +import cn.iocoder.yudao.module.member.api.level.MemberLevelApi;
15 import cn.iocoder.yudao.module.member.api.user.MemberUserApi; 16 import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
16 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; 17 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
  18 +import cn.iocoder.yudao.module.member.enums.MemberExperienceBizTypeEnum;
17 import cn.iocoder.yudao.module.pay.api.order.PayOrderApi; 19 import cn.iocoder.yudao.module.pay.api.order.PayOrderApi;
18 import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO; 20 import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO;
19 import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderRespDTO; 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,10 +31,10 @@ import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordUp
29 import cn.iocoder.yudao.module.promotion.api.coupon.CouponApi; 31 import cn.iocoder.yudao.module.promotion.api.coupon.CouponApi;
30 import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponUseReqDTO; 32 import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponUseReqDTO;
31 import cn.iocoder.yudao.module.promotion.enums.combination.CombinationRecordStatusEnum; 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 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO; 34 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
35 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderRemarkReqVO; 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 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; 38 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
37 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO; 39 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO;
38 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO; 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,6 +59,7 @@ import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO;
57 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO; 59 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO;
58 import lombok.extern.slf4j.Slf4j; 60 import lombok.extern.slf4j.Slf4j;
59 import org.jetbrains.annotations.NotNull; 61 import org.jetbrains.annotations.NotNull;
  62 +import org.springframework.scheduling.annotation.Async;
60 import org.springframework.stereotype.Service; 63 import org.springframework.stereotype.Service;
61 import org.springframework.transaction.annotation.Transactional; 64 import org.springframework.transaction.annotation.Transactional;
62 65
@@ -101,9 +104,13 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -101,9 +104,13 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
101 private AddressApi addressApi; 104 private AddressApi addressApi;
102 @Resource 105 @Resource
103 private CouponApi couponApi; 106 private CouponApi couponApi;
  107 +
104 @Resource 108 @Resource
105 private MemberUserApi memberUserApi; 109 private MemberUserApi memberUserApi;
106 @Resource 110 @Resource
  111 + private MemberLevelApi memberLevelApi;
  112 +
  113 + @Resource
107 private ProductCommentApi productCommentApi; 114 private ProductCommentApi productCommentApi;
108 @Resource 115 @Resource
109 private TradeMessageService tradeMessageService; 116 private TradeMessageService tradeMessageService;
@@ -336,6 +343,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -336,6 +343,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
336 // TODO 芋艿:发送站内信 343 // TODO 芋艿:发送站内信
337 344
338 // TODO 芋艿:OrderLog 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,6 +614,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
602 } 614 }
603 615
604 // TODO 芋艿:未来如果有分佣,需要更新相关分佣订单为已失效 616 // TODO 芋艿:未来如果有分佣,需要更新相关分佣订单为已失效
  617 +
  618 + // todo 取消用户积分
  619 +
  620 + // 取消用户经验
  621 + reduceUserExperienceAsync(order.getUserId(), orderRefundPrice, afterSaleId);
605 } 622 }
606 623
607 @Override 624 @Override
@@ -649,4 +666,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -649,4 +666,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
649 TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus())); 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 }