Kaynağa Gözat

fix:添加订单关联表,添加OTC下单接口,目前只是数据入库,无下单逻辑

luofeiyun 1 hafta önce
ebeveyn
işleme
e72e832cd0
24 değiştirilmiş dosya ile 657 ekleme ve 128 silme
  1. 8 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/OtcTradeOrderController.java
  2. 8 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/ShipTradeOrderCreateReqVO.java
  3. 52 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderCountryBaseVO.java
  4. 12 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderCountryReqVO.java
  5. 44 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderOtcCreateVO.java
  6. 123 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderRoomModelBaseVO.java
  7. 9 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderRoomModelReqVO.java
  8. 82 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderTotalVO.java
  9. 7 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeVisitorRespVO.java
  10. 45 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeVistorReqVO.java
  11. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderCountryDO.java
  12. 5 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderDO.java
  13. 6 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderRoomModelDO.java
  14. 84 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderTotalDO.java
  15. 12 2
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeVisitorDO.java
  16. 15 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderTotalMapper.java
  17. 11 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderRoomModelService.java
  18. 11 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderTotalService.java
  19. 24 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderRoomModelServiceImpl.java
  20. 24 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderTotalServiceImpl.java
  21. 0 53
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderroommodel/OrderRoomModelService.java
  22. 0 70
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderroommodel/OrderRoomModelServiceImpl.java
  23. 7 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java
  24. 67 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

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

@@ -88,6 +88,14 @@ public class OtcTradeOrderController {
         return otcTradeOrderService.windowCreateOrder(agencyAuthUtils.getAgencyLoginUser(), otcTradeOrderCreateReqVO);
     }
 
+    @RequestDecryption
+    @PostMapping("/travl/createOtcOrder")
+    @Operation(summary = "win-旅行社游船订单创建")
+    @OperateLog(type = TRADE)
+    @TradeRateLimit(name = "createOtcOrder", limitNum = 2, limitTime = 5)
+    public CommonResult<Long> createOtcOrder(@Validated(value = WindowCreateOrderGroup.class)  @RequestBody TradeOrderOtcCreateVO createVO) {
+        return success(otcTradeOrderService.createOtcOrder(agencyAuthUtils.getAgencyLoginUser(), createVO));
+    }
     @RequestDecryption
     @PostMapping("/travl/createShipOrder")
     @Operation(summary = "win-游船订单创建(旅行社支付)")

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

@@ -3,6 +3,7 @@ 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.dal.dataobject.order.TradeOrderCountryDO;
 import com.yc.ship.module.trade.enums.CredentialTypeEnum;
 import io.swagger.v3.oas.annotations.Hidden;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -92,6 +93,13 @@ public class ShipTradeOrderCreateReqVO implements Serializable {
     private Long shipId;
 
 
+    @Schema(description = "国籍数据")
+    private List<TradeOrderCountryReqVO> countryData;
+
+    @Schema(description = "订单汇总信息")
+    private TradeOrderTotalVO orderTotal;
+
+
     @Schema(description = "订单项")
     @Data
     @Valid

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

@@ -0,0 +1,52 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.order;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "订单国家信息")
+@Data
+public class TradeOrderCountryBaseVO {
+
+    /**
+     * 订单ID
+     */
+    @Schema(description = "订单ID", example = "")
+    private Long orderId;
+    /**
+     * 订单号
+     */
+    @Schema(description = "订单号", example = "")
+    private String orderNo;
+    /**
+     * 国家ID
+     */
+    @Schema(description = "国家ID", example = "")
+    private Integer countryId;
+    /**
+     * 成人数
+     */
+    @Schema(description = "成人数", example = "")
+    private Integer adultNum;
+    /**
+     * 儿童数
+     */
+    @Schema(description = "儿童数", example = "")
+    private Integer childNum;
+    /**
+     * 婴儿数
+     */
+    @Schema(description = "婴儿数", example = "")
+    private Integer babyNum;
+    /**
+     * 陪同数
+     */
+    @Schema(description = "陪同数", example = "")
+    private Integer withNum;
+    /**
+     * 陪同费
+     */
+    @Schema(description = "陪同费", example = "")
+    private BigDecimal withPrice;
+}

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

