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

67 lines
2.3 KiB
Java

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.userCaseRead.UserCaseReadDto;
import com.example.caseData.dto.userCollectClinicalArticle.UserCollectClinicalArticleDto;
import com.example.caseData.model.UserCaseReadModel;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
public interface UserCaseReadDao extends BaseMapper<UserCaseReadModel> {
/**
* 用户阅读记录-搜索-文章
* @param page 分页数据
* @param keyword 搜索关键词-标题/医生名称/标签名称
*/
IPage<UserCaseReadDto> getUserCaseReadArticleSearchPage(
Page<?> page,
@Param("keyword") String keyword,
@Param("userId") String userId
);
/**
* 用户阅读记录-搜索-视频
* @param page 分页数据
* @param keyword 搜索关键词-标题/医生名称/标签名称
*/
IPage<UserCaseReadDto> getUserCaseReadVideoSearchPage(
Page<?> page,
@Param("keyword") String keyword,
@Param("userId") String userId
);
/**
* 用户阅读记录-搜索-病例交流
* @param page 分页数据
* @param keyword 搜索关键词-标题/医生名称/标签名称
*/
IPage<UserCaseReadDto> getUserCaseReadExchangeSearchPage(
Page<?> page,
@Param("keyword") String keyword,
@Param("userId") String userId
);
/**
* Inc 自增
* @param field 字段名称
* @param numeral 增加的数值
* @return 更新的行数
*/
@Update("UPDATE user_case_read SET ${field} = ${field} + #{numeral} WHERE read_id = #{readId}")
int inc(@Param("readId") Long readId, @Param("field") String field, @Param("numeral") int numeral);
/**
* Dec 自减
*
* @param field 字段名称
* @param numeral 减少的数值
* @return 更新的行数
*/
@Update("UPDATE user_case_read " +
"SET ${field} = CASE WHEN ${field} >= #{numeral} THEN ${field} - #{numeral} ELSE 0 END " +
"WHERE read_id = #{statsId}")
int dec(@Param("readId") Long readId, @Param("field") String field, @Param("numeral") int numeral);
}