浏览代码

代码优化

lishiqiang 5 天之前
父节点
当前提交
7885cc31d9
共有 16 个文件被更改,包括 119 次插入44 次删除
  1. 2 0
      ship-module-resource/ship-module-resource-api/src/main/java/com/yc/ship/module/resource/api/route/RouteApi.java
  2. 6 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/api/route/RouteApiImpl.java
  3. 1 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/route/ResourceRouteService.java
  4. 5 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/route/ResourceRouteServiceImpl.java
  5. 8 7
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/AdminTradeOrderController.java
  6. 3 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/ShipTradeOrderCreateReqVO.java
  7. 4 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderTotalDO.java
  8. 2 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java
  9. 2 2
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderLogService.java
  10. 4 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/bo/TradeOrderBO.java
  11. 15 2
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderLogServiceImpl.java
  12. 15 9
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderRepositoryServiceImpl.java
  13. 7 5
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java
  14. 2 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/AppOtcTradeOrderServiceImpl.java
  15. 40 17
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java
  16. 3 0
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

+ 2 - 0
ship-module-resource/ship-module-resource-api/src/main/java/com/yc/ship/module/resource/api/route/RouteApi.java

@@ -8,4 +8,6 @@ import java.util.Map;
 public interface RouteApi {
 
     Map<Long, RouteRespDTO> queryRoute(List<Long> ids);
+
+    RouteRespDTO queryRouteById(Long id);
 }

+ 6 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/api/route/RouteApiImpl.java

@@ -22,4 +22,10 @@ public class RouteApiImpl implements RouteApi{
         List<RouteRespDTO> routeRespDTOS = BeanUtils.toBean(list, RouteRespDTO.class);
         return CollectionUtils.convertMap(routeRespDTOS,RouteRespDTO::getId);
     }
+
+    @Override
+    public RouteRespDTO queryRouteById(Long id) {
+        ResourceRouteDO resourceRouteDO = routeService.getById(id);
+        return BeanUtils.toBean(resourceRouteDO, RouteRespDTO.class);
+    }
 }

+ 1 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/route/ResourceRouteService.java

