Browse Source

Merge branch 'main' of http://117.174.100.38:3000/lishiqiang/ship-ota-server into main

luofeiyun 1 month ago
parent
commit
5d697a5403
22 changed files with 483 additions and 75 deletions
  1. 16 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/OtcTradeOrderController.java
  2. 82 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/MiniTradeOrderCreateReqVO.java
  3. 6 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/ShipTradeOrderCreateReqVO.java
  4. 7 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderOtcCreateVO.java
  5. 9 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderTotalVO.java
  6. 6 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/OrderJzDetailController.java
  7. 3 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/vo/OrderJzDetailPageReqVO.java
  8. 7 7
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/app/otc/AppOtcTradeOrderController.java
  9. 4 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/convert/order/TradeOrderConvert.java
  10. 3 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderDO.java
  11. 7 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderTotalDO.java
  12. 13 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/orderjzdetail/OrderJzDetailMapper.java
  13. 1 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderRepositoryService.java
  14. 11 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderRepositoryServiceImpl.java
  15. 3 4
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java
  16. 2 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDetailService.java
  17. 14 2
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDetailServiceImpl.java
  18. 2 4
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/AppOtcTradeOrderService.java
  19. 2 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java
  20. 235 51
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/AppOtcTradeOrderServiceImpl.java
  21. 46 3
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java
  22. 4 4
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/supplier/impl/TradeSupplierCallbackServiceImpl.java

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

@@ -209,6 +209,22 @@ public class OtcTradeOrderController {
         return otcTradeOrderService.queryOrderStatus(orderId);
     }
 
+    @GetMapping("/travl/queryOrderAudit")
+    @Operation(summary = "win-查询订单审核信息")
+    @OperateLog(type = API)
+    @PlatTenantEnv
+    public CommonResult<?> queryOrderAudit(@RequestParam Long orderId) {
+        return otcTradeOrderService.queryOrderAudit(orderId);
+    }
+
+    @GetMapping("/travl/orderAudit")
+    @Operation(summary = "win-订单审核")
+    @OperateLog(type = API)
+    @PlatTenantEnv
+    public CommonResult<?> orderAudit(@RequestParam Long orderId,@RequestParam Integer auditStatus) {
+        return otcTradeOrderService.orderAudit(orderId,auditStatus);
+    }
+
     @GetMapping("/payOrderQuery")
     @Operation(summary = "支付反查,0待支付(轮询) 1已支付 2未支付 8888已支付等待结果(轮询) ")
     @OperateLog(type = TRADE)

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

@@ -0,0 +1,82 @@
+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;
+import java.util.Date;
+import java.util.List;
+
+@Schema(description = "旅行社交易订单创建 Request VO")
+@Data
+public class MiniTradeOrderCreateReqVO {
+
+    @Schema(description = "分销商ID", example = "MT1231312")
+    private Long distributorId;
+
+    @Schema(description = "用户ID", example = "MT1231312")
+    private String userId;
+
+    @Schema(description = "客户名称")
+    private String customerName;
+
+    @Schema(description = "订单联系人")
+    private String linkMan;
+
+    @Schema(description = "时间")
+    private Date boardingTime;
+
+    @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 String currency;
+
+    @Schema(description = "备注")
+    private String remark;
+
+    @Schema(description = "是否预订单 0 否 1是")
+    private Integer isYd;
+
+    @Schema(description = "是否需要接站服务 0 否 1是")
+    private Integer isJz;
+
+    @Schema(description = "接站地址")
+    private String jzAddress;
+
+    @Schema(description = "接站联系人")
+    private String jzLinkName;
+
+    @Schema(description = "接站联系电话")
+    private String jzLinkPhone;
+
+    @Schema(description = "门店ID", example = "123")
+    private Long storeId;
+
+    @Schema(description = "订单总额-前端修改")
+    private BigDecimal realAmount;
+
+    @Schema(description = "国籍数据")
+    List<TradeOrderCountryReqVO> countryData;
+
+    @Schema(description = "订单汇总信息")
+    private TradeOrderTotalVO summary;
+
+    private List<TradeVistorReqVO> tourist;
+
+    @Schema(description = "附加产品信息")
+    private List<TradeSpuReqVO> spuList;
+
+}

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

