Browse Source

下单流程

lishiqiang 1 week ago
parent
commit
666d7de6ae
14 changed files with 352 additions and 18 deletions
  1. 2 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributor/DistributorService.java
  2. 10 3
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/productSpu/ProductSpuController.java
  3. 1 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/productSpu/ProductSpuMapper.java
  4. 1 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/productSpu/ProductSpuService.java
  5. 6 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/productSpu/ProductSpuServiceImpl.java
  6. 1 1
      ship-module-product/ship-module-product-biz/src/main/resources/mapper/productBase/ProductBaseMapper.xml
  7. 36 0
      ship-module-product/ship-module-product-biz/src/main/resources/mapper/productSpu/ProductSpuMapper.xml
  8. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/OtcTradeOrderController.java
  9. 269 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/ShipTradeOrderCreateReqVO.java
  10. 7 6
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/app/order/TradeOrderController.java
  11. 7 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/convert/order/TradeOrderConvert.java
  12. 3 2
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java
  13. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java
  14. 7 4
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

+ 2 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributor/DistributorService.java

@@ -2,6 +2,7 @@ package com.yc.ship.module.ota.service.distributor;
 
 import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
 import com.yc.ship.module.ota.controller.admin.distributor.vo.*;
 import com.yc.ship.module.ota.dal.dataobject.distributor.DistributorDO;
