update 优化订单支付定时任务批量修改金额相关sql

This commit is contained in:
yyb
2026-01-06 13:56:23 +08:00
parent b622701e39
commit 5242e30a3f
12 changed files with 211 additions and 26 deletions

View File

@@ -108,12 +108,37 @@
<update id="updateBalanceAndBlockBalance">
<foreach collection="list" item="item" separator=";">
UPDATE lease_user_wallet_data
SET balance = balance - #{item.realAmount},
blocked_balance = blocked_balance - #{item.blockAmount}
WHERE from_address = #{item.fromAddress} AND from_symbol = #{item.fromSymbol} AND from_chain = #{item.fromChain} AND del = false
UPDATE lease_user_wallet_data
SET balance = CASE
<foreach collection="list" item="item">
WHEN from_address = #{item.fromAddress} AND from_symbol = #{item.fromSymbol} AND from_chain = #{item.fromChain} AND del = false
THEN balance - #{item.realAmount}
</foreach>
ELSE balance
END,
blocked_balance = CASE
<foreach collection="list" item="item">
WHEN from_address = #{item.fromAddress} AND from_symbol = #{item.fromSymbol} AND from_chain = #{item.fromChain} AND del = false
THEN blocked_balance - #{item.blockAmount}
</foreach>
ELSE blocked_balance
END
WHERE from_address IN (
<foreach collection="list" item="item" separator=",">
#{item.fromAddress}
</foreach>
)
AND from_symbol IN (
<foreach collection="list" item="item" separator=",">
#{item.fromSymbol}
</foreach>
)
AND from_chain IN (
<foreach collection="list" item="item" separator=",">
#{item.fromChain}
</foreach>
)
AND del = false
</update>
</mapper>