数量为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}") @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); int inc(@Param("videoId") Long articleId, @Param("field") String field, @Param("numeral") int numeral);
/** /**
* Dec 自减 * Dec 自减
* *
@ -58,6 +59,8 @@ public interface CaseClinicalVideoDao extends BaseMapper<CaseClinicalVideoModel>
* @param numeral 减少的数值 * @param numeral 减少的数值
* @return 更新的行数 * @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); 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 减少的数值 * @param numeral 减少的数值
* @return 更新的行数 * @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); 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 减少的数值 * @param numeral 减少的数值
* @return 更新的行数 * @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); 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 减少的数值 * @param numeral 减少的数值
* @return 更新的行数 * @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); int dec(@Param("userId") Long userId, @Param("field") String field, @Param("numeral") int numeral);
} }

View File

@ -436,60 +436,51 @@ public class CaseClinicalArticleService {
@Transactional @Transactional
public boolean DecClinicalArticleStats(String articleId,Integer type){ public boolean DecClinicalArticleStats(String articleId,Integer type){
try { 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<>(); LambdaQueryWrapper<CaseClinicalArticleAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, articleId); authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, articleId);
List<CaseClinicalArticleAuthorModel> caseClinicalArticleAuthors = caseClinicalArticleAuthorDao.selectList(authorQueryWrapper); List<CaseClinicalArticleAuthorModel> caseClinicalArticleAuthors = caseClinicalArticleAuthorDao.selectList(authorQueryWrapper);
for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) {
// 查询医生
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
// 阅读量 // 减少医生文章数
if (type == 1){ statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),statsCaseClinicalHospitalField,1);
caseClinicalArticleDao.dec(Long.valueOf(articleId),"read_num",1);
statsCaseClinicalDao.dec(1L,"article_read_num",1);
for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) { // 减少医生文章数
// 查询医生 statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),statsCaseClinicalDoctorField,1);
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
// 增加医院文章收藏数
statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),"article_read_num",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);
}
} }
return true; return true;

View File

@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.lang.reflect.Field;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -435,60 +436,49 @@ public class CaseClinicalVideoService {
@Transactional @Transactional
public boolean DecClinicalVideoStats(String videoId,Integer type){ public boolean DecClinicalVideoStats(String videoId,Integer type){
try { 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<>(); LambdaQueryWrapper<CaseClinicalVideoAuthorModel> authorQueryWrapper = new LambdaQueryWrapper<>();
authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, videoId); authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, videoId);
List<CaseClinicalVideoAuthorModel> caseClinicalVideoAuthors = caseClinicalVideoAuthorDao.selectList(authorQueryWrapper); List<CaseClinicalVideoAuthorModel> caseClinicalVideoAuthors = caseClinicalVideoAuthorDao.selectList(authorQueryWrapper);
for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) {
// 查询医生
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId());
// 阅读量 // 获取医院统计数据
if (type == 1){ statsCaseClinicalHospitalDao.dec(caseClinicalDoctor.getHospitalId(),statsCaseClinicalHospitalField,1);
caseClinicalVideoDao.dec(Long.valueOf(videoId),"read_num",1); statsCaseClinicalDoctorDao.dec(caseClinicalDoctor.getDoctorId(),statsCaseClinicalDoctorField,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);
}
} }
return true; return true;