lishiqiang 1 місяць тому
батько
коміт
3cc97edd5f

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

@@ -19,20 +19,7 @@ import com.yc.ship.module.product.service.voyage.VoyageService;
 import com.yc.ship.module.resource.api.ship.ShipApi;
 import com.yc.ship.module.resource.api.ship.dto.ShipRespDTO;
 import com.yc.ship.module.trade.api.contract.dto.group.WindowCreateOrderGroup;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.OrderPayAmountRespVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.OtcTradeChangeOrderReqVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.OtcTradeOrderChangeReqVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.OtcTradeOrderCreateReqVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.OtcTradeOrderCreateRespVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderReqVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderRespVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderConfirmationVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderCountryBaseVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderOtcCreateVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderPageReqVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderRespNewVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderRespVO;
-import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderTotalVO;
+import com.yc.ship.module.trade.controller.admin.order.vo.order.*;
 import com.yc.ship.module.trade.controller.admin.order.vo.otc.PrintRespVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundDetailRespVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundPageReqVO;
@@ -49,14 +36,13 @@ import com.yc.ship.module.trade.dal.dataobject.contract.ContractDO;
 import com.yc.ship.module.trade.dal.dataobject.insurance.InsuranceDO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeDetailBaseDO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderCountryDO;
+import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderRoomModelDO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderTotalDO;
+import com.yc.ship.module.trade.dal.mysql.order.TradeOrderRoomModelMapper;
 import com.yc.ship.module.trade.framework.annotation.PlatTenantEnv;
 import com.yc.ship.module.trade.framework.annotation.RequestDecryption;
 import com.yc.ship.module.trade.framework.annotation.TradeRateLimit;
-import com.yc.ship.module.trade.service.order.AdminTradeOrderService;
-import com.yc.ship.module.trade.service.order.TradeOrderCountryService;
-import com.yc.ship.module.trade.service.order.TradeOrderService;
-import com.yc.ship.module.trade.service.order.TradeOrderTotalService;
+import com.yc.ship.module.trade.service.order.*;
 import com.yc.ship.module.trade.service.otc.AppOtcTradeOrderService;
 import com.yc.ship.module.trade.service.otc.OtcTradeOrderService;
 import com.yc.ship.module.trade.service.pay.TradeOrderPayService;
