case-data-api/src/main/java/com/example/caseData/dao/CaseExchangeVoteOptionDao.java

35 lines
1.3 KiB
Java

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<CaseExchangeVoteOptionModel> {
/**
* 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);
}