Browse Source

附加产品新增基础票层存取

lishiqiang 1 week ago
parent
commit
84abb5b91e

+ 1 - 3
ship-module-product/ship-module-product-biz/src/main/resources/mapper/productGroup/ProductGroupMapper.xml

@@ -143,7 +143,6 @@
         SELECT
         pg.id,
         pg.product_id productId,
-        dp.product_id platProductId,
         pg.product_base_id productBaseId,
         pg.product_base_type productBaseType,
         pg.sku_id skuId,
@@ -156,8 +155,7 @@
         p.product_name productName
         FROM
         product_group pg
-        INNER JOIN ota_distributor_product dp ON dp.id = pg.product_base_id
-        INNER JOIN product_spu p ON p.id = dp.product_id
+        INNER JOIN product_spu p ON p.id = pg.product_id
         WHERE
             pg.deleted = 0
           and pg.product_base_type = 1

+ 40 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/ShipTradeOrderCreateReqVO.java

@@ -225,6 +225,46 @@ public class ShipTradeOrderCreateReqVO implements Serializable {
         @Schema(description = "游客列表", example = "")
         @Valid
         private List<Visitor> visitorList;
+
+        @Schema(description = "明细基础", example = "")
+        @NotEmpty(message = "明细基础不能为空")
+        @Valid
+        private List<OrderDetailBase> detailBaseList;
+    }
+
+    @Schema(description = "订单明细基础")
+    @Data
+    @Valid
+    public static class OrderDetailBase{
+
+
+        @Schema(description = "基础产品ID", example = "")
+        @NotNull(message = "基础产品ID不能为空")
+        private Long productBaseId;
+
+        @Schema(description = "项目ID", example = "")
+        @NotNull(message = "项目ID不能为空")
+        private Long projectId;
+
+        @Schema(description = "规格ID", example = "")
+        @NotNull(message = "规格ID不能为空")
+        private Long specificationId;
+
+        @Schema(description = "规格类型", example = "full")
+        @NotBlank(message = "规格类型不能为空")
+        private String specType;
+
+        @Schema(description = "平台分销的产品编码,平台分销产品必传", example = "123")
+        private String platSupplierProductId;
+
+        @Schema(description = "使用日期,定制游时可设置", example = "2024-06-01")
+        private Date useDate;
+
+        @Schema(description = "产品资源ID,定制游时可设置", example = "2024-06-01")
+        private Long productResourceId;
+
+        @Schema(description = "成本价,定制游时可设置", example = "2024-06-01")
+        private BigDecimal costPrice;
     }
 
     @Schema(description = "游客信息")

+ 28 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java

@@ -931,6 +931,8 @@ public class TradeOrderServiceImpl implements TradeOrderService {
                     //补任意游玩日期
                     tradeOrderDO.setTravelDate(DateUtils.of(tradeDetailDO.getUseDate()));
                 }
+                List<TradeDetailBaseDO>  detailBaseDOList = buildShipDetailBase(orderDetail,tradeDetailDO,product);
+                tradeDetailBaseDOList.addAll(detailBaseDOList);
                 TradeVisitorDO tradeVisitorDO = new TradeVisitorDO();
                 tradeVisitorDO.setId(IdWorker.getId());
                 tradeVisitorDO.setOrderId(tradeOrderDO.getId());
@@ -1157,6 +1159,32 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         return detailBaseDOList;
     }
 
+    private List<TradeDetailBaseDO> buildShipDetailBase(ShipTradeOrderCreateReqVO.OrderDetail orderDetail, TradeDetailDO tradeDetailDO, ProductSpuRespDTO productSpuRespDTO) {
+        List<TradeDetailBaseDO> detailBaseDOList = new ArrayList<>();
+        List<ProductGroupRespDTO> productGroupList = productSpuRespDTO.getProductGroupList();
+        if(productGroupList!=null) {
+            productGroupList.forEach(productGroup -> {
+                TradeDetailBaseDO detailBaseDO = new TradeDetailBaseDO();
+                detailBaseDO.setId(IdWorker.getId());
+                detailBaseDO.setOrderId(tradeDetailDO.getOrderId());
+                detailBaseDO.setDetailId(tradeDetailDO.getId());
+                detailBaseDO.setProductBaseName(productGroup.getProductBaseName());
+                detailBaseDO.setProjectName(productGroup.getProjectName());
+                detailBaseDO.setProjectCode(productGroup.getProjectCode());
+                detailBaseDO.setSpecificationName(productGroup.getSpecificationName());
+                //实际销售金额
+                detailBaseDO.setPrice(productGroup.getSalePrice());
+                detailBaseDO.setOriginalPrice(productGroup.getSalePrice());
+                detailBaseDO.setUseStatus(VoucherStatusEnum.INIT.getStatus());
+                detailBaseDO.setStartPoint(productGroup.getStartPoint());
+                detailBaseDO.setEndPoint(productGroup.getEndPoint());
+                detailBaseDO.setUseDate(tradeDetailDO.getUseDate());
+                detailBaseDOList.add(detailBaseDO);
+            });
+        }
+        return detailBaseDOList;
+    }
+
     private ProductGroupRespDTO getProductGroup(TradeOrderCreateReqDTO.OrderDetailBase orderDetailBase, ProductSpuRespDTO productSpuRespDTO) {
 
         List<ProductGroupRespDTO> productGroupList = productSpuRespDTO.getProductGroupList();