xiaoyong931011
2022-03-14 cb0eefdc3573b633f18f242abe30f3a9b94e6153
src/main/resources/mapper/member/MemberWalletCoinDao.xml
@@ -9,7 +9,63 @@
    <select id="selectWalletCoinBymIdAndCode" resultType="com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity">
        select * from member_wallet_coin where member_id = #{memberId} and wallet_code = #{walletCode}
    </select>
    <update id="updateFrozenBalance" parameterType="map">
      UPDATE member_wallet_coin
      SET available_balance = available_balance - #{amount},
          frozen_balance = frozen_balance + #{amount}
      WHERE
         id = #{id}
      AND member_id = #{memberId}
   </update>
   <update id="subFrozenBalance" parameterType="map">
      UPDATE member_wallet_coin
      SET available_balance = available_balance + #{amount},
          frozen_balance = frozen_balance - #{amount}
      WHERE
         id = #{id}
      AND member_id = #{memberId}
   </update>
   <update id="updateBlockBalance">
      update member_wallet_coin
      set
      available_balance = IFNULL(available_balance, 0) + #{availableBalance},
      total_balance = IFNULL(total_balance, 0) + #{availableBalance},
      early_balance = IFNULL(early_balance, 0) + #{earlyBalance},
      block_number  = IFNULL(block_number, 0) + #{blockNumber}
      where id=#{id}
   </update>
   <update id="updateWalletBalance" parameterType="map">
      update member_wallet_coin
      <set>
         <if test="availableBalance != null">
            available_balance = (
            case when  IFNULL(available_balance, 0) + #{availableBalance}>0 then  IFNULL(available_balance, 0) + #{availableBalance} else 0 end
            ),
         </if>
         <if test="totalBalance != null">
            total_balance = (
            case when  IFNULL(total_balance, 0) + #{totalBalance}>0 then  IFNULL(total_balance, 0) + #{totalBalance} else 0 end
            ),
         </if>
         <if test="frozenBalance != null">
            frozen_balance = (
            case when  IFNULL(frozen_balance, 0) + #{frozenBalance}>0 then  IFNULL(frozen_balance, 0) + #{frozenBalance} else 0 end
            ),
         </if>
      </set>
      where id=#{id}
   </update>
   <update id="reduceFrozenBalance">
      update member_wallet_coin
      set frozen_balance = frozen_balance - #{amount},
         total_balance = total_balance - #{amount}
      where id=#{id}
   </update>
</mapper>