UPDATE t_charging_card SET balance = balance + #{amount} - #{amount} , update_time = NOW(), update_by = #{updateBy} WHERE del_flag = 0 AND charging_flag = 0 AND id IN #{id} AND balance <= #{maxAmount} - #{amount} AND balance >= #{amount} INSERT INTO t_charging_card_balance_record (card_id, change_type, amount, remark, create_time, create_by) VALUES (#{cardId}, #{type}, #{amount}, #{remark}, NOW(), #{createBy}) UPDATE t_charging_card SET charging_flag = 1, charging_order_code = #{orderCode}, update_time = NOW() WHERE id = #{cardId} AND del_flag = 0 AND charging_flag = 0 UPDATE t_charging_card SET charging_flag = 0, charging_order_code = NULL, update_time = NOW() WHERE id = #{cardId} AND del_flag = 0 AND charging_order_code = #{orderCode} UPDATE t_charging_card SET balance = balance - #{amount}, update_time = NOW() WHERE id = #{cardId} AND del_flag = 0 INSERT INTO t_charging_card_balance_record (card_id, change_type, amount, remark, charging_order_code, create_time, create_by) VALUES (#{cardId}, 3, #{amount}, #{orderCode}, #{orderCode}, NOW(), #{createBy})