@@ -129,6 +115,9 @@ public class OtcTradeOrderController {
   @Resource
   private TradeOrderPayService tradeOrderPayService;
 
+  @Resource
+  private TradeOrderRoomModelService tradeOrderRoomModelService;
+
   @RequestDecryption
   @PostMapping("/window/createOrder")
   @Operation(summary = "win-窗口创建订单(内部)")
@@ -282,18 +271,21 @@ public class OtcTradeOrderController {
     //国籍数据
     List<Long> orderIds = CollectionUtils.convertList(list, TradeOrderRespNewVO::getId);
     List<TradeOrderCountryDO> countryList = tradeOrderCountryService.getListByOrderIds(orderIds);
+    List<TradeOrderRoomModelDO> roomModelList = tradeOrderRoomModelService.getListByOrderIds(orderIds);
     List<TradeOrderCountryBaseVO> countRespVOList = BeanUtils.toBean(countryList, TradeOrderCountryBaseVO.class);
+    List<TradeOrderRoomModelVO> roomModeVOList = BeanUtils.toBean(roomModelList, TradeOrderRoomModelVO.class);
     countRespVOList.forEach(item -> {
       if (item.getCountryId() != null) {
         item.setCountryName(AreaUtils.format2Str(item.getCountryId()));
       }
     });
     Map<Long, List<TradeOrderCountryBaseVO>> countryMap = CollectionUtils.convertMultiMap(countRespVOList, TradeOrderCountryBaseVO::getOrderId);
+    Map<Long, List<TradeOrderRoomModelVO>> roomModelMap = CollectionUtils.convertMultiMap(roomModeVOList, TradeOrderRoomModelVO::getOrderId);
 
     //订单汇总数据
     List<TradeOrderTotalDO> tradeOrderTotalDOList = tradeOrderTotalService.getByOrderIds(orderIds);
     List<TradeOrderTotalVO> tradeOrderTotalVOList = BeanUtils.toBean(tradeOrderTotalDOList, TradeOrderTotalVO.class);
-    Map<Long, TradeOrderTotalVO> orderTotalVoMap = CollectionUtils.convertMap(tradeOrderTotalVOList, TradeOrderTotalVO::getOrderId);
+    Map<Long, TradeOrderTotalVO> orderTotalVoMap = CollectionUtils.convertMap(tradeOrderTotalVOList, TradeOrderTotalVO::getOldOrderId);
 
     //航次信息
     List<Long> voyageIds = CollectionUtils.convertList(list, TradeOrderRespNewVO::getVoyageId);
@@ -304,6 +296,7 @@ public class OtcTradeOrderController {
     list.forEach(item -> {
       MapUtils.findAndThen(shipMap, item.getShipId(), ship -> item.setShipName(ship.getName()));
       MapUtils.findAndThen(countryMap, item.getId(), item::setCountryList);
+      MapUtils.findAndThen(roomModelMap, item.getId(), item::setRoomModelList);
       MapUtils.findAndThen(orderTotalVoMap, item.getId(), totalVO -> {
         item.setSummary(totalVO);
         item.setPersonStat(totalVO.getAdultTotalNum() + "大" + (totalVO.getChildTotalNum() + totalVO.getBabyTotalNum()) + "小");

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

@@ -2,6 +2,7 @@ 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.dal.dataobject.order.TradeOrderCountryDO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderRoomModelDO;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -20,4 +21,9 @@ public interface TradeOrderRoomModelMapper extends BaseMapperX<TradeOrderRoomMod
         return selectList(new LambdaQueryWrapperX<TradeOrderRoomModelDO>()
                 .eq(TradeOrderRoomModelDO::getOrderId, id));
     }
+
+    default List<TradeOrderRoomModelDO> selectListByOrderIds(List<Long> orderIds) {
+        return selectList(new LambdaQueryWrapperX<TradeOrderRoomModelDO>()
+                .in(TradeOrderRoomModelDO::getOrderId, orderIds));
+    }
 }

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

@@ -17,7 +17,7 @@ public interface TradeOrderTotalMapper extends BaseMapperX<TradeOrderTotalDO> {
 
     default List<TradeOrderTotalDO> selectListByOrderIds(List<Long> orderIds) {
         return selectList(new LambdaQueryWrapperX<TradeOrderTotalDO>()
-                .inIfPresent(TradeOrderTotalDO::getOrderId, orderIds));
+                .inIfPresent(TradeOrderTotalDO::getOldOrderId, orderIds));
     }
 
     default List<TradeOrderTotalDO> selectListByOldOrderIds(List<Long> orderIds) {

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

@@ -1,5 +1,9 @@
 package com.yc.ship.module.trade.service.order;
 
+import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderRoomModelDO;
+
+import java.util.List;
+
 /**
  * 订单关联房型数据 Service 接口
  *
@@ -8,4 +12,5 @@ package com.yc.ship.module.trade.service.order;
 public interface TradeOrderRoomModelService {
 
 
+    List<TradeOrderRoomModelDO> getListByOrderIds(List<Long> orderIds);
 }

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

@@ -1,5 +1,6 @@
 package com.yc.ship.module.trade.service.order.impl;
 
+import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderRoomModelDO;
 import com.yc.ship.module.trade.service.order.TradeOrderRoomModelService;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
@@ -8,6 +9,9 @@ import org.springframework.validation.annotation.Validated;
 
 import com.yc.ship.module.trade.dal.mysql.order.TradeOrderRoomModelMapper;
 
+import java.util.Collections;
+import java.util.List;
+
 
 /**
  * 订单关联房型数据 Service 实现类
@@ -21,4 +25,11 @@ public class TradeOrderRoomModelServiceImpl implements TradeOrderRoomModelServic
     @Resource
     private TradeOrderRoomModelMapper orderRoomModelMapper;
 
+    @Override
+    public List<TradeOrderRoomModelDO> getListByOrderIds(List<Long> orderIds) {
+        if(orderIds.isEmpty()) {
+            return Collections.emptyList();
+        }
+        return orderRoomModelMapper.selectListByOrderIds(orderIds);
+    }
 }

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

@@ -2243,17 +2243,41 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         for (TradeSpuReqVO tradeSpuReqVO : createVO.getSpuList()) {
             ShipTradeOrderCreateReqVO.OrderDetail orderDetail1 = new ShipTradeOrderCreateReqVO.OrderDetail();
             //0 游船产品 1 附加产品 2:赠票
-            if (tradeSpuReqVO.getProductId() != null && tradeSpuReqVO.getVistorList() != null && !tradeSpuReqVO.getVistorList().isEmpty()) {
+            if (tradeSpuReqVO.getProductId() != null && !tradeSpuReqVO.getTourist().isEmpty()) {
                 orderDetail1.setProductType(1);
-            } else if (tradeSpuReqVO.getProductId() != null) {
+            } else if (tradeSpuReqVO.getProductId() != null && tradeSpuReqVO.getRequired() != null && tradeSpuReqVO.getRequired() == 1) {
                 orderDetail1.setProductType(2);
             } else {
+                if (tradeSpuReqVO.getProductId() != null) {
+                    //有产品ID没有游客信息跳过
+                    continue;
+                }
                 orderDetail1.setProductType(0);
             }
             List<ShipTradeOrderCreateReqVO.Visitor> visitorList1 = new ArrayList<>();
+
+
             if (orderDetail1.getProductType() == 0 || orderDetail1.getProductType() == 1) {
-                for (TradeVistorReqVO tradeVistorReqVO : tradeSpuReqVO.getVistorList()) {
-                    ShipTradeOrderCreateReqVO.Visitor visitor = getVisitor(tradeVistorReqVO);
+                for (String touristId : tradeSpuReqVO.getTourist()) {
+                    TradeVistorReqVO tradeVistorReqVO = createVO.getTourist().stream().filter(v -> v.getId().equals(touristId)).findFirst().orElseGet(TradeVistorReqVO::new);
+                    ShipTradeOrderCreateReqVO.Visitor visitor = new ShipTradeOrderCreateReqVO.Visitor();
+                    visitor.setName(tradeVistorReqVO.getName());
+                    visitor.setVid(tradeVistorReqVO.getId());
+                    visitor.setMobile(tradeVistorReqVO.getMobile());
+                    visitor.setCredentialNo(tradeVistorReqVO.getCardNo());
+                    visitor.setCredentialType(tradeVistorReqVO.getCardType());
+                    visitor.setBirthday(tradeVistorReqVO.getBirthday());
+                    visitor.setGender(tradeVistorReqVO.getGender());
+                    visitor.setYczz(tradeVistorReqVO.getYichang());
+                    visitor.setCqzz(tradeVistorReqVO.getChongqing());
+                    visitor.setNationality(tradeVistorReqVO.getNationality());
+                    visitor.setRoomId(tradeVistorReqVO.getRoomId());
+                    visitor.setCohabitation(tradeVistorReqVO.getCohabitation());
+                    visitor.setType(tradeVistorReqVO.getType());
+                    visitor.setAge(tradeVistorReqVO.getAge());
+                    visitor.setRoomIndexId(tradeVistorReqVO.getRoomIndexId());
+                    visitor.setRoomModelId(tradeVistorReqVO.getRoomModelId());
+                    visitor.setFloor(tradeVistorReqVO.getFloor());
                     visitorList1.add(visitor);
                     spuMoney = spuMoney.add(tradeSpuReqVO.getPrice());
                 }
@@ -2270,14 +2294,14 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                     visitor.setCredentialNo(tradeVistorReqVO.getCardNo());
                     visitor.setCredentialType(tradeVistorReqVO.getCardType());
                     visitor.setYczz(tradeVistorReqVO.getYichang());
-                    visitor.setAge(tradeVistorReqVO.getAge());
-                    visitor.setBirthday(tradeVistorReqVO.getBirthday());
-                    visitor.setGender(tradeVistorReqVO.getGender());
                     visitor.setCqzz(tradeVistorReqVO.getChongqing());
+                    visitor.setRoomId(tradeVistorReqVO.getRoomId());
+                    visitor.setGender(tradeVistorReqVO.getGender());
+                    visitor.setBirthday(tradeVistorReqVO.getBirthday());
                     visitor.setNationality(tradeVistorReqVO.getNationality());
                     visitor.setCohabitation(tradeVistorReqVO.getCohabitation());
-                    visitor.setRoomId(tradeVistorReqVO.getRoomId());
                     visitor.setType(tradeVistorReqVO.getType());
+                    visitor.setAge(tradeVistorReqVO.getAge());
                     visitor.setRoomIndexId(tradeVistorReqVO.getRoomIndexId());
                     visitor.setRoomModelId(tradeVistorReqVO.getRoomModelId());
                     visitor.setFloor(tradeVistorReqVO.getFloor());
@@ -2292,7 +2316,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             detailList.add(orderDetail1);
         }
 
-
         BigDecimal price;
         if (createVO.getSummary().getOrderMoney() != null && createVO.getSummary().getOrderMoney().compareTo(new BigDecimal(0)) > 0) {
             if (createVO.getSummary().getOrderMoney().compareTo(spuMoney) < 0 || visitorList.isEmpty()) {

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

@@ -65,9 +65,9 @@
         tdb.supplier_name,tdb.is_system_direct,tdb.use_status,tdb.check_status base_check_status,tdb.verify_time base_verify_time,tdb.price base_price,tdb.usage_count,tdb.product_resource_price,tdb.project_id,tdb.project_name,
         tdb.specification_id,tdb.specification_name,tdb.spec_type base_spec_type,tdb.supplier_voucher_code,tdb.plat_supplier_order_id,tdb.project_code
         from trade_detail td
-        left join trade_detail_base tdb on td.id = tdb.detail_id
+        left join trade_detail_base tdb on td.id = tdb.detail_id and tdb.deleted = 0
         <where>
-            td.order_id = #{orderId}
+            td.order_id = #{orderId} and td.deleted = 0
         <if test="tradeDetailId!=null">
             and  td.id = #{tradeDetailId}
         </if>