瀏覽代碼

新下单流程优化

lishiqiang 1 月之前
父節點
當前提交
ecbc0e591c

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

@@ -309,6 +309,11 @@ public class OtcTradeOrderController {
         item.setPersonStat(totalVO.getAdultTotalNum() + "大" + (totalVO.getChildTotalNum() + totalVO.getBabyTotalNum()) + "小");
       });
       MapUtils.findAndThen(voyageRespVoMap, item.getVoyageId(), item::setVoyage);
+      if(item.getVisitors()!=null && !item.getVisitors().isEmpty()) {
+        item.setTotalPerson(item.getVisitors().size());
+      }else {
+        item.setTotalPerson(0);
+      }
     });
     return success(page);
   }

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

@@ -291,6 +291,9 @@ public class ShipTradeOrderCreateReqVO implements Serializable {
     @Valid
     public static class Visitor{
 
+        @Schema(description = "游客ID,用于标记是一个人", example = "")
+        private String vid;
+
         @Schema(description = "姓名", example = "")
         private String name;
 

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

@@ -483,5 +483,11 @@ public class TradeOrderRespVO {
      */
     private Integer auditStatus;
 
+    @Schema(description = "游客信息")
+    private List<TradeVisitorRespVO> visitors;
+
+    @Schema(description = "房型信息")
+    private List<TradeOrderRoomModelVO> roomModelList;
+
 
 }

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

@@ -5,6 +5,9 @@ import com.yc.ship.module.trade.enums.CredentialTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+/**
+ * @author qsl
+ */
 @Schema(description = "管理后台 - 交易订单 Response VO")
 @Data
 @ExcelIgnoreUnannotated
@@ -13,6 +16,9 @@ public class TradeVisitorRespVO {
     @Schema(description = "主键")
     private Long id;
 
+    @Schema(description = "游客编号")
+    private String vid;
+
     @Schema(description = "明细ID")
     private Long orderId;
 

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

@@ -32,6 +32,11 @@ public class TradeVisitorDO extends TenantBaseDO {
     @TableId(type= IdType.ASSIGN_ID)
     @Schema(description = "主键")
     private Long id;
+
+    /**
+     * 游客ID
+     */
+    private String vid;
     /**
      * 明细ID
      */

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeVisitorRespVO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO;
 import com.yc.ship.module.trade.service.order.bo.TradeVisitorBO;
 import org.apache.ibatis.annotations.Mapper;
@@ -33,6 +34,7 @@ public interface TradeVisitorMapper extends BaseMapperX<TradeVisitorDO> {
     List<TradeVisitorBO> selectSupplierVisitor(@Param("platSupplierOrderId") Long platSupplierOrderId,@Param("visitorIdList") List<Long> visitorIdList);
 
     List<TradeVisitorDO> queryRelatedVisitor(@Param("visitorIds") List<Long> visitorIds);
+    List<TradeVisitorRespVO> queryVisitorByOrderId(@Param("orderId") Long orderId);
     IPage<TradeVisitorBO> selectVisitorListByDate(IPage<TradeVisitorBO> page,@Param("orderId") Long orderId, @Param("useDate") Date useDate,@Param("tenantId") Long tenantId);
     List<TradeVisitorDO> selectBoatVisitorListByRefund(@Param("refundId") Long refundId, @Param("useDate") Date useDate);
     Integer selectOrderVisitorCount(@Param("orderId") Long orderId);

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

@@ -26,11 +26,13 @@ import com.yc.ship.module.trade.api.dto.*;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.ShipTradeOrderCreateReqVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderPageReqVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderRespVO;
+import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeVisitorRespVO;
 import com.yc.ship.module.trade.convert.order.TradeOrderConvert;
 import com.yc.ship.module.trade.dal.dataobject.order.*;
 import com.yc.ship.module.trade.dal.dataobject.orderjz.OrderJzDO;
 import com.yc.ship.module.trade.dal.mysql.order.TradeDetailMapper;
 import com.yc.ship.module.trade.dal.mysql.order.TradeOrderMapper;
+import com.yc.ship.module.trade.dal.mysql.order.TradeVisitorMapper;
 import com.yc.ship.module.trade.enums.*;
 import com.yc.ship.module.trade.framework.annotation.TradeOrderLog;
 import com.yc.ship.module.trade.framework.common.ExceptionUtils;
@@ -102,7 +104,8 @@ public class TradeOrderServiceImpl implements TradeOrderService {
     private TradeDetailMapper tradeDetailMapper;
     @Resource
     private TradeRefundRepositoryService tradeRefundRepositoryService;
-
+    @Resource
+    private TradeVisitorMapper tradeVisitorMapper;
     @Resource
     private TradeOrderMapper tradeOrderMapper;
 
@@ -121,6 +124,15 @@ public class TradeOrderServiceImpl implements TradeOrderService {
             pageReqVO.setStoreId(agencyLoginUser.getStoreId());
         }
         IPage<TradeOrderRespVO> iPage = tradeOrderMapper.getTradeOrderUserPage(page, pageReqVO);
+        iPage.getRecords().forEach(tradeOrderRespVO -> {
+            List<TradeVisitorRespVO> visitorDOList = tradeVisitorMapper.queryVisitorByOrderId(tradeOrderRespVO.getId());
+            tradeOrderRespVO.setVisitors(visitorDOList);
+            if(!visitorDOList.isEmpty()) {
+                tradeOrderRespVO.setTotalNum(visitorDOList.size());
+            }else{
+                tradeOrderRespVO.setTotalNum(0);
+            }
+        });
         return new PageResult<>(iPage.getRecords(), iPage.getTotal());
     }
 
@@ -667,6 +679,7 @@ public class TradeOrderServiceImpl implements TradeOrderService {
                 tradeDetailBaseDOList.addAll(detailBaseDOList);
                 TradeVisitorDO tradeVisitorDO = new TradeVisitorDO();
                 tradeVisitorDO.setId(IdWorker.getId());
+                tradeVisitorDO.setVid(visitor.getVid());
                 tradeVisitorDO.setOrderId(tradeOrderDO.getId());
                 tradeVisitorDO.setName(visitor.getName());
                 tradeVisitorDO.setDetailId(tradeDetailDO.getId());

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

@@ -14,8 +14,6 @@ import com.yc.ship.module.trade.controller.admin.order.vo.order.*;
 import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderPageReqVO;
 import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderRespVO;
 import com.yc.ship.module.trade.convert.order.TradeOrderConvert;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderCountryDO;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderFloorDO;
 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.TradeOrderCountryMapper;
@@ -144,6 +142,7 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
                     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.setGender(tradeVistorReqVO.getGender());
                     visitor.setCredentialNo(tradeVistorReqVO.getCardNo());
@@ -218,17 +217,15 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
         tradeOrderTotalDO.setOldOrderId(orderId);
         tradeOrderTotalMapper.insert(tradeOrderTotalDO);
 
-        //创建订单国籍数据
-        List<TradeOrderRoomModelDO> list = new ArrayList<>();
         // 创建订单房型数据
-        List<TradeOrderRoomModelDO> tradeOrderRoomDOList = new ArrayList<>();
+        List<TradeOrderRoomModelDO> tradeOrderRoomList = new ArrayList<>();
         List<TradeOrderRoomModelVO> roomModelList = createVO.getRoomModelList();
-        roomModelList.stream().forEach(roomModel -> {
+        roomModelList.forEach(roomModel -> {
             TradeOrderRoomModelDO tradeOrderRoomDO = BeanUtils.toBean(roomModel, TradeOrderRoomModelDO.class);
             tradeOrderRoomDO.setOrderId(orderId);
-            tradeOrderRoomDOList.add(tradeOrderRoomDO);
+            tradeOrderRoomList.add(tradeOrderRoomDO);
         });
-        tradeOrderRoomModelMapper.insertBatch(list);
+        tradeOrderRoomModelMapper.insertBatch(tradeOrderRoomList);
 
         OtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convert(result.getData());
         return CommonResult.success(respVO);

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

@@ -98,11 +98,7 @@ import com.yc.ship.module.trade.service.refund.TradeRefundRepositoryService;
 import com.yc.ship.module.trade.utils.AgencyAuthUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.usermodel.BorderStyle;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.CellStyle;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.ss.util.RegionUtil;
 import org.jetbrains.annotations.NotNull;
@@ -610,7 +606,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ORDER_AUDIT)
     public CommonResult<?> orderAudit(Long orderId, Integer auditStatus) {
         TradeOrderDO tradeOrderDO = tradeOrderMapper.selectById(orderId);
-        if(tradeOrderDO==null){
+        if (tradeOrderDO == null) {
             return CommonResult.error(ORDER_NOT_EXIST);
         }
 
@@ -629,7 +625,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             tradeOrderAuditDO.setOrderNo(tradeOrderDO.getOrderNo());
             tradeOrderAuditMapper.insert(tradeOrderAuditDO);
 
-            if(tradeOrderDO.getAuditStatus() + 1>=tradeOrderDO.getAuditType()){
+            if (tradeOrderDO.getAuditStatus() + 1 >= tradeOrderDO.getAuditType()) {
                 tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
                         .set(TradeOrderDO::getOrderStatus, TradeOrderStatusEnum.UNPAID.getStatus())
                         .set(TradeOrderDO::getAuditStatus, tradeOrderDO.getAuditStatus() + 1)
@@ -639,7 +635,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 Map<String, Object> extMap = new HashMap<>();
                 extMap.put("result", "审核通过");
                 TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.UNPAID.getStatus(), extMap);
-            }else{
+            } else {
                 tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
                         .set(TradeOrderDO::getAuditStatus, tradeOrderDO.getAuditStatus() + 1)
                         .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
@@ -652,7 +648,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         } else {
             //审核 不通过还原到修改前订单
             List<TradeOrderDO> tradeOrderDoList = tradeOrderMapper.queryOrderByLast(tradeOrderDO.getOrderNo());
-            if(tradeOrderDoList!=null && !tradeOrderDoList.isEmpty()){
+            if (tradeOrderDoList != null && !tradeOrderDoList.isEmpty()) {
                 TradeOrderDO lastTradeOrder = tradeOrderDoList.get(0);
                 tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
                         .set(TradeOrderDO::getDeleted, 1)
@@ -687,33 +683,33 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 );
                 tradeOrderCountryMapper.update(new LambdaUpdateWrapper<TradeOrderCountryDO>()
                         .set(TradeOrderCountryDO::getDeleted, 1)
-                        .set(TradeOrderCountryDO::getUpdateTime,  LocalDateTime.now())
+                        .set(TradeOrderCountryDO::getUpdateTime, LocalDateTime.now())
                         .eq(TradeOrderCountryDO::getOrderId, orderId)
                 );
                 tradeOrderRoomModelMapper.update(new LambdaUpdateWrapper<TradeOrderRoomModelDO>()
                         .set(TradeOrderRoomModelDO::getDeleted, 1)
-                        .set(TradeOrderRoomModelDO::getUpdateTime,  LocalDateTime.now())
+                        .set(TradeOrderRoomModelDO::getUpdateTime, LocalDateTime.now())
                         .eq(TradeOrderRoomModelDO::getOrderId, orderId)
                 );
                 tradeOrderFloorMapper.update(new LambdaUpdateWrapper<TradeOrderFloorDO>()
                         .set(TradeOrderFloorDO::getDeleted, 1)
-                        .set(TradeOrderFloorDO::getUpdateTime,  LocalDateTime.now())
+                        .set(TradeOrderFloorDO::getUpdateTime, LocalDateTime.now())
                         .eq(TradeOrderFloorDO::getOrderId, orderId)
                 );
 
                 tradeOrderCountryMapper.update(new LambdaUpdateWrapper<TradeOrderCountryDO>()
                         .set(TradeOrderCountryDO::getDeleted, 0)
-                        .set(TradeOrderCountryDO::getUpdateTime,  LocalDateTime.now())
+                        .set(TradeOrderCountryDO::getUpdateTime, LocalDateTime.now())
                         .eq(TradeOrderCountryDO::getOrderId, lastTradeOrder.getId())
                 );
                 tradeOrderRoomModelMapper.update(new LambdaUpdateWrapper<TradeOrderRoomModelDO>()
                         .set(TradeOrderRoomModelDO::getDeleted, 0)
-                        .set(TradeOrderRoomModelDO::getUpdateTime,  LocalDateTime.now())
+                        .set(TradeOrderRoomModelDO::getUpdateTime, LocalDateTime.now())
                         .eq(TradeOrderRoomModelDO::getOrderId, lastTradeOrder.getId())
                 );
                 tradeOrderFloorMapper.update(new LambdaUpdateWrapper<TradeOrderFloorDO>()
                         .set(TradeOrderFloorDO::getDeleted, 0)
-                        .set(TradeOrderFloorDO::getUpdateTime,  LocalDateTime.now())
+                        .set(TradeOrderFloorDO::getUpdateTime, LocalDateTime.now())
                         .eq(TradeOrderFloorDO::getOrderId, lastTradeOrder.getId())
                 );
 
@@ -1968,6 +1964,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                     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());
@@ -1994,6 +1991,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 for (TradeVistorReqVO tradeVistorReqVO : createVO.getTourist()) {
                     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());
@@ -2062,14 +2060,12 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         tradeOrderTotalDO.setOrderId(IdWorker.getId());
         tradeOrderTotalDO.setOldOrderId(orderId);
         tradeOrderTotalDO.setOtherRemark(summary.getOtherRemark());
-//        tradeOrderTotalDO.setRealMoney(createVO.getRealAmount());
-//        tradeOrderTotalDO.setOtherMoney(createVO.getOtherAmount());
         tradeOrderTotalMapper.insert(tradeOrderTotalDO);
 
         // 创建订单房型数据
         List<TradeOrderRoomModelDO> tradeOrderRoomDOList = new ArrayList<>();
         List<TradeOrderRoomModelVO> roomModelList = createVO.getRoomModelList();
-        roomModelList.stream().forEach(roomModel -> {
+        roomModelList.forEach(roomModel -> {
             TradeOrderRoomModelDO tradeOrderRoomDO = BeanUtils.toBean(roomModel, TradeOrderRoomModelDO.class);
             tradeOrderRoomDO.setOrderId(orderId);
             tradeOrderRoomDOList.add(tradeOrderRoomDO);
@@ -2077,13 +2073,13 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
         int auditType = 0;
         BigDecimal leaderTotalMoney = summary.getLeaderTotalMoney();
-        if(leaderTotalMoney != null && leaderTotalMoney.compareTo(new BigDecimal(0)) > 0)  {
+        if (leaderTotalMoney != null && leaderTotalMoney.compareTo(new BigDecimal(0)) > 0) {
             auditType = 3;
         }
-        if(auditType>0 && createVO.getIsYd()!=1){
+        if (auditType > 0 && createVO.getIsYd() != 1) {
             tradeOrderMapper.update(new UpdateWrapper<TradeOrderDO>().set("audit_type", auditType).set("order_status", TradeOrderStatusEnum.TRANSFER).set("audit_status", 1).eq("id", orderId));
         }
-        if(tradeOrderRoomDOList.size()>0) {
+        if (!tradeOrderRoomDOList.isEmpty()) {
             tradeOrderRoomModelMapper.insertBatch(tradeOrderRoomDOList);
         }
         OtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convert(result.getData());
@@ -2205,6 +2201,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         for (TradeVistorReqVO tradeVistorReqVO : createVO.getTourist()) {
             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());
@@ -2251,6 +2248,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 for (TradeVistorReqVO tradeVistorReqVO : createVO.getTourist()) {
                     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());
@@ -2317,8 +2315,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         shipTradeOrderCreateReqVO.setOldtradeOrderTotalDO(oldTradeOrderTotal);
         TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
 
-        String changedFields1 = com.yc.ship.module.trade.utils.BeanUtils.getChangedFields( oldTradeOrderTotal,tradeOrderTotalDO);
-        System.err.println("changedFields1="+changedFields1);
+        String changedFields1 = com.yc.ship.module.trade.utils.BeanUtils.getChangedFields(oldTradeOrderTotal, tradeOrderTotalDO);
+        System.err.println("changedFields1=" + changedFields1);
 
         shipTradeOrderCreateReqVO.setChangedFields1(changedFields1);
         CommonResult<TradeOrderRespDTO> result = doShipModifyOrder(loginUser, shipTradeOrderCreateReqVO);
@@ -2354,13 +2352,13 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 .eq(TradeOrderRoomModelDO::getOrderId, orderId)
         );
 
-        if(!Objects.equals(shipTradeOrderCreateReqVO.getAmount(), tradeOrderDO.getAmount()) && loginUser.getDistributorId()!=null){
+        if (!Objects.equals(shipTradeOrderCreateReqVO.getAmount(), tradeOrderDO.getAmount()) && loginUser.getDistributorId() != null) {
             auditType = 4;
         }
-        if(!Objects.equals(shipTradeOrderCreateReqVO.getAmount(), tradeOrderDO.getAmount()) && loginUser.getDistributorId()==null){
+        if (!Objects.equals(shipTradeOrderCreateReqVO.getAmount(), tradeOrderDO.getAmount()) && loginUser.getDistributorId() == null) {
             auditType = 3;
         }
-        if(auditType>0 && loginUser.getDistributorId()!=null && createVO.getIsYd()!=1){
+        if (auditType > 0 && loginUser.getDistributorId() != null && createVO.getIsYd() != 1) {
             tradeOrderMapper.update(new UpdateWrapper<TradeOrderDO>().set("audit_type", auditType).set("order_status", TradeOrderStatusEnum.TRANSFER.getStatus()).set("audit_status", 1).eq("id", neworderId));
         }
 
@@ -2401,10 +2399,10 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         List<TradeOrderRoomModelVO> roomModelList = BeanUtils.toBean(roomModelDoList, TradeOrderRoomModelVO.class);
 
         List<Long> roomModelTypeIds = convertList(roomModelList, TradeOrderRoomModelVO::getRoomModelTypeId);
-        List<PriceRoomModelTypeDO> roomModelTypeDOS = priceRoomModelTypeService.getByIds(roomModelTypeIds);
-        Map<Long, PriceRoomModelTypeDO> roomModelTypeDOMap = CollectionUtils.convertMap(roomModelTypeDOS, PriceRoomModelTypeDO::getId);
-        roomModelList.stream().forEach(item -> {
-            PriceRoomModelTypeDO roomModelTypeDO = roomModelTypeDOMap.get(item.getRoomModelTypeId());
+        List<PriceRoomModelTypeDO> roomModelTypes = priceRoomModelTypeService.getByIds(roomModelTypeIds);
+        Map<Long, PriceRoomModelTypeDO> roomModelTypeMap = CollectionUtils.convertMap(roomModelTypes, PriceRoomModelTypeDO::getId);
+        roomModelList.forEach(item -> {
+            PriceRoomModelTypeDO roomModelTypeDO = roomModelTypeMap.get(item.getRoomModelTypeId());
             if (roomModelTypeDO != null) {
                 item.setRoomModelTypeName(roomModelTypeDO.getTypeName());
             }
@@ -2557,7 +2555,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     }
 
 
-
     @Override
     public File createConfirmaction(Long id, Double totalMoney) {
         TradeOrderConfirmationVO orderConfirmation = getOrderConfirmation(id);
@@ -2565,7 +2562,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         String tmpFile = "/tmp/" + orderConfirmation.getId() + ".xlsx";
         ExcelWriter excelWriter = EasyExcel.write(tmpFile).withTemplate(template).build();
         ExcelWriterSheetBuilder excelWriterSheetBuilder = EasyExcelFactory.writerSheet();
-        WriteSheet writeSheet = excelWriterSheetBuilder.registerWriteHandler(new MergeStrategy()).build(); // 需要合并单元格的writeSheet
+        // 需要合并单元格的writeSheet
+        WriteSheet writeSheet = excelWriterSheetBuilder.registerWriteHandler(new MergeStrategy()).build();
         FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
 
         // 订单信息
@@ -2588,7 +2586,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
         String resourceRoute = "宜昌-重庆";
         String resourceRouteEn = "Yichang-Chongqing";
-        if (voyage.getRouteResp() != null && voyage.getRouteResp().getDirection() != null && voyage.getRouteResp().getDirection().intValue() != 1) {
+        if (voyage.getRouteResp() != null && voyage.getRouteResp().getDirection() != null && voyage.getRouteResp().getDirection() != 1) {
             resourceRoute = "重庆-宜昌";
             resourceRouteEn = "Chongqing-Yichang";
         }
@@ -2608,7 +2606,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
                 List<TradeOrderRoomModelBaseVO> roomModelList = item.getRoomModelList();
                 roomModelList.forEach(r -> {
-                    roomModelDes.updateAndGet(v -> new Double((double) (v + r.getUseRoomNum())));
+                    roomModelDes.updateAndGet(v -> (double) (v + r.getUseRoomNum()));
 
                     Map<String, Object> room = new HashMap<>();
                     room.put("roomModelName", r.getRoomModelName() + "(" + r.getFloor() + "F)");
@@ -2642,7 +2640,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             item.put("index", String.valueOf((i + 1)));
             item.put("name", StringUtils.isEmpty(tradeVisitorDO.getName()) ? "" : tradeVisitorDO.getName());
             item.put("nationality", StringUtils.isEmpty(tradeVisitorDO.getNationalityName()) ? "" : tradeVisitorDO.getNationalityName());
-            item.put("gender", (tradeVisitorDO.getGender() == null || tradeVisitorDO.getGender().intValue() == 0) ? "女" : "男");
+            item.put("gender", (tradeVisitorDO.getGender() == null || tradeVisitorDO.getGender() == 0) ? "女" : "男");
             item.put("dob", StringUtils.isEmpty(tradeVisitorDO.getBirthday()) ? "" : tradeVisitorDO.getBirthday());
             item.put("idno", StringUtils.isEmpty(tradeVisitorDO.getCredentialNo()) ? "" : tradeVisitorDO.getCredentialNo());
             tradeVisitorData.add(item);
@@ -2668,7 +2666,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
 
     private String getPersonTypeDes(TradeOrderRoomModelBaseVO roomModel) {
-        List<String> des = new ArrayList();
+        List<String> des = new ArrayList<>();
         int adultNum = (roomModel.getAdultAloneNum() + roomModel.getAdultTakeNum() + roomModel.getAdultPlusNum());
         int childNum = (roomModel.getChildNonTakeNum() + roomModel.getChildTakeNum() + roomModel.getChildPlusNum());
         int babyNum = (roomModel.getBabyNonTakeNum() + roomModel.getBabyTakeNum() + roomModel.getBabyPlusNum());
@@ -2685,7 +2683,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     }
 
     private String getPersonTypeDesEn(TradeOrderRoomModelBaseVO roomModel) {
-        List<String> des = new ArrayList();
+        List<String> des = new ArrayList<>();
         int adultNum = (roomModel.getAdultAloneNum() + roomModel.getAdultTakeNum() + roomModel.getAdultPlusNum());
         int childNum = (roomModel.getChildNonTakeNum() + roomModel.getChildTakeNum() + roomModel.getChildPlusNum());
         int babyNum = (roomModel.getBabyNonTakeNum() + roomModel.getBabyTakeNum() + roomModel.getBabyPlusNum());
@@ -2702,7 +2700,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     }
 
 
-    class MergeStrategy extends AbstractMergeStrategy {
+    static class MergeStrategy extends AbstractMergeStrategy {
 
         @Override
         protected void merge(Sheet sheet, Cell cell, Head head, Integer relativeRowIndex) {
@@ -2717,8 +2715,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             List<CellRangeAddress> list = sheet.getMergedRegions();
             CellStyle cs = cell.getCellStyle();
             cell.setCellStyle(cs);
-            for (int i = 0; i < list.size(); i++) {
-                CellRangeAddress cellRangeAddress = list.get(i);
+            for (CellRangeAddress cellRangeAddress : list) {
                 if (cellRangeAddress.containsRow(preCell.getRowIndex()) && cellRangeAddress.containsColumn(preCell.getColumnIndex())) {
                     int lastColIndex = cellRangeAddress.getLastColumn();
                     int firstColIndex = cellRangeAddress.getFirstColumn();

+ 5 - 1
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeVisitorMapper.xml

@@ -115,7 +115,11 @@
             #{item}
         </foreach>
     </select>
-
+    <select id="queryVisitorByOrderId" resultType="com.yc.ship.module.trade.controller.admin.order.vo.order.TradeVisitorRespVO">
+        SELECT v1.*,t3.name nationalityName FROM trade_visitor v1 INNER JOIN trade_detail v2 ON v1.detail_id = v2.id
+        left join area t3 on  v1.nationality = t3.id
+        WHERE v2.order_id = #{orderId} and  v1.deleted = 0  and v2.deleted = 0 and v2.product_type = 0
+    </select>
 
     <select id="selectVisitorListByDate" resultType="com.yc.ship.module.trade.service.order.bo.TradeVisitorBO">
         select tv.*,td.product_name,td.spec_type,td.use_date,prp.name planName