From 563059cfff840a99b26c93e8a55b00e34b369ccc Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Fri, 14 Aug 2020 12:12:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=99=8B=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/mt/api/TopicController.java | 6 ++-- .../java/com/ccsens/mt/bean/dto/TopicDto.java | 2 +- .../com/ccsens/mt/service/ITopicService.java | 2 +- .../com/ccsens/mt/service/TopicService.java | 7 ++-- mt/src/main/resources/mapper_dao/TopicDao.xml | 36 ++++++++++++------- 5 files changed, 32 insertions(+), 21 deletions(-) diff --git a/mt/src/main/java/com/ccsens/mt/api/TopicController.java b/mt/src/main/java/com/ccsens/mt/api/TopicController.java index da0f790d..51bc4f99 100644 --- a/mt/src/main/java/com/ccsens/mt/api/TopicController.java +++ b/mt/src/main/java/com/ccsens/mt/api/TopicController.java @@ -65,7 +65,7 @@ public class TopicController { }) @RequestMapping(value = "/ranking", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse> queryRanking(@RequestBody @ApiParam @Validated TopicDto.GetRankingByProjectId ranking) throws Exception { - log.info("查排名:{}",ranking.toString()); + log.info("查排名:{}",ranking); List queryRankings = topicService.queryRanking(ranking); return JsonResponse.newInstance().ok(queryRankings); } @@ -74,8 +74,8 @@ public class TopicController { @ApiImplicitParams({ }) @RequestMapping(value = "/promoted", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse promoted(@RequestBody @ApiParam @Validated TopicDto.Promoted promoted) throws Exception { - log.info("查排名:{}",promoted.toString()); + public JsonResponse promoted(@RequestBody @ApiParam @Validated List promoted) throws Exception { + log.info("查排名:{}",promoted); CodeEnum codeEnum = topicService.promoted(promoted); return JsonResponse.newInstance().ok(codeEnum); } diff --git a/mt/src/main/java/com/ccsens/mt/bean/dto/TopicDto.java b/mt/src/main/java/com/ccsens/mt/bean/dto/TopicDto.java index 60f4ea22..517cd7c1 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/dto/TopicDto.java +++ b/mt/src/main/java/com/ccsens/mt/bean/dto/TopicDto.java @@ -80,7 +80,7 @@ public class TopicDto { @Max(4) private Byte linkTypes; @ApiModelProperty("分组ID") - private List groupIds; + private Long groupId; } @Data diff --git a/mt/src/main/java/com/ccsens/mt/service/ITopicService.java b/mt/src/main/java/com/ccsens/mt/service/ITopicService.java index a82de2d0..87782cbd 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ITopicService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ITopicService.java @@ -68,5 +68,5 @@ public interface ITopicService { * @param promoted 晋级组信息 * @return 结果 */ - CodeEnum promoted(TopicDto.Promoted promoted); + CodeEnum promoted(List promoted); } diff --git a/mt/src/main/java/com/ccsens/mt/service/TopicService.java b/mt/src/main/java/com/ccsens/mt/service/TopicService.java index 987980f4..185030bd 100644 --- a/mt/src/main/java/com/ccsens/mt/service/TopicService.java +++ b/mt/src/main/java/com/ccsens/mt/service/TopicService.java @@ -113,6 +113,7 @@ public class TopicService implements ITopicService{ groupTopic.setScore(score); groupTopicDao.insertSelective(groupTopic); //修改分组的分数 + group.setScore(group.getScore() + score - groupTopicScore); groupDao.updateByPrimaryKeySelective(group); }); @@ -230,11 +231,11 @@ public class TopicService implements ITopicService{ } @Override - public CodeEnum promoted(TopicDto.Promoted promoted) { + public CodeEnum promoted(List promotes) { - promoted.getGroupIds().forEach(groupId -> { + promotes.forEach(promoted -> { MtGroup mtGroup = new MtGroup(); - mtGroup.setId(groupId); + mtGroup.setId(promoted.getGroupId()); mtGroup.setAdvanceStatus(promoted.getLinkTypes()); mtGroupMapper.updateByPrimaryKeySelective(mtGroup); }); diff --git a/mt/src/main/resources/mapper_dao/TopicDao.xml b/mt/src/main/resources/mapper_dao/TopicDao.xml index eba1ed35..5e6ec7fa 100644 --- a/mt/src/main/resources/mapper_dao/TopicDao.xml +++ b/mt/src/main/resources/mapper_dao/TopicDao.xml @@ -43,23 +43,33 @@ SELECT p.id AS topicId, p.score AS topicScore, - p.description as description, - p.answers as answersTrue, - IF( gp.id IS NULL, 0, 1 ) as hasAnswers + p.description AS description, + p.answers AS answersTrue, + IF( gp2.id IS NULL, 0, 1 ) AS hasAnswers FROM t_mt_topic p - LEFT JOIN t_mt_group_topic gp ON p.id = gp.topic_id - LEFT JOIN t_mt_group g ON gp.group_id = g.id + LEFT JOIN ( + SELECT + gp.topic_id, + gp.id + FROM + t_mt_group g, + t_mt_group_topic gp + WHERE + g.id = gp.group_id + AND g.project_id = #{projectId} + AND g.type = 0 + AND g.rec_status = 0 + AND gp.rec_status = 0 + ) gp2 ON p.id = gp2.topic_id WHERE p.link_type = #{linkType} - and p.rec_status = 0 - and (g.project_id = #{projectId} or g.id is null) - and (g.type = 0 or g.id is null) - and (gp.rec_status = 0 or gp.id is null) - and (g.rec_status = 0 or gp.id is null) - GROUP BY p.id - order by p.score - LIMIT ${nums} + AND p.rec_status = 0 + GROUP BY + p.id + ORDER BY + p.score + LIMIT ${nums}