@@ -61,6 +61,7 @@ public interface ResourceRouteService {
     List<ResourceRouteDO> getEnableRouteList();
 
     List<ResourceRouteDO> getList(List<Long> routeIds);
+    ResourceRouteDO getById(Long routeIds);
 
     /**
      * 获取APP上的航线分页列表

+ 5 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/route/ResourceRouteServiceImpl.java

@@ -93,6 +93,11 @@ public class ResourceRouteServiceImpl implements ResourceRouteService {
         return routeMapper.selectByIds(routeIds);
     }
 
+    @Override
+    public ResourceRouteDO getById(Long routeId) {
+        return routeMapper.selectById(routeId);
+    }
+
     @Override
     public PageResult<AppResourceRouteRespVO> getAppRoutePage(AppResourceRoutePageReqVO pageReqVO) {
         IPage<AppResourceRouteRespVO> ipage = MyBatisUtils.buildPage(pageReqVO);

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

@@ -18,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
@@ -47,25 +48,25 @@ public class AdminTradeOrderController {
 
     @GetMapping("getOrderLogListByOrderId")
     @Operation(summary = "通过订单ID获得订单日志列表")
-    public CommonResult<List<TradeOrderLogRespVO>> getOrderLogListByOrderId(Long orderId) {
-        List<TradeOrderLogDO> list = tradeOrderLogService.getOrderLogListByOrderId(orderId);
-        List<TradeOrderLogRespVO> tradeOrderLogRespVOS = BeanUtils.toBean(list, TradeOrderLogRespVO.class);
-        List<Long> userIds = CollectionUtils.convertList(tradeOrderLogRespVOS, TradeOrderLogRespVO::getUserId, (item) -> item.getUserType().equals(UserTypeEnum.ADMIN.getValue()));
+    public CommonResult<List<TradeOrderLogRespVO>> getOrderLogListByOrderId(@RequestParam("orderNo")  String orderNo) {
+        List<TradeOrderLogDO> list = tradeOrderLogService.getOrderLogListByOrderId(orderNo);
+        List<TradeOrderLogRespVO> tradeOrderLogRespVoList = BeanUtils.toBean(list, TradeOrderLogRespVO.class);
+        List<Long> userIds = CollectionUtils.convertList(tradeOrderLogRespVoList, TradeOrderLogRespVO::getUserId, (item) -> item.getUserType().equals(UserTypeEnum.ADMIN.getValue()));
         List<AdminUserRespDTO> userList = adminUserApi.getUserList(userIds);
         Map<Long, AdminUserRespDTO> userMap = CollectionUtils.convertMap(userList, AdminUserRespDTO::getId);
 
-        List<Long> memberIds = CollectionUtils.convertList(tradeOrderLogRespVOS, TradeOrderLogRespVO::getUserId, (item) -> item.getUserType().equals(UserTypeEnum.MEMBER.getValue()));
+        List<Long> memberIds = CollectionUtils.convertList(tradeOrderLogRespVoList, TradeOrderLogRespVO::getUserId, (item) -> item.getUserType().equals(UserTypeEnum.MEMBER.getValue()));
         List<MemberUserRespDTO> memberList = memberUserApi.getUserList(memberIds);
         Map<Long, MemberUserRespDTO> memberMap = CollectionUtils.convertMap(memberList, MemberUserRespDTO::getId);
 
-        tradeOrderLogRespVOS.stream().forEach(item -> {
+        tradeOrderLogRespVoList.forEach(item -> {
             if(item.getUserType().equals(UserTypeEnum.ADMIN.getValue())) {
                 MapUtils.findAndThen(userMap, item.getUserId(), user -> item.setUserName(user.getNickname()));
             }else if(item.getUserType().equals(UserTypeEnum.MEMBER.getValue())) {
                 MapUtils.findAndThen(memberMap, item.getUserId(), member -> item.setUserName(member.getNickname()));
             }
         });
-        return success(tradeOrderLogRespVOS);
+        return success(tradeOrderLogRespVoList);
     }
 
 }

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

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

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

@@ -29,6 +29,10 @@ public class TradeOrderTotalDO extends TenantBaseDO {
      */
     @TableId
     private Long orderId;
+    /**
+     * 旧订单ID
+     */
+    private Long oldOrderId;
     /**
      * 成人总数
      */

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

@@ -90,6 +90,8 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
 
     List<Long> selectBindUseMarketing(@Param("orderId") Long orderId);
 
+    List<Long> selectOrderIdByOrderNo(@Param("orderNo") String orderNo);
+
     TradeOrderRespVO getRefundOrderInfo(Long id);
 
     List<TradeOrderDO> getTradeOrderByExpire(@Param("expiretime") String expiretime);

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

@@ -27,10 +27,10 @@ public interface TradeOrderLogService {
     /**
      * 获得交易订单日志列表
      *
-     * @param orderId 订单编号
+     * @param orderNo 订单编号
      * @return 交易订单日志列表
      */
-    List<TradeOrderLogDO> getOrderLogListByOrderId(Long orderId);
+    List<TradeOrderLogDO> getOrderLogListByOrderId(String orderNo);
 
     void delLog(Long orderId, TradeOrderOperateTypeEnum...operateType);
 }

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

@@ -10,12 +10,13 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
  * &#064;Description :订单BO
- * &#064;Author :qsl
  * &#064;Date :2025/6/6 21:45
+ * @author qsl
  */
 @Data
 public class TradeOrderBO {
@@ -28,6 +29,8 @@ public class TradeOrderBO {
     private OrderJzDO orderJzDO;
     private TradeOrderBindDO tradeOrderBindDO;
     private TradeOrderTotalVO summary;
+    @Schema(description = "修改时间")
+    private Date updateTime;
 
     @Data
     public static class ExtraInfo{

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

@@ -6,6 +6,7 @@ import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.yc.ship.module.trade.convert.order.TradeOrderConvert;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderLogDO;
 import com.yc.ship.module.trade.dal.mysql.order.TradeOrderLogMapper;
+import com.yc.ship.module.trade.dal.mysql.order.TradeOrderMapper;
 import com.yc.ship.module.trade.enums.TradeOrderOperateTypeEnum;
 import com.yc.ship.module.trade.service.order.TradeOrderLogService;
 import com.yc.ship.module.trade.service.order.bo.TradeOrderLogCreateReqBO;
@@ -13,11 +14,13 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 /**
  * 交易下单日志 Service 接口
  *
+ * @author qsl
  */
 @Service
 public class TradeOrderLogServiceImpl implements TradeOrderLogService {
@@ -25,14 +28,24 @@ public class TradeOrderLogServiceImpl implements TradeOrderLogService {
     @Resource
     private TradeOrderLogMapper tradeOrderLogMapper;
 
+    @Resource
+    private TradeOrderMapper tradeOrderMapper;
+
     @Override
     public void createOrderLog(TradeOrderLogCreateReqBO logDTO) {
         tradeOrderLogMapper.insert(TradeOrderConvert.INSTANCE.convert(logDTO));
     }
 
     @Override
-    public List<TradeOrderLogDO> getOrderLogListByOrderId(Long orderId) {
-        return tradeOrderLogMapper.selectList(TradeOrderLogDO::getOrderId, orderId);
+    public List<TradeOrderLogDO> getOrderLogListByOrderId(String orderNo) {
+        List<Long> orderIds = tradeOrderMapper.selectOrderIdByOrderNo(orderNo);
+        if(orderIds.isEmpty()) {
+            return Collections.emptyList();
+        }
+        LambdaQueryWrapperX<TradeOrderLogDO> queryWrapper = new LambdaQueryWrapperX<>();
+        queryWrapper.in(TradeOrderLogDO::getOrderId, orderIds);
+        queryWrapper.orderByDesc(TradeOrderLogDO::getCreateTime);
+        return tradeOrderLogMapper.selectList(queryWrapper);
     }
 
     @Override

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

@@ -144,23 +144,29 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
     @Transactional(rollbackFor = Exception.class)
     public void modifyOrder(TradeOrderBO tradeOrderBO) {
         try {
-            tradeOrderMapper.updateById(tradeOrderBO.getTradeOrderDO());
+
+            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.insert(tradeOrderBO.getTradeOrderDO());
 
             orderJzMapper.delete(new LambdaUpdateWrapper<OrderJzDO>().eq(OrderJzDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId()));
             orderJzMapper.insert(tradeOrderBO.getOrderJzDO());
 
-            tradeOrderBindMapper.update(new LambdaUpdateWrapper<TradeOrderBindDO>().set(TradeOrderBindDO::getDeleted, 1).set(TradeOrderBindDO::getUpdateTime, new Date()).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, tradeOrderBO.getTradeOrderDO().getId()));
             if (tradeOrderBO.getTradeOrderBindDO() != null) {
                 tradeOrderBindMapper.insert(tradeOrderBO.getTradeOrderBindDO());
             }
 
-            tradeOrderUserMapper.update(new LambdaUpdateWrapper<TradeOrderUserDO>().set(TradeOrderUserDO::getDeleted, 1).set(TradeOrderUserDO::getUpdateTime, new Date()).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, tradeOrderBO.getTradeOrderDO().getId()));
             tradeOrderUserMapper.insert(tradeOrderBO.getTradeOrderUserDO());
 
             if (tradeOrderBO.getTradeOrderDeliveryDO() != null) {
                 tradeOrderDeliveryMapper.update(new LambdaUpdateWrapper<TradeOrderDeliveryDO>()
                         .set(TradeOrderDeliveryDO::getDeleted, 1)
-                        .set(TradeOrderDeliveryDO::getUpdateTime, new Date())
+                        .set(TradeOrderDeliveryDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
                         .eq(TradeOrderDeliveryDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
                 );
                 tradeOrderDeliveryMapper.insert(tradeOrderBO.getTradeOrderDeliveryDO());
@@ -169,7 +175,7 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
             tradeOrderBO.getTradeOrderDetailBOList().forEach(tradeOrderDetailBO -> {
                 tradeDetailMapper.update(new LambdaUpdateWrapper<TradeDetailDO>()
                         .set(TradeDetailDO::getDeleted, 1)
-                        .set(TradeDetailDO::getUpdateTime, new Date())
+                        .set(TradeDetailDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
                         .eq(TradeDetailDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
                 );
                 tradeDetailMapper.insertBatch(tradeOrderDetailBO.getTradeDetailDOList());
@@ -177,7 +183,7 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
 
                 tradeDetailBaseMapper.update(new LambdaUpdateWrapper<TradeDetailBaseDO>()
                         .set(TradeDetailBaseDO::getDeleted, 1)
-                        .set(TradeDetailBaseDO::getUpdateTime, new Date())
+                        .set(TradeDetailBaseDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
                         .eq(TradeDetailBaseDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
                 );
                 tradeDetailBaseMapper.insertBatch(tradeOrderDetailBO.getTradeDetailBaseDOList());
@@ -185,7 +191,7 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
 
                 tradeVisitorMapper.update(new LambdaUpdateWrapper<TradeVisitorDO>()
                         .set(TradeVisitorDO::getDeleted, 1)
-                        .set(TradeVisitorDO::getUpdateTime, new Date())
+                        .set(TradeVisitorDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
                         .eq(TradeVisitorDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
                 );
                 tradeVisitorMapper.insertBatch(tradeOrderDetailBO.getTradeVisitorDOList());
@@ -193,7 +199,7 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
                 if (tradeOrderDetailBO.getTradeOrderHotelDO() != null) {
                     tradeOrderHotelMapper.update(new LambdaUpdateWrapper<TradeOrderHotelDO>()
                             .set(TradeOrderHotelDO::getDeleted, 1)
-                            .set(TradeOrderHotelDO::getUpdateTime, new Date())
+                            .set(TradeOrderHotelDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
                             .eq(TradeOrderHotelDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
                     );
                     tradeOrderHotelMapper.insert(tradeOrderDetailBO.getTradeOrderHotelDO());
@@ -201,7 +207,7 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
                 if (CollUtil.isNotEmpty(tradeOrderDetailBO.getTradeDetailPriceDOList())) {
                     tradeDetailPriceMapper.update(new LambdaUpdateWrapper<TradeDetailPriceDO>()
                             .set(TradeDetailPriceDO::getDeleted, 1)
-                            .set(TradeDetailPriceDO::getUpdateTime, new Date())
+                            .set(TradeDetailPriceDO::getUpdateTime, tradeOrderBO.getUpdateTime()==null?new Date():tradeOrderBO.getUpdateTime())
                             .eq(TradeDetailPriceDO::getOrderId, tradeOrderBO.getTradeOrderDO().getId())
                     );
                     tradeDetailPriceMapper.insertBatch(tradeOrderDetailBO.getTradeDetailPriceDOList());

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

@@ -200,6 +200,7 @@ public class TradeOrderServiceImpl implements TradeOrderService {
             //2.下单前处理
             beforeOrderCreate(tradeOrderBO);
             //3.保存订单
+            tradeOrderBO.setUpdateTime(shipTradeOrderCreateReqVO.getUpdateTime());
             tradeOrderRepositoryService.modifyOrder(tradeOrderBO);
             //4 下单成功回调
             tradeSupplierCallbackService.afterAllOrderCreate(tradeOrderBO.getTradeOrderDO());
@@ -522,11 +523,12 @@ public class TradeOrderServiceImpl implements TradeOrderService {
                 tradeOrderDO.setVisitorType(0);
             }
         }
-        if (orderCreateReqDTO.getOrderId() != null) {
-            tradeOrderDO.setId(orderCreateReqDTO.getOrderId());
-        } else {
-            tradeOrderDO.setId(IdWorker.getId());
-        }
+        tradeOrderDO.setId(IdWorker.getId());
+//        if (orderCreateReqDTO.getOrderId() != null) {
+//            tradeOrderDO.setId(orderCreateReqDTO.getOrderId());
+//        } else {
+//            tradeOrderDO.setId(IdWorker.getId());
+//        }
         //旅行社编号 +  航次编号 + 3位 旅行社当天订单流水号
         if (org.apache.commons.lang3.StringUtils.isNotEmpty(orderCreateReqDTO.getOrderNo())) {
             tradeOrderDO.setOrderNo(orderCreateReqDTO.getOrderNo());

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

@@ -208,7 +208,8 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
         TradeOrderTotalVO summary = createVO.getSummary();
         TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
         Long orderId = result.getCheckedData().getOrderId();
-        tradeOrderTotalDO.setOrderId(orderId);
+        tradeOrderTotalDO.setOrderId(IdWorker.getId());
+        tradeOrderTotalDO.setOldOrderId(orderId);
         tradeOrderTotalMapper.insert(tradeOrderTotalDO);
 
         //创建订单国籍数据

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

@@ -40,6 +40,10 @@ import com.yc.ship.module.product.api.dto.*;
 import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageRespVO;
 import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
 import com.yc.ship.module.product.service.voyage.VoyageService;
+import com.yc.ship.module.resource.api.route.RouteApi;
+import com.yc.ship.module.resource.api.route.dto.RouteRespDTO;
+import com.yc.ship.module.resource.api.ship.ShipApi;
+import com.yc.ship.module.resource.api.ship.dto.ShipRespDTO;
 import com.yc.ship.module.resource.dal.dataobject.route.ResourceRouteDO;
 import com.yc.ship.module.resource.dal.dataobject.ship.ResourceShipDO;
 import com.yc.ship.module.resource.dal.mysql.route.ResourceRouteMapper;
@@ -124,7 +128,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @Resource
     private ProductApi productApi;
     @Resource
-    private SmsSendApi smsSendApi;
+    private RouteApi routeApi;
+    @Resource
+    private ShipApi shipApi;
     @Resource
     private MemberUserApi memberUserApi;
     @Resource
@@ -1765,9 +1771,15 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             storeInfo = storeApi.getStoreInfo(storeId);
         }
         VoyageRespDTO voyage = productApi.getVoyage(createVO.getVoyageId());
+        RouteRespDTO routeRespDTO = routeApi.queryRouteById(voyage.getRouteId());
+        ShipRespDTO ship = shipApi.queryShip(createVO.getShipId());
         int maxOrderNo = tradeOrderService.getMaxOrderNo(createVO.getVoyageId());
         String date = DateUtils.format(new Date(), "yyyyMMddmm");
-        String orderNo = distributorDO.getCode() + "-" + date + "-" + voyage.getCode() + "-" + (maxOrderNo + 1);
+        String code = "YC";
+        if(routeRespDTO!=null && routeRespDTO.getDirection()==2){
+            code ="CY";
+        }
+        String orderNo = ship.getCode() + "-" + date + "-" + code + "-" + (maxOrderNo + 1);
         if (distributorDO.getCode() == null) {
             orderNo = date + "-" + voyage.getCode() + "-" + (maxOrderNo + 1);
         }
@@ -1956,7 +1968,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         TradeOrderTotalVO summary = createVO.getSummary();
         TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
         Long orderId = result.getCheckedData().getOrderId();
-        tradeOrderTotalDO.setOrderId(orderId);
+        tradeOrderTotalDO.setOrderId(IdWorker.getId());
+        tradeOrderTotalDO.setOldOrderId(orderId);
         tradeOrderTotalDO.setOtherRemark(createVO.getOtherRemark());
         tradeOrderTotalDO.setRealMoney(createVO.getRealAmount());
         tradeOrderTotalDO.setOtherMoney(createVO.getOtherAmount());
@@ -2047,10 +2060,12 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             return CommonResult.error(ORDER_NOT_EXIST);
         }
         String orderNo = tradeOrderDO.getOrderNo();
+        Date updateTime = new Date();
         List<TradeOrderCountryReqVO> countryData = createVO.getCountryData();
         ShipTradeOrderCreateReqVO shipTradeOrderCreateReqVO = BeanUtils.toBean(createVO, ShipTradeOrderCreateReqVO.class);
         shipTradeOrderCreateReqVO.setDistributorId(loginUser.getDistributorId());
         shipTradeOrderCreateReqVO.setGroupNo(createVO.getGroupNo());
+        shipTradeOrderCreateReqVO.setTravelDate(tradeOrderDO.getTravelDate());
         shipTradeOrderCreateReqVO.setOrderId(orderId);
         if (createVO.getSummary().getOrderMoney() != null && createVO.getRealAmount() != null && !createVO.getSummary().getOrderMoney().equals(createVO.getRealAmount())) {
             shipTradeOrderCreateReqVO.setAmount(createVO.getRealAmount());
@@ -2059,6 +2074,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
             tradeOrderBindDO.setId(IdWorker.getId());
             tradeOrderBindDO.setType(1);
+            tradeOrderBindDO.setBindId(orderId);
             tradeOrderBindDO.setCustom("");
             tradeOrderBindDO.setRemark("modify订单金额修改,订单金额:" + createVO.getSummary().getOrderMoney() + ",订单修改后金额:" + createVO.getRealAmount());
             shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
@@ -2197,28 +2213,35 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         shipTradeOrderCreateReqVO.setSpuAmount(spuMoney);
 
 
-        Date travelDate = shipTradeOrderCreateReqVO.getTravelDate();
+        Date travelDate = tradeOrderDO.getTravelDate();
 
-        if (loginUser.getDistributorId() != null && DateUtil.compare(DateUtil.beginOfDay(shipTradeOrderCreateReqVO.getTravelDate()), DateUtil.offsetDay(new Date(), 3)) < 0) {
+        if (loginUser.getDistributorId() != null && DateUtil.compare(DateUtil.beginOfDay(travelDate), DateUtil.offsetDay(new Date(), 3)) < 0) {
             Asserts.isTrue(false, "已过最晚修改时间");
         }
 
         if (loginUser.getDistributorId() == null && DateUtil.compare(travelDate, DateUtil.offsetDay(new Date(), -2)) < 0) {
             Asserts.isTrue(false, "已过最晚修改时间");
         }
-
+        shipTradeOrderCreateReqVO.setUpdateTime(updateTime);
         CommonResult<TradeOrderRespDTO> result = doShipModifyOrder(loginUser, shipTradeOrderCreateReqVO);
         if (result.isError()) {
             return CommonResult.error(result);
         }
+        Long neworderId = result.getCheckedData().getOrderId();
         TradeOrderTotalVO summary = createVO.getSummary();
         TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
-//        Long orderId  = result.getCheckedData().getOrderId();
-        tradeOrderTotalDO.setOrderId(orderId);
+        tradeOrderTotalMapper.update(new LambdaUpdateWrapper<TradeOrderTotalDO>()
+                .set(TradeOrderTotalDO::getDeleted, 1)
+                .set(TradeOrderTotalDO::getUpdateTime, updateTime)
+                .eq(TradeOrderTotalDO::getOldOrderId, orderId)
+                .eq(TradeOrderTotalDO::getDeleted, 0)
+        );
+        tradeOrderTotalDO.setOrderId(IdWorker.getId());
+        tradeOrderTotalDO.setOldOrderId(neworderId);
         tradeOrderTotalDO.setOtherRemark(createVO.getOtherRemark());
         tradeOrderTotalDO.setRealMoney(createVO.getRealAmount());
         tradeOrderTotalDO.setOtherMoney(createVO.getOtherAmount());
-        tradeOrderTotalMapper.insertOrUpdate(tradeOrderTotalDO);
+        tradeOrderTotalMapper.insert(tradeOrderTotalDO);
 
         //创建订单房型数据
         List<TradeOrderRoomModelDO> list = new ArrayList<>();
@@ -2228,7 +2251,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         countryData.forEach(item -> {
             TradeOrderCountryDO countryDO = BeanUtils.toBean(item, TradeOrderCountryDO.class);
             Long countryId = IdWorker.getId();
-            countryDO.setOrderId(orderId);
+            countryDO.setOrderId(neworderId);
             countryDO.setId(countryId);
             tradeOrderCountryDOList.add(countryDO);
             List<TradeOrderRoomModelReqVO> roomModels = item.getRoomModels();
@@ -2236,7 +2259,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             roomModels.forEach(roomModel -> {
                 TradeOrderRoomModelDO roomModelDO = BeanUtils.toBean(roomModel, TradeOrderRoomModelDO.class);
                 Long roomModelId = IdWorker.getId();
-                roomModelDO.setOrderId(orderId);
+                roomModelDO.setOrderId(neworderId);
                 roomModelDO.setId(roomModelId);
                 roomModelDO.setCountryId(countryId);
                 list.add(roomModelDO);
@@ -2247,7 +2270,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 }
                 floorReqVOList.forEach(floor -> {
                     TradeOrderFloorDO floorDO = BeanUtils.toBean(floor, TradeOrderFloorDO.class);
-                    floorDO.setOrderId(orderId);
+                    floorDO.setOrderId(neworderId);
                     floorDO.setRoomModelId(roomModelId);
                     floorPlus.add(floorDO);
                 });
@@ -2257,17 +2280,17 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
         tradeOrderCountryMapper.update(new LambdaUpdateWrapper<TradeOrderCountryDO>()
                 .set(TradeOrderCountryDO::getDeleted, 1)
-                .set(TradeOrderCountryDO::getUpdateTime, new Date())
+                .set(TradeOrderCountryDO::getUpdateTime, updateTime)
                 .eq(TradeOrderCountryDO::getOrderId, orderId)
         );
         tradeOrderRoomModelMapper.update(new LambdaUpdateWrapper<TradeOrderRoomModelDO>()
                 .set(TradeOrderRoomModelDO::getDeleted, 1)
-                .set(TradeOrderRoomModelDO::getUpdateTime, new Date())
+                .set(TradeOrderRoomModelDO::getUpdateTime, updateTime)
                 .eq(TradeOrderRoomModelDO::getOrderId, orderId)
         );
         tradeOrderFloorMapper.update(new LambdaUpdateWrapper<TradeOrderFloorDO>()
                 .set(TradeOrderFloorDO::getDeleted, 1)
-                .set(TradeOrderFloorDO::getUpdateTime, new Date())
+                .set(TradeOrderFloorDO::getUpdateTime, updateTime)
                 .eq(TradeOrderFloorDO::getOrderId, orderId)
         );
 
@@ -2327,7 +2350,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         orderRespNewVO.setTradeVisitorList(visitorDOList);
 
         //设置订单汇总数据
-        TradeOrderTotalDO tradeOrderTotalDO = tradeOrderTotalMapper.selectOne(TradeOrderTotalDO::getOrderId, id);
+        TradeOrderTotalDO tradeOrderTotalDO = tradeOrderTotalMapper.selectOne(TradeOrderTotalDO::getOldOrderId, id);
         TradeOrderTotalVO summary = BeanUtils.toBean(tradeOrderTotalDO, TradeOrderTotalVO.class);
         orderRespNewVO.setSummary(summary);
 
@@ -2361,7 +2384,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         List<TradeDetailRespVO> detailList = tradeDetailMapper.getOrderIdDetail(tradeOrderDO.getId());
         tradeOrderVO.setTradeDetailDOList(detailList);
         //设置订单汇总数据
-        TradeOrderTotalDO tradeOrderTotalDO = tradeOrderTotalMapper.selectOne(TradeOrderTotalDO::getOrderId, orderId);
+        TradeOrderTotalDO tradeOrderTotalDO = tradeOrderTotalMapper.selectOne(TradeOrderTotalDO::getOldOrderId, orderId);
         tradeOrderVO.setSummary(tradeOrderTotalDO);
 
         OrderJzDO orderJzDO = orderJzMapper.selectOne(OrderJzDO::getOrderId, orderId);

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

@@ -1389,6 +1389,9 @@
         WHERE
             tob.type = 8 AND tob.deleted = 0 AND tob.order_id = #{orderId}
     </select>
+    <select id="selectOrderIdByOrderNo"  resultType="java.lang.Long">
+        SELECT id FROM trade_order WHERE order_no = #{orderNo}
+    </select>
 
     <select id="getRefundOrderInfo"  resultMap="RefundResultMap">
         SELECT td.id,td.order_no,td.external_order_no,td.route_plan_id,td.visitor_type,td.travel_date,td.sell_method,td.source_name,td.seller_id,td.member_id,td.amount,td.pay_amount,td.order_status,td.payment_date,td.remark,