@@ -0,0 +1,12 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.order;
+
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TradeOrderCountryReqVO extends TradeOrderCountryBaseVO {
+
+    private List<TradeOrderRoomModelReqVO> roomModels;
+}

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

@@ -0,0 +1,44 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.order;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "旅行社订单创建参数")
+@Data
+public class TradeOrderOtcCreateVO {
+
+    @Schema(description = "客户名称")
+    private String customerName;
+
+    @Schema(description = "订单联系人")
+    private String linkMan;
+
+    @Schema(description = "联系人手机")
+    private String linkMobile;
+
+    @Schema(description = "联系人邮箱")
+    private String linkEmail;
+
+    @Schema(description = "船ID")
+    private Long shipId;
+
+    @Schema(description = "航次ID")
+    private Long voyageId;
+
+    @Schema(description = "团队编号")
+    private String groupNo;
+
+    @Schema(description = "币种")
+    private Integer currency;
+
+    @Schema(description = "国籍数据")
+    List<TradeOrderCountryReqVO> countryData;
+
+    @Schema(description = "订单汇总信息")
+    private TradeOrderTotalVO summary;
+
+    private List<TradeVistorReqVO> visitorList;
+
+}

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

@@ -0,0 +1,123 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.order;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "订单房型信息")
+@Data
+public class TradeOrderRoomModelBaseVO {
+
+    /**
+     * 订单ID
+     */
+    @Schema(description = "订单ID", example = "")
+    private Long orderId;
+    /**
+     * 订单号
+     */
+    @Schema(description = "订单号", example = "")
+    private String orderNo;
+
+    /**
+     * 国家ID
+     */
+    @Schema(description = "订单关联国籍表的ID", example = "")
+    private Long countryId;
+    /**
+     * 房型ID
+     */
+    @Schema(description = "房型ID", example = "")
+    private Long roomModelId;
+    /**
+     * 房型名称
+     */
+    @Schema(description = "房型名称", example = "")
+    private String roomModelName;
+    /**
+     * 楼层
+     */
+    @Schema(description = "楼层", example = "")
+    private Integer floor;
+    /**
+     * 成人数(占床)
+     */
+    @Schema(description = "成人人数(占床)", example = "")
+    private Integer adultTakeNum;
+    /**
+     * 成人加床数
+     */
+    @Schema(description = "成人加床数", example = "")
+    private Integer adultPlusNum;
+    /**
+     * 成人单间数
+     */
+    @Schema(description = "成人单间数", example = "")
+    private Integer adultAloneNum;
+    /**
+     * 儿童不占床数
+     */
+    @Schema(description = "儿童不占床数", example = "")
+    private Integer childNonTakeNum;
+    /**
+     * 儿童占床数
+     */
+    @Schema(description = "儿童占床数", example = "")
+    private Integer childTakeNum;
+    /**
+     * 儿童加床数
+     */
+    @Schema(description = "儿童加床数", example = "")
+    private Integer childPlusNum;
+    /**
+     * 婴儿不占床数
+     */
+    @Schema(description = "婴儿不占床数", example = "")
+    private Integer babyNonTakeNum;
+    /**
+     * 婴儿儿童占床数
+     */
+    @Schema(description = "婴儿儿童占床数", example = "")
+    private Integer babyTakeNum;
+    /**
+     * 婴儿儿童加床数
+     */
+    @Schema(description = "婴儿儿童加床数", example = "")
+    private Integer babyPlusNum;
+    /**
+     * 原价
+     */
+    @Schema(description = "原价", example = "")
+    private BigDecimal originalPrice;
+    /**
+     * 折扣
+     */
+    @Schema(description = "折扣", example = "")
+    private BigDecimal discount;
+    /**
+     * 单价
+     */
+    @Schema(description = "单价", example = "")
+    private BigDecimal price;
+    /**
+     * 是否半套
+     */
+    @Schema(description = "是否半套", example = "")
+    private Integer halfSet;
+    /**
+     * 用房数
+     */
+    @Schema(description = "用房数", example = "")
+    private Double useRoomNum;
+    /**
+     * 小计
+     */
+    @Schema(description = "小计", example = "")
+    private BigDecimal subTotal;
+    /**
+     * 实收金额
+     */
+    @Schema(description = "实收金额", example = "")
+    private BigDecimal realMoney;
+}

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

