Sfoglia il codice sorgente

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

luofeiyun 3 settimane fa
parent
commit
361267b85a
18 ha cambiato i file con 159 aggiunte e 41 eliminazioni
  1. 0 1
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/dataobject/distributorproduct/DistributorAgencyPriceDO.java
  2. 1 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/OtcTradeOrderController.java
  3. 3 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/ShipTradeOrderCreateReqVO.java
  4. 3 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderOtcCreateVO.java
  5. 6 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/refund/RefundPageReqVO.java
  6. 7 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/refund/RefundRecordPageReqVO.java
  7. 5 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderDO.java
  8. 10 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/tradeOrderaudit/TradeOrderAuditDO.java
  9. 1 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java
  10. 6 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderUserMapper.java
  11. 6 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeVisitorMapper.java
  12. 8 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/orderjz/OrderJzMapper.java
  13. 8 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/tradeOrderaudit/TradeOrderAuditMapper.java
  14. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderRepositoryService.java
  15. 11 15
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderRepositoryServiceImpl.java
  16. 4 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java
  17. 52 18
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java
  18. 27 3
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

+ 0 - 1
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/dataobject/distributorproduct/DistributorAgencyPriceDO.java

@@ -5,7 +5,6 @@ import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
 import lombok.*;
 
 import java.math.BigDecimal;
-import java.time.LocalDateTime;
 import java.util.Date;
 
 /**

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

@@ -141,6 +141,7 @@ public class OtcTradeOrderController {
   @OperateLog(type = TRADE)
   @TradeRateLimit(name = "createMoveOrder", limitNum = 2, limitTime = 5)
   public CommonResult<?> createMoveOrder(@Validated(value = WindowCreateOrderGroup.class) @RequestBody TradeOrderOtcCreateVO createVO) {
+    createVO.setMoveOrder(true);
     return otcTradeOrderService.createOtcOrder(agencyAuthUtils.getAgencyLoginUser(), createVO);
   }
 

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

@@ -37,6 +37,9 @@ public class ShipTradeOrderCreateReqVO implements Serializable {
     @Schema(description = "修改时间")
     private Date updateTime;
 
+    @Schema(description = "是否搬单")
+    private boolean moveOrder;
+
     @Schema(description = "第三方订单号,分销商下单", example = "MT1231312")
     @Hidden
     private String externalOrderNo;

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

@@ -38,6 +38,9 @@ public class TradeOrderOtcCreateVO {
     @Schema(description = "船ID")
     private Long shipId;
 
+    @Schema(description = "是否搬单")
+    private boolean moveOrder;
+
     @Schema(description = "航次ID")
     private Long voyageId;
 

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

@@ -114,4 +114,10 @@ public class RefundPageReqVO extends PageParam {
     @Schema(description = "航次ID")
     private Long voyageId;
 
+    @Schema(description = "分销商分组ID", example = "张三")
+    private List<String> otaCateIds;
+
+    @Schema(description = "分销商ID", example = "张三")
+    private String otaId;
+
 }

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

@@ -9,6 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.List;
 
 import static com.yc.ship.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
 import static com.yc.ship.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -98,4 +99,10 @@ public class RefundRecordPageReqVO extends PageParam {
 
     @Schema(description = "航次ID")
     private Long voyageId;
+
+    @Schema(description = "分销商分组ID", example = "张三")
+    private List<String> otaCateIds;
+
+    @Schema(description = "分销商ID", example = "张三")
+    private String otaId;
 }

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

@@ -3,6 +3,7 @@ package com.yc.ship.module.trade.dal.dataobject.order;
 import com.baomidou.mybatisplus.annotation.*;
 
 import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
+import com.yc.ship.module.trade.dal.dataobject.tradeOrderaudit.TradeOrderAuditDO;
 import com.yc.ship.module.trade.enums.SellMethodEnum;
 import com.yc.ship.module.trade.enums.TradeOrderStatusEnum;
 import com.yc.ship.module.trade.enums.invoice.InvoiceStatusEnum;
@@ -13,6 +14,7 @@ import lombok.*;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 交易订单 DO
@@ -305,4 +307,7 @@ public class TradeOrderDO extends TenantBaseDO {
      */
     @ForUpdate(fieldName = "客户名称")
     private String customerName;
