From 370caf60a4801776edb9e51556504018ea54fc01 Mon Sep 17 00:00:00 2001 From: ck <851316342@qq.com> Date: Fri, 16 Oct 2020 16:01:00 +0800 Subject: [PATCH] up --- .../CaseContentScoreController.java | 47 ++++++++++++ .../cases/mapper/CaseContentScoreMapper.java | 11 +++ .../com/bsd/cases/model/CaseContentScore.java | 16 ++++ .../service/CaseContentScoreService.java | 8 ++ .../service/impl/CaseCategoryServiceImpl.java | 7 ++ .../impl/CaseContentCommentsServiceImpl.java | 7 ++ .../impl/CaseContentScoreServiceImpl.java | 73 +++++++++++++++++++ .../com/bsd/cases/vo/CaseContentDetailVo.java | 2 + .../mapper/CaseContentScoreMapper.xml | 7 ++ 9 files changed, 178 insertions(+) create mode 100644 src/main/java/com/bsd/cases/controller/CaseContentScoreController.java create mode 100644 src/main/java/com/bsd/cases/mapper/CaseContentScoreMapper.java create mode 100644 src/main/java/com/bsd/cases/model/CaseContentScore.java create mode 100644 src/main/java/com/bsd/cases/service/CaseContentScoreService.java create mode 100644 src/main/java/com/bsd/cases/service/impl/CaseContentScoreServiceImpl.java create mode 100644 src/main/resources/mapper/CaseContentScoreMapper.xml diff --git a/src/main/java/com/bsd/cases/controller/CaseContentScoreController.java b/src/main/java/com/bsd/cases/controller/CaseContentScoreController.java new file mode 100644 index 0000000..a6a5c06 --- /dev/null +++ b/src/main/java/com/bsd/cases/controller/CaseContentScoreController.java @@ -0,0 +1,47 @@ +package com.bsd.cases.controller; + +import com.alibaba.fastjson.JSONObject; +import com.bsd.cases.service.CaseContentScoreService; +import com.bsd.cases.util.AjaxRequest; +import com.bsd.cases.util.AjaxResult; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +@CrossOrigin +@RestController +@RequestMapping("/case-content-score") +public class CaseContentScoreController { + + @Resource + private CaseContentScoreService caseContentScoreService; + + @RequestMapping("/add-score") + public AjaxResult addScore(@RequestBody AjaxRequest ajaxRequest, HttpServletRequest request) { + AjaxResult ajaxResult = new AjaxResult(); + JSONObject data = ajaxRequest.getData(); + if (null == data){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("data missing"); + }else { + Long contentId = data.getLong("contentId"); + Double score = data.getDouble("score"); + if (null==contentId){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("文章id不可为空"); + return ajaxResult; + } + if (null == score){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("评分不可为空"); + return ajaxResult; + } + ajaxResult = caseContentScoreService.addScore(contentId,score); + } + return ajaxResult; + } +} diff --git a/src/main/java/com/bsd/cases/mapper/CaseContentScoreMapper.java b/src/main/java/com/bsd/cases/mapper/CaseContentScoreMapper.java new file mode 100644 index 0000000..3721523 --- /dev/null +++ b/src/main/java/com/bsd/cases/mapper/CaseContentScoreMapper.java @@ -0,0 +1,11 @@ +package com.bsd.cases.mapper; + +import com.bsd.cases.model.CaseContentScore; +import com.bsd.cases.util.CommonMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +@Repository +public interface CaseContentScoreMapper extends CommonMapper { + Double getAverageScore(@Param("contentId")Long contentId); +} diff --git a/src/main/java/com/bsd/cases/model/CaseContentScore.java b/src/main/java/com/bsd/cases/model/CaseContentScore.java new file mode 100644 index 0000000..a679b67 --- /dev/null +++ b/src/main/java/com/bsd/cases/model/CaseContentScore.java @@ -0,0 +1,16 @@ +package com.bsd.cases.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("case_content_score") +public class CaseContentScore extends BaseEntity{ + + private Long contentId; + + private Double score; + +} diff --git a/src/main/java/com/bsd/cases/service/CaseContentScoreService.java b/src/main/java/com/bsd/cases/service/CaseContentScoreService.java new file mode 100644 index 0000000..79e8b63 --- /dev/null +++ b/src/main/java/com/bsd/cases/service/CaseContentScoreService.java @@ -0,0 +1,8 @@ +package com.bsd.cases.service; + +import com.bsd.cases.util.AjaxResult; + +public interface CaseContentScoreService extends BaseService { + + AjaxResult addScore(Long contentId, Double score); +} diff --git a/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java b/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java index d228bb1..7b319cb 100644 --- a/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java +++ b/src/main/java/com/bsd/cases/service/impl/CaseCategoryServiceImpl.java @@ -46,6 +46,13 @@ public class CaseCategoryServiceImpl extends BaseServiceImpl + implements CaseContentScoreService { + + @Resource + private CaseContentScoreMapper caseContentScoreMapper; + @Resource + private CaseContentMapper caseContentMapper; + @Resource + private CaseContentStaticalMapper caseContentStaticalMapper; + + /** + * 评分 + * @param contentId + * @param score + */ + @Override + public AjaxResult addScore(Long contentId, Double score) { + AjaxResult ajaxResult = new AjaxResult(); + CaseContent findCaseContent = new CaseContent(); + findCaseContent.setState(Constants.STATE_VALID); + findCaseContent.setId(contentId); + CaseContent caseContent = caseContentMapper.selectOne(findCaseContent); + if (null == caseContent){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("未找到该文章"); + }else { + if (score>5||score<0){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("评分不可大于5或小于0"); + }else { + CaseContentScore caseContentScore = new CaseContentScore(); + caseContentScore.setScore(score); + caseContentScore.setContentId(contentId); + caseContentScore.setCreateDateTime(new Date()); + caseContentScore.setUpdateDateTime(new Date()); + //set 人 + caseContentScore.setState(Constants.STATE_VALID); + caseContentScoreMapper.insert(caseContentScore); + Double averageScore = caseContentScoreMapper.getAverageScore(contentId); + CaseContentStatical findCaseContentStatical = new CaseContentStatical(); + findCaseContentStatical.setState(Constants.STATE_VALID); + findCaseContentStatical.setContentId(contentId); + CaseContentStatical caseContentStatical = caseContentStaticalMapper.selectOne(findCaseContentStatical); + caseContentStatical.setScore(averageScore); + caseContentStatical.setUpdateDateTime(new Date()); + caseContentStaticalMapper.updateByPrimaryKeySelective(caseContentStatical); + ajaxResult.setRetmsg("已成功评分"); + ajaxResult.setRetcode(AjaxResult.SUCCESS); + } + } + return ajaxResult; + } +} diff --git a/src/main/java/com/bsd/cases/vo/CaseContentDetailVo.java b/src/main/java/com/bsd/cases/vo/CaseContentDetailVo.java index 47435a5..fed4c11 100644 --- a/src/main/java/com/bsd/cases/vo/CaseContentDetailVo.java +++ b/src/main/java/com/bsd/cases/vo/CaseContentDetailVo.java @@ -29,6 +29,8 @@ public class CaseContentDetailVo { private Boolean isLike = false; + private Boolean isScore = false; + private Integer commentsNum; private Integer likeNum; diff --git a/src/main/resources/mapper/CaseContentScoreMapper.xml b/src/main/resources/mapper/CaseContentScoreMapper.xml new file mode 100644 index 0000000..f337d96 --- /dev/null +++ b/src/main/resources/mapper/CaseContentScoreMapper.xml @@ -0,0 +1,7 @@ + + + + +