Browse Source

0813v2.0

master
zy_Java 5 years ago
parent
commit
2666bff781
  1. 10
      mt/src/main/java/com/ccsens/mt/bean/dto/TopicDto.java
  2. 3
      mt/src/main/java/com/ccsens/mt/persist/dao/GroupDao.java
  3. 11
      mt/src/main/java/com/ccsens/mt/persist/dao/GroupTopicDao.java
  4. 11
      mt/src/main/java/com/ccsens/mt/persist/dao/TopicDao.java
  5. 54
      mt/src/main/java/com/ccsens/mt/service/TopicService.java
  6. 18
      mt/src/main/resources/mapper_dao/TopicDao.xml
  7. 2
      util/src/main/java/com/ccsens/util/CodeEnum.java

10
mt/src/main/java/com/ccsens/mt/bean/dto/TopicDto.java

@ -27,17 +27,20 @@ public class TopicDto {
@Data
@ApiModel("根据项目id查分组信息")
public static class GetGroup{
@NotNull
@ApiModelProperty("项目id")
private Long projectId;
@ApiModelProperty("比赛环节 1志在必得 2以快制胜 3绝地反击 4你说我猜")
private int linkType = 1;
@NotNull
@ApiModelProperty("参赛组的类型 0答题 1投票 默认为0")
private int type;
private int type = 0;
}
@Data
@ApiModel("主持人提交答案")
public static class SaveAnswers{
@NotNull
@ApiModelProperty("题目id")
private Long topicId;
@ApiModelProperty("每组的答案")
@ -46,10 +49,11 @@ public class TopicDto {
@Data
@ApiModel("提交时每组的答案")
public static class SaveAnswersGroup{
@NotNull
@ApiModelProperty("该组的id")
private Long groupId;
@ApiModelProperty("答案(当前项目为true/false)")
private String answers;
@ApiModelProperty("答案(当前项目为T/F 默认F)")
private String answers = "F";
}
@Data

3
mt/src/main/java/com/ccsens/mt/persist/dao/GroupDao.java

@ -2,12 +2,13 @@ package com.ccsens.mt.persist.dao;
import com.ccsens.mt.bean.dto.TopicDto;
import com.ccsens.mt.bean.vo.TopicVo;
import com.ccsens.mt.persist.mapper.MtGroupMapper;
/**
* 答题项目
* @author whj
*/
public interface GroupDao {
public interface GroupDao extends MtGroupMapper {
/**
* 查询抢答成功的组信息
* @param topic 抢答条件

11
mt/src/main/java/com/ccsens/mt/persist/dao/GroupTopicDao.java

@ -0,0 +1,11 @@
package com.ccsens.mt.persist.dao;
import com.ccsens.mt.persist.mapper.MtGroupTopicMapper;
import org.springframework.stereotype.Repository;
/**
* @author
*/
@Repository
public interface GroupTopicDao extends MtGroupTopicMapper {
}

11
mt/src/main/java/com/ccsens/mt/persist/dao/TopicDao.java

@ -5,6 +5,8 @@ import com.ccsens.mt.persist.mapper.MtTopicMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author
*/
@ -17,4 +19,13 @@ public interface TopicDao extends MtTopicMapper {
* @return 返回题目信息
*/
TopicVo.TopicInfo getTopicByLink(@Param("linkType") int linkType, @Param("topicNum")int topicNum);
/**
* 查询分组的信息
* @param projectId 项目id
* @param linkType 答题环节
* @param type 参赛组的类型
* @return
*/
List<TopicVo.GroupInfo> queryGroupByProject(@Param("projectId")Long projectId, @Param("linkType")int linkType, @Param("type")int type);
}

54
mt/src/main/java/com/ccsens/mt/service/TopicService.java

@ -1,11 +1,20 @@
package com.ccsens.mt.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.mt.bean.dto.TopicDto;
import com.ccsens.mt.bean.po.MtGroup;
import com.ccsens.mt.bean.po.MtGroupTopic;
import com.ccsens.mt.bean.po.MtTopic;
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.persist.dao.GroupTopicDao;
import com.ccsens.mt.persist.dao.TopicDao;
import com.ccsens.mt.util.Constant;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.RedisUtil;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -21,11 +30,14 @@ public class TopicService implements ITopicService{
@Resource
private TopicDao topicDao;
@Resource
private RedisUtil redisUtil;
@Resource
private GroupDao groupDao;
@Resource
private Snowflake snowflake;
@Resource
private GroupTopicDao groupTopicDao;
@Override
public TopicVo.TopicInfo getTopicByLink(TopicDto.GetTopic getTopic) {
@ -35,12 +47,46 @@ public class TopicService implements ITopicService{
@Override
public List<TopicVo.GroupInfo> queryGroupByProject(TopicDto.GetGroup getGroup) {
return null;
log.info("查询分组:{}",getGroup.toString());
return topicDao.queryGroupByProject(getGroup.getProjectId(),getGroup.getLinkType(),getGroup.getType());
}
@Override
public void saveAnswers(TopicDto.SaveAnswers saveAnswers) {
log.info("主持人提交分数:{}",saveAnswers.toString());
//查询题目
MtTopic topic = topicDao.selectByPrimaryKey(saveAnswers.getTopicId());
if(ObjectUtil.isNull(topic)){
throw new BaseException(CodeEnum.NOT_TOPIC);
}
//循环遍历提交的分组
if(CollectionUtil.isNotEmpty(saveAnswers.getAnswersGroupList())){
saveAnswers.getAnswersGroupList().forEach(saveAnswersGroup ->{
MtGroup group = groupDao.selectByPrimaryKey(saveAnswersGroup.getGroupId());
if(ObjectUtil.isNull(group)){
throw new BaseException(CodeEnum.NOT_GROUP);
}
//添加分组答题的信息
MtGroupTopic groupTopic = new MtGroupTopic();
groupTopic.setId(snowflake.nextId());
groupTopic.setTopicId(saveAnswers.getTopicId());
groupTopic.setGroupId(saveAnswersGroup.getGroupId());
groupTopic.setAnswers(saveAnswersGroup.getAnswers());
int score = 0;
if("T".equalsIgnoreCase(saveAnswersGroup.getAnswers())){
score = topic.getScore();
}else {
if(topic.getScoreRule() == 1){
score = -topic.getScore();
}
}
groupTopic.setScore(score);
groupTopicDao.insertSelective(groupTopic);
//修改分组的分数
group.setScore(group.getScore() + score);
groupDao.updateByPrimaryKeySelective(group);
});
}
}
@Override

18
mt/src/main/resources/mapper_dao/TopicDao.xml

@ -17,7 +17,7 @@
t.id as topicId,
t.description as description,
t.answers as answersTrue,
if(o.`option` = '',o.contant , concat(o.`option` ,':' ,o.contant)) as options
if(o.`option` is null,'' , concat(o.`option` ,':' ,o.contant)) as options
FROM
t_mt_topic t LEFT JOIN t_mt_topic_option o on t.id = o.topic_id
WHERE
@ -29,4 +29,20 @@
ORDER BY o.sequence
</select>
<select id="queryGroupByProject" parameterType="java.util.Map" resultType="com.ccsens.mt.bean.vo.TopicVo$GroupInfo">
SELECT
id as groupId,
`name` as groupName
FROM
t_mt_group
WHERE
rec_status = 0
and
project_id = #{projectId}
and
advance_status = #{linkType}
and
`type` = #{type}
</select>
</mapper>

2
util/src/main/java/com/ccsens/util/CodeEnum.java

@ -132,6 +132,8 @@ public enum CodeEnum {
VERIFICATION_CODE_ERROR(111,"验证码错误",true),
NOT_ROW(112,"该行不存在",true),
NOT_TOPIC(113,"找不到该题目",true),
NOT_GROUP(113,"找不到该组信息",true),
;

Loading…
Cancel
Save