package com.example.caseData.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.example.caseData.dto.statsCaseClinicalDoctor.StatsCaseClinicalDoctorDto; import com.example.caseData.dto.statsCaseClinicalHospital.StatsCaseClinicalHospitalDto; import com.example.caseData.model.StatsCaseClinicalDoctorModel; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; import java.util.Map; public interface StatsCaseClinicalDoctorDao extends BaseMapper { /** * 医院病例库推荐-搜索 * @param page 分页数据 * @param doctorName 医生名称 * @param order 排序 */ IPage getStatsCaseClinicalDoctorSearchPage( Page page, @Param("doctorName") String doctorName, @Param("order") Map order ); /** * Inc 自增 * @param doctorId 文章 ID * @param field 字段名称 * @param numeral 增加的数值 * @return 更新的行数 */ @Update("UPDATE stats_case_clinical_doctor SET ${field} = ${field} + #{numeral} WHERE doctor_id = #{doctorId}") int inc(@Param("doctorId") Long doctorId, @Param("field") String field, @Param("numeral") int numeral); /** * Dec 自减 * * @param doctorId 文章 ID * @param field 字段名称 * @param numeral 减少的数值 * @return 更新的行数 */ @Update("UPDATE stats_case_clinical_doctor " + "SET ${field} = CASE WHEN ${field} >= #{numeral} THEN ${field} - #{numeral} ELSE 0 END " + "WHERE doctor_id = #{doctorId}") int dec(@Param("doctorId") Long doctorId, @Param("field") String field, @Param("numeral") int numeral); }