Prechádzať zdrojové kódy

fix: 处理下单空指针异常

luofeiyun 1 týždeň pred
rodič
commit
187176e970

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

@@ -2401,14 +2401,14 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
             }
             List<TradeOrderRoomModelVO> roomModelList = createVO.getRoomModelList();
-            Map<String, Long> roomMap = CollectionUtils.convertMap(roomModelList, TradeOrderRoomModelVO::getRoomIndexId, TradeOrderRoomModelVO::getRoomId);
+            Map<String, TradeOrderRoomModelVO> roomMap = CollectionUtils.convertMap(roomModelList, TradeOrderRoomModelVO::getRoomIndexId);
             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));
+                TradeOrderRoomModelVO roomModelVO = roomMap.get(tradeVistorReqVO.getRoomIndexId());
+                if(Objects.nonNull(roomModelVO) && Objects.nonNull(roomModelVO.getRoomId())) {
+                    tradeVistorReqVO.setRoomId(String.valueOf(roomModelVO.getRoomId()));
                 }
                 List<ShipTradeOrderCreateReqVO.Visitor> visitorList = new ArrayList<>();
                 ShipTradeOrderCreateReqVO.OrderDetail visitorDetailId = new ShipTradeOrderCreateReqVO.OrderDetail();
@@ -2440,9 +2440,9 @@ 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));
+                    TradeOrderRoomModelVO roomModelVO = roomMap.get(tradeVistorReqVO.getRoomIndexId());
+                    if(Objects.nonNull(roomModelVO) && Objects.nonNull(roomModelVO.getRoomId())) {
+                        tradeVistorReqVO.setRoomId(String.valueOf(roomModelVO.getRoomId()));
                     }
                     ShipTradeOrderCreateReqVO.Visitor visitor = getVisitor1(tradeVistorReqVO);
                     visitorList1.add(visitor);
@@ -2713,11 +2713,11 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             ShipTradeOrderCreateReqVO.OrderDetail orderDetail = new ShipTradeOrderCreateReqVO.OrderDetail();
             // 处理游客信息
             List<TradeOrderRoomModelVO> roomModelList = createVO.getRoomModelList();
-            Map<String, Long> roomMap = CollectionUtils.convertMap(roomModelList, TradeOrderRoomModelVO::getRoomIndexId, TradeOrderRoomModelVO::getRoomId);
+            Map<String, TradeOrderRoomModelVO> roomMap = CollectionUtils.convertMap(roomModelList, TradeOrderRoomModelVO::getRoomIndexId);
             for (TradeVistorReqVO tradeVistorReqVO : createVO.getTourist()) {
-                Long roomId = roomMap.get(tradeVistorReqVO.getRoomIndexId());
-                if(Objects.nonNull(roomId)) {
-                    tradeVistorReqVO.setRoomId(String.valueOf(roomId));
+                TradeOrderRoomModelVO roomModelVO = roomMap.get(tradeVistorReqVO.getRoomIndexId());
+                if(Objects.nonNull(roomModelVO) && Objects.nonNull(roomModelVO.getRoomId())) {
+                    tradeVistorReqVO.setRoomId(String.valueOf(roomModelVO.getRoomId()));
                 }
                 List<ShipTradeOrderCreateReqVO.Visitor> visitorList = new ArrayList<>();
                 ShipTradeOrderCreateReqVO.OrderDetail visitorDetailId = new ShipTradeOrderCreateReqVO.OrderDetail();
@@ -2754,9 +2754,9 @@ 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));
+                    TradeOrderRoomModelVO roomModelVO = roomMap.get(tradeVistorReqVO.getRoomIndexId());
+                    if(Objects.nonNull(roomModelVO) && Objects.nonNull(roomModelVO.getRoomId())) {
+                        tradeVistorReqVO.setRoomId(String.valueOf(roomModelVO.getRoomId()));
                     }
                     ShipTradeOrderCreateReqVO.Visitor visitor = getVisitor1(tradeVistorReqVO);
                     visitorList1.add(visitor);