diff --git a/mt/src/main/java/com/ccsens/mt/api/CompeteController.java b/mt/src/main/java/com/ccsens/mt/api/CompeteController.java index 429c7f21..9e6f45cb 100644 --- a/mt/src/main/java/com/ccsens/mt/api/CompeteController.java +++ b/mt/src/main/java/com/ccsens/mt/api/CompeteController.java @@ -125,7 +125,7 @@ public class CompeteController { @MustLogin @ApiOperation(value = "扫码加入团队", notes = "") @RequestMapping(value = "/joinGroup", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse joinCompeteGroup(@ApiParam @Validated @RequestBody QueryDto params) { + public JsonResponse joinCompeteGroup(@ApiParam @Validated @RequestBody QueryDto params) { log.info("扫码加入团队:{}",params); CompeteVo.CompeteTeamProject competeTeamProject = competeService.joinCompeteGroup(params); return JsonResponse.newInstance().ok(competeTeamProject); diff --git a/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java b/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java index 9639994a..63ab08ac 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java +++ b/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; + /** * @author 逗 */ @@ -74,4 +76,12 @@ public class CompeteDto { private Long competeTimeId; } + + @Data + @ApiModel("项目团队ID") + public static class CompeteGroup{ + @NotNull(message="请选择团队信息") + @ApiModelProperty("团队ID") + private Long id; + } } diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java index b0553df0..687558c6 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -1,18 +1,43 @@ package com.ccsens.mt.service; +import cn.hutool.core.collection.CollectionUtil; import com.ccsens.mt.bean.dto.CompeteDto; +import com.ccsens.mt.bean.po.CompetePlayer; +import com.ccsens.mt.bean.po.CompetePlayerExample; +import com.ccsens.mt.bean.po.CompeteTeamMember; +import com.ccsens.mt.bean.po.CompeteTeamMemberExample; import com.ccsens.mt.bean.vo.CompeteVo; +import com.ccsens.mt.persist.mapper.CompeteGroupMapper; +import com.ccsens.mt.persist.mapper.CompetePlayerMapper; +import com.ccsens.mt.persist.mapper.CompeteTeamMapper; +import com.ccsens.mt.persist.mapper.CompeteTeamMemberMapper; +import com.ccsens.util.CodeEnum; import com.ccsens.util.bean.dto.QueryDto; +import com.ccsens.util.exception.BaseException; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.List; /** * @author 逗 */ +@Slf4j @Service +@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public class CompeteService implements ICompeteService{ + @Resource + private CompeteTeamMapper competeTeamMapper; + @Resource + private CompetePlayerMapper competePlayerMapper; + @Resource + private CompeteTeamMemberMapper competeTeamMemberMapper; + + /** * 查看第几届 */ @@ -97,7 +122,27 @@ public class CompeteService implements ICompeteService{ * 扫码加入团队 */ @Override - public CompeteVo.CompeteTeamProject joinCompeteGroup(QueryDto params) { + public CompeteVo.CompeteTeamProject joinCompeteGroup(QueryDto params) { + + log.info("扫码加入团队:{}", params); + CompetePlayerExample playerExample = new CompetePlayerExample(); + playerExample.createCriteria().andUserIdEqualTo(params.getUserId()); + List competePlayers = competePlayerMapper.selectByExample(playerExample); + log.info("选手信息:{}", competePlayers); + if (CollectionUtil.isEmpty(competePlayers)) { + throw new BaseException(CodeEnum.PARAM_ERROR); + } + + CompetePlayer player = competePlayers.get(0); + CompeteTeamMemberExample teamMemberExample = new CompeteTeamMemberExample(); + // TODO 缺少团队ID + teamMemberExample.createCriteria().andPlayerIdEqualTo(player.getId()); + long count = competeTeamMemberMapper.countByExample(teamMemberExample); + if (count > 0) { + throw new BaseException(CodeEnum.JOINED_TEAM); + } + + return null; } } diff --git a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java index 23621996..ba75c6be 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java @@ -84,5 +84,5 @@ public interface ICompeteService { * @param params * @return */ - CompeteVo.CompeteTeamProject joinCompeteGroup(QueryDto params); + CompeteVo.CompeteTeamProject joinCompeteGroup(QueryDto params); } diff --git a/util/src/main/java/com/ccsens/util/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java index a2cd9785..433925d1 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -140,6 +140,7 @@ public enum CodeEnum { NOT_CONFIG_OR_ERR(118,"缺少配置信息,或配置信息异常",true), GROUP_MEMBER_LIMIT(119,"当前组内人员已满,请选择其他组",true), GROUP_NOT_CHOICE(120,"请选择要加入的队伍",true), + JOINED_TEAM(121,"您已经加入队伍",true), ;