+
+    @TableField(exist = false)
+    private List<TradeOrderAuditDO> tradeOrderAuditList;
 }

+ 10 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/tradeOrderaudit/TradeOrderAuditDO.java

@@ -1,5 +1,6 @@
 package com.yc.ship.module.trade.dal.dataobject.tradeOrderaudit;
 
+import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
 import lombok.*;
 import java.util.*;
 import java.time.LocalDateTime;
@@ -22,13 +23,18 @@ import com.yc.ship.framework.mybatis.core.dataobject.BaseDO;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class TradeOrderAuditDO extends BaseDO {
+public class TradeOrderAuditDO extends TenantBaseDO {
 
     /**
      * 主键
      */
     @TableId
     private Long id;
+
+    /**
+     * 订单ID
+     */
+    private Long orderId;
     /**
      * 订单号
      */
@@ -41,6 +47,9 @@ public class TradeOrderAuditDO extends BaseDO {
      * 审核人
      */
     private Long auditUser;
+
+    @TableField(exist = false)
+    private String auditUserName;
     /**
      * 审核时间
      */

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

@@ -166,6 +166,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
     List<TradeOrderDO> selectCanBindOrderList(@Param("vo") TradeBindOrderQueryBO vo);
 
     void deleteOrderById(@Param("orderId") Long orderId);
+    void deleteOrderByOrderNo(@Param("orderNo") String orderNo);
 
     int getInvoiceOrderCount(@Param("orderNo") String orderNo);
 

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

@@ -2,8 +2,11 @@ package com.yc.ship.module.trade.dal.mysql.order;
 
 
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderUserDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 
 /**
  * 订单联系人 Mapper
@@ -12,6 +15,8 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface TradeOrderUserMapper extends BaseMapperX<TradeOrderUserDO> {
-
+    @Update("UPDATE trade_order_user SET deleted = #{deleted},update_time = now() WHERE order_id = #{orderId}")
+    @TenantIgnore
+    void updateDeleted(@Param("orderId") Long orderId, @Param("deleted")  int deleted);
 
 }

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

@@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeVisitorRespVO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO;
 import com.yc.ship.module.trade.service.order.bo.TradeVisitorBO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 
 import java.util.Date;
 import java.util.List;
@@ -56,4 +58,8 @@ public interface TradeVisitorMapper extends BaseMapperX<TradeVisitorDO> {
      * @return
      */
     List<TradeVisitorDO> selectListByVoyageId(@Param("voyageId") String voyageId);
+
+    @Update("UPDATE trade_visitor SET deleted = #{deleted},update_time = now() WHERE order_id = #{orderId}")
+    @TenantIgnore
+    void updateDeleted(@Param("orderId") Long orderId, @Param("deleted")  int deleted);
 }

+ 8 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/orderjz/OrderJzMapper.java

@@ -3,9 +3,12 @@ package com.yc.ship.module.trade.dal.mysql.orderjz;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.module.trade.controller.admin.orderjz.vo.OrderJzPageReqVO;
 import com.yc.ship.module.trade.dal.dataobject.orderjz.OrderJzDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 
 /**
  * 订单接站 Mapper
@@ -25,4 +28,9 @@ public interface OrderJzMapper extends BaseMapperX<OrderJzDO> {
                 .orderByDesc(OrderJzDO::getId));
     }
 
+
+    @Update("UPDATE trade_order_jz SET deleted = #{deleted},update_time = now() WHERE order_id = #{orderId}")
+    @TenantIgnore
+    void updateDeleted(@Param("orderId") Long orderId, @Param("deleted")  int deleted);
+
 }

+ 8 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/tradeOrderaudit/TradeOrderAuditMapper.java

@@ -7,6 +7,8 @@ import com.yc.ship.module.trade.controller.admin.tradeOrderaudit.vo.TradeOrderAu
 import com.yc.ship.module.trade.dal.dataobject.tradeOrderaudit.TradeOrderAuditDO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * 订单审核记录 Mapper
  *
@@ -34,4 +36,10 @@ public interface TradeOrderAuditMapper extends BaseMapperX<TradeOrderAuditDO> {
                 .orderByDesc(TradeOrderAuditDO::getCreateTime)
                 .last("LIMIT 1"));
     }
+
+    default List<TradeOrderAuditDO> selectNewAuditorByOrderId(Long orderId) {
+        return selectList(new LambdaQueryWrapperX<TradeOrderAuditDO>()
+                .eq(TradeOrderAuditDO::getOrderId, orderId)
+                .orderByDesc(TradeOrderAuditDO::getCreateTime));
+    }
 }

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

@@ -40,7 +40,7 @@ public interface TradeOrderRepositoryService {
      */
     void saveOrder(TradeOrderBO tradeOrderBO);
 
-    void modifyOrder(TradeOrderBO tradeOrderBO);
+    void modifyOrder(TradeOrderBO tradeOrderBO,Long oldOrderId);
 
     /**
      * 更新订单状态

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

@@ -142,32 +142,28 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void modifyOrder(TradeOrderBO tradeOrderBO) {
+    public void modifyOrder(TradeOrderBO tradeOrderBO,Long oldOrderId) {
         try {
 
-            tradeOrderMapper.update(new LambdaUpdateWrapper<TradeOrderDO>()
-                    .set(TradeOrderDO::getDeleted, 1)
-                    .set(TradeOrderDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
-                    .eq(TradeOrderDO::getOrderNo, tradeOrderBO.getTradeOrderDO().getOrderNo())
-            );
+            tradeOrderMapper.updateOrderDeleted(oldOrderId,1);
             tradeOrderMapper.insert(tradeOrderBO.getTradeOrderDO());
 
-            orderJzMapper.delete(new LambdaUpdateWrapper<OrderJzDO>().eq(OrderJzDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId()));
+            orderJzMapper.delete(new LambdaUpdateWrapper<OrderJzDO>().eq(OrderJzDO::getOrderId, oldOrderId));
             orderJzMapper.insert(tradeOrderBO.getOrderJzDO());
 
-            tradeOrderBindMapper.update(new LambdaUpdateWrapper<TradeOrderBindDO>().set(TradeOrderBindDO::getDeleted, 1).set(TradeOrderBindDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime()).eq(TradeOrderBindDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId()));
+            tradeOrderBindMapper.update(new LambdaUpdateWrapper<TradeOrderBindDO>().set(TradeOrderBindDO::getDeleted, 1).set(TradeOrderBindDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime()).eq(TradeOrderBindDO::getOrderId, oldOrderId));
             if (tradeOrderBO.getTradeOrderBindDO() != null) {
                 tradeOrderBindMapper.insert(tradeOrderBO.getTradeOrderBindDO());
             }
 
-            tradeOrderUserMapper.update(new LambdaUpdateWrapper<TradeOrderUserDO>().set(TradeOrderUserDO::getDeleted, 1).set(TradeOrderUserDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime()).eq(TradeOrderUserDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId()));
+            tradeOrderUserMapper.update(new LambdaUpdateWrapper<TradeOrderUserDO>().set(TradeOrderUserDO::getDeleted, 1).set(TradeOrderUserDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime()).eq(TradeOrderUserDO::getOrderId, oldOrderId));
             tradeOrderUserMapper.insert(tradeOrderBO.getTradeOrderUserDO());
 
             if (tradeOrderBO.getTradeOrderDeliveryDO() != null) {
                 tradeOrderDeliveryMapper.update(new LambdaUpdateWrapper<TradeOrderDeliveryDO>()
                         .set(TradeOrderDeliveryDO::getDeleted, 1)
                         .set(TradeOrderDeliveryDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
-                        .eq(TradeOrderDeliveryDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
+                        .eq(TradeOrderDeliveryDO::getOrderId, oldOrderId)
                 );
                 tradeOrderDeliveryMapper.insert(tradeOrderBO.getTradeOrderDeliveryDO());
             }
@@ -176,7 +172,7 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
                 tradeDetailMapper.update(new LambdaUpdateWrapper<TradeDetailDO>()
                         .set(TradeDetailDO::getDeleted, 1)
                         .set(TradeDetailDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
-                        .eq(TradeDetailDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
+                        .eq(TradeDetailDO::getOrderId, oldOrderId)
                 );
                 tradeDetailMapper.insertBatch(tradeOrderDetailBO.getTradeDetailDOList());
 
@@ -184,7 +180,7 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
                 tradeDetailBaseMapper.update(new LambdaUpdateWrapper<TradeDetailBaseDO>()
                         .set(TradeDetailBaseDO::getDeleted, 1)
                         .set(TradeDetailBaseDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
-                        .eq(TradeDetailBaseDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
+                        .eq(TradeDetailBaseDO::getOrderId, oldOrderId)
                 );
                 tradeDetailBaseMapper.insertBatch(tradeOrderDetailBO.getTradeDetailBaseDOList());
 
@@ -192,7 +188,7 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
                 tradeVisitorMapper.update(new LambdaUpdateWrapper<TradeVisitorDO>()
                         .set(TradeVisitorDO::getDeleted, 1)
                         .set(TradeVisitorDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
-                        .eq(TradeVisitorDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
+                        .eq(TradeVisitorDO::getOrderId, oldOrderId)
                 );
                 tradeVisitorMapper.insertBatch(tradeOrderDetailBO.getTradeVisitorDOList());
 
@@ -200,7 +196,7 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
                     tradeOrderHotelMapper.update(new LambdaUpdateWrapper<TradeOrderHotelDO>()
                             .set(TradeOrderHotelDO::getDeleted, 1)
                             .set(TradeOrderHotelDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
-                            .eq(TradeOrderHotelDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
+                            .eq(TradeOrderHotelDO::getOrderId, oldOrderId)
                     );
                     tradeOrderHotelMapper.insert(tradeOrderDetailBO.getTradeOrderHotelDO());
                 }
@@ -208,7 +204,7 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
                     tradeDetailPriceMapper.update(new LambdaUpdateWrapper<TradeDetailPriceDO>()
                             .set(TradeDetailPriceDO::getDeleted, 1)
                             .set(TradeDetailPriceDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
-                            .eq(TradeDetailPriceDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
+                            .eq(TradeDetailPriceDO::getOrderId, oldOrderId)
                     );
                     tradeDetailPriceMapper.insertBatch(tradeOrderDetailBO.getTradeDetailPriceDOList());
                 }

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

@@ -217,7 +217,10 @@ public class TradeOrderServiceImpl implements TradeOrderService {
 
             String changedFields = BeanUtils.getChangedFields(shipTradeOrderCreateReqVO.getOldtradeOrderDO(), tradeOrderBO.getTradeOrderDO());
             System.err.println("changedFields=" + changedFields + shipTradeOrderCreateReqVO.getChangedFields1());
-            tradeOrderRepositoryService.modifyOrder(tradeOrderBO);
+            if(tradeOrderBO.getTradeOrderBindDO()!=null) {
+                tradeOrderBO.getTradeOrderBindDO().setRemark(changedFields + shipTradeOrderCreateReqVO.getChangedFields1());
+            }
+            tradeOrderRepositoryService.modifyOrder(tradeOrderBO,shipTradeOrderCreateReqVO.getOldtradeOrderDO().getId());
             //4 下单成功回调
             tradeSupplierCallbackService.afterAllOrderCreate(tradeOrderBO.getTradeOrderDO());
             //5.下单后处理

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

@@ -164,6 +164,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @Resource
     private TradeOrderMapper tradeOrderMapper;
     @Resource
+    private TradeOrderUserMapper tradeOrderUserMapper;
+    @Resource
     private TradeDetailMapper tradeDetailMapper;
     @Resource
     private TradeDetailBaseMapper tradeDetailBaseMapper;
@@ -605,6 +607,14 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     public CommonResult<?> queryOrderAudit(Long orderId) {
         TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(orderId);
         if (tradeOrderDO != null) {
+            TradeOrderBindDO bindByOrder = tradeOrderRepositoryService.getBindByOrder(orderId);
+            tradeOrderDO.setBindOrder(bindByOrder);
+            List<TradeOrderAuditDO> tradeOrderAuditList = tradeOrderAuditMapper.selectNewAuditorByOrderId(orderId);
+            tradeOrderAuditList.forEach(item -> {
+                AdminUserRespDTO user = adminUserApi.getUser(item.getAuditUser());
+                item.setAuditUserName(user != null ? user.getUsername() : "未知");
+            });
+            tradeOrderDO.setTradeOrderAuditList(tradeOrderAuditList);
             return CommonResult.success(tradeOrderDO);
         }
         return CommonResult.error(ORDER_NOT_EXIST);
@@ -633,6 +643,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             tradeOrderAuditDO.setAuditStatus(1);
             tradeOrderAuditDO.setAuditCurrentStatus(tradeOrderDO.getAuditStatus());
             tradeOrderAuditDO.setOrderNo(tradeOrderDO.getOrderNo());
+            tradeOrderAuditDO.setOrderId(tradeOrderDO.getId());
+            tradeOrderAuditDO.setTenantId(tradeOrderDO.getTenantId());
             tradeOrderAuditMapper.insert(tradeOrderAuditDO);
 
             if (tradeOrderDO.getAuditStatus() + 1 >= tradeOrderDO.getAuditType()) {
@@ -656,24 +668,41 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(), extMap);
             }
         } else {
+            TradeOrderAuditDO tradeOrderAuditDO = new TradeOrderAuditDO();
+            tradeOrderAuditDO.setId(IdWorker.getId());
+            tradeOrderAuditDO.setType(tradeOrderDO.getAuditType());
+            LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
+            if (loginUser != null) {
+                tradeOrderAuditDO.setAuditUser(loginUser.getId());
+            }
+            tradeOrderAuditDO.setAuditTime(LocalDateTime.now());
+            //审核状态 1、通过 2、不通过
+            tradeOrderAuditDO.setAuditStatus(2);
+            tradeOrderAuditDO.setTenantId(tradeOrderDO.getTenantId());
+            tradeOrderAuditDO.setAuditCurrentStatus(tradeOrderDO.getAuditStatus());
+            tradeOrderAuditDO.setOrderNo(tradeOrderDO.getOrderNo());
+            tradeOrderAuditDO.setOrderId(tradeOrderDO.getId());
+            tradeOrderAuditMapper.insert(tradeOrderAuditDO);
             //审核 不通过还原到修改前订单
             List<TradeOrderDO> tradeOrderDoList = tradeOrderMapper.queryOrderByLast(tradeOrderDO.getOrderNo());
             if (tradeOrderDoList != null && !tradeOrderDoList.isEmpty()) {
                 TradeOrderDO lastTradeOrder = tradeOrderDoList.get(0);
                 tradeOrderMapper.updateOrderDeleted(orderId,1);
                 tradeOrderMapper.updateOrderDeleted(lastTradeOrder.getId(),0);
+                tradeOrderUserMapper.updateDeleted(orderId,1);
+                tradeOrderUserMapper.updateDeleted(lastTradeOrder.getId(),0);
                 tradeDetailMapper.updateDeleted(orderId,1);
                 tradeDetailMapper.updateDeleted(lastTradeOrder.getId(),0);
                 tradeDetailBaseMapper.updateDeleted(orderId,1);
                 tradeDetailBaseMapper.updateDeleted(lastTradeOrder.getId(),0);
+                tradeVisitorMapper.updateDeleted(orderId,1);
+                tradeVisitorMapper.updateDeleted(lastTradeOrder.getId(),0);
                 tradeOrderCountryMapper.updateDeleted(orderId,1);
                 tradeOrderCountryMapper.updateDeleted(lastTradeOrder.getId(),0);
                 tradeOrderRoomModelMapper.updateDeleted(orderId,1);
                 tradeOrderRoomModelMapper.updateDeleted(lastTradeOrder.getId(),0);
                 tradeOrderFloorMapper.updateDeleted(orderId,1);
                 tradeOrderFloorMapper.updateDeleted(lastTradeOrder.getId(),0);
-                tradeOrderRoomModelMapper.updateDeleted(orderId,1);
-                tradeOrderRoomModelMapper.updateDeleted(lastTradeOrder.getId(),0);
                 tradeOrderTotalMapper.updateDeleted(orderId,1);
                 tradeOrderTotalMapper.updateDeleted(lastTradeOrder.getId(),0);
                 Map<String, Object> extMap = new HashMap<>();
@@ -700,18 +729,20 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             TradeOrderDO lastTradeOrder = tradeOrderDoList.get(0);
             tradeOrderMapper.updateOrderDeleted(orderId,1);
             tradeOrderMapper.updateOrderDeleted(lastTradeOrder.getId(),0);
+            tradeOrderUserMapper.updateDeleted(orderId,1);
+            tradeOrderUserMapper.updateDeleted(lastTradeOrder.getId(),0);
             tradeDetailMapper.updateDeleted(orderId,1);
             tradeDetailMapper.updateDeleted(lastTradeOrder.getId(),0);
             tradeDetailBaseMapper.updateDeleted(orderId,1);
             tradeDetailBaseMapper.updateDeleted(lastTradeOrder.getId(),0);
+            tradeVisitorMapper.updateDeleted(orderId,1);
+            tradeVisitorMapper.updateDeleted(lastTradeOrder.getId(),0);
             tradeOrderCountryMapper.updateDeleted(orderId,1);
             tradeOrderCountryMapper.updateDeleted(lastTradeOrder.getId(),0);
             tradeOrderRoomModelMapper.updateDeleted(orderId,1);
             tradeOrderRoomModelMapper.updateDeleted(lastTradeOrder.getId(),0);
             tradeOrderFloorMapper.updateDeleted(orderId,1);
             tradeOrderFloorMapper.updateDeleted(lastTradeOrder.getId(),0);
-            tradeOrderRoomModelMapper.updateDeleted(orderId,1);
-            tradeOrderRoomModelMapper.updateDeleted(lastTradeOrder.getId(),0);
             tradeOrderTotalMapper.updateDeleted(orderId,1);
             tradeOrderTotalMapper.updateDeleted(lastTradeOrder.getId(),0);
 
@@ -1845,9 +1876,11 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         if (routeRespDTO != null && routeRespDTO.getDirection() == 2) {
             code = "CY";
         }
-        String orderNo = ship.getCode() + "-" + date + "-" + code + "-" + (maxOrderNo + 1);
+        String orderNo;
         if (ship.getCode() == null) {
             orderNo = date + "-" + voyage.getCode() + "-" + (maxOrderNo + 1);
+        } else {
+            orderNo = ship.getCode() + "-" + date + "-" + code + "-" + (maxOrderNo + 1);
         }
 //        List<TradeOrderCountryReqVO> countryData = createVO.getCountryData();
         TradeOrderTotalVO summary = createVO.getSummary();
@@ -1858,17 +1891,20 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         BigDecimal otherMoney = summary.getOtherMoney();
         ShipTradeOrderCreateReqVO shipTradeOrderCreateReqVO = BeanUtils.toBean(createVO, ShipTradeOrderCreateReqVO.class);
         shipTradeOrderCreateReqVO.setDistributorId(loginUser.getDistributorId());
+        if(createVO.isMoveOrder()){
+            shipTradeOrderCreateReqVO.setMoveOrder(true);
+        }
         shipTradeOrderCreateReqVO.setGroupNo(createVO.getGroupNo());
         if (orderMoney != null && realAmount != null && realAmount.compareTo(orderMoney) != 0) {
             shipTradeOrderCreateReqVO.setAmount(orderMoney);
             shipTradeOrderCreateReqVO.setPayAmount(realAmount);
             shipTradeOrderCreateReqVO.setConfirmType(1);
-            TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
-            tradeOrderBindDO.setId(IdWorker.getId());
-            tradeOrderBindDO.setType(1);
-            tradeOrderBindDO.setCustom(createVO.getSummary().getOrderMoney().toString());
-            tradeOrderBindDO.setRemark("create订单金额修改,订单金额:" + 0 + ",订单修改后金额:" + realAmount);
-            shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
+//            TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
+//            tradeOrderBindDO.setId(IdWorker.getId());
+//            tradeOrderBindDO.setType(1);
+//            tradeOrderBindDO.setCustom(createVO.getSummary().getOrderMoney().toString());
+//            tradeOrderBindDO.setRemark("create订单金额修改,订单金额:" + 0 + ",订单修改后金额:" + realAmount);
+//            shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
         } else {
             shipTradeOrderCreateReqVO.setConfirmType(0);
             shipTradeOrderCreateReqVO.setAmount(orderMoney);
@@ -1894,7 +1930,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
         ShipTradeOrderCreateReqVO.OrderProperty orderProperty = new ShipTradeOrderCreateReqVO.OrderProperty();
         orderProperty.setSellMethod(SellMethodEnum.OTC.getType());
-        if (loginUser.getDistributorId() == null) {
+        if (loginUser.getDistributorId() == null||createVO.isMoveOrder()) {
             orderProperty.setSellMethod(SellMethodEnum.OTC_MOVE_ORDER.getType());
         }
         orderProperty.setSourceId(distributorDO.getId() + "");
@@ -1903,7 +1939,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             orderProperty.setStoreId(storeInfo.getId());
             orderProperty.setStoreName(storeInfo.getName());
         }
-        orderProperty.setSellMethod(SellMethodEnum.OTC.getType());
 
         shipTradeOrderCreateReqVO.setOrderProperty(orderProperty);
 
@@ -2030,6 +2065,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         roomModelList.forEach(roomModel -> {
             TradeOrderRoomModelDO tradeOrderRoomDO = BeanUtils.toBean(roomModel, TradeOrderRoomModelDO.class);
             tradeOrderRoomDO.setOrderId(orderId);
+            tradeOrderRoomDO.setOrderNo(orderNo);
             tradeOrderRoomDOList.add(tradeOrderRoomDO);
         });
 
@@ -2106,9 +2142,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         BigDecimal realAmount = summary.getRealMoney();
         BigDecimal orderMoney = summary.getOrderMoney();
         Long discountId = summary.getDiscountId();
-        if (orderMoney != null && realAmount != null && realAmount.compareTo(orderMoney) != 0) {
-            shipTradeOrderCreateReqVO.setAmount(orderMoney);
-            shipTradeOrderCreateReqVO.setPayAmount(realAmount);
+        shipTradeOrderCreateReqVO.setAmount(orderMoney);
+        shipTradeOrderCreateReqVO.setPayAmount(realAmount);
+        if ((orderMoney != null && realAmount != null && realAmount.compareTo(orderMoney) != 0) ||!Objects.equals(shipTradeOrderCreateReqVO.getAmount(), tradeOrderDO.getAmount())) {
             shipTradeOrderCreateReqVO.setConfirmType(1);
             TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
             tradeOrderBindDO.setId(IdWorker.getId());
@@ -2119,8 +2155,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
         } else {
             shipTradeOrderCreateReqVO.setConfirmType(0);
-            shipTradeOrderCreateReqVO.setAmount(createVO.getSummary().getOrderMoney());
-            shipTradeOrderCreateReqVO.setPayAmount(createVO.getSummary().getRealMoney());
         }
         if (tradeOrderDO.getOrderStatus() == 6) {
             shipTradeOrderCreateReqVO.setConfirmType(1);

+ 27 - 3
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -1089,6 +1089,7 @@
         inner join product_voyage pv on td.voyage_id = pv.id
         inner join trade_order_user ou on ou.order_id = td.id
         INNER JOIN trade_detail tdl on td.id = tdl.order_id  and tdl.deleted = 0
+        LEFT JOIN ota_distributor od on od.id = td.source_id
         where 1= 1
         <if test="vo.shipId != null and vo.shipId != ''">
             AND td.ship_id = #{vo.shipId}
@@ -1139,13 +1140,22 @@
             AND td.travel_date <![CDATA[ <= ]]> #{vo.travelDateEnd}
         </if>
         <if test="vo.refundTime != null and vo.refundTime != ''">
-            AND td.refund_time = #{vo.refundTime}
+            AND tr.refund_time = #{vo.refundTime}
         </if>
         <if test="vo.refundTimeStart != null and vo.refundTimeStart != ''">
-            AND td.refund_time <![CDATA[ >= ]]> #{vo.refundTimeStart}
+            AND tr.refund_time <![CDATA[ >= ]]> #{vo.refundTimeStart}
         </if>
         <if test="vo.refundTimeEnd != null and vo.refundTimeEnd != ''">
-            AND td.refund_time <![CDATA[ <= ]]> #{vo.refundTimeEnd}
+            AND tr.refund_time <![CDATA[ <= ]]> #{vo.refundTimeEnd}
+        </if>
+        <if test="vo.otaId != null and vo.otaId != ''">
+            AND td.source_id = #{vo.otaId}
+        </if>
+        <if test="vo.otaCateIds!=null and vo.otaCateIds.size()>0">
+            and od.ota_category_id in
+            <foreach collection="vo.otaCateIds" item="item" separator=","  open="(" close=")">
+                #{item}
+            </foreach>
         </if>
         <if test="vo.cateIds!=null and vo.cateIds.size()>0 and vo.planIds==null">
             AND tdl.product_id in
@@ -1433,6 +1443,7 @@
         left join trade_refund tr on trr.refund_id = tr.id
         left join trade_order td on td.id = top.order_id
         left join product_voyage pv on td.voyage_id = pv.id
+        LEFT JOIN ota_distributor od on od.id = td.source_id
         where 1= 1
         <if test="vo.shipId != null and vo.shipId != ''">
             AND td.ship_id = #{vo.shipId}
@@ -1461,6 +1472,15 @@
         <if test="vo.openId != null and vo.openId != ''">
             AND trr.openId = #{vo.openId}
         </if>
+        <if test="vo.otaId != null and vo.otaId != ''">
+            AND td.source_id = #{vo.otaId}
+        </if>
+        <if test="vo.otaCateIds!=null and vo.otaCateIds.size()>0">
+            and od.ota_category_id in
+            <foreach collection="vo.otaCateIds" item="item" separator=","  open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
         <if test="vo.sourceId != null and vo.sourceId != ''">
             AND td.source_id = #{vo.sourceId}
         </if>
@@ -2159,6 +2179,10 @@
         delete from trade_order where id = #{orderId}
     </update>
 
+    <update id="deleteOrderByOrderNo">
+        update from trade_order where order_no = #{orderNo}
+    </update>
+
     <select id="getInvoiceOrderCount" resultType="java.lang.Integer">
         select count(1) num from trade_invoice t1 inner join trade_invoice_detail t2 on t1.id = t2.invoice_id
         and t1.invoice_status in (1,3)