|
|
@@ -259,7 +259,7 @@
|
|
|
a.id,
|
|
|
a.name,
|
|
|
a.cover,
|
|
|
- COALESCE(settled.to_be_settled, 0) AS to_be_settled,
|
|
|
+ COALESCE(settled.toBeSettled, 0) AS to_be_settled,
|
|
|
COALESCE(settled.received, 0) AS received,
|
|
|
settled.update_time AS updateTime
|
|
|
FROM nm_site a
|
|
|
@@ -299,4 +299,101 @@
|
|
|
) settled ON a.org_code = settled.org_code
|
|
|
WHERE a.org_code = #{orgCode}
|
|
|
</select>
|
|
|
+
|
|
|
+ <select id="selectFundChanges" resultType="map">
|
|
|
+ WITH RankedData AS (
|
|
|
+ SELECT
|
|
|
+ b.id,
|
|
|
+ CASE
|
|
|
+ WHEN a.order_status IN (0, 1, 2) THEN '收入'
|
|
|
+ WHEN a.order_status IN (3, 5, 6) THEN '支出'
|
|
|
+ ELSE '其他'
|
|
|
+ END AS income_expense_type,
|
|
|
+ CASE
|
|
|
+ WHEN b.order_id IS NULL THEN '待结算'
|
|
|
+ WHEN c.profit_sharing_status = 0 THEN '待结算'
|
|
|
+ WHEN c.profit_sharing_status = 1 THEN '已到账'
|
|
|
+ ELSE '其他'
|
|
|
+ END AS amount_type,
|
|
|
+ CASE
|
|
|
+ WHEN a.order_status IN (5, 6) THEN '用户退款'
|
|
|
+ WHEN a.order_status IN (0, 1, 2) THEN '用户支付'
|
|
|
+ WHEN c.profit_sharing_status = 0 THEN '分账'
|
|
|
+ WHEN c.profit_sharing_status = 1 THEN '银行卡到账'
|
|
|
+ ELSE '其他原因'
|
|
|
+ END AS change_reason,
|
|
|
+ CASE
|
|
|
+ WHEN b.id IS NOT NULL THEN b.cumulative - b.pre_amount
|
|
|
+ WHEN b.order_id IS NULL THEN a.price
|
|
|
+ ELSE 0
|
|
|
+ END AS amount_before,
|
|
|
+ CASE
|
|
|
+ WHEN b.id IS NOT NULL THEN b.cumulative + b.pre_amount
|
|
|
+ ELSE 0
|
|
|
+ END AS amount_after,
|
|
|
+ CASE
|
|
|
+ WHEN b.id IS NOT NULL THEN b.pre_amount
|
|
|
+ WHEN b.order_id IS NULL THEN a.price
|
|
|
+ ELSE 0
|
|
|
+ END AS change_amount,
|
|
|
+ a.create_time,
|
|
|
+ ROW_NUMBER() OVER (
|
|
|
+ PARTITION BY
|
|
|
+ COALESCE(b.id, a.order_id)
|
|
|
+ ORDER BY
|
|
|
+ CASE WHEN b.id IS NULL THEN 1 ELSE 0 END,
|
|
|
+ b.id DESC,
|
|
|
+ a.order_id
|
|
|
+ ) as rn
|
|
|
+ FROM nm_order_pro_info a
|
|
|
+ LEFT JOIN nm_profit_sharing_info b ON a.order_id = b.order_id
|
|
|
+ LEFT JOIN nm_order c ON a.order_id = c.id
|
|
|
+ WHERE a.price > 0
|
|
|
+ AND a.type NOT IN (3, 4, 6)
|
|
|
+ AND c.org_code = #{orgCode}
|
|
|
+ <!-- 动态条件 -->
|
|
|
+ <if test="incomeExpenseType != null and incomeExpenseType != '' and incomeExpenseType != '全部'">
|
|
|
+ AND (
|
|
|
+ CASE
|
|
|
+ WHEN a.order_status IN (0, 1, 2) THEN '收入'
|
|
|
+ WHEN a.order_status IN (3, 5, 6) THEN '支出'
|
|
|
+ ELSE '其他'
|
|
|
+ END
|
|
|
+ ) = #{incomeExpenseType}
|
|
|
+ </if>
|
|
|
+ <if test="amountType != null and amountType != '' and amountType != '全部'">
|
|
|
+ AND (
|
|
|
+ CASE
|
|
|
+ WHEN b.order_id IS NULL THEN '待结算'
|
|
|
+ WHEN c.profit_sharing_status = 0 THEN '待结算'
|
|
|
+ WHEN c.profit_sharing_status = 1 THEN '已到账'
|
|
|
+ ELSE '其他'
|
|
|
+ END
|
|
|
+ ) = #{amountType}
|
|
|
+ </if>
|
|
|
+ <if test="changeReason != null and changeReason != '' and changeReason != '全部'">
|
|
|
+ AND (
|
|
|
+ CASE
|
|
|
+ WHEN a.order_status IN (5, 6) THEN '用户退款'
|
|
|
+ WHEN a.order_status IN (0, 1, 2) THEN '用户支付'
|
|
|
+ WHEN c.profit_sharing_status = 0 THEN '分账'
|
|
|
+ WHEN c.profit_sharing_status = 1 THEN '银行卡到账'
|
|
|
+ ELSE '其他原因'
|
|
|
+ END
|
|
|
+ ) = #{changeReason}
|
|
|
+ </if>
|
|
|
+ )
|
|
|
+ SELECT
|
|
|
+ id,
|
|
|
+ income_expense_type,
|
|
|
+ amount_type,
|
|
|
+ change_reason,
|
|
|
+ amount_before,
|
|
|
+ amount_after,
|
|
|
+ change_amount,
|
|
|
+ create_time
|
|
|
+ FROM RankedData
|
|
|
+ WHERE rn = 1
|
|
|
+ ORDER BY create_time DESC
|
|
|
+ </select>
|
|
|
</mapper>
|