@@ -104,6 +105,7 @@ public interface DistributorService {
 
     CommonResult<DistributorRespDTO> getDistributorByOtaAccount(String otaAccount, String typeCode);
 
+    @TenantIgnore
     DistributorDO getDistributorById(Long distributorId);
 
     DistributorDO getDistributorByLoginUser(String loginName);

+ 10 - 3
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/productSpu/ProductSpuController.java

@@ -38,7 +38,7 @@ import static com.yc.ship.framework.operatelog.core.enums.OperateTypeEnum.EXPORT
 import static com.yc.ship.framework.operatelog.core.enums.OperateTypeEnum.PRODUCT;
 
 
-@Tag(name = "管理后台 - 产品基础信息spu")
+@Tag(name = "管理后台 - 附加产品基础信息spu")
 @RestController
 @RequestMapping("/product/product-spu")
 @Validated
@@ -48,7 +48,7 @@ public class ProductSpuController {
     private ProductSpuService productSpuService;
 
     @PostMapping("/create")
-    @Operation(summary = "创建产品基础信息")
+    @Operation(summary = "创建附加产品基础信息")
     @OperateLog(type = PRODUCT)
     @PreAuthorize("@ss.hasAnyPermissions('product:spu:create','product:otc-spu:create')")
     public CommonResult<Long> createProductSpu(@Valid @RequestBody ProductSpuSaveReqVO createReqVO) {
@@ -56,7 +56,7 @@ public class ProductSpuController {
     }
 
     @PutMapping("/update")
-    @Operation(summary = "更新产品基础信息")
+    @Operation(summary = "更新房间产品基础信息")
     @OperateLog(type = PRODUCT)
     @PreAuthorize("@ss.hasAnyPermissions('product:spu:update','product:otc-spu:update')")
     public CommonResult<Boolean> updateProductSpu(@Valid @RequestBody ProductSpuSaveReqVO updateReqVO) {
@@ -126,6 +126,12 @@ public class ProductSpuController {
         return success(productSpuService.selectSimpleList(pageReqVO));
     }
 
+    @GetMapping("/listByShipId")
+    @Operation(summary = "获得产品信息list")
+    public CommonResult<List<ProductSpuSimpleVO>> listByShipId(@RequestParam("shipId") Long shipId) {
+        return success(productSpuService.listByShipId(shipId));
+    }
+
     @GetMapping("/list-platform")
     @Operation(summary = "获得组合产品(平台分销的)",description = "可传租户id(其他参数无效)")
     public CommonResult<PageResult<ProductSpuRespVO>> listPlatform(@Valid ProductSpuPageReqVO pageReqVO) {
@@ -144,6 +150,7 @@ public class ProductSpuController {
         return success(true);
     }
 
+
     @GetMapping({"/list-all-simple", "/simple-list"})
     @Operation(summary = "获取精简信息列表", description = "只包含被开启的点位类型,主要用于前端的下拉选项")
     public CommonResult<List<ProductSpuSimpleRespVO>> getSimpleList(ProductSpuPageReqVO pageReqVO) {

+ 1 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/productSpu/ProductSpuMapper.java

@@ -45,6 +45,7 @@ public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
     }
 
     List<ProductSpuSimpleVO> selectSimpleList(@Param("param")ProductSpuPageReqVO reqVO);
+    List<ProductSpuSimpleVO> listByShipId(@Param("shipId")Long shipId);
     @TenantIgnore
     List<ProductSpuSimpleVO> selectPlatSimpleList(@Param("param")ProductSpuPageReqVO reqVO);
 

+ 1 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/productSpu/ProductSpuService.java

@@ -125,6 +125,7 @@ public interface ProductSpuService {
     List<TreeNode> getDistributorProductSpuList();
 
     List<ProductSpuSimpleVO> selectSimpleList(ProductSpuPageReqVO pageReqVO);
+    List<ProductSpuSimpleVO> listByShipId(Long shipId);
 
     List<ProductSkuDO> getProductSkuList(List<Long> ids);
 }

+ 6 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/productSpu/ProductSpuServiceImpl.java

@@ -719,6 +719,12 @@ public class ProductSpuServiceImpl implements ProductSpuService {
         }
     }
 
+    @Override
+    public List<ProductSpuSimpleVO> listByShipId(Long shipId) {
+            //获取游船绑定的附加产品
+        return  productSpuMapper.listByShipId(shipId);
+    }
+
     @Override
     public List<ProductSkuDO> getProductSkuList(List<Long> ids) {
         return productSkuMapper.selectList(new LambdaQueryWrapper<ProductSkuDO>()

+ 1 - 1
ship-module-product/ship-module-product-biz/src/main/resources/mapper/productBase/ProductBaseMapper.xml

@@ -119,6 +119,6 @@
     </select>
 
     <select id="selectShipList" resultType="com.yc.ship.module.product.controller.admin.productBase.vo.ShipRespVO">
-        SELECT id,code,name FROM buss_ship WHERE deleted = 0 and status =0
+        SELECT id,code,name FROM resource_ship WHERE deleted = 0 and status =0
     </select>
 </mapper>

+ 36 - 0
ship-module-product/ship-module-product-biz/src/main/resources/mapper/productSpu/ProductSpuMapper.xml

@@ -304,6 +304,42 @@
             AND g.product_base_id = #{param.productBaseId} and g.deleted = 0 group by  ps.id
         </if>
     </select>
+
+    <select id="listByShipId" resultType="com.yc.ship.module.product.controller.admin.productSpu.spuVO.ProductSpuSimpleVO">
+        SELECT
+            distinct
+            ps.id,ps.product_name productName,
+            ps.product_code productCode,
+            ps.product_type productType,
+            ps.category_id categoryId,
+            pc.cate_name categoryName,
+            pc.sort_num cateSort,
+            ps.sale_price salePrice,
+            ps.cost_price costPrice,
+            ps.is_use isUse,
+            ps.day_num dayNum,
+            ps.sort_num sortNum
+        FROM
+            product_spu ps
+        inner join product_category pc on ps.category_id = pc.id
+        inner join product_basic_rule pbr on pbr.id = ps.id and pbr.deleted = 0
+        inner join product_spu_ship t3 on ps.id = t3.product_id
+        WHERE
+            ps.deleted = 0 AND ps.is_use = 1
+        <![CDATA[
+                AND ((DATE_FORMAT(pbr.sale_start_date,"%Y-%m-%d") <= DATE_FORMAT(now(),"%Y-%m-%d") AND DATE_FORMAT(pbr.sale_end_date,"%Y-%m-%d") >= DATE_FORMAT(now(),"%Y-%m-%d")) OR ( pbr.sale_start_date is null AND pbr.sale_end_date is null))
+                ]]>
+        <![CDATA[
+                AND (
+                (pbr.sale_start_time <= DATE_FORMAT(now(),"%H:%i") AND pbr.sale_end_time >= DATE_FORMAT(now(),"%H:%i") )
+                OR
+                ( (pbr.sale_start_time is null or pbr.sale_start_time = '') AND (pbr.sale_end_time is null or pbr.sale_end_time = '') )
+                )
+                ]]>
+        <if test="shipId != null and shipId != ''">
+            and t3.ship_id = #{shipId}
+        </if>
+    </select>
     <select id="selectPlatSimpleList" resultType="com.yc.ship.module.product.controller.admin.productSpu.spuVO.ProductSpuSimpleVO">
         SELECT
         ps.id,ps.product_name productName,

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/OtcTradeOrderController.java

@@ -94,7 +94,7 @@ public class OtcTradeOrderController {
     @PostMapping("/plat/createOrder")
     @Operation(summary = "win-平台创建订单")
     @OperateLog(type = TRADE)
-    public CommonResult<OtcTradeOrderCreateRespVO> platCreateMoveOrder(@Validated(value = WindowCreateOrderGroup.class)  @RequestBody OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
+    public CommonResult<OtcTradeOrderCreateRespVO> platCreateMoveOrder(@Validated(value = WindowCreateOrderGroup.class)  @RequestBody ShipTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
         return otcTradeOrderService.platCreateMoveOrder(getLoginUser(), otcTradeOrderCreateReqVO);
     }
 

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

@@ -0,0 +1,269 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.order;
+
+import com.yc.ship.framework.common.validation.IntEnum;
+import com.yc.ship.framework.common.validation.Mobile;
+import com.yc.ship.module.trade.api.dto.TradeOrderCreateReqDTO;
+import com.yc.ship.module.trade.enums.CredentialTypeEnum;
+import io.swagger.v3.oas.annotations.Hidden;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Schema(description = "旅行社交易订单创建 Request VO")
+@Data
+public class ShipTradeOrderCreateReqVO implements Serializable {
+
+    @Schema(description = "分销商ID", example = "MT1231312")
+    private Long distributorId;
+
+    @Schema(description = "第三方订单号,分销商下单", example = "MT1231312")
+    @Hidden
+    private String externalOrderNo;
+
+    @Schema(description = "出行日期", example = "2025-06-01")
+    private Date travelDate;
+
+    @Schema(description = "订单项列表", example = "")
+    @NotEmpty(message = "订单项列表不能为空")
+    @Valid
+    private List<OrderItem> itemlList;
+
+    @Schema(description = "订单金额(元)", example = "100")
+    @NotNull(message = "订单金额不能为空")
+    private BigDecimal amount;
+
+    @Schema(description = "支付金额(元)", example = "90")
+    @NotNull(message = "支付金额不能为空")
+    private BigDecimal payAmount;
+
+    @Schema(description = "订单联系信息", example = "")
+    @NotNull(message = "联系人信息不能为空")
+    private OrderUser orderUser;
+
+    @Schema(description = "订单属性", example = "")
+    private OrderProperty orderProperty;
+
+    @Schema(description = "订单备注", example = "xx游客岁数较大")
+    @Length(max = 120,message = "备注不能超过120个字符")
+    private String remark;
+
+    @Schema(description = "携程需要参数,其他情况忽略", example = "")
+    private String itemId;
+
+    @Schema(description = "是否完全支付 0 否 1是", example = "")
+    private Integer isFullPay;
+
+    @Schema(description = "是否改签 0 否 1是", example = "")
+    private Integer isChange;
+
+    @Schema(description = "是否补票 0 否 1是", example = "")
+    private Integer isTimePay;
+
+    @Schema(description = "是否申请营销政策(0否 1是)", example = "")
+    private Integer isMarketing;
+
+    @Schema(description = "是否申请使用营销政策(0否 1是)", example = "")
+    private Integer isMarketingUse;
+
+    @Schema(description = "预定团号", example = "")
+    private String groupNo;
+
+    @Schema(description = "币种", example = "CNY")
+    private String currency;
+    /**
+     * 航次ID
+     */
+    @Schema(description = "航次ID")
+    private Long voyageId;
+
+    /**
+     * 游轮ID
+     */
+    @Schema(description = "游轮ID")
+    private Long shipId;
+
+
+    @Schema(description = "订单项")
+    @Data
+    @Valid
+    public static class OrderItem{
+        @Schema(description = "国籍")
+        private String nationality;
+
+        @Schema(description = "成人数量", example = "10")
+        @NotNull(message = "成人数量不能为空")
+        private Integer crnum1;
+
+        @Schema(description = "儿童数量", example = "10")
+        @NotNull(message = "儿童数量不能为空")
+        private Integer etnum2;
+
+        @Schema(description = "婴儿数量", example = "10")
+        @NotNull(message = "婴儿数量不能为空")
+        private Integer yenum3;
+
+        @Schema(description = "陪同数量", example = "10")
+        @NotNull(message = "陪同数量不能为空")
+        private Integer ptnum;
+
+        @Schema(description = "陪同费用", example = "10")
+        private BigDecimal ptamount;
+
+
+        @Schema(description = "订单明细列表", example = "")
+        @NotEmpty(message = "订单明细列表不能为空")
+        @Valid
+        private List<OrderDetail> detailList;
+
+    }
+
+    @Schema(description = "订单明细")
+    @Data
+    @Valid
+    public static class OrderDetail{
+
+        @Schema(description = "游船产品:楼层ID OR 附加产品:附加产品ID", example = "")
+        @NotBlank(message = "楼层ID/附加产品ID不能为空")
+        private String productId;
+
+        @Schema(description = "产品类型 0 游船产品 1 附加产品", example = "")
+        @NotNull(message = "产品类型不能为空")
+        private Integer productType;
+
+        @Schema(description = "单价", example = "")
+        private BigDecimal price;
+
+        @Schema(description = "原始单价", example = "")
+        private BigDecimal originPrice;
+
+        @Schema(description = "规格类型", example = "full")
+        private String specType;
+
+        @Schema(description = "购买数量", example = "10")
+        @NotNull(message = "购买数量不能为空")
+        private Integer count;
+
+        @Schema(description = "游客列表", example = "")
+        @Valid
+        private List<Visitor> visitorList;
+    }
+
+    @Schema(description = "游客信息")
+    @Data
+    @Valid
+    public static class Visitor{
+
+        @Schema(description = "姓名", example = "")
+        private String name;
+
+        @Schema(description = "国籍")
+        private String nationality;
+
+        @Schema(description = "年龄")
+        private Integer age;
+
+        @Schema(description = "是否重庆中转 0:否 1是")
+        private Integer cqzz;
+
+        @Schema(description = "是否宜昌中转 0:否 1是")
+        private Integer yczz;
+
+        @Schema(description = "证件号", example = "")
+        private String credentialNo;
+
+        @Schema(description = "证件类型", example = "")
+        @IntEnum(value = CredentialTypeEnum.class,message = "证件类型不正确")
+        private Integer credentialType;
+
+        @Mobile
+        @Schema(description = "手机号", example = "")
+        private String mobile;
+
+        @Schema(description = "内部平台下单必传,用于区分一票多人券码对应关系", example = "")
+        private String otaDetailId;
+
+        @Schema(description = "是否投保 0否 1是", example = "")
+        private Integer isInsure;
+    }
+
+
+    @Schema(description = "订单联系人")
+    @Data
+    @Valid
+    public static class OrderUser{
+
+        @Schema(description = "姓名", example = "")
+        private String contactName;
+
+        @Schema(description = "证件号", example = "")
+        private String credentialNo;
+
+        @Schema(description = "证件类型", example = "")
+        @IntEnum(value = CredentialTypeEnum.class,message = "证件类型不正确")
+        private Integer credentialType;
+
+        @Mobile
+        @Schema(description = "手机号", example = "")
+        private String mobile;
+
+        @Mobile
+        @Schema(description = "邮箱", example = "")
+        private String email;
+
+        @Schema(description = "区/县", example = "")
+        private String county;
+
+        @Schema(description = "省", example = "")
+        private String province;
+
+        @Schema(description = "城市", example = "")
+        private String city;
+
+        @Schema(description = "客户", example = "")
+        private String clientUser;
+
+    }
+
+    @Schema(description = "订单属性")
+    @Data
+    @Valid
+    public static class OrderProperty{
+
+        @Schema(description = "游客类型", example = "")
+        private Integer visitorType;
+        @Schema(description = "团队类型", example = "")
+        private Integer teamType;
+        @Schema(description = "销售渠道", example = "0")
+        private Integer sellMethod;
+        @Schema(description = "来源ID", example = "123")
+        private String sourceId;
+        @Schema(description = "来源名称", example = "美团")
+        private String sourceName;
+        @Schema(description = "会员ID", example = "123")
+        private String memberId;
+        @Schema(description = "销售员ID", example = "123")
+        private String sellerId;
+        @Schema(description = "门店ID", example = "123")
+        private Long storeId;
+        @Schema(description = "门店名称", example = "123")
+        private String storeName;
+        @Schema(description = "业绩共享人", example = "123")
+        private String shareName;
+        @Schema(description = "个人分销ID", example = "123")
+        private Long personalDistributorId;
+        @Schema(description = "优惠券码ID", example = "123")
+        private Long couponCodeId;
+        @Schema(description = "链接ID", example = "123")
+        private Long linkId;
+    }
+
+}

+ 7 - 6
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/app/order/TradeOrderController.java

@@ -1,12 +1,12 @@
 package com.yc.ship.module.trade.controller.app.order;
 
+import com.alibaba.fastjson.JSON;
 import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.operatelog.core.annotations.OperateLog;
+import com.yc.ship.framework.security.core.LoginUser;
+import com.yc.ship.framework.tenant.core.context.TenantContextHolder;
 import com.yc.ship.module.trade.api.contract.dto.group.WindowCreateOrderGroup;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.OtcTradeOrderCreateReqVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.OtcTradeOrderCreateRespVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderReqVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderRespVO;
+import com.yc.ship.module.trade.controller.admin.order.vo.order.*;
 import com.yc.ship.module.trade.framework.annotation.PlatTenantEnv;
 import com.yc.ship.module.trade.service.order.AdminTradeOrderService;
 import com.yc.ship.module.trade.service.otc.OtcTradeOrderService;
@@ -24,6 +24,7 @@ import javax.validation.Valid;
 import java.util.Map;
 
 import static com.yc.ship.framework.operatelog.core.enums.OperateTypeEnum.TRADE;
+import static com.yc.ship.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
 
 
 /**
@@ -51,8 +52,8 @@ public class TradeOrderController {
     @PostMapping("/orderTest")
     @Operation(summary = "支付通知")
     @OperateLog(type = TRADE)
-    public CommonResult<OtcTradeOrderCreateRespVO> createMoveOrder(@Validated(value = WindowCreateOrderGroup.class)  @RequestBody OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
-        return otcTradeOrderService.createMoveOrder(agencyAuthUtils.getAgencyLoginUser(), otcTradeOrderCreateReqVO);
+    public CommonResult<OtcTradeOrderCreateRespVO> platCreateMoveOrder(@Validated(value = WindowCreateOrderGroup.class)  @RequestBody ShipTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
+        return otcTradeOrderService.platCreateMoveOrder(getLoginUser(), otcTradeOrderCreateReqVO);
     }
 
     @PostMapping("/payNotify")

+ 7 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/convert/order/TradeOrderConvert.java

@@ -7,6 +7,7 @@ import cn.hutool.json.JSONObject;
 import com.yc.ship.framework.common.lang.Asserts;
 import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.framework.common.util.date.DateUtils;
+import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.module.otc.api.store.dto.StoreMachineDTO;
 import com.yc.ship.module.product.api.dto.ProductSpuRespDTO;
 import com.yc.ship.module.product.enums.ProductTypeEnum;
@@ -15,6 +16,7 @@ import com.yc.ship.module.trade.api.dto.TradeOrderCreateReqDTO;
 import com.yc.ship.module.trade.api.dto.TradeOrderDispatchReqDTO;
 import com.yc.ship.module.trade.api.dto.TradeOrderRespDTO;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.*;
+import com.yc.ship.module.trade.controller.admin.smsProduct.vo.SmsProductRespVO;
 import com.yc.ship.module.trade.controller.app.ota.vo.OtaVoucherVO;
 import com.yc.ship.module.trade.controller.app.otc.vo.AppOtcTradeOrderCreateRespVO;
 import com.yc.ship.module.trade.dal.dataobject.order.*;
@@ -212,4 +214,9 @@ public interface TradeOrderConvert {
     TradeOrderHotelDO convert(TradeOrderCreateReqDTO.HotelBooking hotelBooking);
     TradeDetailPriceDO convert(TradeOrderCreateReqDTO.DetailPrice detailPrice);
     TradeOrderDeliveryDO convert(TradeOrderCreateReqDTO.DeliveryInfo deliveryInfo);
+
+    default OtcTradeOrderCreateReqVO convert(ShipTradeOrderCreateReqVO shipTradeOrderCreateReqVO){
+        OtcTradeOrderCreateReqVO bean = BeanUtils.toBean(shipTradeOrderCreateReqVO, OtcTradeOrderCreateReqVO.class);
+        return bean;
+    }
 }

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

@@ -17,6 +17,7 @@ import com.yc.ship.framework.common.util.date.DateUtils;
 import com.yc.ship.framework.common.util.object.ObjectUtils;
 import com.yc.ship.framework.tenant.core.context.TenantContextHolder;
 import com.yc.ship.module.ota.api.OtaDistributorApi;
+import com.yc.ship.module.ota.api.dto.DistributorProductRespDTO;
 import com.yc.ship.module.product.api.ProductApi;
 import com.yc.ship.module.product.api.dto.*;
 import com.yc.ship.module.product.enums.ProductTypeEnum;
@@ -674,9 +675,9 @@ public class TradeOrderServiceImpl implements TradeOrderService {
 
         TradeOrderDetailBO tradeOrderDetailBO = new TradeOrderDetailBO();
         //获取产品信息
-        ProductSpuRespDTO productSpuRespDTO = null;
+        DistributorProductRespDTO distributorProductRespDTO = otaDistributorApi.getDistributorProductById(Long.parseLong(orderItem.getProductId())).getData();
         tradeOrderDetailBO.setProductType(orderItem.getProductType());
-
+        ProductSpuRespDTO productSpuRespDTO = productApi.getCalendarProduct(distributorProductRespDTO.getProductId(), DateUtil.formatDate(orderItem.getUseDate())).getData();
         validateOrder(orderCreateReqDTO,tradeOrderDO,orderItem,productSpuRespDTO);
 
         List<TradeDetailDO> tradeDetailDOList = new ArrayList<>();

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java

@@ -34,7 +34,7 @@ public interface OtcTradeOrderService {
      */
     CommonResult<OtcTradeOrderCreateRespVO> createMoveOrder(LoginUser loginUser, OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO);
 
-    CommonResult<OtcTradeOrderCreateRespVO> platCreateMoveOrder(LoginUser loginUser, OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO);
+    CommonResult<OtcTradeOrderCreateRespVO> platCreateMoveOrder(LoginUser loginUser, ShipTradeOrderCreateReqVO otcTradeOrderCreateReqVO);
 
     /**
      * 窗口支付搬单订单

+ 7 - 4
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -183,7 +183,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @Override
     public CommonResult<OtcTradeOrderCreateRespVO> createMoveOrder(LoginUser loginUser, OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
         //获取当前分销商信息
-        DistributorRespDTO distributorDto = otaDistributorApi.getDistributorByAccountTenantId(loginUser.getTenantId()).getCheckedData();
+        DistributorRespDTO distributorDto = otaDistributorApi.getDistributorById(loginUser.getDistributorId());
 
         //平台产品
         for (TradeOrderCreateReqDTO.OrderItem orderItem : otcTradeOrderCreateReqVO.getItemlList()) {
@@ -215,9 +215,12 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     }
 
     @Override
-    public CommonResult<OtcTradeOrderCreateRespVO> platCreateMoveOrder(LoginUser loginUser, OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
-
-        Asserts.isTrue(otcTradeOrderCreateReqVO.getDistributorId()!=null,"分销商ID不能为空");
+    public CommonResult<OtcTradeOrderCreateRespVO> platCreateMoveOrder(LoginUser loginUser, ShipTradeOrderCreateReqVO shipTradeOrderCreateReqVO) {
+        if(loginUser.getDistributorId()!=null){
+            shipTradeOrderCreateReqVO.setDistributorId(loginUser.getDistributorId());
+        }
+        Asserts.isTrue(shipTradeOrderCreateReqVO.getDistributorId()!=null,"分销商ID不能为空");
+        OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO = TradeOrderConvert.INSTANCE.convert(shipTradeOrderCreateReqVO);
         //获取当前分销商信息
         DistributorDO distributorDto = distributorMapper.selectById(otcTradeOrderCreateReqVO.getDistributorId());