@@ -0,0 +1,9 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.order;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "订单房型信息")
+@Data
+public class TradeOrderRoomModelReqVO extends TradeOrderRoomModelBaseVO{
+}

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

@@ -0,0 +1,82 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.order;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "订单统计信息")
+@Data
+public class TradeOrderTotalVO {
+    /**
+     * 订单ID
+     */
+    @Schema(description = "订单ID")
+    private Long orderId;
+    /**
+     * 成人总数
+     */
+    @Schema(description = "成人总数")
+    private Integer adultTotalNum;
+    /**
+     * 儿童总数
+     */
+    @Schema(description = "儿童总数")
+    private Integer childTotalNum;
+    /**
+     * 婴儿总数
+     */
+    @Schema(description = "婴儿总数")
+    private Integer babyTotalNum;
+    /**
+     * 陪同总数
+     */
+    @Schema(description = "陪同总数")
+    private Integer withTotalNum;
+    /**
+     * 用房总数
+     */
+    @Schema(description = "用房总数")
+    private Double useRoomTotalNum;
+    /**
+     * 升楼层总数
+     */
+    @Schema(description = "升楼层总数")
+    private Integer upFloorTotalNum;
+    /**
+     * 升楼层总价
+     */
+    @Schema(description = "升楼层总价")
+    private BigDecimal upFloorTotalMoney;
+    /**
+     * 总加床人数
+     */
+    @Schema(description = "总加床人数")
+    private Integer plusTotalNum;
+    /**
+     * 调节总价
+     */
+    @Schema(description = "调节总价")
+    private BigDecimal adjustTotalMoney;
+    /**
+     * 领队数
+     */
+    @Schema(description = "领队数")
+    private Integer leaderTotalNum;
+    /**
+     * 包含服务费
+     */
+    @Schema(description = "包含服务费")
+    private BigDecimal serviceMoney;
+    /**
+     * 代收服务费
+     */
+    @Schema(description = "代收服务费")
+    private BigDecimal collectionServiceMoney;
+    /**
+     * 订单总额
+     */
+    @Schema(description = "订单总额")
+    private BigDecimal orderMoney;
+}

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

