数量为0的判断

This commit is contained in:
wucongxing8150 2025-07-25 16:54:42 +08:00
parent cbe48f9780
commit 59de0d8ea1
6 changed files with 91 additions and 101 deletions

View File

@ -50,6 +50,7 @@ public interface CaseClinicalVideoDao extends BaseMapper<CaseClinicalVideoModel>
@Update("UPDATE case_clinical_video SET ${field} = ${field} + #{numeral} WHERE video_id = #{videoId}")
int inc(@Param("videoId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
/**
* Dec 自减
*
@ -58,6 +59,8 @@ public interface CaseClinicalVideoDao extends BaseMapper<CaseClinicalVideoModel>
* @param numeral 减少的数值
* @return 更新的行数
*/
@Update("UPDATE case_clinical_video SET ${field} = ${field} - #{numeral} WHERE video_id = #{videoId}")
@Update("UPDATE case_clinical_video " +
"SET ${field} = CASE WHEN ${field} >= #{numeral} THEN ${field} - #{numeral} ELSE 0 END " +
"WHERE video_id = #{videoId}")
int dec(@Param("videoId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
}

View File

@ -44,6 +44,8 @@ public interface StatsCaseClinicalLabelDao extends BaseMapper<StatsCaseClinicalL
* @param numeral 减少的数值
* @return 更新的行数
*/
@Update("UPDATE stats_case_exchange_label SET ${field} = ${field} - #{numeral} WHERE label_iden = #{labelIdenuserId}")
@Update("UPDATE stats_case_exchange_label " +
"SET ${field} = CASE WHEN ${field} >= #{numeral} THEN ${field} - #{numeral} ELSE 0 END " +
"WHERE label_iden = #{labelIden}")
int dec(@Param("labelIden") Long labelIden, @Param("field") String field, @Param("numeral") int numeral);
}

View File

@ -25,6 +25,8 @@ public interface StatsCaseExchangeDao extends BaseMapper<StatsCaseExchangeModel>
* @param numeral 减少的数值
* @return 更新的行数
*/
@Update("UPDATE stats_case_exchange SET ${field} = ${field} - #{numeral} WHERE stats_id = #{statsId}")
@Update("UPDATE stats_case_exchange " +
"SET ${field} = CASE WHEN ${field} >= #{numeral} THEN ${field} - #{numeral} ELSE 0 END " +
"WHERE stats_id = #{statsId}")
int dec(@Param("statsId") Long statsId, @Param("field") String field, @Param("numeral") int numeral);
}

View File

@ -32,6 +32,8 @@ public interface StatsCaseExchangeUserDao extends BaseMapper<StatsCaseExchangeUs
* @param numeral 减少的数值
* @return 更新的行数
*/
@Update("UPDATE stats_case_exchange_user SET ${field} = ${field} - #{numeral} WHERE user_id = #{userId}")
@Update("UPDATE stats_case_exchange_user " +
"SET ${field} = CASE WHEN ${field} >= #{numeral} THEN ${field} - #{numeral} ELSE 0 END " +
"WHERE user_id = #{userId}")
int dec(@Param("userId") Long userId, @Param("field") String field, @Param("numeral") int numeral);
}

View File

