47 lines
1.7 KiB
XML
47 lines
1.7 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="com.red.circle.wallet.infra.database.rds.dao.salary.SalaryAccountBalanceDAO">
|
|
|
|
<update id="incrIncome">
|
|
UPDATE user_salary_account_balance
|
|
SET earn_points = earn_points + #{amount} / 100,
|
|
balance = balance + #{amount} / 100,
|
|
available_balance = available_balance + #{amount} / 100
|
|
WHERE user_id = #{userId}
|
|
AND salary_type = #{salaryType}
|
|
</update>
|
|
|
|
<update id="incrExpenditure">
|
|
UPDATE user_salary_account_balance
|
|
SET consumption_points = consumption_points + #{amount} / 100,
|
|
balance = balance - #{amount} / 100,
|
|
available_balance = available_balance - #{amount} / 100
|
|
WHERE user_id = #{userId}
|
|
AND salary_type = #{salaryType}
|
|
AND available_balance >= #{amount} / 100
|
|
</update>
|
|
|
|
<update id="freezeAmount">
|
|
UPDATE user_salary_account_balance
|
|
SET frozen_amount = frozen_amount + #{amount} / 100,
|
|
available_balance = available_balance - #{amount} / 100,
|
|
version = version + 1
|
|
WHERE user_id = #{userId}
|
|
AND salary_type = #{salaryType}
|
|
AND version = #{version}
|
|
AND available_balance >= #{amount} / 100
|
|
</update>
|
|
|
|
<update id="unfreezeAmount">
|
|
UPDATE user_salary_account_balance
|
|
SET frozen_amount = frozen_amount - #{amount} / 100,
|
|
available_balance = available_balance + #{amount} / 100,
|
|
version = version + 1
|
|
WHERE user_id = #{userId}
|
|
AND salary_type = #{salaryType}
|
|
AND version = #{version}
|
|
AND frozen_amount >= #{amount} / 100
|
|
</update>
|
|
|
|
</mapper>
|