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 4afa4e59..613cd494 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 @@ -64,8 +64,12 @@ public class TopicDto { @Data @ApiModel("题目id") public static class Topic{ + @NotNull @ApiModelProperty("题目id") private Long topicId; + @NotNull + @ApiModelProperty("项目ID") + private Long projectId; } @Data diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/GroupDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/GroupDao.java new file mode 100644 index 00000000..62d7677c --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/GroupDao.java @@ -0,0 +1,17 @@ +package com.ccsens.mt.persist.dao; + +import com.ccsens.mt.bean.dto.TopicDto; +import com.ccsens.mt.bean.vo.TopicVo; + +/** + * 答题项目 + * @author whj + */ +public interface GroupDao { + /** + * 查询抢答成功的组信息 + * @param topic 抢答条件 + * @return 组 + */ + TopicVo.GroupInfo getResponder(TopicDto.Topic topic); +} 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 fd42664d..d2718a8b 100644 --- a/mt/src/main/java/com/ccsens/mt/service/TopicService.java +++ b/mt/src/main/java/com/ccsens/mt/service/TopicService.java @@ -3,6 +3,9 @@ package com.ccsens.mt.service; import com.ccsens.mt.bean.dto.TopicDto; import com.ccsens.mt.bean.vo.TopicVo; import com.ccsens.mt.persist.dao.TopicDao; +import com.ccsens.mt.persist.dao.GroupDao; +import com.ccsens.mt.util.Constant; +import com.ccsens.util.RedisUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -15,9 +18,15 @@ import java.util.List; @Service @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) public class TopicService implements ITopicService{ + @Resource private TopicDao topicDao; + @Resource + private RedisUtil redisUtil; + @Resource + private GroupDao groupDao; + @Override public TopicVo.TopicInfo getTopicByLink(TopicDto.GetTopic getTopic) { log.info("查询题目:{}",getTopic.toString()); @@ -41,7 +50,7 @@ public class TopicService implements ITopicService{ @Override public void responderStart(TopicDto.Topic topic) { - + redisUtil.set(topic.getProjectId()+ Constant.Redis.START_QUESTION,topic.getProjectId(), Constant.Redis.TIME_OUT); } @Override @@ -51,7 +60,15 @@ public class TopicService implements ITopicService{ @Override public TopicVo.GroupInfo getResponder(TopicDto.Topic topic) { - return null; + log.info("查询抢答成功的组请求:{}", topic); + Object o = redisUtil.get(topic.getProjectId() + Constant.Redis.RESPONDER + topic.getTopicId()); + log.info("缓存:{}", o); + if (o!=null) { + return (TopicVo.GroupInfo)o; + } + TopicVo.GroupInfo info = groupDao.getResponder(topic); + log.info("查询抢答成功的组:{}", info); + return info; } @Override diff --git a/mt/src/main/java/com/ccsens/mt/util/Constant.java b/mt/src/main/java/com/ccsens/mt/util/Constant.java new file mode 100644 index 00000000..bef13826 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/util/Constant.java @@ -0,0 +1,18 @@ +package com.ccsens.mt.util; + +/** + * @description: + * @author: whj + * @time: 2020/8/13 17:14 + */ +public class Constant { + public static class Redis{ + // 项目正在进行中的题目 项目ID_start_question + public final static String START_QUESTION = "_start_question"; + // 有效期10分钟 + public final static long TIME_OUT = 10 * 60; + // 抢答成功的队伍 项目ID_responder_题目ID + public final static String RESPONDER = "_responder_"; + + } +} diff --git a/mt/src/main/resources/mapper_dao/GroupDao.xml b/mt/src/main/resources/mapper_dao/GroupDao.xml new file mode 100644 index 00000000..fb5deaea --- /dev/null +++ b/mt/src/main/resources/mapper_dao/GroupDao.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file