|
@@ -44,7 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
SELECT <include refid="paymentColumns"/>
|
|
SELECT <include refid="paymentColumns"/>
|
|
|
FROM pos_order_omg_payment
|
|
FROM pos_order_omg_payment
|
|
|
WHERE dd_id = #{ddId}
|
|
WHERE dd_id = #{ddId}
|
|
|
- AND pay_status = 1
|
|
|
|
|
|
|
+ AND pay_status IN (1,3,4)
|
|
|
AND trade_no IS NOT NULL
|
|
AND trade_no IS NOT NULL
|
|
|
AND trade_no <> ''
|
|
AND trade_no <> ''
|
|
|
ORDER BY id DESC
|
|
ORDER BY id DESC
|
|
@@ -52,23 +52,48 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
</select>
|
|
</select>
|
|
|
|
|
|
|
|
<!-- 扫描补单窗口内未核销漏单(每订单最新一笔 pay_status=0),关联订单排除已取消 state=4 -->
|
|
<!-- 扫描补单窗口内未核销漏单(每订单最新一笔 pay_status=0),关联订单排除已取消 state=4 -->
|
|
|
|
|
+ <!-- 扫描补单窗口内有任意未核销(pay_status=0)流水的订单 ddId(多 MTN 订单全部未付行都进扫描,
|
|
|
|
|
+ 不再只取 MAX(id) 一条,避免漏补较早 MTN),关联订单排除已取消 state=4 -->
|
|
|
<select id="selectLeakOrderDdIds" resultType="java.lang.String">
|
|
<select id="selectLeakOrderDdIds" resultType="java.lang.String">
|
|
|
- SELECT p.dd_id
|
|
|
|
|
|
|
+ SELECT DISTINCT p.dd_id
|
|
|
FROM pos_order_omg_payment p
|
|
FROM pos_order_omg_payment p
|
|
|
INNER JOIN pos_order o ON o.dd_id = p.dd_id
|
|
INNER JOIN pos_order o ON o.dd_id = p.dd_id
|
|
|
- INNER JOIN (
|
|
|
|
|
- SELECT MAX(id) AS max_id
|
|
|
|
|
- FROM pos_order_omg_payment
|
|
|
|
|
- WHERE pay_status = 0
|
|
|
|
|
- AND create_time >= #{windowStart}
|
|
|
|
|
- AND create_time <= #{graceCutoff}
|
|
|
|
|
- GROUP BY dd_id
|
|
|
|
|
- ) latest ON latest.max_id = p.id
|
|
|
|
|
- WHERE (o.state IS NULL OR o.state <> 4)
|
|
|
|
|
- ORDER BY p.id ASC
|
|
|
|
|
|
|
+ WHERE EXISTS (
|
|
|
|
|
+ SELECT 1 FROM pos_order_omg_payment
|
|
|
|
|
+ WHERE dd_id = p.dd_id AND pay_status = 0
|
|
|
|
|
+ AND create_time >= #{windowStart}
|
|
|
|
|
+ AND create_time <= #{graceCutoff}
|
|
|
|
|
+ )
|
|
|
|
|
+ AND (o.state IS NULL OR o.state <> 4)
|
|
|
|
|
+ ORDER BY p.dd_id ASC
|
|
|
LIMIT #{batchSize}
|
|
LIMIT #{batchSize}
|
|
|
</select>
|
|
</select>
|
|
|
|
|
|
|
|
|
|
+ <!-- 全量未付流水(pay_status=0,is_active 不限,含已轮换历史行)供 reconcileByQuery 遍历补单 -->
|
|
|
|
|
+ <select id="listUnpaidByDdId" parameterType="String"
|
|
|
|
|
+ resultType="com.ruoyi.system.domain.PosOrderOmgPayment">
|
|
|
|
|
+ SELECT <include refid="paymentColumns"/>
|
|
|
|
|
+ FROM pos_order_omg_payment
|
|
|
|
|
+ WHERE dd_id = #{ddId} AND pay_status = 0
|
|
|
|
|
+ ORDER BY id ASC
|
|
|
|
|
+ </select>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 最新可退款行(pay_status IN(1,3,4):已付/退款中/已退) -->
|
|
|
|
|
+ <select id="selectLatestRefundableByDdId" parameterType="String"
|
|
|
|
|
+ resultType="com.ruoyi.system.domain.PosOrderOmgPayment">
|
|
|
|
|
+ SELECT <include refid="paymentColumns"/>
|
|
|
|
|
+ FROM pos_order_omg_payment
|
|
|
|
|
+ WHERE dd_id = #{ddId} AND pay_status IN (1,3,4)
|
|
|
|
|
+ ORDER BY id DESC
|
|
|
|
|
+ LIMIT 1
|
|
|
|
|
+ </select>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 是否存在已付/退款中/已退行(校验用) -->
|
|
|
|
|
+ <select id="existsPaidByDdId" parameterType="String" resultType="int">
|
|
|
|
|
+ SELECT COUNT(*) FROM pos_order_omg_payment
|
|
|
|
|
+ WHERE dd_id = #{ddId} AND pay_status IN (1,3,4)
|
|
|
|
|
+ </select>
|
|
|
|
|
+
|
|
|
<update id="markSuccessIfUnpaid">
|
|
<update id="markSuccessIfUnpaid">
|
|
|
UPDATE pos_order_omg_payment
|
|
UPDATE pos_order_omg_payment
|
|
|
SET trade_no = #{tradeNo}, pay_status = 1, pay_type = #{payType},
|
|
SET trade_no = #{tradeNo}, pay_status = 1, pay_type = #{payType},
|