diff --git a/mt/src/main/java/com/ccsens/mt/api/ProvinceController.java b/mt/src/main/java/com/ccsens/mt/api/ProvinceController.java index 920f75c3..d5e4dbeb 100644 --- a/mt/src/main/java/com/ccsens/mt/api/ProvinceController.java +++ b/mt/src/main/java/com/ccsens/mt/api/ProvinceController.java @@ -186,9 +186,19 @@ public class ProvinceController { @ApiOperation(value = "查找团体比赛已报名的选手信息", notes = "") @RequestMapping(value = "/teamProject/player", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse> getPlayerByTeamProject(@ApiParam @Validated @RequestBody QueryDto params) { - log.info("查询教练或领队的详细信息:{}",params); + log.info("查找团体比赛已报名的选手信息:{}",params); List groupAndPlayer = provinceService.getPlayerByTeamProject(params.getParam()); - log.info("查询教练或领队的详细信息:{}",groupAndPlayer); + log.info("查找团体比赛已报名的选手信息:{}",groupAndPlayer); + return JsonResponse.newInstance().ok(groupAndPlayer); + } + + @MustLogin + @ApiOperation(value = "团体报名查询可以参加和已经参加的选手", notes = "") + @RequestMapping(value = "/rule/player", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> getPlayerByTeamProjectWithRule(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("团体报名查询可以参加和已经参加的选手:{}",params); + List groupAndPlayer = provinceService.getPlayerByTeamProjectWithRule(params.getParam()); + log.info("团体报名查询可以参加和已经参加的选手:{}",groupAndPlayer); return JsonResponse.newInstance().ok(groupAndPlayer); } } diff --git a/mt/src/main/java/com/ccsens/mt/bean/dto/ProvinceCompeteDto.java b/mt/src/main/java/com/ccsens/mt/bean/dto/ProvinceCompeteDto.java index c4037cb6..423b39eb 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/dto/ProvinceCompeteDto.java +++ b/mt/src/main/java/com/ccsens/mt/bean/dto/ProvinceCompeteDto.java @@ -140,4 +140,19 @@ public class ProvinceCompeteDto { @ApiModelProperty("项目id") private Long projectId; } + + @Data + @ApiModel("查找团队项目下符合规则的选手信息") + public static class GetPlayerByTeamProjectWithRule{ + @NotNull(message = "请先填写基础信息") + @ApiModelProperty("参赛单位id") + private Long companyId; + @NotNull(message = "请选择项目") + @ApiModelProperty("项目id") + private Long projectId; + @ApiModelProperty("性别组") + private int gender; + @ApiModelProperty("组别信息") + private int groupRemark; + } } diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteCompanyDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteCompanyDao.java index 50874fc4..023a69cc 100644 --- a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteCompanyDao.java +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteCompanyDao.java @@ -116,4 +116,15 @@ public interface CompeteCompanyDao extends CompeteCompanyMapper { * @return */ List selectByCompanyId(@Param("companyId")Long companyId); + + /** + * 查找该项目下所有可以参赛和已经参赛的选手 + * @param companyId 单位id + * @param projectId 项目id + * @param type 比赛类型 + * @param groupRemark 组别备注信息 + * @param gender 性别 0女 1男 2混合 + * @return 返回选手信息 + */ + List getPlayerByTeamProjectWithRule(@Param("companyId")Long companyId, @Param("projectId")Long projectId, @Param("type")Byte type, @Param("groupRemark")int groupRemark, @Param("gender")int gender); } diff --git a/mt/src/main/java/com/ccsens/mt/service/IProvinceService.java b/mt/src/main/java/com/ccsens/mt/service/IProvinceService.java index 7d5111fa..965a40a3 100644 --- a/mt/src/main/java/com/ccsens/mt/service/IProvinceService.java +++ b/mt/src/main/java/com/ccsens/mt/service/IProvinceService.java @@ -138,4 +138,11 @@ public interface IProvinceService { * @return 返回参加的选手的详细信息,按组别分类 */ List getPlayerByTeamProject(ProvinceCompeteDto.GetPlayerByTeamProject param); + + /** + * 查找团队下符合规则的选手信息 + * @param param 单位id 项目id 组别和性别信息 + * @return 返回所有可参赛的选手和已经参赛的选手 + */ + List getPlayerByTeamProjectWithRule(ProvinceCompeteDto.GetPlayerByTeamProjectWithRule param); } diff --git a/mt/src/main/java/com/ccsens/mt/service/ProvinceService.java b/mt/src/main/java/com/ccsens/mt/service/ProvinceService.java index 3233b232..5eaf9556 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ProvinceService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ProvinceService.java @@ -213,7 +213,8 @@ public class ProvinceService implements IProvinceService { if(StrUtil.isNotEmpty(param.getPlayerName())){player.setName(param.getPlayerName());} if(StrUtil.isNotEmpty(param.getIdCard())){player.setIdCard(param.getIdCard());} if(ObjectUtil.isNotNull(param.getGender())){player.setGender((byte) param.getGender());} - if(ObjectUtil.isNotNull(param.getGroupId())){player.setCompeteGroupId(param.getGroupId());} + if(ObjectUtil.isNotNull(competeGroup)){player.setCompeteGroupId(competeGroup.getId());} + if(ObjectUtil.isNotNull(param.getGroupRemark())){player.setGroupRemark((byte) param.getGroupRemark());} if(ObjectUtil.isNotNull(param.getCompeteId())){player.setCompanyId(param.getCompeteId());} if(ObjectUtil.isNotNull(param.getIdCardFront())){player.setIdCardFrontFile(param.getIdCardFront());} @@ -632,12 +633,39 @@ public class ProvinceService implements IProvinceService { */ @Override public List getPlayerByTeamProject(ProvinceCompeteDto.GetPlayerByTeamProject param) { + List groupAndPlayerList = null; //查找项目 CompeteProject competeProject = competeProjectMapper.selectByPrimaryKey(param.getProjectId()); if(ObjectUtil.isNotNull(competeProject)){ - List groupAndPlayerList = competeCompanyDao.getPlayerByTeamProject(param.getProjectId(),competeProject.getType()); + groupAndPlayerList = competeCompanyDao.getPlayerByTeamProject(param.getProjectId(),competeProject.getType()); } - return null; + return groupAndPlayerList; + } + + /** + * 查找符合参赛规则的选手信息 + */ + @Override + public List getPlayerByTeamProjectWithRule(ProvinceCompeteDto.GetPlayerByTeamProjectWithRule param) { + List groupAndPlayerList = new ArrayList<>(); + //查找项目 + CompeteProject competeProject = competeProjectMapper.selectByPrimaryKey(param.getProjectId()); + if(ObjectUtil.isNotNull(competeProject) && competeProject.getTeam() == 1){ + //如果同单位不限组别 + if(competeProject.getJoinRule() == 1){ + groupAndPlayerList = competeCompanyDao.queryPlayerByGroupId(competeProject.getType(),param.getCompanyId(),null,param.getProjectId()); + } + //如果同单位限制组别 + if(competeProject.getJoinRule() == 0){ + /*每个单位每个组别可以报名,报名过其他组的选手不能再次报名, + 例:1单位a同学报名了q比赛的小学男子组,a同学就无法再报名q比赛小学混合组 + b同学报名了r比赛的小学混合组,b同学就无法再报名r比赛的女子组和男子组,无论b同学是男还是女*/ + //查找此单位下所有该组的选手,如果选择混合组,则男女都查找 + //排除已经报名别的组的选手 + groupAndPlayerList = competeCompanyDao.getPlayerByTeamProjectWithRule(param.getCompanyId(),competeProject.getId(),competeProject.getType(),param.getGroupRemark(),param.getGender()); + } + } + return groupAndPlayerList; } } diff --git a/mt/src/main/resources/mapper_dao/CompeteCompanyDao.xml b/mt/src/main/resources/mapper_dao/CompeteCompanyDao.xml index 33da3934..1eda459c 100644 --- a/mt/src/main/resources/mapper_dao/CompeteCompanyDao.xml +++ b/mt/src/main/resources/mapper_dao/CompeteCompanyDao.xml @@ -50,7 +50,7 @@ if(pp.id is null and a.mId is null,0,1) as joinProject FROM t_compete_group cg - LEFT JOIN t_compete_player p on cg.sex = p.gender_group and cg.group_remark = p.group_remark + LEFT JOIN t_compete_player p on (cg.id = p.compete_group_id or (cg.sex = p.gender and cg.group_remark = p.group_remark)) LEFT JOIN t_compete_project_player pp on p.id = pp.player_id and pp.project_id = #{projectId} and pp.rec_status = 0 LEFT JOIN ( SELECT @@ -283,5 +283,45 @@ where tcc.`company_id`= #{companyId} + \ No newline at end of file diff --git a/tall/src/main/resources/druid-dev.yml b/tall/src/main/resources/druid-dev.yml index 7b6e738f..9b9ea832 100644 --- a/tall/src/main/resources/druid-dev.yml +++ b/tall/src/main/resources/druid-dev.yml @@ -27,7 +27,7 @@ spring: testOnReturn: false testWhileIdle: true timeBetweenEvictionRunsMillis: 60000 - url: jdbc:mysql://49.233.89.188:3306/tall?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://49.233.89.188:3306/tall?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true username: root validationQuery: SELECT 1 FROM DUAL env: CCSENS_TALL \ No newline at end of file diff --git a/tall/src/main/resources/druid-prod.yml b/tall/src/main/resources/druid-prod.yml index ee0316bc..20a6ff77 100644 --- a/tall/src/main/resources/druid-prod.yml +++ b/tall/src/main/resources/druid-prod.yml @@ -28,7 +28,7 @@ spring: testOnReturn: false testWhileIdle: true timeBetweenEvictionRunsMillis: 60000 - url: jdbc:mysql://127.0.0.1/tall?useUnicode=true&characterEncoding=UTF-8 + url: jdbc:mysql://127.0.0.1/tall?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true username: root validationQuery: SELECT 1 FROM DUAL env: CCSENS_HEALTH \ No newline at end of file diff --git a/tall/src/main/resources/druid-test.yml b/tall/src/main/resources/druid-test.yml index b52b019f..656c54f2 100644 --- a/tall/src/main/resources/druid-test.yml +++ b/tall/src/main/resources/druid-test.yml @@ -29,7 +29,7 @@ spring: testWhileIdle: true timeBetweenEvictionRunsMillis: 60000 # url: jdbc:mysql://127.0.0.1/tall?useUnicode=true&characterEncoding=UTF-8 - url: jdbc:mysql://test.tall.wiki/tall?useUnicode=true&characterEncoding=UTF-8 + url: jdbc:mysql://test.tall.wiki/tall?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true username: root validationQuery: SELECT 1 FROM DUAL env: CCSENS_TALL \ No newline at end of file