Browse Source

最新问题修改

lishiqiang 3 weeks ago
parent
commit
18b8d6c257
19 changed files with 179 additions and 105 deletions
  1. 9 1
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyage/VoyageController.java
  2. 7 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyage/vo/VoyageRespVO.java
  3. 7 5
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyage/VoyageDO.java
  4. 3 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyage/VoyageMapper.java
  5. 1 1
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyage/VoyageServiceImpl.java
  6. 4 1
      ship-module-product/ship-module-product-biz/src/main/resources/mapper/voyage/VoyageMapper.xml
  7. 8 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/OtcTradeOrderController.java
  8. 2 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeDetailBaseMapper.java
  9. 2 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeDetailMapper.java
  10. 6 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderCountryMapper.java
  11. 6 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderFloorMapper.java
  12. 3 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java
  13. 7 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderRoomModelMapper.java
  14. 7 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderTotalMapper.java
  15. 5 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java
  16. 90 95
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java
  17. 4 0
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeDetailBaseMapper.xml
  18. 4 0
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeDetailMapper.xml
  19. 4 0
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

+ 9 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyage/VoyageController.java

@@ -159,7 +159,15 @@ public class VoyageController {
     @Operation(summary = "根据游轮ID获取上架的航次列表,给旅行社下单时调用")
     public CommonResult<List<VoyageRespVO>> getOnShelfListByShipId(@RequestParam("shipId") Long shipId) {
         List<VoyageDO> list = voyageService.getOnShelfListByShipId(shipId);
-        return success(BeanUtils.toBean(list, VoyageRespVO.class));
+        List<VoyageRespVO> res = BeanUtils.toBean(list, VoyageRespVO.class);
+        res.forEach(item -> {
+            if(item.getDirection()==2){
+                item.setFname(item.getName()+"-下水");
+            }else{
+                item.setFname(item.getName()+"-上水");
+            }
+        });
+        return success(res);
     }
 
     @GetMapping("/export-excel")

+ 7 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyage/vo/VoyageRespVO.java

@@ -24,6 +24,10 @@ public class VoyageRespVO {
     @ExcelProperty("航次名称")
     private String name;
 
+
+    @Schema(description = "航次名称-带航向")
+    private String fname;
+
     @Schema(description = "航次代码")
     @ExcelProperty("航次代码")
     private String code;
@@ -135,4 +139,7 @@ public class VoyageRespVO {
      */
     @Schema(description = "儿童预定说明")
     private String childBookingNotice;
+
+    @Schema(description = "航次方向")
+    private Integer direction;
 }

+ 7 - 5
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyage/VoyageDO.java

@@ -59,13 +59,11 @@ public class VoyageDO extends TenantBaseDO {
     private LocalDateTime leaveTime;
     /**
      * 航次类别
-     *
      * 枚举 {@link TODO voyage_type 对应的类}
      */
     private Integer type;
     /**
      * 是否中转
-     *
      * 枚举 {@link TODO yes_no 对应的类}
      */
     private Integer transfer;
@@ -87,23 +85,27 @@ public class VoyageDO extends TenantBaseDO {
     private String leaveAddress;
     /**
      * 预定渠道
-     *
      * 枚举 {@link TODO product_reserve_channel 对应的类}
      */
     @TableField(typeHandler = JacksonTypeHandler.class)
     private List<Integer> channel;
     /**
      * 库存是否可见
-     *
      * 枚举 {@link TODO yes_no 对应的类}
      */
     private Integer stockVisible;
     /**
      * 上架状态
-     *
      * 枚举 {@link TODO product_shelf_status 对应的类}
      */
     private Integer shelfStatus;
+
+    /**
+     * 航次方向
+     * 枚举 {@link TODO voyage_direction 对应的类}
+     */
+    @TableField(exist = false)
+    private Integer direction;
     /**
      * 集合地点
      */

+ 3 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyage/VoyageMapper.java

@@ -9,6 +9,7 @@ import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageReqVO;
 import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
 import com.yc.ship.module.product.enums.VoyageShelfStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -57,6 +58,8 @@ public interface VoyageMapper extends BaseMapperX<VoyageDO> {
                 .orderByAsc(VoyageDO::getCreateTime));
     }
 
+    List<VoyageDO> selectVovageList(@Param("shipId") Long shipId);
+
     /**
      * 删除该日期内当前游轮当前航线的所有航次
      * @param startDate

+ 1 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyage/VoyageServiceImpl.java

@@ -289,7 +289,7 @@ public class VoyageServiceImpl implements VoyageService {
 
     @Override
     public List<VoyageDO> getOnShelfListByShipId(Long shipId) {
-        return voyageMapper.selectOnShelfListByShipId(shipId);
+        return voyageMapper.selectVovageList(shipId);
     }
 
     @Transactional(rollbackFor = Exception.class)

+ 4 - 1
ship-module-product/ship-module-product-biz/src/main/resources/mapper/voyage/VoyageMapper.xml

@@ -8,5 +8,8 @@
         代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
         文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
      -->
-
+    <select id="selectVovageList" resultType="com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO">
+         select  w.*,r.direction from product_voyage w inner join resource_route r on w.route_id = r.id
+         where w.ship_id = #{shipId} and w.start_time > now() and w.shelf_status = 1 and w.channel like '%1%' order by w.create_time asc;
+    </select>
 </mapper>

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

@@ -384,6 +384,14 @@ public class OtcTradeOrderController {
     return adminTradeOrderService.cancelOrder(id);
   }
 
+    @GetMapping("/cancelAuto")
+    @Operation(summary = "审核撤回订单")
+    @OperateLog(type = API)
+    @PlatTenantEnv
+    public CommonResult<?> cancelAuto(@Valid @RequestParam("id") Long id) {
+        return otcTradeOrderService.cancelAuto(id);
+    }
+
   @PostMapping("/refund/refundOrderList")
   @Operation(summary = "退单列表", description = "根据条件查询退单列表")
   @OperateLog(type = API)

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

@@ -48,5 +48,7 @@ public interface TradeDetailBaseMapper extends BaseMapperX<TradeDetailBaseDO> {
     List<TradeDetailBaseDO> selectProductBaseList(@Param("detailId") Long detailId, @Param("channelId") Long channelId);
 
     List<Map<String, Object>> selectVisitorOrderProductBaseCount(@Param("productBaseId") Long productBaseId, @Param("useDate") LocalDateTime useDate, @Param("credentialNoList") List<String> credentialNoList,@Param("excludeOrderId") Long excludeOrderId);
+    @TenantIgnore
+    void updateDeleted(@Param("orderId") Long orderId, @Param("deleted")  int deleted);
 
 }

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

@@ -188,4 +188,6 @@ public interface TradeDetailMapper extends BaseMapperX<TradeDetailDO> {
     int getMaxOrderNo(@Param("voyageId") Long voyageId);
 
     List<TradeOrderDetailCountRespVO> getOrderIdDetailCount(@Param("orderId") Long orderId);
+    @TenantIgnore
+    void updateDeleted(@Param("orderId") Long orderId, @Param("deleted")  int deleted);
 }

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

@@ -2,9 +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.mybatis.core.query.LambdaQueryWrapperX;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderCountryBaseVO;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderCountryDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 
 import java.util.List;
 
@@ -26,4 +28,7 @@ public interface TradeOrderCountryMapper extends BaseMapperX<TradeOrderCountryDO
         return selectList(new LambdaQueryWrapperX<TradeOrderCountryDO>()
                 .eq(TradeOrderCountryDO::getOrderId, id));
     }
+    @Update("UPDATE trade_order_country SET deleted = #{deleted},update_time = now() WHERE order_id = #{orderId}")
+    @TenantIgnore
+    void updateDeleted(@Param("orderId") Long orderId, @Param("deleted")  int deleted);
 }

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

@@ -1,8 +1,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.TradeOrderFloorDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 
 /**
  * 订单升楼层数据 Mapper
@@ -11,5 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface TradeOrderFloorMapper extends BaseMapperX<TradeOrderFloorDO> {
-
+    @Update("UPDATE trade_order_floor SET deleted = #{deleted},update_time = now() WHERE order_id = #{orderId}")
+    @TenantIgnore
+    void updateDeleted(@Param("orderId") Long orderId, @Param("deleted")  int deleted);
 }

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

@@ -122,6 +122,9 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
 
     int updateOrderIsAccount(@Param("orderId") Long orderId, @Param("isAccount") Integer isAccount);
 
+    @TenantIgnore
+    int updateOrderDeleted(@Param("orderId") Long orderId, @Param("deleted") Integer deleted);
+
     // endregion
 
     IPage<TradeOrderRespVO> getAccountOrderPage(IPage<TradeOrderRespVO> page, @Param("vo") TradeOrderPageReqVO vo);

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

@@ -2,9 +2,12 @@ package com.yc.ship.module.trade.dal.mysql.order;
 
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
 import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderCountryDO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderRoomModelDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 
 import java.util.List;
 
@@ -31,4 +34,8 @@ public interface TradeOrderRoomModelMapper extends BaseMapperX<TradeOrderRoomMod
         delete(new LambdaQueryWrapperX<TradeOrderRoomModelDO>()
                 .eq(TradeOrderRoomModelDO::getOrderId, orderId));
     }
+
+    @Update("UPDATE trade_order_room_model SET deleted = #{deleted},update_time = now() WHERE order_id = #{orderId}")
+    @TenantIgnore
+    void updateDeleted(@Param("orderId") Long orderId, @Param("deleted")  int deleted);
 }

+ 7 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderTotalMapper.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.mybatis.core.query.LambdaQueryWrapperX;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderTotalDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 
 import java.util.List;
 
@@ -24,4 +27,8 @@ public interface TradeOrderTotalMapper extends BaseMapperX<TradeOrderTotalDO> {
         return selectList(new LambdaQueryWrapperX<TradeOrderTotalDO>()
                 .inIfPresent(TradeOrderTotalDO::getOldOrderId, orderIds));
     }
+
+    @Update("UPDATE trade_order_total SET deleted = #{deleted},update_time = now() WHERE old_order_id = #{orderId}")
+    @TenantIgnore
+    void updateDeleted(@Param("orderId") Long orderId, @Param("deleted")  int deleted);
 }

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

@@ -79,6 +79,11 @@ public interface OtcTradeOrderService {
 
     CommonResult<?> orderAudit(Long orderId, Integer auditStatus);
 
+    /**
+     * 撤回审核
+     */
+    CommonResult<?> cancelAuto(Long orderId);
+
     PageResult<TradeOrderRespVO> getOtcTradeOrderPage(TradeOrderPageReqVO pageReqVO);
 
     PageResult<TradeOrderRespVO> getMiniTradeOrderPage(TradeOrderPageReqVO pageReqVO);

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

@@ -30,10 +30,10 @@ import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.framework.common.util.object.ObjectUtils;
-import com.yc.ship.framework.dict.core.DictFrameworkUtils;
 import com.yc.ship.framework.ip.core.utils.AreaUtils;
 import com.yc.ship.framework.security.core.LoginUser;
 import com.yc.ship.framework.security.core.util.SecurityFrameworkUtils;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.framework.tenant.core.context.TenantContextHolder;
 import com.yc.ship.framework.tenant.core.util.TenantUtils;
 import com.yc.ship.module.infra.api.config.ConfigApi;
@@ -311,7 +311,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     }
 
     private CommonResult<TradeOrderRespDTO> doShipCreateOrder(LoginUser loginUser, ShipTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
-        try{
+        try {
             ShipTradeOrderCreateReqVO.OrderProperty orderProperty = otcTradeOrderCreateReqVO.getOrderProperty();
             if (orderProperty == null) {
                 orderProperty = new ShipTradeOrderCreateReqVO.OrderProperty();
@@ -320,7 +320,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             setShipOrderPropertyFromLoginUser(loginUser, orderProperty);
             otcTradeOrderCreateReqVO.setOrderProperty(orderProperty);
             return tradeOrderService.createShipOrder(otcTradeOrderCreateReqVO);
-        }catch (Exception e){
+        } catch (Exception e) {
             return CommonResult.error(500, e.getMessage());
         }
     }
@@ -335,7 +335,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             setShipOrderPropertyFromLoginUser(loginUser, orderProperty);
             otcTradeOrderCreateReqVO.setOrderProperty(orderProperty);
             return tradeOrderService.modifyShipOrder(otcTradeOrderCreateReqVO);
-        }catch (Exception e){
+        } catch (Exception e) {
             return CommonResult.error(500, e.getMessage());
         }
     }
@@ -613,6 +613,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
     @Override
     @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ORDER_AUDIT)
+    @TenantIgnore
     public CommonResult<?> orderAudit(Long orderId, Integer auditStatus) {
         TradeOrderDO tradeOrderDO = tradeOrderMapper.selectById(orderId);
         if (tradeOrderDO == null) {
@@ -630,7 +631,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             tradeOrderAuditDO.setAuditTime(LocalDateTime.now());
             //审核状态 1、通过 2、不通过
             tradeOrderAuditDO.setAuditStatus(1);
-            tradeOrderAuditDO.setAuditCurrentStatus(tradeOrderDO.getAuditStatus() );
+            tradeOrderAuditDO.setAuditCurrentStatus(tradeOrderDO.getAuditStatus());
             tradeOrderAuditDO.setOrderNo(tradeOrderDO.getOrderNo());
             tradeOrderAuditMapper.insert(tradeOrderAuditDO);
 
@@ -659,80 +660,22 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             List<TradeOrderDO> tradeOrderDoList = tradeOrderMapper.queryOrderByLast(tradeOrderDO.getOrderNo());
             if (tradeOrderDoList != null && !tradeOrderDoList.isEmpty()) {
                 TradeOrderDO lastTradeOrder = tradeOrderDoList.get(0);
-                tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
-                        .set(TradeOrderDO::getDeleted, 1)
-                        .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeOrderDO::getId, orderId)
-                );
-                tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
-                        .set(TradeOrderDO::getDeleted, 0)
-                        .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeOrderDO::getId, lastTradeOrder.getId())
-                );
-                tradeDetailMapper.update(Wrappers.<TradeDetailDO>lambdaUpdate()
-                        .set(TradeDetailDO::getDeleted, 1)
-                        .set(TradeDetailDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeDetailDO::getOrderId, orderId)
-                );
-
-                tradeDetailMapper.update(Wrappers.<TradeDetailDO>lambdaUpdate()
-                        .set(TradeDetailDO::getDeleted, 0)
-                        .set(TradeDetailDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeDetailDO::getOrderId, lastTradeOrder.getId())
-                );
-                tradeDetailBaseMapper.update(Wrappers.<TradeDetailBaseDO>lambdaUpdate()
-                        .set(TradeDetailBaseDO::getDeleted, 1)
-                        .set(TradeDetailBaseDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeDetailBaseDO::getOrderId, orderId)
-                );
-                tradeDetailBaseMapper.update(Wrappers.<TradeDetailBaseDO>lambdaUpdate()
-                        .set(TradeDetailBaseDO::getDeleted, 0)
-                        .set(TradeDetailBaseDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeDetailBaseDO::getOrderId, lastTradeOrder.getId())
-                );
-                tradeOrderCountryMapper.update(new LambdaUpdateWrapper<TradeOrderCountryDO>()
-                        .set(TradeOrderCountryDO::getDeleted, 1)
-                        .set(TradeOrderCountryDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeOrderCountryDO::getOrderId, orderId)
-                );
-                tradeOrderRoomModelMapper.update(new LambdaUpdateWrapper<TradeOrderRoomModelDO>()
-                        .set(TradeOrderRoomModelDO::getDeleted, 1)
-                        .set(TradeOrderRoomModelDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeOrderRoomModelDO::getOrderId, orderId)
-                );
-                tradeOrderFloorMapper.update(new LambdaUpdateWrapper<TradeOrderFloorDO>()
-                        .set(TradeOrderFloorDO::getDeleted, 1)
-                        .set(TradeOrderFloorDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeOrderFloorDO::getOrderId, orderId)
-                );
-
-                tradeOrderCountryMapper.update(new LambdaUpdateWrapper<TradeOrderCountryDO>()
-                        .set(TradeOrderCountryDO::getDeleted, 0)
-                        .set(TradeOrderCountryDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeOrderCountryDO::getOrderId, lastTradeOrder.getId())
-                );
-                tradeOrderRoomModelMapper.update(new LambdaUpdateWrapper<TradeOrderRoomModelDO>()
-                        .set(TradeOrderRoomModelDO::getDeleted, 0)
-                        .set(TradeOrderRoomModelDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeOrderRoomModelDO::getOrderId, lastTradeOrder.getId())
-                );
-                tradeOrderFloorMapper.update(new LambdaUpdateWrapper<TradeOrderFloorDO>()
-                        .set(TradeOrderFloorDO::getDeleted, 0)
-                        .set(TradeOrderFloorDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeOrderFloorDO::getOrderId, lastTradeOrder.getId())
-                );
-
-                tradeOrderTotalMapper.update(new LambdaUpdateWrapper<TradeOrderTotalDO>()
-                        .set(TradeOrderTotalDO::getDeleted, 1)
-                        .set(TradeOrderTotalDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeOrderTotalDO::getOldOrderId, orderId)
-                );
-                tradeOrderTotalMapper.update(new LambdaUpdateWrapper<TradeOrderTotalDO>()
-                        .set(TradeOrderTotalDO::getDeleted, 0)
-                        .set(TradeOrderTotalDO::getUpdateTime, LocalDateTime.now())
-                        .eq(TradeOrderTotalDO::getOldOrderId, lastTradeOrder.getId())
-                );
-
+                tradeOrderMapper.updateOrderDeleted(orderId,1);
+                tradeOrderMapper.updateOrderDeleted(lastTradeOrder.getId(),0);
+                tradeDetailMapper.updateDeleted(orderId,1);
+                tradeDetailMapper.updateDeleted(lastTradeOrder.getId(),0);
+                tradeDetailBaseMapper.updateDeleted(orderId,1);
+                tradeDetailBaseMapper.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<>();
                 extMap.put("result", "审核不通过");
                 TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(), extMap);
