소스 검색

fix: 处理订单下单时选择房间后将房间设置到visitor中去

luofeiyun 2 주 전
부모
커밋
75d7585f7b

+ 2 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/QueryCanSelectRoomListNewReqVO.java

@@ -19,6 +19,8 @@ public class QueryCanSelectRoomListNewReqVO {
     private Long distributorId;
     @Schema(description = "门店ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
     private Long storeId;
+    @Schema(description = "订单ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1024")
+    private Long orderId;
     @Schema(description = "房型ID+'_'+楼层号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
     private List<String> roomModelIdFloorList;
 

+ 4 - 4
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeNewServiceImpl.java

@@ -35,10 +35,7 @@ import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -203,6 +200,9 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
         }
         //获取完全被使用的房间
         List<VoyageStockRoomUsedDO> allUsedList = voyageStockRoomUsedMapper.selectAllUsedList(reqVO.getVoyageId());
+        allUsedList = allUsedList.stream().filter(item -> {
+            return !Objects.equals(item.getOrderId(), reqVO.getOrderId());
+        }).collect(Collectors.toList());
         List<Long> allUserRoomId = CollectionUtils.convertList(allUsedList, VoyageStockRoomUsedDO::getRoomId);
         //过滤掉完全被使用的房间
         List<Long> canSelectRoomIds = roomIds.stream().filter(item -> !allUserRoomId.contains(item)).collect(Collectors.toList());

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

@@ -309,6 +309,7 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
         visitor.setYczz(tradeVistorReqVO.getYichang());
         visitor.setCqzz(tradeVistorReqVO.getChongqing());
         visitor.setRoomId(tradeVistorReqVO.getRoomId());
+        visitor.setInitRoomId(tradeVistorReqVO.getRoomId());
         visitor.setNationality(tradeVistorReqVO.getNationality());
         visitor.setGender(tradeVistorReqVO.getGender());
         visitor.setBirthday(tradeVistorReqVO.getBirthday());

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

@@ -2400,10 +2400,16 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 tradeOrderBindDO.setRemark("提交营销政策");
                 shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
             }
+            List<TradeOrderRoomModelVO> roomModelList = createVO.getRoomModelList();
+            Map<String, Long> roomMap = CollectionUtils.convertMap(roomModelList, TradeOrderRoomModelVO::getRoomIndexId, TradeOrderRoomModelVO::getRoomId);
             ShipTradeOrderCreateReqVO.OrderItem orderItem = new ShipTradeOrderCreateReqVO.OrderItem();
             List<ShipTradeOrderCreateReqVO.OrderDetail> detailList = new ArrayList<>();
             ShipTradeOrderCreateReqVO.OrderDetail orderDetail = new ShipTradeOrderCreateReqVO.OrderDetail();
             for (TradeVistorReqVO tradeVistorReqVO : createVO.getTourist()) {
+                Long roomId = roomMap.get(tradeVistorReqVO.getRoomIndexId());
+                if(Objects.nonNull(roomId)) {
+                    tradeVistorReqVO.setRoomId(String.valueOf(roomId));
+                }
                 List<ShipTradeOrderCreateReqVO.Visitor> visitorList = new ArrayList<>();
                 ShipTradeOrderCreateReqVO.OrderDetail visitorDetailId = new ShipTradeOrderCreateReqVO.OrderDetail();
                 //BeanUtils.copyProperties(orderDetail, ShipTradeOrderCreateReqVO.OrderDetail.class);
@@ -2434,6 +2440,10 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 List<ShipTradeOrderCreateReqVO.Visitor> visitorList1 = new ArrayList<>();
                 for (String touristId : tradeSpuReqVO.getTourist()) {
                     TradeVistorReqVO tradeVistorReqVO = createVO.getTourist().stream().filter(v -> v.getId().equals(touristId)).findFirst().orElseGet(TradeVistorReqVO::new);
+                    Long roomId = roomMap.get(tradeVistorReqVO.getRoomIndexId());
+                    if(Objects.nonNull(roomId)) {
+                        tradeVistorReqVO.setRoomId(String.valueOf(roomId));
+                    }
                     ShipTradeOrderCreateReqVO.Visitor visitor = getVisitor1(tradeVistorReqVO);
                     visitorList1.add(visitor);
                     BigDecimal price = tradeSpuReqVO.getPrice() == null ? BigDecimal.ZERO : tradeSpuReqVO.getPrice();
@@ -2479,7 +2489,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
             // 创建订单房型数据
             List<TradeOrderRoomModelDO> tradeOrderRoomDOList = new ArrayList<>();
-            List<TradeOrderRoomModelVO> roomModelList = createVO.getRoomModelList();
+
             roomModelList.forEach(roomModel -> {
                 TradeOrderRoomModelDO tradeOrderRoomDO = BeanUtils.toBean(roomModel, TradeOrderRoomModelDO.class);
                 tradeOrderRoomDO.setOrderId(orderId);
@@ -2583,6 +2593,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         visitor.setYczz(tradeVistorReqVO.getYichang());
         visitor.setCqzz(tradeVistorReqVO.getChongqing());
         visitor.setRoomId(tradeVistorReqVO.getRoomId());
+        visitor.setInitRoomId(tradeVistorReqVO.getRoomId());
         visitor.setNationality(tradeVistorReqVO.getNationality());
         visitor.setGender(tradeVistorReqVO.getGender());
         visitor.setBirthday(tradeVistorReqVO.getBirthday());
@@ -2701,7 +2712,13 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             List<ShipTradeOrderCreateReqVO.OrderDetail> detailList = new ArrayList<>();
             ShipTradeOrderCreateReqVO.OrderDetail orderDetail = new ShipTradeOrderCreateReqVO.OrderDetail();
             // 处理游客信息
+            List<TradeOrderRoomModelVO> roomModelList = createVO.getRoomModelList();
+            Map<String, Long> roomMap = CollectionUtils.convertMap(roomModelList, TradeOrderRoomModelVO::getRoomIndexId, TradeOrderRoomModelVO::getRoomId);
             for (TradeVistorReqVO tradeVistorReqVO : createVO.getTourist()) {
+                Long roomId = roomMap.get(tradeVistorReqVO.getRoomIndexId());
+                if(Objects.nonNull(roomId)) {
+                    tradeVistorReqVO.setRoomId(String.valueOf(roomId));
+                }
                 List<ShipTradeOrderCreateReqVO.Visitor> visitorList = new ArrayList<>();
                 ShipTradeOrderCreateReqVO.OrderDetail visitorDetailId = new ShipTradeOrderCreateReqVO.OrderDetail();
                 String visitorId = tradeVistorReqVO.getId();
@@ -2737,6 +2754,10 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 List<ShipTradeOrderCreateReqVO.Visitor> visitorList1 = new ArrayList<>();
                 for (String touristId : tradeSpuReqVO.getTourist()) {
                     TradeVistorReqVO tradeVistorReqVO = createVO.getTourist().stream().filter(v -> v.getId().equals(touristId)).findFirst().orElseGet(TradeVistorReqVO::new);
+                    Long roomId = roomMap.get(tradeVistorReqVO.getRoomIndexId());
+                    if(Objects.nonNull(roomId)) {
+                        tradeVistorReqVO.setRoomId(String.valueOf(roomId));
+                    }
                     ShipTradeOrderCreateReqVO.Visitor visitor = getVisitor1(tradeVistorReqVO);
                     visitorList1.add(visitor);
                     BigDecimal price = tradeSpuReqVO.getPrice() == null ? BigDecimal.ZERO : tradeSpuReqVO.getPrice();