Browse Source

接站功能

lishiqiang 3 weeks ago
parent
commit
a3661abb5c

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

@@ -9,12 +9,15 @@ import com.yc.ship.module.member.api.address.dto.MemberAddressRespDTO;
 import com.yc.ship.module.product.api.dto.ProductSaleRuleRespDTO;
 import com.yc.ship.module.product.api.dto.ProductSpuRespDTO;
 import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageRespVO;
+import com.yc.ship.module.resource.controller.admin.productRoute.vo.ProductRouteRespVO;
+import com.yc.ship.module.resource.dal.dataobject.route.ResourceRouteDO;
 import com.yc.ship.module.trade.api.dto.TradeOrderPayDTO;
 import com.yc.ship.module.trade.controller.admin.order.vo.market.MarketingRespVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.market.RuleSpecNum;
 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.TradeOrderDeliveryVO;
+import com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO;
 import com.yc.ship.module.trade.dal.dataobject.orderjz.OrderJzDO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -92,6 +95,7 @@ public class TradeOrderRespNewVO {
 
     @Schema(description = "游轮航次信息")
     private VoyageRespVO voyage;
+    private ResourceRouteDO resourceRouteDO;
 
     /**
      * 订单金额
@@ -138,6 +142,9 @@ public class TradeOrderRespNewVO {
     @Schema(description = "门票信息")
     private List<TradeDetailRespVO> tradeDetailList;
 
+    @Schema(description = "游客信息")
+    private List<TradeVisitorDO> tradeVisitorList;
+
     @Schema(description = "接站信息")
     private OrderJzDO orderJz;
 

+ 2 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/vo/OrderJzDetailSaveReqVO.java

@@ -19,6 +19,7 @@ public class OrderJzDetailSaveReqVO {
     private Long jzId;
 
     private String batchNo;
+    private String idCard;
 
     private String arriveTime;
 
@@ -37,5 +38,5 @@ public class OrderJzDetailSaveReqVO {
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private Integer status;
 
-    private String oid; // 订单ID
+    private String oid;
 }

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

@@ -100,4 +100,12 @@ public class TradeVisitorDO extends TenantBaseDO {
 
     private String roomId;
     private String cohabitation;
+    @TableField(exist = false)
+    private String jzTime;
+    @TableField(exist = false)
+    private String jzPhone;
+    @TableField(exist = false)
+    private String jzCard;
+    @TableField(exist = false)
+    private String jzAddress;
 }

+ 3 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/orderjzdetail/OrderJzDetailDO.java

@@ -38,7 +38,7 @@ public class OrderJzDetailDO extends BaseDO {
     /**
      * 抵达时间
      */
-    private LocalDateTime arriveTime;
+    private String arriveTime;
     /**
      * 接站地址
      */
@@ -47,6 +47,8 @@ public class OrderJzDetailDO extends BaseDO {
      * 接站联系人
      */
     private String name;
+    private String idCard;
+    private Long tenantId;
     /**
      * 接站联系电话
      */

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

@@ -35,4 +35,8 @@ public interface TradeVisitorMapper extends BaseMapperX<TradeVisitorDO> {
     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);
+
+
+    List<TradeVisitorDO> selectShipVisitor(@Param("orderId") Long orderId);
+
 }

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

@@ -795,6 +795,9 @@ public class TradeOrderServiceImpl implements TradeOrderService {
             //订单需要审核
             tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.TRANSFER.getStatus());
         }
+        if(tradeOrderDO.getSellMethod() == 3){
+            tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.YD.getStatus());
+        }
         OrderJzDO orderJzDO = new OrderJzDO();
         orderJzDO.setId(IdWorker.getId());
         orderJzDO.setOrderId(tradeOrderDO.getId());

+ 6 - 7
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDetailServiceImpl.java