@@ -742,6 +685,44 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         return CommonResult.success("审核成功");
     }
 
+
+    @Override
+    @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ORDER_AUDIT)
+    @TenantIgnore
+    public CommonResult<?> cancelAuto(Long orderId) {
+        TradeOrderDO tradeOrderDO = tradeOrderMapper.selectById(orderId);
+        if (tradeOrderDO == null) {
+            return CommonResult.error(ORDER_NOT_EXIST);
+        }
+        //撤回还原到修改前订单
+        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);
+            tradeDetailMapper.updateDeleted(orderId,1);
+            tradeDetailMapper.updateDeleted(lastTradeOrder.getId(),0);
+            tradeDetailBaseMapper.updateDeleted(orderId,1);
+            tradeDetailBaseMapper.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<>();
+            extMap.put("result", "审核撤回");
+            TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(), extMap);
+
+        }
+        return CommonResult.success("撤回成功");
+    }
+
     private void saveSpecNumber(List<TradeOrderRespVO> orderList) {
         List<DictDataRespDTO> dictList = dictDataApi.getDictDataList("project_specification_type");
         orderList.forEach(spu -> {
@@ -2279,7 +2260,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 .set(TradeOrderTotalDO::getDeleted, 1)
                 .set(TradeOrderTotalDO::getUpdateTime, updateTime)
                 .eq(TradeOrderTotalDO::getOldOrderId, orderId)
-                .eq(TradeOrderTotalDO::getDeleted, 0)
         );
         tradeOrderTotalDO.setOrderId(IdWorker.getId());
         tradeOrderTotalDO.setOldOrderId(neworderId);
@@ -2309,7 +2289,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         }
 
         tradeOrderRoomModelMapper.deleteByOrderId(orderId);
-        if(!list.isEmpty()) {
+        if (!list.isEmpty()) {
             tradeOrderRoomModelMapper.insertBatch(list);
         }
 
@@ -2440,12 +2420,12 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         TradeOrderConfirmationVO orderRespNewVO = BeanUtils.toBean(tradeOrderDO, TradeOrderConfirmationVO.class);
         // 获取最新的审核人
         TradeOrderAuditDO tradeOrderAuditDO = tradeOrderAuditMapper.selectNewAuditorByOrderNo(tradeOrderDO.getOrderNo());
-        if(tradeOrderAuditDO != null) {
+        if (tradeOrderAuditDO != null) {
             AdminUserRespDTO auditor = adminUserApi.getUser(tradeOrderAuditDO.getAuditUser());
             if (auditor != null) {
                 orderRespNewVO.setAuditorName(auditor.getNickname());
             }
-        }else {
+        } else {
             String loginUserNickname = getLoginUserNickname();
             orderRespNewVO.setAuditorName(loginUserNickname);
         }
@@ -2572,13 +2552,13 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         if (countryList != null) {
             countryList.stream().forEach(item -> {
                 String roomModelName = item.getRoomModelName();
-                if(item.getFloor() == null) {
-                    if("leader".equals(item.getType())) {
+                if (item.getFloor() == null) {
+                    if ("leader".equals(item.getType())) {
                         roomModelName = roomModelName + "(领队)";
-                    }else if("with".equals(item.getType())) {
+                    } else if ("with".equals(item.getType())) {
                         roomModelName = roomModelName + "(陪同)";
                     }
-                }else {
+                } else {
                     roomModelName = roomModelName + "(" + item.getFloor() + "F)";
                 }
                 Map<String, Object> room = new HashMap<>();
@@ -2594,9 +2574,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         }
         orderData.put("countryDes", orderConfirmation.getCountryDesc());
         TradeOrderTotalVO summary = orderConfirmation.getSummary();
-        if(summary != null) {
+        if (summary != null) {
             orderData.put("roomModelDes", summary.getUseRoomTotalNum());
-        }else {
+        } else {
             orderData.put("roomModelDes", 0);
         }
 
@@ -2660,13 +2640,20 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     private String getPersonTypeDes1(String type) {
         String des = "";
         switch (type) {
-            case "adultTake": case "adultPlus": case "leader": case "with":
+            case "adultTake":
+            case "adultPlus":
+            case "leader":
+            case "with":
                 des = "成人";
                 break;
-            case "childTake": case "childPlus": case "childNonTake":
+            case "childTake":
+            case "childPlus":
+            case "childNonTake":
                 des = "儿童";
                 break;
-            case "babyTake": case "babyPlus": case "babyNonTake":
+            case "babyTake":
+            case "babyPlus":
+            case "babyNonTake":
                 des = "婴儿";
                 break;
             default:
@@ -2675,16 +2662,24 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         }
         return des;
     }
+
     private String getPersonTypeDesEn1(String type) {
         String des = "";
         switch (type) {
-            case "adultTake": case "adultPlus": case "leader": case "with":
+            case "adultTake":
+            case "adultPlus":
+            case "leader":
+            case "with":
                 des = "Adults";
                 break;
-            case "childTake": case "childPlus": case "childNonTake":
+            case "childTake":
+            case "childPlus":
+            case "childNonTake":
                 des = "Children";
                 break;
-            case "babyTake": case "babyPlus": case "babyNonTake":
+            case "babyTake":
+            case "babyPlus":
+            case "babyNonTake":
                 des = "Infants";
                 break;
             default:

+ 4 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeDetailBaseMapper.xml

@@ -162,4 +162,8 @@
         group by tv.credential_no
         HAVING total>0
     </select>
+    <update id="updateDeleted">
+        UPDATE trade_detail_base SET deleted = #{deleted},update_time = now() WHERE order_id = #{orderId}
+    </update>
+
 </mapper>

+ 4 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeDetailMapper.xml

@@ -1380,4 +1380,8 @@
         GROUP BY product_type, product_id
         order by product_type asc
     </select>
+
+    <update id="updateDeleted">
+        UPDATE trade_detail SET deleted = #{deleted},update_time = now() WHERE order_id = #{orderId}
+    </update>
 </mapper>

+ 4 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -1682,6 +1682,10 @@
         UPDATE trade_order SET is_account = #{isAccount} WHERE id = #{orderId}
     </update>
 
+    <update id="updateOrderDeleted">
+        UPDATE trade_order SET deleted = #{deleted},update_time = now() WHERE id = #{orderId}
+    </update>
+
     <resultMap id="OrderAndDetailResultMap" type="com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderPdaRespVO">
         <id property="id" column="id"/>
         <result property="orderNo" column="order_no"/>