diff --git a/src/main/java/com/example/caseData/controller/CaseClinicalArticleController.java b/src/main/java/com/example/caseData/controller/CaseClinicalArticleController.java index 4bc0562..9b40ce5 100644 --- a/src/main/java/com/example/caseData/controller/CaseClinicalArticleController.java +++ b/src/main/java/com/example/caseData/controller/CaseClinicalArticleController.java @@ -403,137 +403,5 @@ public class CaseClinicalArticleController { return Response.success(resultMap); } - /** - * 新增文章的统计字段 - * @param articleId 文章id - * @param type 类型:1:阅读量 2:收藏量 3:评论数 - */ - public void IncClinicalArticleStats(String articleId,Integer type){ - // 获取文章作者 - LambdaQueryWrapper authorQueryWrapper = new LambdaQueryWrapper<>(); - authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, articleId); - List caseClinicalArticleAuthors = caseClinicalArticleAuthorDao.selectList(authorQueryWrapper); - // 阅读量 - if (type == 1){ - caseClinicalArticleDao.inc(Long.valueOf(articleId),"read_num",1); - statsCaseClinicalDao.inc(1L,"article_read_num",1); - - for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) { - // 查询医生 - CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); - - // 增加医院文章收藏数 - statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_read_num",1); - - // 增加医生文章收藏数 - statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_read_num",1); - } - } - - // 收藏量 - if (type == 2){ - caseClinicalArticleDao.inc(Long.valueOf(articleId),"collect_num",1); - statsCaseClinicalDao.inc(1L,"article_collect_num",1); - - for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) { - // 查询医生 - CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); - - // 增加医院文章收藏数 - statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_collect_num",1); - - // 增加医生文章收藏数 - statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_collect_num",1); - } - } - - // 评论数 - if (type == 3){ - caseClinicalArticleDao.inc(Long.valueOf(articleId),"comment_num",1); - statsCaseClinicalDao.inc(1L,"article_comment_num",1); - - for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) { - // 查询医生 - CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); - - // 增加医院文章收藏数 - statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_comment_num",1); - - // 增加医生文章收藏数 - statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_comment_num",1); - } - } - - - - - } - - /** - * 减少文章的统计字段 - * @param articleId 文章id - * @param type 类型:1:阅读量 2:收藏量 3:评论数 - */ - public void DecClinicalArticleStats(String articleId,Integer type){ - // 获取文章作者 - LambdaQueryWrapper authorQueryWrapper = new LambdaQueryWrapper<>(); - authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, articleId); - List caseClinicalArticleAuthors = caseClinicalArticleAuthorDao.selectList(authorQueryWrapper); - - // 阅读量 - if (type == 1){ - caseClinicalArticleDao.inc(Long.valueOf(articleId),"read_num",1); - statsCaseClinicalDao.inc(1L,"article_read_num",1); - - for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) { - // 查询医生 - CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); - - // 增加医院文章收藏数 - statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_read_num",1); - - // 增加医生文章收藏数 - statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_read_num",1); - } - } - - // 收藏量 - if (type == 2){ - caseClinicalArticleDao.inc(Long.valueOf(articleId),"collect_num",1); - statsCaseClinicalDao.inc(1L,"article_collect_num",1); - - for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) { - // 查询医生 - CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); - - // 增加医院文章收藏数 - statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_collect_num",1); - - // 增加医生文章收藏数 - statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_collect_num",1); - } - } - - // 评论数 - if (type == 3){ - caseClinicalArticleDao.inc(Long.valueOf(articleId),"comment_num",1); - statsCaseClinicalDao.inc(1L,"article_comment_num",1); - - for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) { - // 查询医生 - CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); - - // 增加医院文章收藏数 - statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_comment_num",1); - - // 增加医生文章收藏数 - statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_comment_num",1); - } - } - - - - - } } diff --git a/src/main/java/com/example/caseData/service/CaseClinicalArticleService.java b/src/main/java/com/example/caseData/service/CaseClinicalArticleService.java index 8fc96ca..2916382 100644 --- a/src/main/java/com/example/caseData/service/CaseClinicalArticleService.java +++ b/src/main/java/com/example/caseData/service/CaseClinicalArticleService.java @@ -79,25 +79,11 @@ public class CaseClinicalArticleService { return false; } - // 增加文章收藏数 - caseClinicalArticleDao.inc(Long.valueOf(articleId),"collect_num",1); - - // 增加文章总收藏数 - statsCaseClinicalDao.inc(1L,"article_collect_num",1); - - // 获取文章作者 - LambdaQueryWrapper authorQueryWrapper = new LambdaQueryWrapper<>(); - authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, articleId); - List caseClinicalArticleAuthors = caseClinicalArticleAuthorDao.selectList(authorQueryWrapper); - for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) { - // 查询医生 - CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); - - // 增加医院文章收藏数 - statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_collect_num",1); - - // 增加医生文章收藏数 - statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_collect_num",1); + // 新增统计字段 + boolean r = IncClinicalArticleStats(articleId,2); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; } return true; @@ -124,25 +110,11 @@ public class CaseClinicalArticleService { return false; } - // 减少文章收藏数 - caseClinicalArticleDao.dec(Long.valueOf(articleId),"collect_num",1); - - // 减少文章总收藏数 - statsCaseClinicalDao.dec(1L,"article_collect_num",1); - - // 获取文章作者 - LambdaQueryWrapper authorQueryWrapper = new LambdaQueryWrapper<>(); - authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, articleId); - List caseClinicalArticleAuthors = caseClinicalArticleAuthorDao.selectList(authorQueryWrapper); - 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); + // 减少文章的统计字段 + boolean r = DecClinicalArticleStats(articleId,2); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; } return true; @@ -192,7 +164,18 @@ public class CaseClinicalArticleService { } int res = userCommentClinicalArticleDao.insert(userCommentClinicalArticleData); - return res > 0; + if (res <= 0){ + return false; + } + + // 新增文章的统计字段 + boolean r = IncClinicalArticleStats(articleId,3); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } + + return true; } /** @@ -232,6 +215,13 @@ public class CaseClinicalArticleService { return false; } + // 减少文章的统计字段 + boolean r = DecClinicalArticleStats(String.valueOf(comment.getArticleId()),2); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } + return true; } @@ -367,4 +357,145 @@ public class CaseClinicalArticleService { return isAuthor; } + + /** + * 新增文章的统计字段 + * @param articleId 文章id + * @param type 类型:1:阅读量 2:收藏量 3:评论数 + */ + @Transactional + public boolean IncClinicalArticleStats(String articleId,Integer type){ + try { + // 获取文章作者 + LambdaQueryWrapper authorQueryWrapper = new LambdaQueryWrapper<>(); + authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, articleId); + List caseClinicalArticleAuthors = caseClinicalArticleAuthorDao.selectList(authorQueryWrapper); + + // 阅读量 + if (type == 1){ + caseClinicalArticleDao.inc(Long.valueOf(articleId),"read_num",1); + statsCaseClinicalDao.inc(1L,"article_read_num",1); + + for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) { + // 查询医生 + CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); + + // 增加医院文章收藏数 + statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_read_num",1); + + // 增加医生文章收藏数 + statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_read_num",1); + } + } + + // 收藏量 + if (type == 2){ + caseClinicalArticleDao.inc(Long.valueOf(articleId),"collect_num",1); + statsCaseClinicalDao.inc(1L,"article_collect_num",1); + + for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) { + // 查询医生 + CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); + + // 增加医院文章收藏数 + statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_collect_num",1); + + // 增加医生文章收藏数 + statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_collect_num",1); + } + } + + // 评论数 + if (type == 3){ + caseClinicalArticleDao.inc(Long.valueOf(articleId),"comment_num",1); + statsCaseClinicalDao.inc(1L,"article_comment_num",1); + + for (CaseClinicalArticleAuthorModel author : caseClinicalArticleAuthors) { + // 查询医生 + CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); + + // 增加医院文章收藏数 + statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"article_comment_num",1); + + // 增加医生文章收藏数 + statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"article_comment_num",1); + } + } + + return true; + } catch (Exception e) { + return false; + } + } + + /** + * 减少文章的统计字段 + * @param articleId 文章id + * @param type 类型:1:阅读量 2:收藏量 3:评论数 + */ + @Transactional + public boolean DecClinicalArticleStats(String articleId,Integer type){ + try { + // 获取文章作者 + LambdaQueryWrapper authorQueryWrapper = new LambdaQueryWrapper<>(); + authorQueryWrapper.eq(CaseClinicalArticleAuthorModel::getArticleId, articleId); + List 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); + + // 增加医生文章收藏数 + 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; + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } + } } diff --git a/src/main/java/com/example/caseData/service/CaseClinicalVideoService.java b/src/main/java/com/example/caseData/service/CaseClinicalVideoService.java index a73de66..d3268aa 100644 --- a/src/main/java/com/example/caseData/service/CaseClinicalVideoService.java +++ b/src/main/java/com/example/caseData/service/CaseClinicalVideoService.java @@ -73,25 +73,11 @@ public class CaseClinicalVideoService { return false; } - // 增加视频收藏数 - caseClinicalVideoDao.inc(Long.valueOf(videoId),"collect_num",1); - - // 增加视频总收藏数 - statsCaseClinicalDao.inc(1L,"video_collect_num",1); - - // 获取视频作者 - LambdaQueryWrapper authorQueryWrapper = new LambdaQueryWrapper<>(); - authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, videoId); - List caseClinicalVideoAuthors = caseClinicalVideoAuthorDao.selectList(authorQueryWrapper); - for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) { - // 查询医生 - CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); - - // 增加医院视频收藏数 - statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"video_collect_num",1); - - // 增加医生视频收藏数 - statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"video_collect_num",1); + // 新增统计字段 + boolean r = IncClinicalVideoStats(videoId,2); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; } return true; @@ -118,25 +104,11 @@ public class CaseClinicalVideoService { return false; } - // 减少视频收藏数 - caseClinicalVideoDao.dec(Long.valueOf(videoId),"collect_num",1); - - // 减少视频总收藏数 - statsCaseClinicalDao.dec(1L,"video_collect_num",1); - - // 获取视频作者 - LambdaQueryWrapper authorQueryWrapper = new LambdaQueryWrapper<>(); - authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, videoId); - List caseClinicalVideoAuthors = caseClinicalVideoAuthorDao.selectList(authorQueryWrapper); - 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); + // 减少视频的统计字段 + boolean r = DecClinicalVideoStats(videoId,2); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; } return true; @@ -186,7 +158,18 @@ public class CaseClinicalVideoService { } int res = userCommentClinicalVideoDao.insert(userCommentClinicalVideoData); - return res > 0; + if (res <= 0){ + return false; + } + + // 新增文章的统计字段 + boolean r = IncClinicalVideoStats(videoId,3); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } + + return true; } /** @@ -226,6 +209,13 @@ public class CaseClinicalVideoService { return false; } + // 减少文章的统计字段 + boolean r = DecClinicalVideoStats(String.valueOf(comment.getVideoId()),2); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } + return true; } @@ -361,4 +351,145 @@ public class CaseClinicalVideoService { return userCollectClinicalVideoDao.selectOne(mapQueryWrapper); } + + /** + * 新增视频的统计字段 + * @param videoId 视频id + * @param type 类型:1:阅读量 2:收藏量 3:评论数 + */ + @Transactional + public boolean IncClinicalVideoStats(String videoId,Integer type){ + try { + // 获取文章作者 + LambdaQueryWrapper authorQueryWrapper = new LambdaQueryWrapper<>(); + authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, videoId); + List caseClinicalVideoAuthors = caseClinicalVideoAuthorDao.selectList(authorQueryWrapper); + + // 阅读量 + if (type == 1){ + caseClinicalVideoDao.inc(Long.valueOf(videoId),"read_num",1); + statsCaseClinicalDao.inc(1L,"video_read_num",1); + + for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) { + // 查询医生 + CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); + + // 增加医院文章收藏数 + statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"video_read_num",1); + + // 增加医生文章收藏数 + statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"video_read_num",1); + } + } + + // 收藏量 + if (type == 2){ + caseClinicalVideoDao.inc(Long.valueOf(videoId),"collect_num",1); + statsCaseClinicalDao.inc(1L,"video_collect_num",1); + + for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) { + // 查询医生 + CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); + + // 增加医院文章收藏数 + statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"video_collect_num",1); + + // 增加医生文章收藏数 + statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"video_collect_num",1); + } + } + + // 评论数 + if (type == 3){ + caseClinicalVideoDao.inc(Long.valueOf(videoId),"comment_num",1); + statsCaseClinicalDao.inc(1L,"video_comment_num",1); + + for (CaseClinicalVideoAuthorModel author : caseClinicalVideoAuthors) { + // 查询医生 + CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectById(author.getDoctorId()); + + // 增加医院文章收藏数 + statsCaseClinicalHospitalDao.inc(caseClinicalDoctor.getHospitalId(),"video_comment_num",1); + + // 增加医生文章收藏数 + statsCaseClinicalDoctorDao.inc(caseClinicalDoctor.getDoctorId(),"video_comment_num",1); + } + } + + return true; + } catch (Exception e) { + return false; + } + } + + /** + * 减少视频的统计字段 + * @param videoId 文章id + * @param type 类型:1:阅读量 2:收藏量 3:评论数 + */ + @Transactional + public boolean DecClinicalVideoStats(String videoId,Integer type){ + try { + // 获取文章作者 + LambdaQueryWrapper authorQueryWrapper = new LambdaQueryWrapper<>(); + authorQueryWrapper.eq(CaseClinicalVideoAuthorModel::getVideoId, videoId); + List 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); + } + } + + return true; + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } + } } diff --git a/src/main/java/com/example/caseData/service/CaseExchangeService.java b/src/main/java/com/example/caseData/service/CaseExchangeService.java index 164780d..ce4dd6a 100644 --- a/src/main/java/com/example/caseData/service/CaseExchangeService.java +++ b/src/main/java/com/example/caseData/service/CaseExchangeService.java @@ -228,14 +228,12 @@ public class CaseExchangeService { return false; } - // 增加病例交流收藏数 - caseExchangeDao.inc(Long.valueOf(exchangeId),"collect_num",1); - - // 增加病例交流总收藏数 - statsCaseExchangeDao.inc(1L,"exchange_collect_num",1); - - // 增加用户交流收藏数 - statsCaseExchangeUserDao.inc(Long.valueOf(userId),"exchange_collect_num",1); + // 新增统计字段 + boolean r = IncCaseExchangeStats(exchangeId,userId,2); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } return true; } @@ -261,14 +259,12 @@ public class CaseExchangeService { return false; } - // 减少病例交流收藏数 - caseExchangeDao.dec(Long.valueOf(exchangeId),"collect_num",1); - - // 减少病例交流总收藏数 - statsCaseExchangeDao.dec(1L,"exchange_collect_num",1); - - // 减少用户交流收藏数 - statsCaseExchangeUserDao.dec(Long.valueOf(userId),"exchange_collect_num",1); + // 减少文章的统计字段 + boolean r = DecCaseExchangeStats(exchangeId,userId,2); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } return true; } @@ -317,7 +313,18 @@ public class CaseExchangeService { } int res = userCommentExchangeDao.insert(userCommentExchangeData); - return res > 0; + if (res <= 0){ + return false; + } + + // 新增统计字段 + boolean r = IncCaseExchangeStats(exchangeId,userId,2); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } + + return true; } /** @@ -356,6 +363,13 @@ public class CaseExchangeService { return false; } + // 减少统计字段 + boolean r = DecCaseExchangeStats(String.valueOf(comment.getExchangeId()),userId,2); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } + return true; } @@ -557,4 +571,87 @@ public class CaseExchangeService { return true; } + + /** + * 新增病例交流的统计字段 + * @param exchangeId id + * @param type 类型:1:阅读量 2:收藏量 3:评论数 + */ + @Transactional + public boolean IncCaseExchangeStats(String exchangeId,String userId,Integer type){ + try { + // 阅读量 + if (type == 1){ + caseExchangeDao.inc(Long.valueOf(exchangeId),"read_num",1); + statsCaseExchangeDao.inc(1L,"exchange_read_num",1); + + // 此处无需担心stats_case_exchange_user无数据,发布病例时会新增 + statsCaseExchangeUserDao.inc(Long.valueOf(userId),"exchange_read_num",1); + } + + // 收藏量 + if (type == 2){ + caseExchangeDao.inc(Long.valueOf(exchangeId),"collect_num",1); + statsCaseExchangeDao.inc(1L,"exchange_collect_num",1); + + // 此处无需担心stats_case_exchange_user无数据,发布病例时会新增 + statsCaseExchangeUserDao.inc(Long.valueOf(userId),"exchange_collect_num",1); + } + + // 评论数 + if (type == 3){ + caseExchangeDao.inc(Long.valueOf(exchangeId),"comment_num",1); + statsCaseExchangeDao.inc(1L,"exchange_comment_num",1); + + // 此处无需担心stats_case_exchange_user无数据,发布病例时会新增 + statsCaseExchangeUserDao.inc(Long.valueOf(userId),"exchange_comment_num",1); + } + + return true; + } catch (Exception e) { + return false; + } + } + + /** + * 减少文章的统计字段 + * @param exchangeId id + * @param type 类型:1:阅读量 2:收藏量 3:评论数 + */ + @Transactional + public boolean DecCaseExchangeStats(String exchangeId,String userId,Integer type){ + try { + // 阅读量 + if (type == 1){ + caseExchangeDao.dec(Long.valueOf(exchangeId),"read_num",1); + statsCaseExchangeDao.dec(1L,"exchange_read_num",1); + + // 此处无需担心stats_case_exchange_user无数据,发布病例时会新增 + statsCaseExchangeUserDao.dec(Long.valueOf(userId),"exchange_read_num",1); + } + + // 收藏量 + if (type == 2){ + caseExchangeDao.inc(Long.valueOf(exchangeId),"collect_num",1); + statsCaseExchangeDao.dec(1L,"exchange_collect_num",1); + + // 此处无需担心stats_case_exchange_user无数据,发布病例时会新增 + statsCaseExchangeUserDao.dec(Long.valueOf(userId),"exchange_collect_num",1); + } + + // 评论数 + if (type == 3){ + caseExchangeDao.inc(Long.valueOf(exchangeId),"comment_num",1); + statsCaseExchangeDao.dec(1L,"exchange_comment_num",1); + + // 此处无需担心stats_case_exchange_user无数据,发布病例时会新增 + statsCaseExchangeUserDao.dec(Long.valueOf(userId),"exchange_comment_num",1); + } + + return true; + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } + } } diff --git a/src/main/java/com/example/caseData/service/UserCaseReadService.java b/src/main/java/com/example/caseData/service/UserCaseReadService.java index 68d9af1..876feb7 100644 --- a/src/main/java/com/example/caseData/service/UserCaseReadService.java +++ b/src/main/java/com/example/caseData/service/UserCaseReadService.java @@ -14,6 +14,7 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.List; @@ -35,6 +36,12 @@ public class UserCaseReadService { @Resource private StatsCaseClinicalDao statsCaseClinicalDao; + @Resource + private CaseClinicalArticleService caseClinicalArticleService; + + @Resource + private CaseClinicalVideoService caseClinicalVideoService; + /** * 浏览记录-新增 * @return bool @@ -61,13 +68,22 @@ public class UserCaseReadService { // 文章 if (request.getType() == 1){ - caseClinicalArticleDao.inc(Long.valueOf(request.getId()),"read_num",1); - statsCaseClinicalDao.inc(1L,"read_num",1); + // 新增统计字段 + boolean r = caseClinicalArticleService.IncClinicalArticleStats(request.getId(),1); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } } // 视频 if (request.getType() == 2){ - caseClinicalVideoDao.inc(Long.valueOf(request.getId()),"read_num",1); + // 新增统计字段 + boolean r = caseClinicalVideoService.IncClinicalVideoStats(request.getId(),1); + if (!r){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } } // 病例交流