diff --git a/src/main/java/com/example/caseData/controller/CaseExchangeController.java b/src/main/java/com/example/caseData/controller/CaseExchangeController.java index db0c5a5..9dde467 100644 --- a/src/main/java/com/example/caseData/controller/CaseExchangeController.java +++ b/src/main/java/com/example/caseData/controller/CaseExchangeController.java @@ -665,18 +665,18 @@ public class CaseExchangeController { public Response AddCaseExchangeVote( @Validated() @PathVariable("exchange_id") String exchangeId, - @ModelAttribute addCaseExchangeVote r + @RequestBody addCaseExchangeVote r ) { String userId = (String) httpServletRequest.getAttribute("userId"); if (userId == null) { - return Response.error("操作失败"); + return Response.error("操作失败1"); } boolean res = caseExchangeService.AddCaseExchangeVote(exchangeId,userId,r.getOptionId()); if (!res){ - return Response.error("操作失败"); + return Response.error("操作失败2"); } return Response.success(); diff --git a/src/main/java/com/example/caseData/dao/CaseExchangeVoteOptionDao.java b/src/main/java/com/example/caseData/dao/CaseExchangeVoteOptionDao.java index ac5f91e..2e83b94 100644 --- a/src/main/java/com/example/caseData/dao/CaseExchangeVoteOptionDao.java +++ b/src/main/java/com/example/caseData/dao/CaseExchangeVoteOptionDao.java @@ -4,7 +4,31 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.caseData.model.CaseExchangeVoteModel; import com.example.caseData.model.CaseExchangeVoteOptionModel; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; @Mapper public interface CaseExchangeVoteOptionDao extends BaseMapper { + /** + * Inc 自增 + * @param optionId 文章 ID + * @param field 字段名称 + * @param numeral 增加的数值 + * @return 更新的行数 + */ + @Update("UPDATE case_exchange_vote_option SET ${field} = ${field} + #{numeral} WHERE option_id = #{optionId}") + int inc(@Param("optionId") Long optionId, @Param("field") String field, @Param("numeral") int numeral); + + /** + * Dec 自减 + * + * @param optionId 文章 ID + * @param field 字段名称 + * @param numeral 减少的数值 + * @return 更新的行数 + */ + @Update("UPDATE case_exchange_vote_option " + + "SET ${field} = CASE WHEN ${field} >= #{numeral} THEN ${field} - #{numeral} ELSE 0 END " + + "WHERE option_id = #{optionId}") + int dec(@Param("optionId") Long optionId, @Param("field") String field, @Param("numeral") int numeral); } diff --git a/src/main/java/com/example/caseData/dao/StatsCaseClinicalDoctorDao.java b/src/main/java/com/example/caseData/dao/StatsCaseClinicalDoctorDao.java index 80a34c9..6076a9e 100644 --- a/src/main/java/com/example/caseData/dao/StatsCaseClinicalDoctorDao.java +++ b/src/main/java/com/example/caseData/dao/StatsCaseClinicalDoctorDao.java @@ -26,18 +26,18 @@ public interface StatsCaseClinicalDoctorDao extends BaseMapper= #{numeral} THEN ${field} - #{numeral} ELSE 0 END " + "WHERE doctor_id = #{doctorId}") - int dec(@Param("doctorId") Long articleId, @Param("field") String field, @Param("numeral") int numeral); + int dec(@Param("doctorId") Long doctorId, @Param("field") String field, @Param("numeral") int numeral); } \ No newline at end of file diff --git a/src/main/java/com/example/caseData/model/UserVoteExchangeModel.java b/src/main/java/com/example/caseData/model/UserVoteExchangeModel.java index 0acae24..0d1b548 100644 --- a/src/main/java/com/example/caseData/model/UserVoteExchangeModel.java +++ b/src/main/java/com/example/caseData/model/UserVoteExchangeModel.java @@ -36,6 +36,12 @@ public class UserVoteExchangeModel { @TableField("vote_id") private Long voteId; + /** + * 选项id + */ + @TableField("option_id") + private Long optionId; + /** * 投票时间 */ diff --git a/src/main/java/com/example/caseData/request/caseExchangeRequest/addCaseExchangeVote.java b/src/main/java/com/example/caseData/request/caseExchangeRequest/addCaseExchangeVote.java index 950483e..cf62945 100644 --- a/src/main/java/com/example/caseData/request/caseExchangeRequest/addCaseExchangeVote.java +++ b/src/main/java/com/example/caseData/request/caseExchangeRequest/addCaseExchangeVote.java @@ -6,7 +6,6 @@ import lombok.Data; @Data public class addCaseExchangeVote { - // 父级 次级评论此字段必须存在 @JsonProperty("option_id") private String optionId; } diff --git a/src/main/java/com/example/caseData/service/CaseExchangeService.java b/src/main/java/com/example/caseData/service/CaseExchangeService.java index 0e71fad..164780d 100644 --- a/src/main/java/com/example/caseData/service/CaseExchangeService.java +++ b/src/main/java/com/example/caseData/service/CaseExchangeService.java @@ -532,29 +532,28 @@ public class CaseExchangeService { // 获取对应投票选项 LambdaQueryWrapper caseExchangeVoteOptionQueryWrapper = new LambdaQueryWrapper<>(); + caseExchangeVoteOptionQueryWrapper.eq(CaseExchangeVoteOptionModel::getOptionId, optionId); caseExchangeVoteOptionQueryWrapper.eq(CaseExchangeVoteOptionModel::getVoteId, caseExchangeVote.getVoteId()); - List caseExchangeVoteOptions = caseExchangeVoteOptionDao.selectList(caseExchangeVoteOptionQueryWrapper); - if (caseExchangeVoteOptions == null || caseExchangeVoteOptions.isEmpty()) { - return true; + CaseExchangeVoteOptionModel caseExchangeVoteOption = caseExchangeVoteOptionDao.selectOne(caseExchangeVoteOptionQueryWrapper); + if (caseExchangeVoteOption == null) { + return false; } -// // 新增投票 -// UserVoteExchangeModel userVoteExchangedata = new UserVoteExchangeModel(); -// userVoteExchangedata.setUserId(Long.valueOf(userId)); -// userVoteExchangedata.setExchangeId(Long.valueOf(exchangeId)); -// int res = userCollectExchangeDao.insert(userCollectExchangeData); -// if (res <= 0){ -// 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); + // 新增投票 + UserVoteExchangeModel userVoteExchangedata = new UserVoteExchangeModel(); + userVoteExchangedata.setUserId(Long.valueOf(userId)); + userVoteExchangedata.setExchangeId(Long.valueOf(exchangeId)); + userVoteExchangedata.setVoteId(caseExchangeVote.getVoteId()); + userVoteExchangedata.setOptionId(Long.valueOf(optionId)); + userVoteExchangedata.setVoteTime(LocalDateTime.now()); + int res = userVoteExchangeDao.insert(userVoteExchangedata); + if (res <= 0){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; + } + + // 处理投票数 + caseExchangeVoteOptionDao.inc(Long.valueOf(optionId),"vote_num",1); return true; }