@@ -81,6 +81,12 @@ public class ShipTradeOrderCreateReqVO implements Serializable {
     @Length(max = 120,message = "备注不能超过120个字符")
     private String remark;
 
+    @Schema(description = "其它费用", example = "1")
+    private BigDecimal otherAmount;
+
+    @Schema(description = "其它费用备注", example = "xx游客岁数较大")
+    private String otherRemark;
+
     @Schema(description = "携程需要参数,其他情况忽略", example = "")
     private String itemId;
 

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

@@ -67,6 +67,13 @@ public class TradeOrderOtcCreateVO {
 
     @Schema(description = "订单总额-前端修改")
     private BigDecimal realAmount;
+
+    @Schema(description = "其它费用")
+    private BigDecimal otherAmount;
+
+    @Schema(description = "其它费用说明")
+    private String otherRemark;
+
     @Schema(description = "国籍数据")
     List<TradeOrderCountryReqVO> countryData;
 

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

@@ -83,6 +83,15 @@ public class TradeOrderTotalVO {
     @Schema(description = "订单总额")
     private BigDecimal orderMoney;
 
+    @Schema(description = "订单总额")
+    private BigDecimal realMoney;
+
     @Schema(description = "实际总额")
     private BigDecimal realOrderMoney;
+
+    @Schema(description = "订单总额")
+    private BigDecimal otherMoney;
+
+    @Schema(description = "订单总额")
+    private String otherRemark;
 }

+ 6 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/OrderJzDetailController.java

@@ -121,4 +121,10 @@ public class OrderJzDetailController {
   public CommonResult<Long> createOrderJzDetail(@Valid @RequestBody List<OrderJzDetailSaveReqVO> createReqVOList) {
     return success(orderJzDetailService.createOrderJzDetail(createReqVOList));
   }
+  @GetMapping("/simple-list")
+  @Operation(summary = "获得订单接站人员名单")
+  public CommonResult<List<OrderJzDetailRespVO>> getOrderJzDetailList(@Valid OrderJzDetailPageReqVO pageReqVO) {
+    List<OrderJzDetailDO> pageResult = orderJzDetailService.getOrderJzDetailList(pageReqVO);
+    return success(BeanUtils.toBean(pageResult, OrderJzDetailRespVO.class));
+  }
 }

+ 3 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/vo/OrderJzDetailPageReqVO.java

@@ -48,4 +48,7 @@ public class OrderJzDetailPageReqVO extends PageParam {
      * 航次编号
      */
     private String voyageId;
+
+
+    private String oid;
 }

+ 7 - 7
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/app/otc/AppOtcTradeOrderController.java

@@ -5,9 +5,7 @@ import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.operatelog.core.annotations.OperateLog;
 import com.yc.ship.framework.security.core.annotations.PreAuthenticated;
 import com.yc.ship.module.otc.api.store.dto.StoreMachineDTO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.OtcTradeOrderCreateReqVO;
-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.controller.admin.order.vo.refund.TradeRefundCalculateRespVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.TradeRefundCreateReqVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.TradeRefundCreateRespVO;
@@ -20,6 +18,7 @@ import com.yc.ship.module.trade.framework.annotation.RequestDecryption;
 import com.yc.ship.module.trade.framework.annotation.StoreMachine;
 import com.yc.ship.module.trade.service.order.AdminTradeOrderService;
 import com.yc.ship.module.trade.service.otc.AppOtcTradeOrderService;
+import com.yc.ship.module.trade.utils.AgencyAuthUtils;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -44,7 +43,7 @@ import static com.yc.ship.framework.web.core.util.WebFrameworkUtils.getLoginUser
  */
 @Tag(name = "旅行社APP(自助机、小程序)交易服务")
 @RestController
-@RequestMapping("/app/otc/trade")
+@RequestMapping("/app/mini/trade")
 @Validated
 @Slf4j
 public class AppOtcTradeOrderController {
@@ -53,14 +52,15 @@ public class AppOtcTradeOrderController {
     private AppOtcTradeOrderService appOtcTradeOrderService;
     @Resource
     private AdminTradeOrderService adminTradeOrderService;
+    @Resource
+    private AgencyAuthUtils agencyAuthUtils;
 
     @RequestDecryption
     @PostMapping("/miniApp/createOrder")
     @Operation(summary = "小程序创建订单")
     @OperateLog(type = TRADE)
-    public CommonResult<AppOtcTradeOrderCreateRespVO> miniAppCreateOrder(@Valid @RequestBody OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
-
-        return appOtcTradeOrderService.miniAppCreateOrder(getLoginUser(), otcTradeOrderCreateReqVO);
+    public CommonResult<OtcTradeOrderCreateRespVO> miniAppCreateOrder(@Valid @RequestBody MiniTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
+        return appOtcTradeOrderService.miniAppCreateOrder(agencyAuthUtils.getAgencyLoginUser(), otcTradeOrderCreateReqVO);
     }
 
     @RequestDecryption

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

@@ -218,4 +218,8 @@ public interface TradeOrderConvert {
         OtcTradeOrderCreateReqVO bean = BeanUtils.toBean(shipTradeOrderCreateReqVO, OtcTradeOrderCreateReqVO.class);
         return bean;
     }
+    default OtcTradeOrderCreateReqVO convert(MiniTradeOrderCreateReqVO miniTradeOrderCreateReqVO){
+        OtcTradeOrderCreateReqVO bean = BeanUtils.toBean(miniTradeOrderCreateReqVO, OtcTradeOrderCreateReqVO.class);
+        return bean;
+    }
 }

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

@@ -46,6 +46,9 @@ public class TradeOrderDO extends TenantBaseDO {
      */
     @TableField(exist = false)
     private String externalOriginOrderNo;
+
+    @TableField(exist = false)
+    private TradeOrderBindDO bindOrder;
     /**
      * 类型  1:游船 2:附加产品 3:赠票
      */

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

@@ -1,6 +1,7 @@
 package com.yc.ship.module.trade.dal.dataobject.order;
 
 import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
 import java.math.BigDecimal;
@@ -81,4 +82,10 @@ public class TradeOrderTotalDO extends TenantBaseDO {
      */
     private BigDecimal orderMoney;
 
+    private BigDecimal realMoney;
+
+    private BigDecimal otherMoney;
+
+    private String otherRemark;
+
 }

+ 13 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/orderjzdetail/OrderJzDetailMapper.java

@@ -32,6 +32,19 @@ public interface OrderJzDetailMapper extends BaseMapperX<OrderJzDetailDO> {
       .orderByDesc(OrderJzDetailDO::getId));
   }
 
+  default List<OrderJzDetailDO> selectList(OrderJzDetailPageReqVO reqVO) {
+    return selectList(new LambdaQueryWrapperX<OrderJzDetailDO>()
+            .eqIfPresent(OrderJzDetailDO::getJzId, reqVO.getJzId())
+            .betweenIfPresent(OrderJzDetailDO::getArriveTime, reqVO.getArriveTime())
+            .eqIfPresent(OrderJzDetailDO::getAddress, reqVO.getAddress())
+            .likeIfPresent(OrderJzDetailDO::getName, reqVO.getName())
+            .eqIfPresent(OrderJzDetailDO::getPhone, reqVO.getPhone())
+            .eqIfPresent(OrderJzDetailDO::getRemark, reqVO.getRemark())
+            .eqIfPresent(OrderJzDetailDO::getStatus, reqVO.getStatus())
+            .betweenIfPresent(OrderJzDetailDO::getCreateTime, reqVO.getCreateTime())
+            .orderByDesc(OrderJzDetailDO::getId));
+  }
+
   @Select(("select d.* from trade_order_jz_detail d " +
     " inner join trade_order_jz oz on d.jz_id = oz.id " +
     " inner join trade_order o on o.id = oz.order_id " +

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

@@ -155,6 +155,7 @@ public interface TradeOrderRepositoryService {
     TradeOrderBindDO getBindOrder(Long orderId, Long bindId, Integer type);
 
     TradeOrderBindDO getBindOrder(Long bindId, Integer type);
+    TradeOrderBindDO getBindByOrder(Long orderId);
 
     void deleteOrderBind(Long id);
 

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

@@ -591,6 +591,17 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
         );
     }
 
+    @Override
+    public TradeOrderBindDO getBindByOrder(Long orderId) {
+        List<TradeOrderBindDO> list = tradeOrderBindMapper.selectList(new LambdaQueryWrapperX<TradeOrderBindDO>()
+                .eq(TradeOrderBindDO::getOrderId, orderId).orderByDesc(TradeOrderBindDO::getCreateTime)
+        );
+        if(list!=null && !list.isEmpty()){
+            return list.get(0);
+        }
+        return null;
+    }
+
     @Override
     public void deleteOrderBind(Long id) {
         TradeOrderBindDO orderBindDO = tradeOrderBindMapper.selectById(id);

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

@@ -747,8 +747,7 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         TradeOrderBO tradeOrderBO = new TradeOrderBO();
         //订单
         TradeOrderDO tradeOrderDO = new TradeOrderDO();
-        tradeOrderDO.setVisitorType(1);
-        tradeOrderDO.setSellMethod(1);
+        tradeOrderDO.setSellMethod(orderCreateReqDTO.getOrderProperty().getSellMethod());
         tradeOrderDO.setSourceId(orderCreateReqDTO.getOrderProperty().getSourceId());
         tradeOrderDO.setSourceName(orderCreateReqDTO.getOrderProperty().getSourceName());
         tradeOrderDO.setSellerId(orderCreateReqDTO.getOrderProperty().getSellerId());
@@ -772,9 +771,9 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         tradeOrderDO.setLinkEmail(orderCreateReqDTO.getLinkEmail());
         //设置团散类型
         if (tradeOrderDO.getVisitorType() == null) {
-            if (tradeOrderDO.getSellMethod() == 7) {
+            if (tradeOrderDO.getSellMethod() == 7||tradeOrderDO.getSellMethod() == 1) {
                 tradeOrderDO.setVisitorType(1);
-            } else if (tradeOrderDO.getSellMethod() == 0 || tradeOrderDO.getSellMethod() == 2 || tradeOrderDO.getSellMethod() == 3 || tradeOrderDO.getSellMethod() == 4 || tradeOrderDO.getSellMethod() == 6 | tradeOrderDO.getSellMethod() == 8) {
+            } else {
                 tradeOrderDO.setVisitorType(0);
             }
         }

+ 2 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDetailService.java

@@ -57,4 +57,6 @@ public interface OrderJzDetailService {
   PageResult<OrderJzDetailDO> getOrderJzDetailPage(OrderJzDetailPageReqVO pageReqVO);
 
   List<OrderJzDetailDO> selectPageByVoyageId(String voyageId);
+
+    List<OrderJzDetailDO> getOrderJzDetailList(@Valid OrderJzDetailPageReqVO pageReqVO);
 }

+ 14 - 2
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDetailServiceImpl.java

@@ -72,7 +72,7 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
     }
     // 根据订单编号查询jz编号
     OrderJzDO orderJzDO = orderJzMapper.selectOne(new LambdaQueryWrapper<OrderJzDO>().eq(OrderJzDO::getOrderId, oid));
-    if (orderJzDO == null) { // 没有接站信息,就保存一条新数据
+    if (orderJzDO == null) {
       orderJzDO = new OrderJzDO();
       orderJzDO.setId(IdUtil.getSnowflake(0, 0).nextId());
       orderJzDO.setIsJz(1);
@@ -84,7 +84,7 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
     }
 
     long count = 0;
-    String batchNo = IdUtil.getSnowflake(0, 0).nextIdStr(); //生成批次号,只是为了区分是同一批人
+    String batchNo = IdUtil.getSnowflake(0, 0).nextIdStr();
     // 先删除上一次手机号录入的数据
     for (OrderJzDetailSaveReqVO orderJzDetailSaveReqVO : createReqVOList) {
       orderJzDetailSaveReqVO.setJzId(orderJzDO.getId());
@@ -152,4 +152,16 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
   public List<OrderJzDetailDO> selectPageByVoyageId(String voyageId) {
     return orderJzDetailMapper.selectPageByVoyageId(voyageId);
   }
+
+  @Override
+  public List<OrderJzDetailDO> getOrderJzDetailList(OrderJzDetailPageReqVO pageReqVO) {
+    String oid = pageReqVO.getOid();
+    // 根据订单编号查询jz编号
+    OrderJzDO orderJzDO = orderJzMapper.selectOne(new LambdaQueryWrapper<OrderJzDO>().eq(OrderJzDO::getOrderId, oid));
+    if (orderJzDO == null) {
+      return new ArrayList<>();
+    }
+    pageReqVO.setJzId(orderJzDO.getId());
+    return orderJzDetailMapper.selectList(pageReqVO);
+  }
 }

+ 2 - 4
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/AppOtcTradeOrderService.java

@@ -5,9 +5,7 @@ import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.security.core.LoginUser;
 import com.yc.ship.module.otc.api.store.dto.StoreMachineDTO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.OtcTradeOrderCreateReqVO;
-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.controller.app.otc.vo.AppOtcTradeOrderCreateRespVO;
 import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeDetailBaseRespVO;
 import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderPageReqVO;
@@ -45,7 +43,7 @@ public interface AppOtcTradeOrderService {
      * @param otcTradeOrderCreateReqVO
      * @return
      */
-    CommonResult<AppOtcTradeOrderCreateRespVO> miniAppCreateOrder(LoginUser loginUser, OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO);
+    CommonResult<OtcTradeOrderCreateRespVO> miniAppCreateOrder(LoginUser loginUser, MiniTradeOrderCreateReqVO otcTradeOrderCreateReqVO);
 
     /**
      * 小程序支付订单

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

@@ -51,6 +51,8 @@ public interface OtcTradeOrderService {
      * 查询订单状态
      */
     CommonResult<?> queryOrderStatus(Long orderId);
+    CommonResult<?> queryOrderAudit(Long orderId);
+    CommonResult<?> orderAudit(Long orderId,Integer auditStatus);
 
     /**
      * 获取订单列表

+ 235 - 51
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/AppOtcTradeOrderServiceImpl.java

@@ -5,6 +5,8 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.excel.util.DateUtils;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.yc.ship.framework.common.enums.UserTypeEnum;
 import com.yc.ship.framework.common.lang.Asserts;
 import com.yc.ship.framework.common.pojo.CommonResult;
@@ -19,18 +21,25 @@ import com.yc.ship.module.infra.api.config.ConfigApi;
 import com.yc.ship.module.member.api.address.MemberAddressApi;
 import com.yc.ship.module.ota.api.OtaDistributorApi;
 import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
+import com.yc.ship.module.ota.dal.dataobject.distributor.DistributorDO;
+import com.yc.ship.module.ota.dal.mysql.distributor.DistributorMapper;
+import com.yc.ship.module.otc.api.store.StoreApi;
+import com.yc.ship.module.otc.api.store.dto.StoreInfoRespDTO;
 import com.yc.ship.module.otc.api.store.dto.StoreMachineDTO;
 import com.yc.ship.module.product.api.ProductApi;
 import com.yc.ship.module.product.api.dto.ProductSpuRespDTO;
+import com.yc.ship.module.product.api.dto.VoyageRespDTO;
+import com.yc.ship.module.product.service.voyage.VoyageService;
+import com.yc.ship.module.resource.service.ship.ResourceShipService;
 import com.yc.ship.module.trade.api.dto.TradeOrderCreateReqDTO;
 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.app.otc.vo.*;
 import com.yc.ship.module.trade.convert.order.TradeOrderConvert;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeDetailBaseDO;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
-import com.yc.ship.module.trade.dal.mysql.order.TradeDetailBaseMapper;
-import com.yc.ship.module.trade.dal.mysql.order.TradeOrderDeliveryMapper;
+import com.yc.ship.module.trade.dal.dataobject.order.*;
+import com.yc.ship.module.trade.dal.mysql.bill.BillStoreMapper;
+import com.yc.ship.module.trade.dal.mysql.order.*;
+import com.yc.ship.module.trade.dal.mysql.orderjz.OrderJzMapper;
 import com.yc.ship.module.trade.enums.PayAccountTypeEnum;
 import com.yc.ship.module.trade.enums.SellMethodEnum;
 import com.yc.ship.module.trade.framework.common.ThreadLocalUtil;
@@ -43,13 +52,16 @@ import com.yc.ship.module.trade.service.pay.TradeOrderPayService;
 import com.yc.ship.module.trade.service.supplier.TradeSupplierOrderRepositoryService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static com.yc.ship.module.trade.enums.ErrorCodeConstants.ORDER_PAY_TENAND_FAIL;
+import static com.yc.ship.module.trade.enums.ErrorCodeConstants.*;
 
 
 /**
@@ -82,11 +94,34 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
     private ProductApi productApi;
 
     @Resource
-    private MemberAddressApi memberAddressApi;
+    private TradeOrderTotalMapper tradeOrderTotalMapper;
+
+    @Resource
+    private TradeOrderCountryMapper tradeOrderCountryMapper;
+
+    @Resource
+    private TradeOrderRoomModelMapper tradeOrderRoomModelMapper;
+
+    @Resource
+    private TradeVisitorMapper tradeVisitorMapper;
+
+    @Resource
+    private TradeOrderFloorMapper tradeOrderFloorMapper;
+
+    @Resource
+    private VoyageService voyageService;
+
+    @Resource
+    private ResourceShipService shipService;
+
+    @Resource
+    private OrderJzMapper orderJzMapper;
+
     @Resource
-    private TradeOrderDeliveryMapper tradeOrderDeliveryMapper;
+    private DistributorMapper distributorMapper;
+
     @Resource
-    private TradeOrderBizService tradeOrderBizService;
+    private StoreApi storeApi;
 
 
     @Override
@@ -127,59 +162,208 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
     }
 
     @Override
-    public CommonResult<AppOtcTradeOrderCreateRespVO> miniAppCreateOrder(LoginUser loginUser, OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
-        if(loginUser==null || loginUser.getId()==null){
-            Asserts.isTrue(true,"下单失败,用户信息获取失败");
-        }
-        TradeOrderCreateReqDTO tradeOrderCreateReqDTO = TradeOrderConvert.INSTANCE.convert(otcTradeOrderCreateReqVO);
-        TradeOrderCreateReqDTO.OrderProperty orderProperty = tradeOrderCreateReqDTO.getOrderProperty();
-        if (orderProperty == null) {
-            orderProperty = new TradeOrderCreateReqDTO.OrderProperty();
+    public CommonResult<OtcTradeOrderCreateRespVO> miniAppCreateOrder(LoginUser loginUser, MiniTradeOrderCreateReqVO createVO) {
+        List<TradeOrderCountryReqVO> countryData = createVO.getCountryData();
+        ShipTradeOrderCreateReqVO shipTradeOrderCreateReqVO = BeanUtils.toBean(createVO, ShipTradeOrderCreateReqVO.class);
+        shipTradeOrderCreateReqVO.setGroupNo(createVO.getGroupNo());
+        shipTradeOrderCreateReqVO.setConfirmType(0);
+        shipTradeOrderCreateReqVO.setAmount(createVO.getSummary().getOrderMoney());
+        shipTradeOrderCreateReqVO.setPayAmount(createVO.getSummary().getOrderMoney());
+        shipTradeOrderCreateReqVO.setDicountId(createVO.getSummary().getDicountId());
+        if (createVO.getSummary().getRealOrderMoney() != null) {
+            shipTradeOrderCreateReqVO.setPayAmount(createVO.getSummary().getRealOrderMoney());
         }
+        ShipTradeOrderCreateReqVO.OrderUser orderUser = new ShipTradeOrderCreateReqVO.OrderUser();
+        orderUser.setContactName(createVO.getLinkMan());
+        orderUser.setMobile(createVO.getLinkMobile());
+        orderUser.setEmail(createVO.getLinkEmail());
+        shipTradeOrderCreateReqVO.setOrderUser(orderUser);
+        shipTradeOrderCreateReqVO.setRemark(createVO.getRemark());
+        shipTradeOrderCreateReqVO.setIsYd(createVO.getIsYd());
+
+        shipTradeOrderCreateReqVO.setTravelDate(createVO.getBoardingTime());
+        VoyageRespDTO voyage = productApi.getVoyage(createVO.getVoyageId());
+        String date = DateUtils.format(new Date(), "yyyyMMddmmss");
+        String orderNo = "MINI"+ "-" + voyage.getCode() + "-" + date;
+        shipTradeOrderCreateReqVO.setOrderNo(orderNo);
+
+        ShipTradeOrderCreateReqVO.OrderProperty orderProperty = new ShipTradeOrderCreateReqVO.OrderProperty();
+        orderProperty.setSellMethod(SellMethodEnum.OTC.getType());
+        orderProperty.setSourceId( createVO.getUserId());
+        orderProperty.setMemberId(loginUser.getId().toString());
+        orderProperty.setSourceName("小程序用户");
         orderProperty.setSellMethod(SellMethodEnum.MINI_APP.getType());
-        orderProperty.setSourceId(StrUtil.toStringOrNull(loginUser.getId()));
-        if (loginUser.getUserType()!=null && ObjectUtil.equal(loginUser.getUserType(), UserTypeEnum.MEMBER.getValue())) {
-            orderProperty.setMemberId(StrUtil.toString(loginUser.getId()));
+
+        shipTradeOrderCreateReqVO.setOrderProperty(orderProperty);
+
+        ShipTradeOrderCreateReqVO.OrderItem orderItem = new ShipTradeOrderCreateReqVO.OrderItem();
+        List<ShipTradeOrderCreateReqVO.OrderDetail> detailList = new ArrayList<>();
+        ShipTradeOrderCreateReqVO.OrderDetail orderDetail = new ShipTradeOrderCreateReqVO.OrderDetail();
+        List<ShipTradeOrderCreateReqVO.Visitor> visitorList = new ArrayList<>();
+        for (TradeVistorReqVO tradeVistorReqVO : createVO.getTourist()) {
+            ShipTradeOrderCreateReqVO.Visitor visitor = getVisitor1(tradeVistorReqVO);
+            visitorList.add(visitor);
         }
-//        orderProperty.setSourceName(loginUser.get);
-        tradeOrderCreateReqDTO.setOrderProperty(orderProperty);
-        //小程序下单需要验证,子产品状态
-
-        Asserts.isTrue(CollUtil.isNotEmpty(tradeOrderCreateReqDTO.getPackProductList()),"小程序产品列表不能为空");
-//        Map<Long,ChildProductAndPriceDTO> packProductMap = new HashMap<>();
-//        for (TradeOrderCreateReqDTO.PackProduct packProduct : tradeOrderCreateReqDTO.getPackProductList()) {
-//            Asserts.isTrue(packProduct!=null && packProduct.getPackProductId()!=null
-//                    && StrUtil.isNotBlank(packProduct.getPackProductName()),"小程序产品信息不能为空");
-//            TradeOrderCreateReqDTO.OrderItem orderItem = tradeOrderCreateReqDTO.getItemlList().stream().filter(item -> ObjectUtil.equal(item.getPackProductId(), packProduct.getPackProductId())).findFirst().orElse(null);
-//            Asserts.isTrue(orderItem!=null,"下单信息有误,未找到对应产品下单信息");
-//            //一个打包产品不能出现不同的使用日期
-//            Date useDate = orderItem.getUseDate() == null? new Date() : orderItem.getUseDate();
-//            ChildProductAndPriceDTO data = childProductApi.getInfoAndPrice(packProduct.getPackProductId(), DateUtil.formatDate(useDate)).getData();
-//            Asserts.isTrue(data!=null && ObjectUtil.equal(data.getStatus(),YES),"子产品不存在或已下架");
-//            //一个订单不能重复包含小程序产品
-//            if(packProductMap.containsKey(packProduct.getPackProductId())) {
-//                Asserts.isTrue(true,"下单参数有误,一个订单不能重复包含小程序产品");
-//            }
-//            Asserts.isTrue(CollUtil.isNotEmpty(data.getPriceList()),"小程序产品未配置价格信息{}",packProduct.getPackProductId());
-//            List<Long> productList = data.getPriceList().stream().map(ChildProductCalendarPriceDTO::getProductId).distinct().collect(Collectors.toList());
-//            //打包产品下单信息,必须同时存在
-//            boolean isAll = productList.stream().allMatch(productId ->{
-//                return tradeOrderCreateReqDTO.getItemlList().stream().anyMatch(item->ObjectUtil.equal(item.getPackProductId(),packProduct.getPackProductId())
-//                        && ObjectUtil.equal(item.getProductId(),productId.toString()) );
-//            });
-//            Asserts.isTrue(isAll,"小程序产品包含的运营产品需全部下单");
-//            packProductMap.put(packProduct.getPackProductId(), data);
-//        }
-//        ThreadLocalUtil.setPackProduct(packProductMap);
-        CommonResult<TradeOrderRespDTO> result = tradeOrderService.createOrder(tradeOrderCreateReqDTO);
+        orderDetail.setVisitorList(visitorList);
+        orderDetail.setCount(visitorList.size());
+
+        BigDecimal spuMoney = new BigDecimal(0);
+        for (TradeSpuReqVO tradeSpuReqVO : createVO.getSpuList()) {
+            ShipTradeOrderCreateReqVO.OrderDetail orderDetail1 = new ShipTradeOrderCreateReqVO.OrderDetail();
+            //0 游船产品 1 附加产品 2:赠票
+            if (tradeSpuReqVO.getProductId() != null && !tradeSpuReqVO.getTourist().isEmpty()) {
+                orderDetail1.setProductType(1);
+            } else if (tradeSpuReqVO.getProductId() != null && tradeSpuReqVO.getRequired() != null && tradeSpuReqVO.getRequired() == 1) {
+                orderDetail1.setProductType(2);
+            } else {
+                if (tradeSpuReqVO.getProductId() != null) {
+                    //有产品ID没有游客信息跳过
+                    continue;
+                }
+                orderDetail1.setProductType(0);
+            }
+            if (orderDetail1.getProductType() == 0 || orderDetail1.getProductType() == 1) {
+                List<ShipTradeOrderCreateReqVO.Visitor> visitorList1 = new ArrayList<>();
+                for (String touristId : tradeSpuReqVO.getTourist()) {
+                    TradeVistorReqVO tradeVistorReqVO = createVO.getTourist().stream().filter(v -> v.getId().equals(touristId)).findFirst().get();
+                    ShipTradeOrderCreateReqVO.Visitor visitor = new ShipTradeOrderCreateReqVO.Visitor();
+                    visitor.setName(tradeVistorReqVO.getName());
+                    visitor.setMobile(tradeVistorReqVO.getPhone());
+                    visitor.setCredentialNo(tradeVistorReqVO.getCardNo());
+                    visitor.setCredentialType(tradeVistorReqVO.getCardType());
+                    visitor.setYczz(tradeVistorReqVO.getYichang());
+                    visitor.setCqzz(tradeVistorReqVO.getChongqing());
+                    visitor.setNationality(tradeVistorReqVO.getNationality());
+                    visitor.setRoomId(tradeVistorReqVO.getRoomId());
+                    visitor.setCohabitation(tradeVistorReqVO.getCohabitation());
+                    visitorList1.add(visitor);
+                    spuMoney = spuMoney.add(tradeSpuReqVO.getPrice());
+                }
+                orderDetail1.setVisitorList(visitorList1);
+                orderDetail1.setProductId(tradeSpuReqVO.getProductId() + "");
+                orderDetail1.setPrice(tradeSpuReqVO.getPrice());
+                orderDetail1.setOriginPrice(tradeSpuReqVO.getPrice());
+                orderDetail1.setCount(visitorList1.size());
+                detailList.add(orderDetail1);
+            } else {
+                List<ShipTradeOrderCreateReqVO.Visitor> visitorList1 = new ArrayList<>();
+                for (TradeVistorReqVO tradeVistorReqVO : createVO.getTourist()) {
+                    ShipTradeOrderCreateReqVO.Visitor visitor = new ShipTradeOrderCreateReqVO.Visitor();
+                    visitor.setName(tradeVistorReqVO.getName());
+                    visitor.setMobile(tradeVistorReqVO.getPhone());
+                    visitor.setCredentialNo(tradeVistorReqVO.getCardNo());
+                    visitor.setCredentialType(tradeVistorReqVO.getCardType());
+                    visitor.setYczz(tradeVistorReqVO.getYichang());
+                    visitor.setCqzz(tradeVistorReqVO.getChongqing());
+                    visitor.setRoomId(tradeVistorReqVO.getRoomId());
+                    visitor.setNationality(tradeVistorReqVO.getNationality());
+                    visitor.setCohabitation(tradeVistorReqVO.getCohabitation());
+                    visitorList1.add(visitor);
+                }
+                orderDetail1.setVisitorList(visitorList1);
+                orderDetail1.setProductId(tradeSpuReqVO.getProductId() + "");
+                orderDetail1.setPrice(BigDecimal.ZERO);
+                orderDetail1.setOriginPrice(BigDecimal.ZERO);
+                orderDetail1.setCount(visitorList1.size());
+                detailList.add(orderDetail1);
+            }
+        }
+        BigDecimal price;
+        if (createVO.getSummary().getOrderMoney() != null && createVO.getSummary().getOrderMoney().compareTo(new BigDecimal(0)) > 0) {
+            price = createVO.getSummary().getOrderMoney().subtract(spuMoney).divide(new BigDecimal(visitorList.size()), 2, RoundingMode.HALF_UP);
+        } else {
+            price = new BigDecimal(0);
+        }
+        orderDetail.setPrice(price);
+        orderDetail.setOriginPrice(price);
+
+        orderDetail.setProductType(0);
+        detailList.add(orderDetail);
+
+
+        orderItem.setDetailList(detailList);
+
+        shipTradeOrderCreateReqVO.setItemlList(Collections.singletonList(orderItem));
+
+        shipTradeOrderCreateReqVO.setSpuAmount(spuMoney);
+
+        CommonResult<TradeOrderRespDTO> result = doShipCreateOrder(loginUser, shipTradeOrderCreateReqVO);
         if (result.isError()) {
             return CommonResult.error(result);
         }
-        AppOtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convertToApp(result.getData());
+        TradeOrderTotalVO summary = createVO.getSummary();
+        TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
+        Long orderId = result.getCheckedData().getOrderId();
+        tradeOrderTotalDO.setOrderId(orderId);
+        tradeOrderTotalMapper.insert(tradeOrderTotalDO);
+
+        //创建订单国籍数据
+        List<TradeOrderRoomModelDO> list = new ArrayList<>();
+        List<TradeOrderCountryDO> tradeOrderCountryDOList = new ArrayList<>();
+        List<TradeOrderFloorDO> floorPlus = new ArrayList<>();
+        countryData.forEach(item -> {
+            TradeOrderCountryDO countryDO = BeanUtils.toBean(item, TradeOrderCountryDO.class);
+            Long countryId = IdWorker.getId();
+            countryDO.setOrderId(orderId);
+            countryDO.setId(countryId);
+            tradeOrderCountryDOList.add(countryDO);
+            List<TradeOrderRoomModelReqVO> roomModels = item.getRoomModels();
+            //创建订单房型数据
+            roomModels.forEach(roomModel -> {
+                TradeOrderRoomModelDO roomModelDO = BeanUtils.toBean(roomModel, TradeOrderRoomModelDO.class);
+                Long roomModelId = IdWorker.getId();
+                roomModelDO.setOrderId(orderId);
+                roomModelDO.setId(roomModelId);
+                roomModelDO.setCountryId(countryId);
+                list.add(roomModelDO);
+                // 房型升楼层数据
+                List<TradeOrderFloorReqVO> floorReqVOList = roomModel.getFloorPlus();
+                if (floorReqVOList == null) {
+                    return;
+                }
+                floorReqVOList.forEach(floor -> {
+                    TradeOrderFloorDO floorDO = BeanUtils.toBean(floor, TradeOrderFloorDO.class);
+                    floorDO.setOrderId(orderId);
+                    floorDO.setRoomModelId(roomModelId);
+                    floorPlus.add(floorDO);
+                });
+
+            });
+        });
+        tradeOrderCountryMapper.insertBatch(tradeOrderCountryDOList);
+        tradeOrderRoomModelMapper.insertBatch(list);
+        tradeOrderFloorMapper.insertBatch(floorPlus);
+
+        OtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convert(result.getData());
         return CommonResult.success(respVO);
 
     }
 
+    private CommonResult<TradeOrderRespDTO> doShipCreateOrder(LoginUser loginUser, ShipTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
+        ShipTradeOrderCreateReqVO.OrderProperty orderProperty = otcTradeOrderCreateReqVO.getOrderProperty();
+        if (orderProperty == null) {
+            orderProperty = new ShipTradeOrderCreateReqVO.OrderProperty();
+        }
+        setShipOrderPropertyFromLoginUser(loginUser, orderProperty, SellMethodEnum.WINDOW);
+        otcTradeOrderCreateReqVO.setOrderProperty(orderProperty);
+        return tradeOrderService.createShipOrder(otcTradeOrderCreateReqVO);
+    }
+    private void setShipOrderPropertyFromLoginUser(LoginUser loginUser, ShipTradeOrderCreateReqVO.OrderProperty orderProperty, SellMethodEnum sellMethodEnum) {
+        orderProperty.setSellerId(loginUser.getId().toString());
+    }
+    private static ShipTradeOrderCreateReqVO.@NotNull Visitor getVisitor1(TradeVistorReqVO tradeVistorReqVO) {
+        ShipTradeOrderCreateReqVO.Visitor visitor = new ShipTradeOrderCreateReqVO.Visitor();
+        visitor.setName(tradeVistorReqVO.getName());
+        visitor.setMobile(tradeVistorReqVO.getPhone());
+        visitor.setCredentialNo(tradeVistorReqVO.getCardNo());
+        visitor.setCredentialType(tradeVistorReqVO.getCardType());
+        visitor.setYczz(tradeVistorReqVO.getYichang());
+        visitor.setCqzz(tradeVistorReqVO.getChongqing());
+        visitor.setRoomId(tradeVistorReqVO.getRoomId());
+        visitor.setNationality(tradeVistorReqVO.getNationality());
+        return visitor;
+    }
+
     @Override
     public CommonResult<PayOrderRespVO> miniAppPayOrder(LoginUser loginUser, PayOrderReqVO payOrderReqVO) {
         if(loginUser==null){

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

@@ -9,6 +9,7 @@ import com.alibaba.excel.util.DateUtils;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yc.ship.framework.common.enums.UserTypeEnum;
 import com.yc.ship.framework.common.lang.Asserts;
@@ -552,6 +553,39 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         return CommonResult.success(TradeOrderStatusEnum.UNPAID.getStatus());
     }
 
+    @Override
+    public CommonResult<?> queryOrderAudit(Long orderId) {
+        TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(orderId);
+        if (tradeOrderDO != null) {
+            TradeOrderBindDO bindOrder = tradeOrderRepositoryService.getBindByOrder(tradeOrderDO.getId());
+            tradeOrderDO.setBindOrder(bindOrder);
+            return CommonResult.success(tradeOrderDO);
+        }
+        return CommonResult.error(ORDER_NOT_EXIST);
+    }
+
+    @Override
+    public CommonResult<?> orderAudit(Long orderId, Integer auditStatus) {
+        TradeOrderBindDO bindOrder = tradeOrderRepositoryService.getBindByOrder(orderId);
+        if(bindOrder==null){
+            return CommonResult.error(500,"未找到绑定订单");
+        }
+        if (auditStatus != null && auditStatus == 1) {
+            tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
+                    .set(TradeOrderDO::getOrderStatus, TradeOrderStatusEnum.UNUSED.getStatus())
+                    .eq(TradeOrderDO::getId,orderId)
+            );
+            return CommonResult.success("审核成功");
+        }else{
+            tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
+                    .set(TradeOrderDO::getOrderStatus, TradeOrderStatusEnum.YD.getStatus())
+                    .set(TradeOrderDO::getAmount, new BigDecimal(bindOrder.getCustom()))
+                    .eq(TradeOrderDO::getId,orderId)
+            );
+            return CommonResult.success("审核成功");
+        }
+    }
+
     private void saveSpecNumber(List<TradeOrderRespVO> orderList) {
         List<DictDataRespDTO> dictList = dictDataApi.getDictDataList("project_specification_type");
         orderList.forEach(spu -> {
@@ -2058,7 +2092,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
             tradeOrderBindDO.setId(IdWorker.getId());
             tradeOrderBindDO.setType(1);
-            tradeOrderBindDO.setCustom("");
+            tradeOrderBindDO.setCustom(createVO.getSummary().getOrderMoney().toString());
             tradeOrderBindDO.setRemark("create订单金额修改,订单金额:"+createVO.getSummary().getOrderMoney()+",订单修改后金额:"+createVO.getRealAmount());
             shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
         }else {
@@ -2083,11 +2117,14 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
         ShipTradeOrderCreateReqVO.OrderProperty orderProperty = new ShipTradeOrderCreateReqVO.OrderProperty();
         orderProperty.setSellMethod(SellMethodEnum.OTC.getType());
+        if(loginUser.getDistributorId() == null){
+            orderProperty.setSellMethod(SellMethodEnum.OTC_MOVE_ORDER.getType());
+        }
         orderProperty.setSourceId(distributorDO.getId() + "");
-        orderProperty.setSourceName(distributorDO.getName() + "");
+        orderProperty.setSourceName(distributorDO.getName());
         if (storeInfo != null) {
             orderProperty.setStoreId(storeInfo.getId());
-            orderProperty.setStoreName(storeInfo.getName() + "");
+            orderProperty.setStoreName(storeInfo.getName());
         }
         orderProperty.setSellMethod(SellMethodEnum.OTC.getType());
 
@@ -2194,6 +2231,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
         Long orderId = result.getCheckedData().getOrderId();
         tradeOrderTotalDO.setOrderId(orderId);
+        tradeOrderTotalDO.setOtherRemark(createVO.getOtherRemark());
+        tradeOrderTotalDO.setRealMoney(createVO.getRealAmount());
+        tradeOrderTotalDO.setOtherMoney(createVO.getOtherAmount());
         tradeOrderTotalMapper.insert(tradeOrderTotalDO);
 
         //创建订单国籍数据
@@ -2415,6 +2455,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
 //        Long orderId  = result.getCheckedData().getOrderId();
         tradeOrderTotalDO.setOrderId(orderId);
+        tradeOrderTotalDO.setOtherRemark(createVO.getOtherRemark());
+        tradeOrderTotalDO.setRealMoney(createVO.getRealAmount());
+        tradeOrderTotalDO.setOtherMoney(createVO.getOtherAmount());
         tradeOrderTotalMapper.insertOrUpdate(tradeOrderTotalDO);
 
         //创建订单房型数据

+ 4 - 4
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/supplier/impl/TradeSupplierCallbackServiceImpl.java

@@ -54,10 +54,10 @@ public class TradeSupplierCallbackServiceImpl implements TradeSupplierCallbackSe
     @Override
     public void afterAllOrderCreate(TradeOrderDO tradeOrderDO) {
         //更新订单状态
-        if(!Objects.equals(tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.YD.getStatus())) {
-            tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.UNPAID.getStatus());
-            tradeOrderRepositoryService.updateOrderStatus(tradeOrderDO);
-        }
+//        if(!Objects.equals(tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.YD.getStatus()) && !Objects.equals(tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.TRANSFER.getStatus())) {
+//            tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.UNPAID.getStatus());
+//            tradeOrderRepositoryService.updateOrderStatus(tradeOrderDO);
+//        }
     }
 
     @Override