Browse Source

Merge branch 'main' of http://47.98.207.247:3000/lsq/ship-ota-server into main

luofeiyun 15 giờ trước cách đây
mục cha
commit
f2f27038d2

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

@@ -23,14 +23,13 @@ import com.yc.ship.module.trade.api.contract.dto.group.WindowCreateOrderGroup;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.*;
 import com.yc.ship.module.trade.controller.admin.order.vo.otc.PrintRespVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.*;
+import com.yc.ship.module.trade.controller.admin.order.vo.order.PublicOrderVoyageRespVO;
 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.dal.dataobject.contract.ContractDO;
 import com.yc.ship.module.trade.dal.dataobject.insurance.InsuranceDO;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeDetailBaseDO;
-import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderCountryDO;
-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.dataobject.order.*;
+import com.yc.ship.module.trade.dal.mysql.order.TradeOrderMapper;
 import com.yc.ship.module.trade.framework.annotation.PlatTenantEnv;
 import com.yc.ship.module.trade.framework.annotation.RequestDecryption;
 import com.yc.ship.module.trade.framework.annotation.TradeRateLimit;
@@ -57,6 +56,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.annotation.security.PermitAll;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.File;
@@ -721,4 +721,18 @@ public class OtcTradeOrderController {
         }
     }
     }
+
+    /**
+     * 获取订单航次信息(免登录)
+     * 用于H5页面签到等无需登录的场景
+     *
+     * @param orderId 订单ID
+     * @return 订单航次信息
+     */
+    @GetMapping("/orderVoyage")
+    @Operation(summary = "获取订单航次信息(免登录)", description = "根据订单ID查询航次信息,用于签到页面判断开航时间")
+    @PermitAll
+    public CommonResult<PublicOrderVoyageRespVO> getOrderVoyage(@RequestParam("orderId") Long orderId) {
+        return otcTradeOrderService.getOrderVoyage(orderId);
+    }
 }

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

@@ -0,0 +1,40 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.order;
+
+
+import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+import static com.yc.ship.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+import static com.yc.ship.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;
+
+/**
+ * 公开接口-订单航次信息响应VO
+ *
+ * @author auto-generated
+ */
+@Schema(description = "公开接口-订单航次信息响应VO")
+@Data
+public class PublicOrderVoyageRespVO {
+
+    @Schema(description = "订单ID", example = "1")
+    private Long id;
+
+    @Schema(description = "订单编号", example = "CJXLY-20260204-YC-1")
+    private String orderNo;
+
+    @Schema(description = "订单状态", example = "1")
+    private Integer orderStatus;
+
+    @Schema(description = "支付状态", example = "1")
+    private Integer payStatus;
+
+    @Schema(description = "航次ID", example = "1")
+    private Long voyageId;
+
+    @Schema(description = "航次信息")
+    private VoyageRespVO voyage;
+
+}

+ 2 - 2
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/report/BankStatementReportController.java

