package com.example.caseData.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.caseData.model.CaseExchangeVoteModel; import com.example.caseData.model.CaseExchangeVoteOptionModel; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; @Mapper public interface CaseExchangeVoteOptionDao extends BaseMapper { /** * Inc 自增 * @param optionId 文章 ID * @param field 字段名称 * @param numeral 增加的数值 * @return 更新的行数 */ @Update("UPDATE case_exchange_vote_option SET ${field} = ${field} + #{numeral} WHERE option_id = #{optionId}") int inc(@Param("optionId") Long optionId, @Param("field") String field, @Param("numeral") int numeral); /** * Dec 自减 * * @param optionId 文章 ID * @param field 字段名称 * @param numeral 减少的数值 * @return 更新的行数 */ @Update("UPDATE case_exchange_vote_option " + "SET ${field} = CASE WHEN ${field} >= #{numeral} THEN ${field} - #{numeral} ELSE 0 END " + "WHERE option_id = #{optionId}") int dec(@Param("optionId") Long optionId, @Param("field") String field, @Param("numeral") int numeral); }