diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/TopicVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/TopicVo.java index 4da64334..db24039e 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/TopicVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/TopicVo.java @@ -42,7 +42,8 @@ public class TopicVo { @ApiModelProperty("最大题号") private Integer max ; } - + @Data + @ApiModel("答题记录") public static class Answer{ @ApiModelProperty("分组ID") private Long groupId; 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 e5fa2306..a64dc00c 100644 --- a/mt/src/main/java/com/ccsens/mt/service/TopicService.java +++ b/mt/src/main/java/com/ccsens/mt/service/TopicService.java @@ -83,6 +83,19 @@ public class TopicService implements ITopicService{ if(ObjectUtil.isNull(group)){ throw new BaseException(CodeEnum.NOT_GROUP); } + //查找该组这道题之前的提交记录,有则删除重新添加 + int groupTopicScore = 0; + MtGroupTopicExample groupTopicExample = new MtGroupTopicExample(); + groupTopicExample.createCriteria().andTopicIdEqualTo(saveAnswers.getTopicId()) + .andGroupIdEqualTo(saveAnswersGroup.getGroupId()); + List mtGroupTopicList = groupTopicDao.selectByExample(groupTopicExample); + if(CollectionUtil.isNotEmpty(mtGroupTopicList)){ + for(MtGroupTopic groupTopic:mtGroupTopicList){ + groupTopicScore += groupTopic.getScore(); + groupTopic.setRecStatus((byte) 2); + groupTopicDao.updateByPrimaryKeySelective(groupTopic); + } + } //添加分组答题的信息 MtGroupTopic groupTopic = new MtGroupTopic(); groupTopic.setId(snowflake.nextId()); @@ -100,7 +113,7 @@ public class TopicService implements ITopicService{ groupTopic.setScore(score); groupTopicDao.insertSelective(groupTopic); //修改分组的分数 - group.setScore(group.getScore() + score); + group.setScore(group.getScore() + score - groupTopicScore); groupDao.updateByPrimaryKeySelective(group); }); } @@ -174,7 +187,7 @@ public class TopicService implements ITopicService{ redisUtil.set(group.getProjectId() + Constant.Redis.RESPONDER + o,group.getGroupId(),Constant.Redis.TIME_OUT); //储存数据库 MtResponderExample responderExample = new MtResponderExample(); - responderExample.createCriteria().andTopicIdEqualTo((long)o).andGroupIdEqualTo(group.getGroupId()); + responderExample.createCriteria().andTopicIdEqualTo((long)(int)o).andGroupIdEqualTo(group.getGroupId()); List mtResponderList = mtResponderMapper.selectByExample(responderExample); if(CollectionUtil.isNotEmpty(mtResponderList)){ return; @@ -182,7 +195,7 @@ public class TopicService implements ITopicService{ MtResponder mtResponder = new MtResponder(); mtResponder.setId(snowflake.nextId()); mtResponder.setGroupId(group.getGroupId()); - mtResponder.setTopicId((long)o); + mtResponder.setTopicId((long)(int)o); mtResponderMapper.insertSelective(mtResponder); } } @@ -193,7 +206,7 @@ public class TopicService implements ITopicService{ Object o = redisUtil.get(topic.getProjectId() + Constant.Redis.RESPONDER + topic.getTopicId()); log.info("缓存:{}", o); if (o!=null) { - MtGroup mtGroup = mtGroupMapper.selectByPrimaryKey((Long) o); + MtGroup mtGroup = mtGroupMapper.selectByPrimaryKey((long)(int)o); if (mtGroup == null) { throw new BaseException(CodeEnum.PARAM_ERROR); }