Commit e9c9ac0cabe54a44e3cc37f0039466051cfb3fc0

Authored by YunaiV
1 parent 71d6311b

trade:确认收货时,增加订单日志

yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderOperateTypeEnum.java
@@ -14,7 +14,7 @@ import lombok.RequiredArgsConstructor; @@ -14,7 +14,7 @@ import lombok.RequiredArgsConstructor;
14 public enum TradeOrderOperateTypeEnum { 14 public enum TradeOrderOperateTypeEnum {
15 15
16 MEMBER_CREATE(1, "用户下单"), 16 MEMBER_CREATE(1, "用户下单"),
17 - TEST(2, "用户({nickname})做了({thing})"), 17 + MEMBER_RECEIVE(30, "用户已收货")
18 ; 18 ;
19 19
20 /** 20 /**
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
@@ -48,6 +48,7 @@ import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum; @@ -48,6 +48,7 @@ import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum;
48 import cn.iocoder.yudao.module.trade.enums.order.*; 48 import cn.iocoder.yudao.module.trade.enums.order.*;
49 import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties; 49 import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
50 import cn.iocoder.yudao.module.trade.framework.order.core.annotations.TradeOrderLog; 50 import cn.iocoder.yudao.module.trade.framework.order.core.annotations.TradeOrderLog;
  51 +import cn.iocoder.yudao.module.trade.framework.order.core.utils.TradeOrderLogUtils;
51 import cn.iocoder.yudao.module.trade.service.brokerage.bo.BrokerageAddReqBO; 52 import cn.iocoder.yudao.module.trade.service.brokerage.bo.BrokerageAddReqBO;
52 import cn.iocoder.yudao.module.trade.service.brokerage.record.BrokerageRecordService; 53 import cn.iocoder.yudao.module.trade.service.brokerage.record.BrokerageRecordService;
53 import cn.iocoder.yudao.module.trade.service.cart.CartService; 54 import cn.iocoder.yudao.module.trade.service.cart.CartService;
@@ -299,6 +300,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -299,6 +300,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
299 // 5. 生成预支付 300 // 5. 生成预支付
300 createPayOrder(order, orderItems, calculateRespBO); 301 createPayOrder(order, orderItems, calculateRespBO);
301 302
  303 + // 6. 插入订单日志
  304 + TradeOrderLogUtils.setOrderInfo(order.getId(), null, order.getStatus());
  305 +
302 // TODO @LeeYan9: 是可以思考下, 订单的营销优惠记录, 应该记录在哪里, 微信讨论起来! 306 // TODO @LeeYan9: 是可以思考下, 订单的营销优惠记录, 应该记录在哪里, 微信讨论起来!
303 } 307 }
304 308
@@ -343,7 +347,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -343,7 +347,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
343 // TODO 芋艿:OrderLog 347 // TODO 芋艿:OrderLog
344 348
345 // 增加用户积分 349 // 增加用户积分
346 - getSelf().addUserPointAsync(order.getUserId(), order.getPayPrice(), order.getId()); 350 + getSelf().addMemberPointAsync(order.getUserId(), order.getPayPrice(), order.getId());
347 // 增加用户经验 351 // 增加用户经验
348 getSelf().addUserExperienceAsync(order.getUserId(), order.getPayPrice(), order.getId()); 352 getSelf().addUserExperienceAsync(order.getUserId(), order.getPayPrice(), order.getId());
349 // 增加用户佣金 353 // 增加用户佣金
@@ -492,7 +496,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -492,7 +496,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
492 if (updateCount == 0) { 496 if (updateCount == 0) {
493 throw exception(ORDER_RECEIVE_FAIL_STATUS_NOT_DELIVERED); 497 throw exception(ORDER_RECEIVE_FAIL_STATUS_NOT_DELIVERED);
494 } 498 }
495 - // TODO 芋艿:OrderLog  
496 499
497 // TODO 芋艿:lili 发送订单变化的消息 500 // TODO 芋艿:lili 发送订单变化的消息
498 501
@@ -500,7 +503,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -500,7 +503,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
500 503
501 // TODO 芋艿:销售佣金的记录; 504 // TODO 芋艿:销售佣金的记录;
502 505
503 - // TODO 芋艿:获得积分; 506 + // 插入订单日志
  507 + TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), TradeOrderStatusEnum.COMPLETED.getStatus());
504 } 508 }
505 509
506 @Override 510 @Override
@@ -664,7 +668,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -664,7 +668,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
664 } 668 }
665 669
666 // 扣减用户积分 670 // 扣减用户积分
667 - getSelf().reduceUserPointAsync(order.getUserId(), orderRefundPrice, afterSaleId); 671 + getSelf().reduceMemberPointAsync(order.getUserId(), orderRefundPrice, afterSaleId);
668 // 扣减用户经验 672 // 扣减用户经验
669 getSelf().reduceUserExperienceAsync(order.getUserId(), orderRefundPrice, afterSaleId); 673 getSelf().reduceUserExperienceAsync(order.getUserId(), orderRefundPrice, afterSaleId);
670 // 更新分佣记录为已失效 674 // 更新分佣记录为已失效
@@ -768,29 +772,54 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { @@ -768,29 +772,54 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
768 memberLevelApi.addExperience(userId, -refundPrice, bizType, String.valueOf(afterSaleId)); 772 memberLevelApi.addExperience(userId, -refundPrice, bizType, String.valueOf(afterSaleId));
769 } 773 }
770 774
  775 + /**
  776 + * 添加用户积分
  777 + *
  778 + * 目前是支付成功后,就会创建积分记录。
  779 + *
  780 + * 业内还有两种做法,可以根据自己的业务调整:
  781 + * 1. 确认收货后,才创建积分记录
  782 + * 2. 支付 or 下单成功时,创建积分记录(冻结),确认收货解冻或者 n 天后解冻
  783 + *
  784 + * @param userId 用户编号
  785 + * @param payPrice 支付金额
  786 + * @param orderId 订单编号
  787 + */
771 @Async 788 @Async
772 - protected void addUserPointAsync(Long userId, Integer payPrice, Long orderId) { 789 + protected void addMemberPointAsync(Long userId, Integer payPrice, Long orderId) {
773 // TODO @疯狂:具体多少积分,需要分成 2 不分:1. 支付金额;2. 商品金额 790 // TODO @疯狂:具体多少积分,需要分成 2 不分:1. 支付金额;2. 商品金额
774 int bizType = MemberPointBizTypeEnum.ORDER_REWARD.getType(); 791 int bizType = MemberPointBizTypeEnum.ORDER_REWARD.getType();
775 memberPointApi.addPoint(userId, payPrice, bizType, String.valueOf(orderId)); 792 memberPointApi.addPoint(userId, payPrice, bizType, String.valueOf(orderId));
776 } 793 }
777 794
778 @Async 795 @Async
779 - protected void reduceUserPointAsync(Long userId, Integer refundPrice, Long afterSaleId) { 796 + protected void reduceMemberPointAsync(Long userId, Integer refundPrice, Long afterSaleId) {
780 // TODO @疯狂:退款时,按照金额比例,退还积分;https://help.youzan.com/displaylist/detail_4_4-1-49185 797 // TODO @疯狂:退款时,按照金额比例,退还积分;https://help.youzan.com/displaylist/detail_4_4-1-49185
781 int bizType = MemberPointBizTypeEnum.ORDER_CANCEL.getType(); 798 int bizType = MemberPointBizTypeEnum.ORDER_CANCEL.getType();
782 memberPointApi.addPoint(userId, -refundPrice, bizType, String.valueOf(afterSaleId)); 799 memberPointApi.addPoint(userId, -refundPrice, bizType, String.valueOf(afterSaleId));
783 } 800 }
784 801
  802 + /**
  803 + * 创建分销记录
  804 + *
  805 + * 目前是支付成功后,就会创建分销记录。
  806 + *
  807 + * 业内还有两种做法,可以根据自己的业务调整:
  808 + * 1. 确认收货后,才创建分销记录
  809 + * 2. 支付 or 下单成功时,创建分销记录(冻结),确认收货解冻或者 n 天后解冻
  810 + *
  811 + * @param userId 用户编号
  812 + * @param orderId 订单编号
  813 + */
785 @Async 814 @Async
786 protected void addBrokerageAsync(Long userId, Long orderId) { 815 protected void addBrokerageAsync(Long userId, Long orderId) {
787 MemberUserRespDTO user = memberUserApi.getUser(userId); 816 MemberUserRespDTO user = memberUserApi.getUser(userId);
788 Assert.notNull(user); 817 Assert.notNull(user);
789 - 818 + // 每一个订单项,都会去生成分销记录
790 List<TradeOrderItemDO> orderItems = tradeOrderItemMapper.selectListByOrderId(orderId); 819 List<TradeOrderItemDO> orderItems = tradeOrderItemMapper.selectListByOrderId(orderId);
791 - List<BrokerageAddReqBO> list = convertList(orderItems, 820 + List<BrokerageAddReqBO> addList = convertList(orderItems,
792 item -> TradeOrderConvert.INSTANCE.convert(user, item, productSkuApi.getSku(item.getSkuId()))); 821 item -> TradeOrderConvert.INSTANCE.convert(user, item, productSkuApi.getSku(item.getSkuId())));
793 - brokerageRecordService.addBrokerage(userId, BrokerageRecordBizTypeEnum.ORDER, list); 822 + brokerageRecordService.addBrokerage(userId, BrokerageRecordBizTypeEnum.ORDER, addList);
794 } 823 }
795 824
796 @Async 825 @Async