diff --git a/src/main/java/com/example/caseData/service/CaseClinicalArticleService.java b/src/main/java/com/example/caseData/service/CaseClinicalArticleService.java index e279604..4539b1e 100644 --- a/src/main/java/com/example/caseData/service/CaseClinicalArticleService.java +++ b/src/main/java/com/example/caseData/service/CaseClinicalArticleService.java @@ -185,8 +185,12 @@ public class CaseClinicalArticleService { return false; } - // 发放积分 - userService.ReportUserScore(articleId,1,userId); + // 获取发放积分次数 + Integer num = userService.GetReportUserScore(userId); + if (num < 3){ + // 发放积分 + userService.ReportUserScore(articleId,1,userId,5); + } return true; } diff --git a/src/main/java/com/example/caseData/service/CaseClinicalVideoService.java b/src/main/java/com/example/caseData/service/CaseClinicalVideoService.java index 18636f6..2042ce8 100644 --- a/src/main/java/com/example/caseData/service/CaseClinicalVideoService.java +++ b/src/main/java/com/example/caseData/service/CaseClinicalVideoService.java @@ -209,8 +209,12 @@ public class CaseClinicalVideoService { return false; } - // 发放积分 - userService.ReportUserScore(videoId,2,userId); + // 获取发放积分次数 + Integer num = userService.GetReportUserScore(userId); + if (num < 3){ + // 发放积分 + userService.ReportUserScore(videoId,2,userId,5); + } return true; } diff --git a/src/main/java/com/example/caseData/service/CaseExchangeService.java b/src/main/java/com/example/caseData/service/CaseExchangeService.java index b647e4f..2ed438b 100644 --- a/src/main/java/com/example/caseData/service/CaseExchangeService.java +++ b/src/main/java/com/example/caseData/service/CaseExchangeService.java @@ -204,6 +204,9 @@ public class CaseExchangeService { throw new BusinessException("操作失败"); } + // 发放积分 + userService.ReportUserScore(String.valueOf(caseExchangeData.getExchangeId()),3,userId,50); + return true; } @@ -482,9 +485,12 @@ public class CaseExchangeService { return false; } - // 发放积分 - userService.ReportUserScore(exchangeId,3,userId); - + // 获取发放积分次数 + Integer num = userService.GetReportUserScore(userId); + if (num < 3){ + // 发放积分 + userService.ReportUserScore(exchangeId,3,userId,5); + } return true; } diff --git a/src/main/java/com/example/caseData/service/UserService.java b/src/main/java/com/example/caseData/service/UserService.java index 178b608..2254852 100644 --- a/src/main/java/com/example/caseData/service/UserService.java +++ b/src/main/java/com/example/caseData/service/UserService.java @@ -325,8 +325,12 @@ public class UserService { return caseClinicalDoctor; } - // 发放积分 - public boolean ReportUserScore(String id,Integer type,String userId) throws BusinessException{ + /** + * 发放积分 + * @param type 类型(1:文章 2:视频 3:病例交流) + * @throws BusinessException + */ + public boolean ReportUserScore(String id,Integer type,String userId,Integer point) throws BusinessException{ // 获取积分发放记录 // 获取今天的日期,并设置时间为 00:00:00 LocalDateTime startOfToday = LocalDate.now().atStartOfDay(); // 例如:2025-07-30 00:00:00 @@ -343,7 +347,7 @@ public class UserService { // 获取用户数据 UserModel user = userDao.selectById(userId); if (user == null){ - throw new BusinessException("积分"); + throw new BusinessException("操作失败"); } // 发放积分 @@ -352,7 +356,7 @@ public class UserService { // 添加打赏记录 CaseClinicalRecordScoreModel data = new CaseClinicalRecordScoreModel(); data.setUserId(Long.valueOf(userId)); - data.setScore(5); + data.setScore(point); data.setId(Long.valueOf(id)); data.setUserName(user.getUserName()); data.setNodeName("病例库-病例互动"); @@ -365,6 +369,20 @@ public class UserService { return true; } + // 获取发放积分次数 + public Integer GetReportUserScore(String userId) throws BusinessException{ + // 获取积分发放记录 + // 获取今天的日期,并设置时间为 00:00:00 + LocalDateTime startOfToday = LocalDate.now().atStartOfDay(); // 例如:2025-07-30 00:00:00 + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id", userId) + .ge("created_at", startOfToday) // created_at >= 今天 00:00:00 + .orderByDesc("created_at"); // 最新的在前 + List caseClinicalRecordScores = caseClinicalRecordScoreDao.selectList(queryWrapper); + return caseClinicalRecordScores.size(); + } + /** * 处理用户头像:下载远程头像并上传至 OSS *