@ -436,60 +436,51 @@ public class CaseClinicalArticleService {
@Transactional
public boolean DecClinicalArticleStats(String articleId,Integer type){
try {
String caseClinicalArticleField = ""; // 具体文章
String statsCaseClinicalField = ""; // 全部文章
String statsCaseClinicalHospitalField = ""; // 医院
String statsCaseClinicalDoctorField = ""; // 医生
// 阅读
if (type == 1){
caseClinicalArticleField = "read_num"; // 具体文章
statsCaseClinicalField = "article_read_num"; // 全部文章
statsCaseClinicalHospitalField = "article_read_num"; // 医院
statsCaseClinicalDoctorField = "article_read_num"; // 医生
}
// 收藏
if (type == 2){
caseClinicalArticleField = "collect_num"; // 具体文章
statsCaseClinicalField = "article_collect_num"; // 全部文章
statsCaseClinicalHospitalField = "article_collect_num"; // 医院
statsCaseClinicalDoctorField = "article_collect_num"; // 医生
}
// 评论
if (type == 3){
caseClinicalArticleField = "comment_num"; // 具体文章
statsCaseClinicalField = "article_comment_num"; // 全部文章
statsCaseClinicalHospitalField = "article_comment_num"; // 医院
statsCaseClinicalDoctorField = "article_comment_num"; // 医生
}
caseClinicalArticleDao.dec(Long.valueOf(articleId),caseClinicalArticleField,1);
statsCaseClinicalDao.dec(1L,statsCaseClinicalField,1);
// 获取文章作者
LambdaQueryWrapper<CaseClinicalArticleAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, articleId);
List<CaseClinicalArticleAuthorModel> caseClinicalArticleAuthors = caseClinicalArticleAuthorDao.selectList(authorQueryWrapper);
// 阅读量
if (type == 1){
caseClinicalArticleDao.dec(Long.valueOf(articleId),"read_num",1);
statsCaseClinicalDao.dec(1L,"article_read_num",1);
for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) {
// 查询医生
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
// 增加医院文章收藏数
statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),"article_read_num",1);
// 减少医生文章数
statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),statsCaseClinicalHospitalField,1);
// 增加医生文章收藏数
statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),"article_read_num",1);
}
}
// 收藏量
if (type == 2){
caseClinicalArticleDao.dec(Long.valueOf(articleId),"collect_num",1);
statsCaseClinicalDao.dec(1L,"article_collect_num",1);
for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) {
// 查询医生
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
// 增加医院文章收藏数
statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),"article_collect_num",1);
// 增加医生文章收藏数
statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),"article_collect_num",1);
}
}
// 评论数
if (type == 3){
caseClinicalArticleDao.dec(Long.valueOf(articleId),"comment_num",1);
statsCaseClinicalDao.dec(1L,"article_comment_num",1);
for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) {
// 查询医生
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
// 增加医院文章收藏数
statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),"article_comment_num",1);
// 增加医生文章收藏数
statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),"article_comment_num",1);
}
// 减少医生文章数
statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),statsCaseClinicalDoctorField,1);
}
return true;

View File

@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.lang.reflect.Field;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
@ -435,60 +436,49 @@ public class CaseClinicalVideoService {
@Transactional
public boolean DecClinicalVideoStats(String videoId,Integer type){
try {
String caseClinicalVideoField = ""; // 具体文章
String statsCaseClinicalField = ""; // 全部文章
String statsCaseClinicalHospitalField = ""; // 医院
String statsCaseClinicalDoctorField = ""; // 医生
// 阅读
if (type == 1){
caseClinicalVideoField = "read_num"; // 具体文章
statsCaseClinicalField = "video_read_num"; // 全部文章
statsCaseClinicalHospitalField = "video_read_num"; // 医院
statsCaseClinicalDoctorField = "video_read_num"; // 医生
}
// 收藏
if (type == 2){
caseClinicalVideoField = "collect_num"; // 具体文章
statsCaseClinicalField = "video_collect_num"; // 全部文章
statsCaseClinicalHospitalField = "video_collect_num"; // 医院
statsCaseClinicalDoctorField = "video_collect_num"; // 医生
}
// 评论
if (type == 3){
caseClinicalVideoField = "comment_num"; // 具体文章
statsCaseClinicalField = "video_comment_num"; // 全部文章
statsCaseClinicalHospitalField = "video_comment_num"; // 医院
statsCaseClinicalDoctorField = "video_comment_num"; // 医生
}
caseClinicalVideoDao.dec(Long.valueOf(videoId),caseClinicalVideoField,1);
statsCaseClinicalDao.dec(1L,statsCaseClinicalField,1);
// 获取文章作者
LambdaQueryWrapper<CaseClinicalVideoAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, videoId);
List<CaseClinicalVideoAuthorModel> caseClinicalVideoAuthors = caseClinicalVideoAuthorDao.selectList(authorQueryWrapper);
// 阅读量
if (type == 1){
caseClinicalVideoDao.dec(Long.valueOf(videoId),"read_num",1);
statsCaseClinicalDao.dec(1L,"video_read_num",1);
for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) {
// 查询医生
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
// 增加医院文章收藏数
statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),"video_read_num",1);
// 增加医生文章收藏数
statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),"video_read_num",1);
}
}
// 收藏量
if (type == 2){
caseClinicalVideoDao.dec(Long.valueOf(videoId),"collect_num",1);
statsCaseClinicalDao.dec(1L,"video_collect_num",1);
for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) {
// 查询医生
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
// 增加医院文章收藏数
statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),"video_collect_num",1);
// 增加医生文章收藏数
statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),"video_collect_num",1);
}
}
// 评论数
if (type == 3){
caseClinicalVideoDao.dec(Long.valueOf(videoId),"comment_num",1);
statsCaseClinicalDao.dec(1L,"video_comment_num",1);
for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) {
// 查询医生
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
// 增加医院文章收藏数
statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),"video_comment_num",1);
// 增加医生文章收藏数
statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),"video_comment_num",1);
}
// 获取医院统计数据
statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),statsCaseClinicalHospitalField,1);
statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),statsCaseClinicalDoctorField,1);
}
return true;