@@ -14,7 +14,7 @@ public class TradeVisitorRespVO {
     private Long id;
 
     @Schema(description = "明细ID")
-    private Long detailId;
+    private Long orderId;
 
     @Schema(description = "游客姓名")
     private String name;
@@ -43,4 +43,10 @@ public class TradeVisitorRespVO {
     @Schema(description = "是否推送实名制系统")
     private Integer isPush;
 
+    @Schema(description = "是否宜昌中转 0:否 1是")
+    private Integer yczz;
+
+    @Schema(description = "是否重庆中转 0:否 1是")
+    private Integer cqzz;
+
 }

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

@@ -0,0 +1,45 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.order;
+
+import com.yc.ship.module.trade.enums.CredentialTypeEnum;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+public class TradeVistorReqVO {
+
+    @Schema(description = "明细ID")
+    private Long orderId;
+
+    @Schema(description = "游客姓名")
+    private String name;
+
+    @Schema(description = "性别")
+    private Integer gender;
+
+    @Schema(description = "证件号")
+    private String credentialNo;
+    /**
+     * 证件类型
+     * 关联 {@link CredentialTypeEnum}
+     */
+    @Schema(description = "证件类型")
+    private Integer credentialType;
+
+    @Schema(description = "手机号")
+    private String mobile;
+
+    @Schema(description = "分销商的明细ID")
+    private String otaDetailId;
+
+    @Schema(description = "是否投保 0否 1是")
+    private Integer isInsure;
+
+    @Schema(description = "是否推送实名制系统")
+    private Integer isPush;
+
+    @Schema(description = "是否宜昌中转 0:否 1是")
+    private Integer yczz;
+
+    @Schema(description = "是否重庆中转 0:否 1是")
+    private Integer cqzz;
+}

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderCountryDO.java

@@ -26,7 +26,7 @@ public class TradeOrderCountryDO extends TenantBaseDO {
     /**
      * ID
      */
-    @TableId
+    @TableId(type = IdType.ASSIGN_ID)
     private Long id;
     /**
      * 订单ID

+ 5 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderDO.java

@@ -249,4 +249,9 @@ public class TradeOrderDO extends TenantBaseDO {
      * 币种 字典trade_order_currency
      */
     private Integer currency;
+
+    /**
+     * 客户名称
+     */
+    private String customerName;
 }

+ 6 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderRoomModelDO.java

@@ -26,7 +26,7 @@ public class TradeOrderRoomModelDO extends TenantBaseDO {
     /**
      * ID
      */
-    @TableId
+    @TableId(type = IdType.ASSIGN_ID)
     private Long id;
     /**
      * 订单ID
@@ -36,6 +36,11 @@ public class TradeOrderRoomModelDO extends TenantBaseDO {
      * 订单号
      */
     private String orderNo;
+
+    /**
+     * 订单关联国籍的id
+     */
+    private Long countryId;
     /**
      * 房型ID
      */

+ 84 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderTotalDO.java

@@ -0,0 +1,84 @@
+package com.yc.ship.module.trade.dal.dataobject.order;
+
+import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
+import lombok.*;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.yc.ship.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 订单汇总 DO
+ *
+ * @author 管理员
+ */
+@TableName("trade_order_total")
+@KeySequence("trade_order_total_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TradeOrderTotalDO extends TenantBaseDO {
+
+    /**
+     * 订单ID
+     */
+    @TableId
+    private Long orderId;
+    /**
+     * 成人总数
+     */
+    private Integer adultTotalNum;
+    /**
+     * 儿童总数
+     */
+    private Integer childTotalNum;
+    /**
+     * 婴儿总数
+     */
+    private Integer babyTotalNum;
+    /**
+     * 陪同总数
+     */
+    private Integer withTotalNum;
+    /**
+     * 用房总数
+     */
+    private Double useRoomTotalNum;
+    /**
+     * 升楼层总数
+     */
+    private Integer upFloorTotalNum;
+    /**
+     * 升楼层总价
+     */
+    private BigDecimal upFloorTotalMoney;
+    /**
+     * 总加床人数
+     */
+    private Integer plusTotalNum;
+    /**
+     * 调节总价
+     */
+    private BigDecimal adjustTotalMoney;
+    /**
+     * 领队数
+     */
+    private Integer leaderTotalNum;
+    /**
+     * 包含服务费
+     */
+    private BigDecimal serviceMoney;
+    /**
+     * 代收服务费
+     */
+    private BigDecimal collectionServiceMoney;
+    /**
+     * 订单总额
+     */
+    private BigDecimal orderMoney;
+
+}

+ 12 - 2
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeVisitorDO.java

@@ -27,14 +27,18 @@ public class TradeVisitorDO extends TenantBaseDO {
     /**
      * 主键
      */
-    @TableId(type= IdType.INPUT)
+    @TableId(type= IdType.ASSIGN_ID)
     @Schema(description = "主键")
     private Long id;
     /**
      * 明细ID
      */
-    @Schema(description = "游客信息")
     private Long detailId;
+
+    /**
+     * 订单ID
+     */
+    private Long orderId;
     /**
      * 游客姓名
      */
@@ -81,4 +85,10 @@ public class TradeVisitorDO extends TenantBaseDO {
     @Schema(description = "关联的游客ID")
     @TableField(exist = false)
     private Long associatedVisitorId;
+
+    @Schema(description = "是否宜昌中转 0:否 1是")
+    private Integer yczz;
+
+    @Schema(description = "是否重庆中转 0:否 1是")
+    private Integer cqzz;
 }

+ 15 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderTotalMapper.java

@@ -0,0 +1,15 @@
+package com.yc.ship.module.trade.dal.mysql.order;
+
+import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderTotalDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 订单汇总 Mapper
+ *
+ * @author 管理员
+ */
+@Mapper
+public interface TradeOrderTotalMapper extends BaseMapperX<TradeOrderTotalDO> {
+
+}

+ 11 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderRoomModelService.java

@@ -0,0 +1,11 @@
+package com.yc.ship.module.trade.service.order;
+
+/**
+ * 订单关联房型数据 Service 接口
+ *
+ * @author 管理员
+ */
+public interface TradeOrderRoomModelService {
+
+
+}

+ 11 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderTotalService.java

@@ -0,0 +1,11 @@
+package com.yc.ship.module.trade.service.order;
+
+/**
+ * 订单汇总 Service 接口
+ *
+ * @author 管理员
+ */
+public interface TradeOrderTotalService {
+
+
+}

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

@@ -0,0 +1,24 @@
+package com.yc.ship.module.trade.service.order.impl;
+
+import com.yc.ship.module.trade.service.order.TradeOrderRoomModelService;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+
+
+import com.yc.ship.module.trade.dal.mysql.order.TradeOrderRoomModelMapper;
+
+
+/**
+ * 订单关联房型数据 Service 实现类
+ *
+ * @author 管理员
+ */
+@Service
+@Validated
+public class TradeOrderRoomModelServiceImpl implements TradeOrderRoomModelService {
+
+    @Resource
+    private TradeOrderRoomModelMapper orderRoomModelMapper;
+
+}

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

@@ -0,0 +1,24 @@
+package com.yc.ship.module.trade.service.order.impl;
+
+import com.yc.ship.module.trade.service.order.TradeOrderTotalService;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+
+
+import com.yc.ship.module.trade.dal.mysql.order.TradeOrderTotalMapper;
+
+
+/**
+ * 订单汇总 Service 实现类
+ *
+ * @author 管理员
+ */
+@Service
+@Validated
+public class TradeOrderTotalServiceImpl implements TradeOrderTotalService {
+
+    @Resource
+    private TradeOrderTotalMapper orderTotalMapper;
+
+}

+ 0 - 53
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderroommodel/OrderRoomModelService.java

@@ -1,53 +0,0 @@
-package com.yc.ship.module.trade.service.orderroommodel;
-
-import javax.validation.*;
-import com.yc.ship.module.trade.controller.admin.orderroommodel.vo.*;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderRoomModelDO;
-import com.yc.ship.framework.common.pojo.PageResult;
-
-/**
- * 订单关联房型数据 Service 接口
- *
- * @author 管理员
- */
-public interface OrderRoomModelService {
-
-    /**
-     * 创建订单关联房型数据
-     *
-     * @param createReqVO 创建信息
-     * @return 编号
-     */
-    Long createOrderRoomModel(@Valid OrderRoomModelSaveReqVO createReqVO);
-
-    /**
-     * 更新订单关联房型数据
-     *
-     * @param updateReqVO 更新信息
-     */
-    void updateOrderRoomModel(@Valid OrderRoomModelSaveReqVO updateReqVO);
-
-    /**
-     * 删除订单关联房型数据
-     *
-     * @param id 编号
-     */
-    void deleteOrderRoomModel(Long id);
-
-    /**
-     * 获得订单关联房型数据
-     *
-     * @param id 编号
-     * @return 订单关联房型数据
-     */
-    TradeOrderRoomModelDO getOrderRoomModel(Long id);
-
-    /**
-     * 获得订单关联房型数据分页
-     *
-     * @param pageReqVO 分页查询
-     * @return 订单关联房型数据分页
-     */
-    PageResult<TradeOrderRoomModelDO> getOrderRoomModelPage(OrderRoomModelPageReqVO pageReqVO);
-
-}

+ 0 - 70
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderroommodel/OrderRoomModelServiceImpl.java

@@ -1,70 +0,0 @@
-package com.yc.ship.module.trade.service.orderroommodel;
-
-import org.springframework.stereotype.Service;
-import javax.annotation.Resource;
-import org.springframework.validation.annotation.Validated;
-
-import com.yc.ship.module.trade.controller.admin.orderroommodel.vo.*;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderRoomModelDO;
-import com.yc.ship.framework.common.pojo.PageResult;
-import com.yc.ship.framework.common.util.object.BeanUtils;
-
-import com.yc.ship.module.trade.dal.mysql.order.TradeOrderRoomModelMapper;
-
-import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
-
-/**
- * 订单关联房型数据 Service 实现类
- *
- * @author 管理员
- */
-@Service
-@Validated
-public class OrderRoomModelServiceImpl implements OrderRoomModelService {
-
-    @Resource
-    private TradeOrderRoomModelMapper orderRoomModelMapper;
-
-    @Override
-    public Long createOrderRoomModel(OrderRoomModelSaveReqVO createReqVO) {
-        // 插入
-        TradeOrderRoomModelDO orderRoomModel = BeanUtils.toBean(createReqVO, TradeOrderRoomModelDO.class);
-        orderRoomModelMapper.insert(orderRoomModel);
-        // 返回
-        return orderRoomModel.getId();
-    }
-
-    @Override
-    public void updateOrderRoomModel(OrderRoomModelSaveReqVO updateReqVO) {
-        // 校验存在
-        validateOrderRoomModelExists(updateReqVO.getId());
-        // 更新
-        TradeOrderRoomModelDO updateObj = BeanUtils.toBean(updateReqVO, TradeOrderRoomModelDO.class);
-        orderRoomModelMapper.updateById(updateObj);
-    }
-
-    @Override
-    public void deleteOrderRoomModel(Long id) {
-        // 校验存在
-        validateOrderRoomModelExists(id);
-        // 删除
-        orderRoomModelMapper.deleteById(id);
-    }
-
-    private void validateOrderRoomModelExists(Long id) {
-        if (orderRoomModelMapper.selectById(id) == null) {
-            throw exception(ORDER_ROOM_MODEL_NOT_EXISTS);
-        }
-    }
-
-    @Override
-    public TradeOrderRoomModelDO getOrderRoomModel(Long id) {
-        return orderRoomModelMapper.selectById(id);
-    }
-
-    @Override
-    public PageResult<TradeOrderRoomModelDO> getOrderRoomModelPage(OrderRoomModelPageReqVO pageReqVO) {
-        return orderRoomModelMapper.selectPage(pageReqVO);
-    }
-
-}

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

@@ -164,4 +164,11 @@ public interface OtcTradeOrderService {
     OrderPayAmountRespVO getPayAmount(Long orderId);
 
 
+    /**
+     * 创建旅行社订单
+     * @param agencyLoginUser
+     * @param createVO
+     * @return
+     */
+    Long createOtcOrder(LoginUser agencyLoginUser, TradeOrderOtcCreateVO createVO);
 }

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

@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yc.ship.framework.common.enums.UserTypeEnum;
 import com.yc.ship.framework.common.lang.Asserts;
@@ -68,6 +69,7 @@ import com.yc.ship.module.trade.service.otc.OtcTradeOrderService;
 import com.yc.ship.module.trade.service.pay.TradeOrderPayService;
 import com.yc.ship.module.trade.service.refund.TradeRefundRepositoryService;
 import com.yc.ship.module.trade.utils.AgencyAuthUtils;
+import com.yc.ship.module.trade.utils.TradeUUCodeUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.redisson.api.RLock;
@@ -75,6 +77,7 @@ import org.redisson.api.RedissonClient;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -89,6 +92,7 @@ import static com.yc.ship.module.trade.enums.ApiConstants.*;
 import static com.yc.ship.module.trade.enums.ErrorCodeConstants.ORDER_CHANGE_REFUND_FAIL;
 import static com.yc.ship.module.trade.enums.TravelhubDictTypeConstants.*;
 import static com.yc.ship.module.trade.service.order.TradeOrderService.CHANGE_ORDER_BIZ_LOCK;
+import static com.yc.ship.module.trade.utils.TradeUUCodeUtils.ORDER_PREFIX;
 
 
 /**
@@ -160,6 +164,21 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @Resource
     private AgencyAuthUtils agencyAuthUtils;
 
+    @Resource
+    private TradeUUCodeUtils tradeUUCodeUtils;
+
+    @Resource
+    private TradeOrderTotalMapper tradeOrderTotalMapper;
+
+    @Resource
+    private TradeOrderCountryMapper tradeOrderCountryMapper;
+
+    @Resource
+    private TradeOrderRoomModelMapper tradeOrderRoomModelMapper;
+
+    @Resource
+    private TradeVisitorMapper tradeVisitorMapper;
+
 
     public final static String AGENCY_LOGIN_INFO = "agencyLoginInfo";
 
@@ -2312,6 +2331,54 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         return orderPayAmountRespVO;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Long createOtcOrder(LoginUser agencyLoginUser, TradeOrderOtcCreateVO createVO) {
+        long orderId = IdWorker.getId();
+        // 创建订单
+        TradeOrderDO tradeOrderDO = BeanUtils.toBean(createVO, TradeOrderDO.class);
+        tradeOrderDO.setId(orderId);
+        tradeOrderDO.setOrderNo(tradeUUCodeUtils.generateOrderNo(ORDER_PREFIX));
+        tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.INIT.getStatus());
+        tradeOrderDO.setSellMethod(SellMethodEnum.OTC.getType());
+        tradeOrderDO.setStoreId(agencyLoginUser.getStoreId());
+        tradeOrderDO.setVisitorType(1);//团队
+        tradeOrderMapper.insert(tradeOrderDO);
+
+        //创建订单汇总信息
+        TradeOrderTotalVO summary = createVO.getSummary();
+        TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
+        tradeOrderTotalDO.setOrderId(orderId);
+        tradeOrderTotalMapper.insert(tradeOrderTotalDO);
+
+        //创建订单国籍数据
+        List<TradeOrderCountryReqVO> countryData = createVO.getCountryData();
+        countryData.stream().forEach(item -> {
+            TradeOrderCountryDO countryDO = BeanUtils.toBean(item, TradeOrderCountryDO.class);
+            Long countryId = IdWorker.getId();
+            countryDO.setOrderId(orderId);
+            countryDO.setId(countryId);
+            tradeOrderCountryMapper.insert(countryDO);
+            List<TradeOrderRoomModelReqVO> roomModels = item.getRoomModels();
+            //创建订单房型数据
+            roomModels.stream().forEach(roomModel -> {
+                TradeOrderRoomModelDO roomModelDO = BeanUtils.toBean(roomModel, TradeOrderRoomModelDO.class);
+                roomModelDO.setOrderId(orderId);
+                roomModelDO.setCountryId(countryId);
+                tradeOrderRoomModelMapper.insert(roomModelDO);
+            });
+        });
+
+        //创建订单游客数据
+        List<TradeVistorReqVO> visitorList = createVO.getVisitorList();
+        List<TradeVisitorDO> visitorDOS = BeanUtils.toBean(visitorList, TradeVisitorDO.class);
+        visitorDOS.stream().forEach(item -> {
+            item.setOrderId(orderId);
+        });
+        tradeVisitorMapper.insertBatch(visitorDOS);
+        return orderId;
+    }
+
     private void markChangeOrder(Long orderId){
         String key =  String.format(KEY_MARK_CHANGE_ORDER,orderId);
         stringRedisTemplate.opsForValue().set(key,orderId.toString(),60, TimeUnit.MINUTES);