@@ -50,6 +50,8 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
   public Long createOrderJzDetail(OrderJzDetailSaveReqVO createReqVO) {
     // 插入
     OrderJzDetailDO orderJzDetail = BeanUtils.toBean(createReqVO, OrderJzDetailDO.class);
+    orderJzDetail.setTenantId(1L);
+    orderJzDetail.setIdCard(createReqVO.getIdCard());
     orderJzDetailMapper.insert(orderJzDetail);
     // 返回
     return orderJzDetail.getId();
@@ -88,7 +90,7 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
     // 先删除上一次手机号录入的数据
     for (OrderJzDetailSaveReqVO orderJzDetailSaveReqVO : createReqVOList) {
       orderJzDetailSaveReqVO.setJzId(orderJzDO.getId());
-      deleteDetailList(orderJzDetailSaveReqVO.getJzId(), orderJzDetailSaveReqVO.getPhone());
+      deleteDetailList(orderJzDetailSaveReqVO.getJzId(), orderJzDetailSaveReqVO.getIdCard());
     }
     for (OrderJzDetailSaveReqVO orderJzDetailSaveReqVO : createReqVOList) {
       orderJzDetailSaveReqVO.setBatchNo(batchNo);
@@ -98,19 +100,16 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
     return count;
   }
 
-  private void deleteDetailList(Long jzId, String phone) {
+  private void deleteDetailList(Long jzId, String idCard) {
     LambdaQueryWrapper<OrderJzDetailDO> w1 = new LambdaQueryWrapper<>();
     w1.eq(OrderJzDetailDO::getJzId, jzId);
-    w1.eq(OrderJzDetailDO::getPhone, phone);
+    w1.eq(OrderJzDetailDO::getIdCard, idCard);
     List<OrderJzDetailDO> detailList = orderJzDetailMapper.selectList(w1);
     if (detailList == null || detailList.isEmpty()) {
       return;
     }
     for (OrderJzDetailDO orderJzDetailDO : detailList) {
-      // 删除同批次的
-      LambdaQueryWrapper<OrderJzDetailDO> w2 = new LambdaQueryWrapper<>();
-      w2.eq(OrderJzDetailDO::getBatchNo, orderJzDetailDO.getBatchNo());
-      orderJzDetailMapper.delete(w2);
+      orderJzDetailMapper.deleteById(orderJzDetailDO.getId());
     }
   }
 

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

@@ -39,7 +39,9 @@ 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.dal.dataobject.route.ResourceRouteDO;
 import com.yc.ship.module.resource.dal.dataobject.ship.ResourceShipDO;
+import com.yc.ship.module.resource.dal.mysql.route.ResourceRouteMapper;
 import com.yc.ship.module.resource.service.ship.ResourceShipService;
 import com.yc.ship.module.system.api.dict.DictDataApi;
 import com.yc.ship.module.system.api.dict.dto.DictDataRespDTO;
@@ -188,6 +190,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @Resource
     private VoyageService voyageService;
 
+    @Resource
+    private ResourceRouteMapper resourceRouteMapper;
+
     @Resource
     private ResourceShipService shipService;
 
@@ -2563,6 +2568,10 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         //获取订单门票信息
         List<TradeDetailRespVO> detailList = tradeDetailMapper.getOrderIdDetail(tradeOrderDO.getId());
         orderRespNewVO.setTradeDetailList(detailList);
+
+        List<TradeVisitorDO> visitorDOList = tradeVisitorMapper.selectShipVisitor(tradeOrderDO.getId());
+        orderRespNewVO.setTradeVisitorList(visitorDOList);
+
         //设置订单汇总数据
         TradeOrderTotalDO tradeOrderTotalDO = tradeOrderTotalMapper.selectOne(TradeOrderTotalDO::getOrderId, id);
         TradeOrderTotalVO summary = BeanUtils.toBean(tradeOrderTotalDO, TradeOrderTotalVO.class);
@@ -2571,6 +2580,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         //设置游轮航次信息
         VoyageDO voyageDO = voyageService.getVoyage(tradeOrderDO.getVoyageId());
         orderRespNewVO.setVoyage(BeanUtils.toBean(voyageDO, VoyageRespVO.class));
+        ResourceRouteDO resourceRouteDO = resourceRouteMapper.selectById(voyageDO.getRouteId());
+        orderRespNewVO.setResourceRouteDO(resourceRouteDO);
         //设置游轮名称
         ResourceShipDO ship = shipService.getShip(tradeOrderDO.getShipId());
         orderRespNewVO.setShipName(ship.getName());

+ 7 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeVisitorMapper.xml

@@ -90,6 +90,13 @@
         </where>
     </select>
 
+    <select id="selectShipVisitor"
+            resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO">
+        select v.*,t3.id_card jzCard,t3.arrive_time jzTime,t3.phone jzPhone,t3.address jzAddress from trade_detail t inner join trade_visitor v on v.detail_id = t.id
+        left join trade_order_jz_detail t3 on v.credential_no = t3.id_card and t3.deleted =0
+        where t.order_id = #{orderId} and v.deleted =0 and t.product_type =0 and t.deleted =0
+        group by v.id
+    </select>
     <select id="queryRelatedVisitor"
             resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO">
         SELECT v1.*, v2.id associatedVisitorId