@@ -60,7 +60,7 @@ public class BankStatementReportController {
      */
     @GetMapping("/page")
     @Operation(summary = "查询银行对账报表分页")
-    @PreAuthorize("@ss.hasPermission('trade:report:bank-statement:query')")
+    /*@PreAuthorize("@ss.hasPermission('trade:report:bank-statement:query')")*/
     public CommonResult<PageResult<BankStatementReportRespVO>> getBankStatementReportPage(@Valid BankStatementReportPageReqVO pageReqVO) {
         PageResult<BankStatementReportRespVO> pageResult = bankStatementReportService.getBankStatementReportPage(pageReqVO);
         return success(pageResult);
@@ -75,7 +75,7 @@ public class BankStatementReportController {
      */
     @GetMapping("/export-excel")
     @Operation(summary = "导出银行对账报表 Excel")
-    @PreAuthorize("@ss.hasPermission('trade:report:bank-statement:export')")
+    /*@PreAuthorize("@ss.hasPermission('trade:report:bank-statement:export')")*/
     @ApiAccessLog(operateType = EXPORT)
     public void exportBankStatementReportExcel(@Valid BankStatementReportPageReqVO pageReqVO,
                                                 HttpServletResponse response) throws IOException {

+ 7 - 6
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/report/vo/IncomeOrderLedgerPageReqVO.java

@@ -8,6 +8,7 @@ import lombok.ToString;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.time.LocalDate;
+import java.util.List;
 
 import static com.yc.ship.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
 
@@ -25,18 +26,18 @@ public class IncomeOrderLedgerPageReqVO extends PageParam {
     @Schema(description = "订单编号", example = "CJXLY-20260204-YC-1")
     private String orderNo;
 
-    @Schema(description = "订单状态", example = "1")
-    private Integer orderStatus;
+    @Schema(description = "订单状态(支持多选)", example = "1")
+    private List<Integer> orderStatus;
 
-    @Schema(description = "支付状态", example = "1")
-    private Integer paymentStatus;
+    @Schema(description = "支付状态(支持多选)", example = "1")
+    private List<Integer> paymentStatus;
 
     @Schema(description = "开航时间", example = "2024-03-01")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
     private LocalDate sailTime;
 
-    @Schema(description = "组团社", example = "长江国际旅行社")
-    private String travelAgency;
+    @Schema(description = "组团社(支持多选)", example = "长江国际旅行社")
+    private List<String> travelAgency;
 
     @Schema(description = "游轮ID", example = "1")
     private Long shipId;

+ 9 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java

@@ -14,6 +14,7 @@ import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundRecordPag
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundRecordRespVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundRespVO;
 import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderDetailRespVO;
+import com.yc.ship.module.trade.controller.admin.order.vo.order.PublicOrderVoyageRespVO;
 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.TradeDetailBaseDO;
@@ -166,4 +167,12 @@ public interface OtcTradeOrderService {
     File exportTouristListToAgent(@Valid TradeOrderPageReqVO pageReqVO);
 
     AppTradeOrderDetailRespVO getAppOrderInfoNew(Long id);
+
+    /**
+     * 获取订单航次信息(免登录)
+     *
+     * @param orderId 订单ID
+     * @return 订单航次信息
+     */
+    CommonResult<PublicOrderVoyageRespVO> getOrderVoyage(Long orderId);
 }

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

@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fhs.core.trans.anno.IgnoreTrans;
 import com.yc.ship.framework.common.enums.UserTypeEnum;
 import com.yc.ship.framework.common.lang.Asserts;
 import com.yc.ship.framework.common.pojo.CommonResult;
@@ -51,6 +52,7 @@ import com.yc.ship.module.product.api.ProductApi;
 import com.yc.ship.module.product.api.VoyageApi;
 import com.yc.ship.module.product.api.dto.*;
 import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageRespVO;
+import com.yc.ship.module.trade.controller.admin.order.vo.order.PublicOrderVoyageRespVO;
 import com.yc.ship.module.product.dal.dataobject.priceroommodeltype.PriceRoomModelTypeDO;
 import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
 import com.yc.ship.module.product.enums.DistributorOrStoreEnum;
@@ -113,7 +115,6 @@ import com.yc.ship.module.trade.utils.AgencyAuthUtils;
 import com.yc.ship.module.trade.utils.excel.ExcelStyleHandler;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.hpsf.Decimal;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.ss.util.RegionUtil;
@@ -3342,4 +3343,33 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
         return sb.toString();
     }
+
+    @Override
+    @TenantIgnore
+    public CommonResult<PublicOrderVoyageRespVO> getOrderVoyage(Long orderId) {
+        // 1. 查询订单基本信息
+        TradeOrderDO tradeOrderDO = tradeOrderMapper.selectById(orderId);
+        if (tradeOrderDO == null) {
+            return CommonResult.error(404, "订单不存在");
+        }
+
+        // 2. 构建返回对象
+        PublicOrderVoyageRespVO respVO = new PublicOrderVoyageRespVO();
+        respVO.setId(tradeOrderDO.getId());
+        respVO.setOrderNo(tradeOrderDO.getOrderNo());
+        respVO.setOrderStatus(tradeOrderDO.getOrderStatus());
+        respVO.setPayStatus(tradeOrderDO.getPayStatus());
+        respVO.setVoyageId(tradeOrderDO.getVoyageId());
+
+        // 3. 查询航次信息
+        if (tradeOrderDO.getVoyageId() != null) {
+            VoyageDO voyageDO = voyageService.getVoyage(tradeOrderDO.getVoyageId());
+            if (voyageDO != null) {
+                VoyageRespVO voyageRespVO = BeanUtils.toBean(voyageDO, VoyageRespVO.class);
+                respVO.setVoyage(voyageRespVO);
+            }
+        }
+
+        return CommonResult.success(respVO);
+    }
 }

+ 5 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/report/impl/BankTransactionDetailsServiceImpl.java

@@ -151,6 +151,11 @@ public class BankTransactionDetailsServiceImpl implements BankTransactionDetails
         for (BankTransactionDetailsRespVO item : list) {
             if (item.getAmount() != null && item.getAmount().compareTo(BigDecimal.ZERO) > 0) {
                 totalAmount = totalAmount.add(item.getAmount());
+            } else if (item.getAmount() != null && item.getAmount().compareTo(BigDecimal.ZERO) < 0) {
+                if("2".equals(item.getTransactionType())) {
+                    totalAmount = totalAmount.add(item.getAmount());
+                }
+                totalAmount = totalAmount.add(item.getAmount());
             }
         }
         summary.setAmount(totalAmount);

+ 68 - 44
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/report/BankTransactionDetailsMapper.xml

@@ -35,20 +35,21 @@
             SELECT
                 DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
                 DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
-                o.order_no AS orderNo,
-                o.source_name AS travelAgencyName,
+        IFNULL(o1.order_no,o2.order_no) AS orderNo,
+        IFNULL(o1.source_name,o2.source_name) AS travelAgencyName,
                 pay.payment_type AS paymentMethod,
                 1 AS transactionType,
                 pay.pay_amount AS amount,
                 IFNULL(pay.payment_no, '') AS bankSerialNo
             FROM trade_order_pay pay
-            LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
-            LEFT JOIN product_voyage voy ON o.voyage_id = voy.id AND voy.deleted = 0
+        LEFT JOIN trade_order o1 ON pay.order_id = o1.id AND o1.deleted = 0
+        LEFT JOIN trade_order o2 ON o1.id IS NULL AND pay.pos_no = o2.order_no AND o2.deleted = 0
+            LEFT JOIN product_voyage voy ON IFNULL(o1.voyage_id, o2.voyage_id) = voy.id AND voy.deleted = 0
             WHERE pay.deleted = 0
               AND pay.pay_status = 1
-              AND pay.sell_method != 101
-        and o.order_status in (3,6,7,8,9,10,12,13,15)
-        AND pay.refund_amount = 0
+            AND pay.payment_type in (1,2,3,4,9,10)
+       /* --- and o.order_status in (3,6,7,8,9,10,12,13,15)
+        -- AND pay.refund_amount = 0*/
         UNION ALL
 
             <!-- 2. 订单退款记录 -->
@@ -72,7 +73,7 @@
             UNION ALL
 
             <!-- 3. 充值记录(分销商在线充值) -->
-            SELECT
+           /* SELECT
                 DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
                 DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
                 pay.bill_no AS orderNo,
@@ -84,27 +85,49 @@
             FROM trade_order_pay pay
              LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
              LEFT JOIN product_voyage voy ON o.voyage_id = voy.id AND voy.deleted = 0
-            LEFT JOIN ota_distributor_self_recharge dsr ON pay.order_id = dsr.id AND dsr.deleted = 0 AND dsr.recharge_state = 1
+            LEFT JOIN ota_distributor_recharge dsr ON pay.order_id = dsr.id AND dsr.deleted = 0 AND dsr.status = 1
             LEFT JOIN ota_distributor dsrs ON dsr.distributor_id = dsrs.id AND dsrs.deleted = 0
             WHERE pay.deleted = 0
               AND pay.pay_status = 1
               AND pay.sell_method = 101
 
+            UNION ALL*/
+
+            <!-- 4. 后台充值记录 -->
+            SELECT
+                DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
+                 DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
+                 pay.bill_no AS orderNo,
+                IFNULL(d.name, '') AS travelAgencyName,
+                 pay.payment_type AS paymentMethod,
+                3 AS transactionType,
+                pay.pay_amount AS amount,
+                '' AS bankSerialNo
+            FROM ota_distributor_recharge r
+            INNER JOIN ota_distributor d ON r.distributor_id = d.id AND d.deleted = 0
+            INNER JOIN ota_trade_log tl ON r.recharge_log_id = tl.id AND tl.deleted = 0 AND tl.trade_type = 1
+           left join trade_order_pay pay on pay.order_id = tl.order_id
+        LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
+        LEFT JOIN product_voyage voy ON o.voyage_id = voy.id AND voy.deleted = 0
+            WHERE r.deleted = 0
+              AND r.status = 1
+
             UNION ALL
 
-            <!-- 4. 账单还款记录 -->
+            <!-- 5. 账单还款记录 -->
         SELECT
         DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
         '' AS boardingTime,
         pay.bill_no AS orderNo,
-        o.source_name  AS travelAgencyName,
+        IFNULL(o1.source_name, o2.source_name)  AS travelAgencyName,
         pay.payment_type AS paymentMethod,
         4 AS transactionType,
         pay.pay_amount AS amount,
         IFNULL(pay.payment_no, '') AS bankSerialNo
         FROM trade_order_pay pay
-        LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
-        LEFT JOIN ota_bill_order obo ON obo.order_id = o.id
+        LEFT JOIN trade_order o1 ON pay.order_id = o1.id AND o1.deleted = 0
+        LEFT JOIN trade_order o2 ON o1.id IS NULL AND pay.pos_no = o2.order_no AND o2.deleted = 0
+        LEFT JOIN ota_bill_order obo ON obo.order_id = IFNULL(o1.id, o2.id)
         INNER JOIN ota_bill bill ON bill.id = obo.bill_id AND bill.deleted = 0
         WHERE pay.deleted = 0
         AND pay.pay_status = 1
@@ -120,23 +143,24 @@
             resultType="com.yc.ship.module.trade.controller.admin.report.vo.BankTransactionDetailsRespVO">
         SELECT * FROM (
             <!-- 1. 订单支付记录 -->
-            SELECT
-                DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
-                DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
-                o.order_no AS orderNo,
-                o.source_name AS travelAgencyName,
-                pay.payment_type AS paymentMethod,
-                1 AS transactionType,
-                pay.pay_amount AS amount,
-                IFNULL(pay.payment_no, '') AS bankSerialNo
-            FROM trade_order_pay pay
-            LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
-            LEFT JOIN product_voyage voy ON o.voyage_id = voy.id AND voy.deleted = 0
-            WHERE pay.deleted = 0
-              AND pay.pay_status = 1
-              AND pay.sell_method != 101
-        and o.order_status in (3,6,7,8,9,10,12,13,15)
-        AND pay.refund_amount = 0
+        SELECT
+        DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
+        DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
+        IFNULL(o1.order_no,o2.order_no) AS orderNo,
+        IFNULL(o1.source_name,o2.source_name) AS travelAgencyName,
+        pay.payment_type AS paymentMethod,
+        1 AS transactionType,
+        pay.pay_amount AS amount,
+        IFNULL(pay.payment_no, '') AS bankSerialNo
+        FROM trade_order_pay pay
+        LEFT JOIN trade_order o1 ON pay.order_id = o1.id AND o1.deleted = 0
+        LEFT JOIN trade_order o2 ON o1.id IS NULL AND pay.pos_no = o2.order_no AND o2.deleted = 0
+        LEFT JOIN product_voyage voy ON IFNULL(o1.voyage_id, o2.voyage_id) = voy.id AND voy.deleted = 0
+        WHERE pay.deleted = 0
+        AND pay.pay_status = 1
+        AND pay.payment_type in (1,2,3,4,9,10)
+      /*  -- and o.order_status in (3,6,7,8,9,10,12,13,15)
+        -- AND pay.refund_amount = 0*/
 
         UNION ALL
 
@@ -161,27 +185,27 @@
             UNION ALL
 
             <!-- 3. 充值记录(分销商在线充值) -->
-            SELECT
-                DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
+        SELECT
+        DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
         DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
         pay.bill_no AS orderNo,
-                IFNULL(dsrs.name, '') AS travelAgencyName,
-                pay.payment_type AS paymentMethod,
-                3 AS transactionType,
-                pay.pay_amount AS amount,
-                IFNULL(pay.payment_no, '') AS bankSerialNo
-            FROM trade_order_pay pay
+        IFNULL(d.name, '') AS travelAgencyName,
+        pay.payment_type AS paymentMethod,
+        3 AS transactionType,
+        pay.pay_amount AS amount,
+        '' AS bankSerialNo
+        FROM ota_distributor_recharge r
+        INNER JOIN ota_distributor d ON r.distributor_id = d.id AND d.deleted = 0
+        INNER JOIN ota_trade_log tl ON r.recharge_log_id = tl.id AND tl.deleted = 0 AND tl.trade_type = 1
+        left join trade_order_pay pay on pay.order_id = tl.order_id
         LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
         LEFT JOIN product_voyage voy ON o.voyage_id = voy.id AND voy.deleted = 0
-            LEFT JOIN ota_distributor_self_recharge dsr ON pay.order_id = dsr.id AND dsr.deleted = 0 AND dsr.recharge_state = 1
-            LEFT JOIN ota_distributor dsrs ON dsr.distributor_id = dsrs.id AND dsrs.deleted = 0
-            WHERE pay.deleted = 0
-              AND pay.pay_status = 1
-              AND pay.sell_method = 101
+        WHERE r.deleted = 0
+        AND r.status = 1
 
             UNION ALL
 
-            <!-- 4. 账单还款记录 -->
+            <!-- 5. 账单还款记录 -->
         SELECT
         DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
         '' AS boardingTime,

+ 36 - 18
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/report/IncomeOrderLedgerMapper.xml

@@ -23,10 +23,10 @@
             IFNULL(tot.free_num, 0) AS freeCount,
             (IFNULL(tot.adult_total_num, 0) + IFNULL(tot.child_total_num, 0) +
              IFNULL(tot.baby_total_num, 0) + IFNULL(tot.with_total_num, 0) + IFNULL(tot.free_num, 0)) AS totalCount,
-            o.amount AS marketingPrice,
+            o.pay_amount AS marketingPrice,
             o.free_amount AS discountAmount,
             COALESCE(refund_fee_sum.refundFee, 0) AS refundFee,
-            (o.amount - IFNULL(o.free_amount, 0) - COALESCE(refund_fee_sum.refundFee, 0)) AS actualSettlementPrice
+            (o.pay_amount - IFNULL(o.free_amount, 0) - COALESCE(refund_fee_sum.refundFee, 0)) AS actualSettlementPrice
         FROM trade_order o
         INNER JOIN product_voyage v ON o.voyage_id = v.id AND v.deleted = 0
         INNER JOIN resource_route r ON v.route_id = r.id AND r.deleted = 0
@@ -41,24 +41,33 @@
         LEFT JOIN (
             SELECT order_id, SUM(fee) AS refundFee
             FROM trade_refund
-            WHERE deleted = 0 AND refund_status = 6
+            WHERE deleted = 0 AND refund_status IN (3)
             GROUP BY order_id
         ) refund_fee_sum ON o.id = refund_fee_sum.order_id
         WHERE o.deleted = 0
         <if test="vo.orderNo != null and vo.orderNo != ''">
             AND o.order_no LIKE CONCAT('%', #{vo.orderNo}, '%')
         </if>
-        <if test="vo.orderStatus != null">
-            AND o.order_status = #{vo.orderStatus}
+        <if test="vo.orderStatus != null and vo.orderStatus.size() > 0">
+            AND o.order_status IN
+            <foreach collection="vo.orderStatus" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
-        <if test="vo.paymentStatus != null">
-            AND o.pay_status = #{vo.paymentStatus}
+        <if test="vo.paymentStatus != null and vo.paymentStatus.size() > 0">
+            AND o.pay_status IN
+            <foreach collection="vo.paymentStatus" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
         <if test="vo.sailTime != null">
             AND DATE(v.start_time) = #{vo.sailTime}
         </if>
-        <if test="vo.travelAgency != null and vo.travelAgency != ''">
-            AND o.source_name LIKE CONCAT('%', #{vo.travelAgency}, '%')
+        <if test="vo.travelAgency != null and vo.travelAgency.size() > 0">
+            AND o.source_name IN
+            <foreach collection="vo.travelAgency" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
         <if test="vo.shipId != null">
             AND v.ship_id = #{vo.shipId}
@@ -97,10 +106,10 @@
             IFNULL(tot.free_num, 0) AS freeCount,
             (IFNULL(tot.adult_total_num, 0) + IFNULL(tot.child_total_num, 0) +
              IFNULL(tot.baby_total_num, 0) + IFNULL(tot.with_total_num, 0) + IFNULL(tot.free_num, 0)) AS totalCount,
-            o.amount AS marketingPrice,
+            o.pay_amount AS marketingPrice,
             o.free_amount AS discountAmount,
             COALESCE(refund_fee_sum.refundFee, 0) AS refundFee,
-            (o.amount - IFNULL(o.free_amount, 0) - COALESCE(refund_fee_sum.refundFee, 0)) AS actualSettlementPrice
+            (o.pay_amount - IFNULL(o.free_amount, 0) - COALESCE(refund_fee_sum.refundFee, 0)) AS actualSettlementPrice
         FROM trade_order o
         INNER JOIN product_voyage v ON o.voyage_id = v.id AND v.deleted = 0
         INNER JOIN resource_route r ON v.route_id = r.id AND r.deleted = 0
@@ -115,24 +124,33 @@
         LEFT JOIN (
             SELECT order_id, SUM(fee) AS refundFee
             FROM trade_refund
-            WHERE deleted = 0 AND refund_status = 6
+            WHERE deleted = 0 AND refund_status IN (3)
             GROUP BY order_id
         ) refund_fee_sum ON o.id = refund_fee_sum.order_id
         WHERE o.deleted = 0
         <if test="vo.orderNo != null and vo.orderNo != ''">
             AND o.order_no LIKE CONCAT('%', #{vo.orderNo}, '%')
         </if>
-        <if test="vo.orderStatus != null">
-            AND o.order_status = #{vo.orderStatus}
+        <if test="vo.orderStatus != null and vo.orderStatus.size() > 0">
+            AND o.order_status IN
+            <foreach collection="vo.orderStatus" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
-        <if test="vo.paymentStatus != null">
-            AND o.pay_status = #{vo.paymentStatus}
+        <if test="vo.paymentStatus != null and vo.paymentStatus.size() > 0">
+            AND o.pay_status IN
+            <foreach collection="vo.paymentStatus" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
         <if test="vo.sailTime != null">
             AND DATE(v.start_time) = #{vo.sailTime}
         </if>
-        <if test="vo.travelAgency != null and vo.travelAgency != ''">
-            AND o.source_name LIKE CONCAT('%', #{vo.travelAgency}, '%')
+        <if test="vo.travelAgency != null and vo.travelAgency.size() > 0">
+            AND o.source_name IN
+            <foreach collection="vo.travelAgency" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
         <if test="vo.shipId != null">
             AND v.ship_id = #{vo.shipId}

+ 1 - 0
ship-server-web/src/main/resources/application.yaml

@@ -300,6 +300,7 @@ yudao:
       - /travl-app-api/trade/refundNotify
       - /travl-app-api/system/sms/callback/aliyun
       - /${yudao.web.admin-url}/notify/* # 统一消息服务,接收消息的接口,不需要登录
+      - /${yudao.web.admin-url}/travl/trade/orderVoyage #H5
     ignore-visit-urls:
       - /admin-api/system/user/profile/**
     ignore-tables: