mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	拼团活动:完善 TradeCombinationHandler
This commit is contained in:
		| @@ -16,6 +16,7 @@ import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDeta | ||||
| import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; | ||||
| import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO; | ||||
| import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; | ||||
| import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordCreateReqDTO; | ||||
| import cn.iocoder.yudao.module.trade.api.order.dto.TradeOrderRespDTO; | ||||
| import cn.iocoder.yudao.module.trade.controller.admin.base.member.user.MemberUserRespVO; | ||||
| import cn.iocoder.yudao.module.trade.controller.admin.base.product.property.ProductPropertyValueDetailRespVO; | ||||
| @@ -263,4 +264,16 @@ public interface TradeOrderConvert { | ||||
|  | ||||
|     List<TradeOrderRespDTO> convertList04(List<TradeOrderDO> list); | ||||
|  | ||||
|     @Mappings({ | ||||
|             @Mapping(target = "activityId", source = "order.combinationActivityId"), | ||||
|             @Mapping(target = "spuId", source = "item.spuId"), | ||||
|             @Mapping(target = "skuId", source = "item.skuId"), | ||||
|             @Mapping(target = "count", source = "item.count"), | ||||
|             @Mapping(target = "orderId", source = "order.id"), | ||||
|             @Mapping(target = "userId", source = "order.userId"), | ||||
|             @Mapping(target = "headId", source = "order.combinationRecordHeadId"), | ||||
|             @Mapping(target = "combinationPrice", source = "item.payPrice"), | ||||
|     }) | ||||
|     CombinationRecordCreateReqDTO convert(TradeOrderDO order, TradeOrderItemDO item); | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -7,7 +7,10 @@ import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; | ||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressDO; | ||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; | ||||
| import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum; | ||||
| import cn.iocoder.yudao.module.trade.enums.order.*; | ||||
| import cn.iocoder.yudao.module.trade.enums.order.TradeOrderCancelTypeEnum; | ||||
| import cn.iocoder.yudao.module.trade.enums.order.TradeOrderRefundStatusEnum; | ||||
| import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum; | ||||
| import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum; | ||||
| import com.baomidou.mybatisplus.annotation.KeySequence; | ||||
| import com.baomidou.mybatisplus.annotation.TableName; | ||||
| import lombok.*; | ||||
| @@ -308,4 +311,17 @@ public class TradeOrderDO extends BaseDO { | ||||
|      */ | ||||
|     private Long bargainRecordId; | ||||
|  | ||||
|     /** | ||||
|      * 拼团活动编号 TODO puhui999:价格计算后设置 | ||||
|      * | ||||
|      * 关联 CombinationActivityDO 的 id 字段 | ||||
|      */ | ||||
|     private Long combinationActivityId; | ||||
|     /** | ||||
|      * 团长编号 | ||||
|      * | ||||
|      * 关联 CombinationRecordDO 的 id 字段 | ||||
|      */ | ||||
|     private Long combinationRecordHeadId; | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,9 +1,16 @@ | ||||
| package cn.iocoder.yudao.module.trade.service.order.handler; | ||||
|  | ||||
| import cn.hutool.core.lang.Assert; | ||||
| import cn.hutool.core.util.ObjectUtil; | ||||
| import cn.iocoder.yudao.module.promotion.api.combination.CombinationRecordApi; | ||||
| import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; | ||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | ||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; | ||||
| import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum; | ||||
| import org.springframework.stereotype.Component; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
| import java.util.List; | ||||
|  | ||||
| /** | ||||
|  * 拼团订单 handler 接口实现类 | ||||
| @@ -16,38 +23,43 @@ public class TradeCombinationHandler implements TradeOrderHandler { | ||||
|     @Resource | ||||
|     private CombinationRecordApi combinationRecordApi; | ||||
|  | ||||
| //    @Override | ||||
| //    public void beforeOrderCreate(TradeBeforeOrderCreateReqBO reqBO) { | ||||
| //        // 如果不是拼团订单则结束 | ||||
| //        if (ObjectUtil.notEqual(TradeOrderTypeEnum.COMBINATION.getType(), reqBO.getOrderType())) { | ||||
| //            return; | ||||
| //        } | ||||
| // | ||||
| //        // 获取商品信息 | ||||
| //        TradeBeforeOrderCreateReqBO.Item item = reqBO.getItems().get(0); | ||||
| //        // 校验是否满足拼团活动相关限制 | ||||
| //        combinationRecordApi.validateCombinationRecord(reqBO.getCombinationActivityId(), reqBO.getUserId(), item.getSkuId(), item.getCount()); | ||||
| //    } | ||||
|     @Override | ||||
|     public void beforeOrderCreate(TradeOrderDO order, List<TradeOrderItemDO> orderItems) { | ||||
|         // 如果不是拼团订单则结束 | ||||
|         if (ObjectUtil.notEqual(TradeOrderTypeEnum.COMBINATION.getType(), order.getType())) { | ||||
|             return; | ||||
|         } | ||||
|         Assert.isTrue(orderItems.size() == 1, "拼团时,只允许选择一个商品"); | ||||
|  | ||||
| //    @Override | ||||
| //    public void afterOrderCreate(TradeAfterOrderCreateReqBO reqBO) { | ||||
| //        if (reqBO.getCombinationActivityId() == null) { | ||||
| //            return; | ||||
| //        } | ||||
| // | ||||
| //        // 创建砍价记录 | ||||
| //        combinationRecordApi.createCombinationRecord(TradeOrderConvert.INSTANCE.convert(reqBO)); | ||||
| //    } | ||||
|         // 获取商品信息 | ||||
|         TradeOrderItemDO item = orderItems.get(0); | ||||
|         // 校验是否满足拼团活动相关限制 | ||||
|         combinationRecordApi.validateCombinationRecord(order.getCombinationActivityId(), order.getUserId(), item.getSkuId(), item.getCount()); | ||||
|     } | ||||
|  | ||||
| //    @Override | ||||
| //    public void afterPayOrder(TradeAfterPayOrderReqBO reqBO) { | ||||
| //        // 如果不是拼团订单则结束 | ||||
| //        if (ObjectUtil.notEqual(TradeOrderTypeEnum.COMBINATION.getType(), reqBO.getOrderType())) { | ||||
| //            return; | ||||
| //        } | ||||
| // | ||||
| //        // 更新拼团状态 TODO puhui999:订单支付失败或订单支付过期删除这条拼团记录 | ||||
| //        combinationRecordApi.updateRecordStatusToInProgress(reqBO.getUserId(), reqBO.getOrderId(), reqBO.getPayTime()); | ||||
| //    } | ||||
|     @Override | ||||
|     public void afterOrderCreate(TradeOrderDO order, List<TradeOrderItemDO> orderItems) { | ||||
|         // 如果不是拼团订单则结束 | ||||
|         if (ObjectUtil.notEqual(TradeOrderTypeEnum.COMBINATION.getType(), order.getType())) { | ||||
|             return; | ||||
|         } | ||||
|         Assert.isTrue(orderItems.size() == 1, "拼团时,只允许选择一个商品"); | ||||
|  | ||||
|         // 获取商品信息 | ||||
|         TradeOrderItemDO item = orderItems.get(0); | ||||
|         // 创建砍价记录 | ||||
|         combinationRecordApi.createCombinationRecord(TradeOrderConvert.INSTANCE.convert(order, item)); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void afterPayOrder(TradeOrderDO order) { | ||||
|         // 如果不是拼团订单则结束 | ||||
|         if (ObjectUtil.notEqual(TradeOrderTypeEnum.COMBINATION.getType(), order.getType())) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         // 更新拼团状态 TODO puhui999:订单支付失败或订单支付过期删除这条拼团记录 | ||||
|         combinationRecordApi.updateRecordStatusToInProgress(order.getUserId(), order.getId(), order.getPayTime()); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 puhui999
					puhui999