Selaa lähdekoodia

后台核销操作,订单详情游客信息展示

lishiqiang 3 viikkoa sitten
vanhempi
commit
a2a79bd90f
17 muutettua tiedostoa jossa 187 lisäystä ja 359 poistoa
  1. 1 1
      ship-module-resource/ship-module-resource-biz/src/main/resources/mapper/machine/ScenicMachineMapper.xml
  2. 104 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/TradeCheckController.java
  3. 2 29
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/check/TradeCheckReqVO.java
  4. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/ShipTradeOrderCreateReqVO.java
  5. 0 4
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeDetailRespVO.java
  6. 51 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderRespNewVO.java
  7. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeVistorReqVO.java
  8. 1 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/app/order/CheckController.java
  9. 0 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/convert/order/TradeOrderConvert.java
  10. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeVisitorDO.java
  11. 0 5
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/framework/mq/TradeMqReceiver.java
  12. 1 198
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeCheckHandleServiceImpl.java
  13. 5 30
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeCheckServiceImpl.java
  14. 0 7
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java
  15. 17 25
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java
  16. 0 48
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/pda/PdaServiceImpl.java
  17. 2 8
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeDetailMapper.xml

+ 1 - 1
ship-module-resource/ship-module-resource-biz/src/main/resources/mapper/machine/ScenicMachineMapper.xml

@@ -21,7 +21,7 @@
               and m.machine_type = #{machineType}
           </if>
           and m.machine_id = #{machineId}
-          and m.tenant_id = #{tenantId} limit 1
+          limit 1
     </select>
 
 </mapper>

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

@@ -0,0 +1,104 @@
+package com.yc.ship.module.trade.controller.admin.order;
+
+import com.yc.ship.framework.common.pojo.CommonResult;
+import com.yc.ship.framework.excel.core.util.ExcelUtils;
+import com.yc.ship.framework.operatelog.core.annotations.OperateLog;
+import com.yc.ship.module.trade.controller.admin.order.vo.check.*;
+import com.yc.ship.module.trade.enums.CheckTypeEnum;
+import com.yc.ship.module.trade.framework.annotation.PlatTenantEnv;
+import com.yc.ship.module.trade.service.order.TradeCheckService;
+import com.yc.ship.module.trade.service.pda.PdaService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.io.IOException;
+import java.util.List;
+
+import static com.yc.ship.framework.operatelog.core.enums.OperateTypeEnum.*;
+
+
+@Slf4j
+@Validated
+@RequestMapping("/trade")
+@RestController
+@Tag(name = "核销服务(带token)")
+public class TradeCheckController {
+    @Resource
+    private PdaService pdaService;
+    @Resource
+    private TradeCheckService tradeCheckService;
+
+    @PostMapping("/check/system")
+    @Operation(summary = "系统核销")
+    @OperateLog(type = CHECK)
+    public CommonResult<List<TradeCheckRespVO>> check(@Valid @RequestBody TradeCheckReqVO checkReqVO) {
+        checkReqVO.setType(CheckTypeEnum.System.getType());
+        return tradeCheckService.checkCommon(checkReqVO);
+    }
+
+    @PostMapping("/check/pda")
+    @Operation(summary = "PDA核销(MachineId、OperatorId 必传)")
+    @OperateLog(type = CHECK)
+    public CommonResult<List<TradeCheckRespVO>> checkPDA(@Valid @RequestBody TradeCheckReqVO checkReqVO) {
+        checkReqVO.setType(CheckTypeEnum.PDA.getType());
+        return tradeCheckService.checkPda(checkReqVO);
+    }
+
+    @PostMapping("/check/applet")
+    @Operation(summary = "小程序核销(导游)")
+    @OperateLog(type = CHECK)
+    public CommonResult<List<TradeCheckRespVO>> checkApplet(@Valid @RequestBody TradeCheckReqVO checkReqVO) {
+        checkReqVO.setType(CheckTypeEnum.Applet.getType());
+        return tradeCheckService.checkApplet(checkReqVO);
+    }
+
+    @PostMapping("/check/other")
+    @Operation(summary = "非平台产品核销(导游核销旅行社订单)")
+    @OperateLog(type = CHECK)
+    public CommonResult<List<TradeCheckRespVO>> checkOther(@Valid @RequestBody TradeCheckReqVO checkReqVO) {
+        checkReqVO.setType(CheckTypeEnum.Applet.getType());
+        return tradeCheckService.checkOther(checkReqVO);
+    }
+
+    @PostMapping("/check-record/page")
+    @Operation(summary = "核销记录列表")
+    @OperateLog(type = CHECK)
+    public CommonResult<?> page(@Valid @RequestBody TradeCheckPageReqVO pageReqVO) {
+        return tradeCheckService.querySimpleCheckPage(pageReqVO, true);
+    }
+
+    @GetMapping("/exportCheckRecordList")
+    @Operation(summary = "导出核销列表 Excel")
+    @OperateLog(type = EXPORT,enable = false)
+    @PlatTenantEnv
+    public void exportCheckRecordList(@Valid TradeCheckPageReqVO pageReqVO,
+                                     HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(10000);
+        List<CheckRespVO> list = tradeCheckService.querySimpleCheckList(pageReqVO, false).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "核销列表.xls", "数据", CheckRespVO.class, list);
+    }
+
+
+
+    @PostMapping("/check/query-order-info")
+    @Operation(summary = "查询订单信息")
+    @OperateLog(type = API)
+    public CommonResult<?> queryOrderInfo( @Valid @RequestBody CheckOrderPageVO reqVO){
+        return pdaService.queryOrderWithoutSiteNum(reqVO);
+    }
+
+    @PostMapping("/check/queryGuideOrderInfo")
+    @Operation(summary = "查询订单信息")
+    @OperateLog(type = API)
+    public CommonResult<?> queryGuideOrderInfo( @Valid @RequestBody CheckOrderPageVO reqVO){
+        return pdaService.queryOrderGuideWithoutSiteNum(reqVO);
+    }
+
+}

+ 2 - 29
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/check/TradeCheckReqVO.java

@@ -15,7 +15,7 @@ public class TradeCheckReqVO {
 
     @NotNull(message = "核销内容类型不能为空")
     @Schema(description = "核销内容类型 0凭证码 1订单号 2证件号 3子票 4其他", example = "1")
-    @IntEnum(value = CheckCodeTypeEnum.class, message = "核销内容类型错误")
+//    @IntEnum(value = CheckCodeTypeEnum.class, message = "核销内容类型错误")
     private Integer codeType;
 
     @NotEmpty(message = "核销内容不能为空")
@@ -23,15 +23,12 @@ public class TradeCheckReqVO {
     private String checkCodes;
 
     @Schema(description = "核销类型:0闸机 1后台 2PDA 3小程序 4供应商 5定时任务 6人工通道 7单资源核销 8闸机预检", example = "1")
-    @IntEnum(value = CheckTypeEnum.class, message = "核销类型错误")
+//    @IntEnum(value = CheckTypeEnum.class, message = "核销类型错误")
     private Integer type;
 
     @Schema(description = "设备id", example = "007")
     private String machineId;
 
-    @Schema(description = "供应商id", example = "007")
-    private Long supplierId;
-
     @Schema(description = "设备名称")
     private String machineName;
 
@@ -43,35 +40,11 @@ public class TradeCheckReqVO {
     @Schema(description = "是否预检(默认0核销,1不核销)", example = "0")
     private Integer isPreCheck = 0;
 
-    @Schema(description = "航次/班次计调id(pda需要)", example = "007")
-    private String dispatchId;
 
     @Schema(description = "通道id(核销类型为0闸机/2PDA 需要)")
     private Long channelId;
 
-    @Schema(description = "租户id(核销类型为0闸机/2PDA 需要)", example = "170")
-    private Long tenantId;
-
-    @Schema(description = "基础产品id(小程序 需要)")
-    private Long productBaseId;
-
     @Schema(description = "点位Id(PDA 需要)")
     private Long pointId;
 
-    @Override
-    public int hashCode() {
-        int result = codeType.hashCode();
-        result = 31 * result + (this.checkCodes != null ? this.checkCodes.hashCode() : 0);
-        result = 31 * result + (this.productBaseId != null ? this.productBaseId.hashCode() : 0);
-        result = 31 * result + (this.type != null ? this.type.hashCode() : 0);
-        result = 31 * result + (this.machineId != null ? this.machineId.hashCode() : 0);
-        result = 31 * result + (this.machineName != null ? this.machineName.hashCode() : 0);
-        result = 31 * result + (this.operatorId != null ? this.operatorId.hashCode() : 0);
-        result = 31 * result + (this.operatorName != null ? this.operatorName.hashCode() : 0);
-        result = 31 * result + (this.dispatchId != null ? this.dispatchId.hashCode() : 0);
-        result = 31 * result + (this.channelId != null ? this.channelId.hashCode() : 0);
-        result = 31 * result + (this.tenantId != null ? this.tenantId.hashCode() : 0);
-        return result;
-    }
-
 }

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

@@ -240,7 +240,7 @@ public class ShipTradeOrderCreateReqVO implements Serializable {
         private Integer isInsure;
 
         @Schema(description = "房间id", example = "")
-        private Long roomId;
+        private String roomId;
     }
 
 

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

@@ -177,10 +177,6 @@ public class TradeDetailRespVO {
     @Schema(description = "游客信息")
     private List<TradeVisitorDO> visitors;
 
-    @Schema(description = "子票集合")
-    private List<DetailBaseRespVO> detailBaseList;
-
-
 
     @Schema(description = "财务标签")
     private int productTag;

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

@@ -15,6 +15,7 @@ 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.orderjz.OrderJzDO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -47,6 +48,23 @@ public class TradeOrderRespNewVO {
     @Schema(description = "支付状态", example = "1")
     private Integer payStatus;
 
+    @Schema(description = "支付方式", example = "2")
+    @ExcelProperty(value = "支付方式", converter = DictConvert.class)
+    @DictFormat("payment_type")
+    private Integer paymentType;
+
+    @Schema(description = "支付方式", example = "2")
+    private String paymentTypeName;
+
+    @Schema(description = "支付时间")
+//    @ExcelProperty("支付时间")
+    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
+    private LocalDateTime paymentDate;
+
+    @Schema(description = "备注")
+    @ExcelProperty("备注")
+    private String remark;
+
     @Schema(description = "销售来源", example = "31758")
     private String sourceId;
 
@@ -90,5 +108,38 @@ public class TradeOrderRespNewVO {
     @Schema(description = "更新时间")
     private LocalDateTime updateTime;
 
+    @Schema(description = "联系人姓名")
+    @ExcelProperty("联系人姓名")
+    private String contactName;
+
+    @Schema(description = "手机号")
+    @ExcelProperty("手机号")
+    private String mobile;
+
+    @Schema(description = "门店ID")
+    private Long storeId;
+
+    @Schema(description = "门店名称")
+    @ExcelProperty("门店名称")
+    private String storeName;
+
+    @Schema(description = "开票标识:0-未开票,1-开票成功,2-开票失败,3-已开票")
+    private Integer isInvoice;
+
+    @Schema(description = "发票下载")
+    private String invoiceUrl;
+
+    @Schema(description = "保险")
+    private List<InsuranceDO> insuranceList;
+
+    @Schema(description = "合同")
+    private List<ContractDO> contractList;
+
+    @Schema(description = "门票信息")
+    private List<TradeDetailRespVO> tradeDetailList;
+
+    @Schema(description = "接站信息")
+    private OrderJzDO orderJz;
+
 
 }

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeVistorReqVO.java

@@ -44,5 +44,5 @@ public class TradeVistorReqVO {
     private Integer chongqing;
 
     @Schema(description = "房间ID")
-    private Long roomId;
+    private String roomId;
 }

+ 1 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/app/order/CheckController.java

@@ -31,6 +31,7 @@ import static com.yc.ship.framework.operatelog.core.enums.OperateTypeEnum.CHECK;
 
 @Slf4j
 @Validated
+@RequestMapping("/trade")
 @RestController
 @Tag(name = "设备核销服务")
 public class CheckController {

+ 0 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/convert/order/TradeOrderConvert.java

@@ -193,7 +193,6 @@ public interface TradeOrderConvert {
     default List<TradeDetailRespVO> convert(List<TradeDetailBO> tradeDetailList) {
         return CollectionUtils.convertList(tradeDetailList, item -> {
             TradeDetailRespVO tradeDetailRespVO = convert(item);
-            tradeDetailRespVO.setDetailBaseList(convertBaseList(item.getTradeDetailBaseList()));
             return tradeDetailRespVO;
         });
     }

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

@@ -92,5 +92,5 @@ public class TradeVisitorDO extends TenantBaseDO {
     @Schema(description = "是否重庆中转 0:否 1是")
     private Integer cqzz;
 
-    private Long roomId;
+    private String roomId;
 }

+ 0 - 5
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/framework/mq/TradeMqReceiver.java

@@ -285,11 +285,6 @@ public class TradeMqReceiver {
                     log.error("检票成功处理异常",e);
                 }
             });
-            try {
-                tradeOrderRepositoryService.updateStatusAfterAllCheck(orderId);
-            }catch (Exception e){
-                log.error("更新门票全部核销异常",e);
-            }
             tradeOrderRepositoryService.updateOrderStatusAfterCheck(orderId);
             channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
         } catch (Exception e) {

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

@@ -132,12 +132,6 @@ public class TradeCheckHandleServiceImpl implements TradeCheckHandleService {
         } else {
             List<TradeDetailBaseDO> tradeDetailBaseList = tradeDetailBaseMapper.selectProductBaseList(tradeDetail.getId(), checkReqVO.getChannelId());
             Assert.isTrue(!tradeDetailBaseList.isEmpty(), () -> exception(NO_SUB_TICKET_ERROR));
-            // 核销指定子票(基础产品)
-            if (!Objects.isNull(checkReqVO.getProductBaseId())) {
-                tradeDetailBaseList = tradeDetailBaseList.stream()
-                        .filter(item -> item.getProductBaseId().equals(checkReqVO.getProductBaseId()))
-                        .collect(Collectors.toList());
-            }
             List<TradeCheckRespVO> list = new ArrayList<>();
 
             for (TradeDetailBaseDO item : tradeDetailBaseList) {
@@ -228,9 +222,6 @@ public class TradeCheckHandleServiceImpl implements TradeCheckHandleService {
                 }
             }
         }
-        if (detailDO == null) {
-            detailDO = tradeDetailMapper.getOneByVoucherCodePlat(checkCode);
-        }
         if (detailDO == null) {
             TenantContextHolder.setIgnore(true);
             detailDO = tradeDetailMapper.getOneByVoucherCode(checkCode);
@@ -239,11 +230,6 @@ public class TradeCheckHandleServiceImpl implements TradeCheckHandleService {
         if (detailDO == null) {
             throw exception(TRADE_DETAIL_NOT_EXIST);
         }
-        TradeDetailBaseDO tradeDetailBase = null;
-        if (checkReqVO != null &&  checkReqVO.getProductBaseId() != null) {
-            // 门票核销带子票id的情况,带子票信息核销
-            tradeDetailBase = tradeDetailBaseMapper.selectById(checkReqVO.getProductBaseId());
-        }
 
         TradeCheckRespVO respVO = TradeCheckRespVO.builder()
                 .targetType(CheckTargetTypeEnum.Voucher.getType())
@@ -251,27 +237,10 @@ public class TradeCheckHandleServiceImpl implements TradeCheckHandleService {
                 .targetNo(detailDO.getVoucherCode())
                 .isSuccess(0).isPreSuccess(0)
                 .build();
-//        String detailKey = String.format(UPDATE_ORDER_LOCK, detailDO.getOrderId());
-//        RLock lock = redissonClient.getLock(detailKey);
         try {
             if (checkReqVO != null && checkReqVO.getType() != null && checkReqVO.getType() == 0 && checkReqVO.getCodeType() == 0) {
                 throw exception(INVALID_TYPE_DEVICE);
             }
-            if(checkReqVO != null && checkReqVO.getType()!= null && checkReqVO.getType()!=5) {
-                checkVoucherVerify(detailDO, checkReqVO, tradeDetailBase);
-            }
-            String needConfirmSpec = configApi.getPlatformConfigValueByKey("need_confirm_spec");
-            if (!Objects.isNull(needConfirmSpec) && !confirm && Objects.equals(checkReqVO.getType(), CheckTypeEnum.Gate.getType())&&  !Objects.equals(checkReqVO.getType(), CheckTypeEnum.Ren.getType())) {
-                // 闸机核销需要确认卡的规格
-                List<String> specList = Arrays.asList(needConfirmSpec.split(","));
-                if (specList.contains(detailDO.getSpecType()) ) {
-                    respVO.setMsg("需要确认卡");
-                    RBucket<Object> bucket = redissonClient.getBucket(String.format(TO_CONFIRM_SPEC, checkReqVO.getMachineId()));
-                    checkReqVO.setCheckCodes(checkCode);
-                    bucket.set(JSONUtil.toJsonStr(checkReqVO), 5, TimeUnit.MINUTES);
-                    return respVO;
-                }
-            }
             // 核销操作记录
             Integer statusOld = 7;
             Integer statusNew = 7;
@@ -303,19 +272,6 @@ public class TradeCheckHandleServiceImpl implements TradeCheckHandleService {
                     detailLog.setVoucherCode(detailDO.getVoucherCode());
                     detailLog.setOperatorName("闸机预检");
                     tradeCheckMapper.insert(detailLog);
-
-                    // 子票核销记录
-                    TradeCheckDetailDO checkDetailLog = BeanUtil.toBean(checkReqVO, TradeCheckDetailDO.class);
-                    if (!Objects.isNull(checkReqVO.getDispatchId())) {
-                        checkDetailLog.setDispatchBatchId(Long.valueOf(checkReqVO.getDispatchId()));
-                    }
-                    checkDetailLog.setDetailBaseId(detailDO.getId());
-                    checkDetailLog.setDetailId(detailDO.getId());
-                    checkDetailLog.setType(CheckTypeEnum.GatePreCheck.getType());
-                    checkDetailLog.setOriginalStatus(detailDO.getVoucherStatus());
-                    checkDetailLog.setCheckId(detailLog.getId());
-                    checkDetailLog.setOperatorName("闸机预检");
-                    tradeCheckDetailMapper.insert(checkDetailLog);
                 }catch (Exception e){
                     log.error("预检存检票记录失败", e);
                 }
@@ -330,18 +286,6 @@ public class TradeCheckHandleServiceImpl implements TradeCheckHandleService {
                 if (respVO.getIsSuccess() == 1) {
                     tradePublishUtils.checkVoucherSuccessMsg(detailDO.getId().toString());
                     tradePublishUtils.updateOrderStatusMsg(detailDO.getOrderId()+"");
-//                String s = updateOrderStatus(detailDO.getOrderId());
-//                String[] split = s.split(":");
-//                statusNew = Integer.valueOf(split[1]);
-//                if (lock.tryLock(30, 60, TimeUnit.SECONDS)) {
-//                    String s = updateOrderStatus(detailDO.getOrderId());
-//                    String[] split = s.split(":");
-//                    statusOld = Integer.valueOf(split[0]);
-//                    statusNew = Integer.valueOf(split[1]);
-//                } else {
-//                    log.error("未获取到锁,核销(组合产品)门票失败 detailId:{}", detailDO.getId());
-//                    throw exception(CHECK_PRODUCT_LOCK_ERROR, detailDO.getId());
-//                }
                 }
                 Long s5 = System.currentTimeMillis();
                 log.error("{}检票时间5:{}",detailDO.getVoucherCode(), s5-s4);
@@ -353,11 +297,6 @@ public class TradeCheckHandleServiceImpl implements TradeCheckHandleService {
             log.error("核销门票(组合产品)voucherCode:{}: {}", detailDO.getVoucherCode(), e.toString());
             respVO.setMsg(e.getMessage());
         }
-//        finally {
-//            if (lock.isHeldByCurrentThread() && lock.isLocked()) {
-//                lock.unlock();
-//            }
-//        }
         return respVO;
     }
 
@@ -591,124 +530,14 @@ public class TradeCheckHandleServiceImpl implements TradeCheckHandleService {
      * @param tradeDetailBase 子票(基础产品)
      */
     private void updateVoucherStatus(TradeDetailDO tradeDetail, TradeCheckReqVO checkReqVO, TradeDetailBaseDO tradeDetailBase) {
-        List<TradeDetailBaseDO> tradeDetailBaseList = tradeDetailBaseMapper.selectProductBaseList(tradeDetail.getId(), checkReqVO.getChannelId());
-        // 核销指定子票(基础产品)
-        if (tradeDetailBase != null) {
-            checkReqVO.setProductBaseId(tradeDetailBase.getProductBaseId());
-        }
-        if (!Objects.isNull(checkReqVO.getProductBaseId())) {
-            tradeDetailBaseList = tradeDetailBaseList.stream()
-                    .filter(item -> item.getProductBaseId().equals(checkReqVO.getProductBaseId()))
-                    .collect(Collectors.toList());
-        }
-        if (!Objects.isNull(checkReqVO.getSupplierId())) {
-            tradeDetailBaseList = tradeDetailBaseList.stream()
-                    .filter(item -> item.getSupplierId().equals(checkReqVO.getSupplierId()))
-                    .collect(Collectors.toList());
-        }
-        Set<Long> baseIdSet = tradeDetailBaseList.stream().map(TradeDetailBaseDO::getProductBaseId).collect(Collectors.toSet());
-
-        if(CollUtil.isEmpty(baseIdSet)){
-            throw exception(500,"无有效子票");
-        }
-        // 旅行社相关门票及子票
-        TenantContextHolder.setIgnore(true);
-        TradeDetailDO otcTradeDetail = tradeDetailMapper.selectTravelTradeDetail(tradeDetail.getVoucherCode());
-        List<TradeDetailBaseDO> otcTradeDetailBaseList = tradeDetailBaseMapper
-                .selectList(new LambdaQueryWrapper<TradeDetailBaseDO>()
-                        .eq(TradeDetailBaseDO::getSupplierVoucherCode, tradeDetail.getVoucherCode())
-                        .in(TradeDetailBaseDO::getProductBaseId, baseIdSet));
-        TenantContextHolder.setIgnore(false);
         // 门票核销记录
         TradeCheckDO detailLog = BeanUtil.toBean(checkReqVO, TradeCheckDO.class);
         detailLog.setOrderId(tradeDetail.getOrderId());
         detailLog.setDetailId(tradeDetail.getId());
-        if (!Objects.isNull(checkReqVO.getSupplierId())) {
-            detailLog.setMachineId(checkReqVO.getSupplierId()+"");
-        }
         detailLog.setOriginalStatus(tradeDetail.getVoucherStatus());
         detailLog.setVoucherCode(tradeDetail.getVoucherCode());
         tradeCheckMapper.insert(detailLog);
-
-        List<TradeDetailBaseDO> allDetailBaseList = tradeDetailBaseMapper.selectList(TradeDetailBaseDO::getDetailId, tradeDetail.getId());
-        long totalNum = allDetailBaseList.size();
-        long checkedNum = allDetailBaseList.stream().filter(item -> VoucherStatusEnum.VERIFIED.getStatus().equals(item.getUseStatus())).count();
-        StringJoiner detailBaseNames = new StringJoiner("、");
-        for (TradeDetailBaseDO item : tradeDetailBaseList) {
-            checkedNum += 1;
-            // 子票核销记录
-            TradeCheckDetailDO checkDetailLog = BeanUtil.toBean(checkReqVO, TradeCheckDetailDO.class);
-            if (!Objects.isNull(checkReqVO.getDispatchId())) {
-                checkDetailLog.setDispatchBatchId(Long.valueOf(checkReqVO.getDispatchId()));
-            }
-            checkDetailLog.setDetailBaseId(item.getId());
-            checkDetailLog.setDetailId(item.getDetailId());
-            checkDetailLog.setOriginalStatus(item.getUseStatus());
-            checkDetailLog.setCheckId(detailLog.getId());
-            tradeCheckDetailMapper.insert(checkDetailLog);
-
-            item.setUseStatus(VoucherStatusEnum.VERIFIED.getStatus());
-            item.setCheckStatus(UseStatusEnum.ENABLE.getStatus());
-            item.setVerifyTime(LocalDateTime.now());
-            if (item.getUsageCount() == null) {
-                item.setUsageCount(1);
-            } else {
-                item.setUsageCount(item.getUsageCount() + 1);
-            }
-            tradeDetailBaseMapper.updateById(item);
-            detailBaseNames.add(item.getProductBaseName());
-
-            try {
-                if (StringUtils.isNotBlank(item.getSupplierVoucherCode())) {
-                    //供应商订单核销
-                    TenantContextHolder.setIgnore(true);
-                    int num = tradeSupplierOrderMapper.selectSupplierOrderNoCheckCount(item.getPlatSupplierOrderId());
-                    Integer status = num == 0 ? TradeOrderStatusEnum.ALL_CHECK.getStatus() : TradeOrderStatusEnum.PART_CHECK.getStatus();
-                    tradeSupplierOrderMapper.update(new LambdaUpdateWrapper<TradeSupplierOrderDO>()
-                            .set(TradeSupplierOrderDO::getOrderStatus, status)
-                            .eq(TradeSupplierOrderDO::getOrderId, item.getOrderId())
-                            .ne(TradeSupplierOrderDO::getOrderStatus, status)
-                    );
-                    TenantContextHolder.setIgnore(false);
-                }
-            }catch (Exception e){
-                log.error(item.getSupplierVoucherCode()+"供应商订单核销异常",e);
-            }
-
-        }
-        tradeDetail.setCheckedDetailBaseNames(detailBaseNames.toString());
-        int status = checkedNum>=totalNum ? VoucherStatusEnum.VERIFIED.getStatus() : VoucherStatusEnum.PART_VERIFIED.getStatus();
-        checkVoucherStatus(tradeDetail, status);
-
-        // 修改旅行社门票及子票状态
-        if (otcTradeDetail != null && !otcTradeDetailBaseList.isEmpty()) {
-            TenantUtils.execute(otcTradeDetail.getTenantId(), ()-> {
-                for (TradeDetailBaseDO item : otcTradeDetailBaseList) {
-                    // 子票核销记录
-                    TradeCheckDetailDO checkDetailLog = BeanUtil.toBean(checkReqVO, TradeCheckDetailDO.class);
-                    if (!Objects.isNull(checkReqVO.getDispatchId())) {
-                        checkDetailLog.setDispatchBatchId(Long.valueOf(checkReqVO.getDispatchId()));
-                    }
-                    checkDetailLog.setDetailBaseId(item.getId());
-                    checkDetailLog.setDetailId(item.getDetailId());
-                    checkDetailLog.setOriginalStatus(item.getUseStatus());
-                    checkDetailLog.setCheckId(detailLog.getId());
-                    tradeCheckDetailMapper.insert(checkDetailLog);
-
-                    item.setUseStatus(VoucherStatusEnum.VERIFIED.getStatus());
-                    item.setCheckStatus(UseStatusEnum.ENABLE.getStatus());
-                    item.setVerifyTime(LocalDateTime.now());
-                    if (item.getUsageCount() == null) {
-                        item.setUsageCount(1);
-                    } else {
-                        item.setUsageCount(item.getUsageCount() + 1);
-                    }
-                    tradeDetailBaseMapper.updateById(item);
-                }
-                checkVoucherStatus(otcTradeDetail, status);
-                updateOrderStatus(otcTradeDetail.getOrderId());
-            });
-        }
+        checkVoucherStatus(tradeDetail, VoucherStatusEnum.VERIFIED.getStatus());
     }
     /**
      * 判断是否修改订单状态
@@ -764,9 +593,6 @@ public class TradeCheckHandleServiceImpl implements TradeCheckHandleService {
      * @param checkReqVO      记录
      */
     private void updateVoucherStatusWithSelfBuilt(TradeDetailDO tradeDetail, TradeCheckReqVO checkReqVO) {
-        List<TradeDetailBaseDO> tradeDetailBaseList = tradeDetailBaseMapper.selectList(TradeDetailBaseDO::getDetailId, tradeDetail.getId());
-        // 过滤已核销子票
-        tradeDetailBaseList = tradeDetailBaseList.stream().filter(item -> item.getCheckStatus() == 0).collect(Collectors.toList());
         // 门票核销记录
         TradeCheckDO detailLog = BeanUtil.toBean(checkReqVO, TradeCheckDO.class);
         detailLog.setOrderId(tradeDetail.getOrderId());
@@ -774,29 +600,6 @@ public class TradeCheckHandleServiceImpl implements TradeCheckHandleService {
         detailLog.setOriginalStatus(tradeDetail.getVoucherStatus());
         detailLog.setVoucherCode(tradeDetail.getVoucherCode());
         tradeCheckMapper.insert(detailLog);
-        // 核销指定子票(基础产品)
-        if (!Objects.isNull(checkReqVO.getProductBaseId())) {
-            tradeDetailBaseList = tradeDetailBaseList.stream()
-                    .filter(item -> item.getProductBaseId().equals(checkReqVO.getProductBaseId()))
-                    .collect(Collectors.toList());
-        }
-        StringJoiner detailBaseNames = new StringJoiner("、");
-        for (TradeDetailBaseDO item : tradeDetailBaseList) {
-            // 子票核销记录
-            TradeCheckDetailDO checkDetailLog = BeanUtil.toBean(checkReqVO, TradeCheckDetailDO.class);
-            checkDetailLog.setDetailBaseId(item.getId());
-            checkDetailLog.setDetailId(item.getDetailId());
-            checkDetailLog.setOriginalStatus(item.getUseStatus());
-            checkDetailLog.setCheckId(detailLog.getId());
-            tradeCheckDetailMapper.insert(checkDetailLog);
-
-            item.setUseStatus(VoucherStatusEnum.VERIFIED.getStatus());
-            item.setCheckStatus(UseStatusEnum.ENABLE.getStatus());
-            item.setVerifyTime(LocalDateTime.now());
-            tradeDetailBaseMapper.updateById(item);
-            detailBaseNames.add(item.getProductBaseName());
-        }
-        tradeDetail.setCheckedDetailBaseNames(detailBaseNames.toString());
         tradeDetailMapper.updateVoucherStatus(tradeDetail.getId(), VoucherStatusEnum.VERIFIED.getStatus());
 
     }

+ 5 - 30
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeCheckServiceImpl.java

@@ -4,14 +4,12 @@ import cn.hutool.core.codec.Base64;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.Assert;
-import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.IdcardUtil;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.xxl.job.core.context.XxlJobHelper;
 import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.common.pojo.PageResult;
-import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.framework.mybatis.core.util.MyBatisUtils;
 import com.yc.ship.framework.operatelog.core.annotations.OperateLog;
 import com.yc.ship.framework.operatelog.core.enums.OperateTypeEnum;
@@ -19,13 +17,14 @@ import com.yc.ship.framework.security.core.util.SecurityFrameworkUtils;
 import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.framework.tenant.core.context.TenantContextHolder;
 import com.yc.ship.framework.tenant.core.util.TenantUtils;
-import com.yc.ship.module.infra.api.file.FileApi;
 import com.yc.ship.module.resource.ResourceApi;
 import com.yc.ship.module.resource.api.dto.CheckMachineDTO;
 import com.yc.ship.module.system.api.user.AdminUserApi;
 import com.yc.ship.module.system.api.user.dto.AdminUserRespDTO;
 import com.yc.ship.module.trade.controller.admin.order.vo.check.*;
-import com.yc.ship.module.trade.controller.app.pda.vo.*;
+import com.yc.ship.module.trade.controller.app.pda.vo.PdaCheckStaticReqVO;
+import com.yc.ship.module.trade.controller.app.pda.vo.PdaCheckStaticRespVO;
+import com.yc.ship.module.trade.controller.app.pda.vo.PdaCheckTotalStaticRespVO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeDetailDO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
 import com.yc.ship.module.trade.dal.mysql.order.*;
@@ -42,7 +41,6 @@ import io.swagger.v3.oas.annotations.Operation;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.redisson.api.RedissonClient;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -89,13 +87,8 @@ public class TradeCheckServiceImpl implements TradeCheckService {
     @Resource
     private TradeCheckHandleService tradeCheckHandleService;
     @Resource
-    private RedissonClient redissonClient;
-    @Resource
     private TradeDetailBaseMapper tradeDetailBaseMapper;
 
-    @Resource
-    private FileApi fileApi;
-
     @Override
     public CommonResult<List<TradeCheckRespVO>> checkCommon(TradeCheckReqVO checkReqVO) {
 
@@ -109,11 +102,8 @@ public class TradeCheckServiceImpl implements TradeCheckService {
             checkReqVO.setOperatorId(userResult.getId().toString());
             checkReqVO.setOperatorName(userResult.getNickname());
         }
-//        String detailKey = String.format(CHECK_ORDER_LOCK, checkReqVO.hashCode());
-//        RLock lock = redissonClient.getLock(detailKey);
         List<TradeCheckRespVO> result = new ArrayList<>();
         try {
-//            if (lock.tryLock(30, 60, TimeUnit.SECONDS)) {
                 String[] checkCodes = checkReqVO.getCheckCodes().split(",");
                 for (String checkCode : checkCodes) {
                     List<TradeCheckRespVO> list = new ArrayList<>();
@@ -128,7 +118,6 @@ public class TradeCheckServiceImpl implements TradeCheckService {
                             list = tradeCheckHandleService.checkCardNoHandle(checkCode, checkReqVO);
                             break;
                         case 3:
-                            result.add(tradeCheckHandleService.checkDetailHandle(checkCode, checkReqVO));
                             break;
                         case 4:
                             result.add(tradeCheckHandleService.checkOtherHandle(checkCode, checkReqVO));
@@ -136,17 +125,9 @@ public class TradeCheckServiceImpl implements TradeCheckService {
                     }
                     result.addAll(list);
                 }
-//            } else {
-//                log.error("未获取到锁,小程序方式核销失败 核销参数:{}", checkReqVO);
-//                throw exception(CHECK_PARAM_LOCK_ERROR, checkReqVO.hashCode());
-//            }
         } catch (Exception e) {
             e.printStackTrace();
             log.error("小程序方式核销失败: {},{}", checkReqVO.hashCode(), e.getMessage());
-        } finally {
-//            if (lock.isHeldByCurrentThread() && lock.isLocked()) {
-//                lock.unlock();
-//            }
         }
         return success(result);
     }
@@ -154,10 +135,9 @@ public class TradeCheckServiceImpl implements TradeCheckService {
     @Override
     public CommonResult<List<TradeCheckRespVO>> checkGate(TradeCheckReqVO checkReqVO) {
         Assert.isFalse(Objects.isNull(checkReqVO.getMachineId()), () -> exception(MACHINE_ID_NOT_EXIST));
-        Assert.isFalse(Objects.isNull(checkReqVO.getTenantId()), () -> exception(TENANT_ID_NOT_EXIST));
         log.debug("开始检票:"+checkReqVO.getMachineId()+";checkCodes="+checkReqVO.getCheckCodes());
         CommonResult<CheckMachineDTO> checkMachine = resourceApi.getCheckMachine(
-                CheckMachineTypeEnum.Gate.getType(), checkReqVO.getMachineId(), checkReqVO.getTenantId());
+                CheckMachineTypeEnum.Gate.getType(), checkReqVO.getMachineId(), 1L);
         if (checkMachine.getData() == null) {
             throw exception(CHECK_MACHINE_NOT_EXIST);
         }
@@ -190,14 +170,10 @@ public class TradeCheckServiceImpl implements TradeCheckService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public CommonResult<List<TradeCheckRespVO>> checkPda(TradeCheckReqVO checkReqVO) {
-        if (Objects.isNull(checkReqVO.getTenantId())) {
-            checkReqVO.setTenantId(TenantContextHolder.getTenantId());
-        }
         Assert.isFalse(Objects.isNull(checkReqVO.getMachineId()), () -> exception(MACHINE_ID_NOT_EXIST));
-        Assert.isFalse(Objects.isNull(checkReqVO.getTenantId()), () -> exception(TENANT_ID_NOT_EXIST));
 
         CommonResult<CheckMachineDTO> checkMachine = resourceApi.getCheckMachine(
-                CheckMachineTypeEnum.PDA.getType(), checkReqVO.getMachineId(), checkReqVO.getTenantId());
+                CheckMachineTypeEnum.PDA.getType(), checkReqVO.getMachineId(), null);
         if (checkMachine.getData() == null) {
             throw exception(CHECK_MACHINE_NOT_EXIST);
         }
@@ -259,7 +235,6 @@ public class TradeCheckServiceImpl implements TradeCheckService {
 
     @Override
     public CommonResult<List<TradeCheckRespVO>> checkApplet(TradeCheckReqVO checkReqVO) {
-        Assert.isFalse(Objects.isNull(checkReqVO.getProductBaseId()), () -> exception(PRODUCT_BASE_ID_NOT_EXIST));
         // 证件号解密
         if (CheckCodeTypeEnum.Card_No.getType().equals(checkReqVO.getCodeType())) {
             checkReqVO.setCheckCodes(base64Decode(checkReqVO.getCheckCodes()));

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

@@ -933,7 +933,6 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         }
 
         final TradeOrderHotelDO finalTradeOrderHotelDO = tradeOrderHotelDO;
-//        TradeOrderCreateReqDTO.PackProduct packProduct = getPackProduct(orderCreateReqDTO, orderItem.getPackProductId());
         orderItem.getDetailList().forEach(orderDetail -> {
 
             List<String> ticketNoList = tradeUUCodeUtils.generateTicketNo(orderDetail.getCount());
@@ -946,12 +945,6 @@ public class TradeOrderServiceImpl implements TradeOrderService {
                 if (finalTradeOrderHotelDO != null) {
                     tradeDetailDO.setHotelOrderId(finalTradeOrderHotelDO.getId());
                 }
-//                if (packProduct != null) {
-//                    tradeDetailDO.setPackProductId(packProduct.getPackProductId());
-//                    tradeDetailDO.setPackProductName(packProduct.getPackProductName());
-//                }
-//                tradeDetailDO.setRoutePlanId(routePlanId);
-//                tradeDetailDO.setRoutePlanGroupType(routePlanGroupType);
 
                 //游客信息
                 buildTradeVisitor(orderCreateReqDTO, productSpuRespDTO, tradeVisitorDOList, tradeDetailDO, orderDetail, i);

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

@@ -54,9 +54,11 @@ 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.invoice.InvoiceDO;
 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.contract.ContractMapper;
 import com.yc.ship.module.trade.dal.mysql.insurance.InsuranceMapper;
 import com.yc.ship.module.trade.dal.mysql.order.*;
+import com.yc.ship.module.trade.dal.mysql.orderjz.OrderJzMapper;
 import com.yc.ship.module.trade.dal.mysql.refund.RefundDetailBaseMapper;
 import com.yc.ship.module.trade.enums.*;
 import com.yc.ship.module.trade.framework.annotation.TradeOrderLog;
@@ -186,6 +188,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @Resource
     private ResourceShipService shipService;
 
+    @Resource
+    private OrderJzMapper orderJzMapper;
+
 
     public final static String AGENCY_LOGIN_INFO = "agencyLoginInfo";
 
@@ -1076,21 +1081,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             if(detailList.isEmpty()){
                 return vo;
             }
-//            Long productId = detailList.get(0).getProductId();
-//            for (TradeDetailRespVO tradeDetailRespVO : detailList) {
-//                StringBuilder detailSpecDes = new StringBuilder();
-//                for (DetailBaseRespVO detailBaseRespVO : tradeDetailRespVO.getDetailBaseList()) {
-//                    detailSpecDes.append(detailBaseRespVO.getProductBaseName()).append("-").
-//                            append(detailBaseRespVO.getSpecificationName()).append("/");
-//                }
-//                if(StringUtils.isNotEmpty(detailSpecDes.toString()) && detailSpecDes.toString().endsWith("/")){
-//                    detailSpecDes = new StringBuilder(detailSpecDes.substring(0, detailSpecDes.length() - 1));
-//                }
-//                tradeDetailRespVO.setDetailSpecDes(detailSpecDes.toString());
-//            }
-            //售票规则
-//            ProductSaleRuleRespDTO saleRuleDO = tradeDetailMapper.getProductSaleRule(productId);
-//            vo.setSaleRule(saleRuleDO);
 
             vo.setTradeDetailList(detailList);
             //操作记录忽略租户,不然平台订单端查询不到记录
@@ -1200,10 +1190,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             Long productId = detailList.get(0).getProductId();
             for (TradeDetailRespVO tradeDetailRespVO : detailList) {
                 StringBuilder detailSpecDes = new StringBuilder();
-                for (DetailBaseRespVO detailBaseRespVO : tradeDetailRespVO.getDetailBaseList()) {
-                    detailSpecDes.append(detailBaseRespVO.getProductBaseName()).append("-").
-                            append(detailBaseRespVO.getSpecificationName()).append("/");
-                }
                 if(StringUtils.isNotEmpty(detailSpecDes.toString()) && detailSpecDes.toString().endsWith("/")){
                     detailSpecDes = new StringBuilder(detailSpecDes.substring(0, detailSpecDes.length() - 1));
                 }
@@ -2104,8 +2090,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             int productType = 0;
             list = list.stream().filter(detailRespVO-> ObjectUtils.equalsAny(detailRespVO.getVoucherStatus(),VoucherStatusEnum.UNUSED.getStatus(),VoucherStatusEnum.TOOK.getStatus())).collect(Collectors.toList());
             for (TradeDetailRespVO detailRespVO : list) {
-                List<TradeDetailBaseDO> childList = getDetailInfo(detailRespVO.getId());
-                detailRespVO.setDetailBaseList(BeanUtils.toBean(childList, DetailBaseRespVO.class));
                 //查看是否纯分销产品
                 if(detailRespVO.getProductType() == 1){
                     productType = 1;
@@ -2125,9 +2109,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                  spuList.add(productSpuRespDTO);
              }
              vo.setProductSpuList(spuList);
-             //获取订单的营销政策
-//             List<MarketingRespVO> orderMarketing = marketingMapper.getOrderMarketing(id);
-//             vo.setMarketingList(orderMarketing);
         }
         return vo;
     }
@@ -2376,6 +2357,16 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         if(tradeOrderDO.getPayStatus()==0){
             tradeOrderDO.setPayAmount(BigDecimal.ZERO);
         }
+        //发票地址
+        if(tradeOrderDO.getIsInvoice()!=null && tradeOrderDO.getIsInvoice()==1){
+            List<InvoiceDO> list = invoiceService.queryInvoiceOrder(tradeOrderDO.getOrderNo());
+            if(list!=null && !list. isEmpty()){
+                orderRespNewVO.setInvoiceUrl(list.get(0).getCUrl());
+            }
+        }
+        //获取订单门票信息
+        List<TradeDetailRespVO> detailList = tradeDetailMapper.getOrderIdDetail(tradeOrderDO.getId());
+        orderRespNewVO.setTradeDetailList(detailList);
         //设置订单汇总数据
         TradeOrderTotalDO tradeOrderTotalDO = tradeOrderTotalMapper.selectOne(TradeOrderTotalDO::getOrderId, id);
         TradeOrderTotalVO summary = BeanUtils.toBean(tradeOrderTotalDO, TradeOrderTotalVO.class);
@@ -2387,7 +2378,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         //设置游轮名称
         ResourceShipDO ship = shipService.getShip(tradeOrderDO.getShipId());
         orderRespNewVO.setShipName(ship.getName());
-
+        OrderJzDO orderJzDO = orderJzMapper.selectOne(OrderJzDO::getOrderId, orderRespNewVO.getId());
+        orderRespNewVO.setOrderJz(orderJzDO);
         return orderRespNewVO;
     }
 

+ 0 - 48
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/pda/PdaServiceImpl.java

@@ -130,18 +130,6 @@ public class PdaServiceImpl implements PdaService {
             Integer thisSiteCanCheckNum = 0;
             List<TradeDetailRespVO> list = orderRespVO.getTradeDetailList();
             orderRespVO.setNum(list.size());
-            for (TradeDetailRespVO tradeDetail : list) {
-                for (DetailBaseRespVO tradeDetailBaseDO : tradeDetail.getDetailBaseList()) {
-                    if (ObjectUtil.equals(tradeDetailBaseDO.getUseStatus(), VoucherStatusEnum.UNUSED.getStatus())
-                            || ObjectUtil.equals(tradeDetailBaseDO.getUseStatus(), VoucherStatusEnum.TOOK.getStatus())) {
-                        CheckChannelDO productCheckChannelRespDTO = checkChannelService.getCheckChannelByChannelAndProduct(tradeDetailBaseDO.getProductBaseId(), channelId);
-                        if (null != productCheckChannelRespDTO) {
-                            thisSiteCanCheckNum++;
-                            break;
-                        }
-                    }
-                }
-            }
             orderRespVO.setThisSiteCanCheckNum(thisSiteCanCheckNum);
 //            orderRespVO.setTradeDetailList(null);
         });
@@ -246,42 +234,6 @@ public class PdaServiceImpl implements PdaService {
     }
 
     private void bulidCanCheckDetail(List<TradeDetailRespVO> detailList, Long channelId) {
-        List<DetailBaseRespVO> tradeDetailBaseList = new ArrayList<>();
-        for (TradeDetailRespVO tradeDetail : detailList) {
-            if (CollUtil.isNotEmpty(tradeDetail.getDetailBaseList())) {
-                for (DetailBaseRespVO tradeDetailBaseDO : tradeDetail.getDetailBaseList()) {
-                    if (ObjectUtil.equals(tradeDetailBaseDO.getUseStatus(), VoucherStatusEnum.UNUSED.getStatus())
-                            || ObjectUtil.equals(tradeDetailBaseDO.getUseStatus(), VoucherStatusEnum.TOOK.getStatus())) {
-                        ProductCheckChannelRespDTO productCheckChannelRespDTO = productApi.getProductCheckChannel(tradeDetailBaseDO.getProductBaseId(), channelId).getCheckedData();
-                        if (null != productCheckChannelRespDTO) {
-                            ProductBaseRespDTO productBase = productApi.getProductBaseById(tradeDetailBaseDO.getProductBaseId()).getCheckedData();
-                            if (productBase.getCheckType() == 1) {
-
-                                Integer checkedCount = Optional.ofNullable( tradeDetailBaseDO.getUsageCount()).orElse(0);
-                                if (checkedCount >= productBase.getCheckTimes()) {
-                                    tradeDetailBaseList.add(tradeDetailBaseDO);
-                                    continue;
-                                }
-                            }
-                            if (productBase.getCheckType() == 2) {
-                                //如果门票状态为全部检票,则查询子票是否按照通道检票,如果是按照通道检票,则查询子票的所有通道是否在当前通道检过票,如果没有则可以检票
-                                //查询通道已检票次数
-                                Integer checkedCount = tradeCheckService.getCheckDetailByVoucherAndChannel(tradeDetailBaseDO.getId(), channelId);
-                                if (checkedCount >= productCheckChannelRespDTO.getCheckTimes()) {
-                                    tradeDetailBaseList.add(tradeDetailBaseDO);
-                                    continue;
-                                }
-                            }
-                        } else {
-                            tradeDetailBaseList.add(tradeDetailBaseDO);
-                        }
-                    }else {
-                        tradeDetailBaseList.add(tradeDetailBaseDO);
-                    }
-                }
-                tradeDetail.getDetailBaseList().removeIf(tradeDetailBaseList::contains);
-            }
-        }
     }
 
     private void bulidDetailVisitor(List<TradeDetailRespVO> detailList) {

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

@@ -156,9 +156,8 @@
         <result property="packProductName" column="pack_product_name"/>
         <result property="routePlanId" column="route_plan_id"/>
         <result property="routePlanGroupType" column="route_plan_group_type"/>
+        <result property="createTime" column="create_time"/>
         <collection property="visitors" resultMap="visitorResultMap"/>
-<!--        <collection property="detailBaseList" select="selectTradeDetailBase" column="{detailId=id}"-->
-<!--                    ofType="com.yc.ship.module.trade.controller.admin.order.vo.order.DetailBaseRespVO"/>-->
     </resultMap>
     <resultMap id="MiddleWareDtoResultMap2" type="com.yc.ship.module.trade.controller.admin.order.vo.order.TradeDetailRespVO">
         <id property="id" column="id"/>
@@ -501,9 +500,6 @@
         <if test="orderId != null and orderId != ''">
             AND tor.id = #{orderId}
         </if>
-        <if test="voucherBaseId != null and voucherBaseId != ''">
-            INNER JOIN trade_detail_base tdb on tdb.detail_id = td.id where tdb.id =  #{voucherBaseId}
-        </if>
     </select>
 
     <select id="getOneByCardNo" resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeDetailDO">
@@ -536,11 +532,9 @@
 
     <select id="getOneByVoucherCode" resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeDetailDO">
         SELECT
-            DISTINCT t3.*
+            DISTINCT t1.*
         FROM
             trade_detail t1
-                INNER JOIN trade_detail_base t2 ON t1.id = t2.detail_id
-                LEFT JOIN trade_detail t3 ON t2.supplier_voucher_code = t3.voucher_code
         WHERE
             t1.voucher_code = #{voucherCode}
     </select>