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 b6645b80..bd5e511f 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 @@ -49,6 +49,9 @@ public class CompeteDto { @Data @ApiModel("提交报名基本信息") public static class CompetePlayerInfo{ + @NotNull + @ApiModelProperty("比赛的类型,0跳绳比赛") + private int type; @NotEmpty @ApiModelProperty("姓名") private String name; diff --git a/mt/src/main/java/com/ccsens/mt/bean/po/CompeteProject.java b/mt/src/main/java/com/ccsens/mt/bean/po/CompeteProject.java index 8764db28..bc7548fe 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/po/CompeteProject.java +++ b/mt/src/main/java/com/ccsens/mt/bean/po/CompeteProject.java @@ -10,7 +10,7 @@ public class CompeteProject implements Serializable { private Long parentId; - private Byte leve; + private Byte level; private Byte team; @@ -56,12 +56,12 @@ public class CompeteProject implements Serializable { this.parentId = parentId; } - public Byte getLeve() { - return leve; + public Byte getLevel() { + return level; } - public void setLeve(Byte leve) { - this.leve = leve; + public void setLevel(Byte level) { + this.level = level; } public Byte getTeam() { @@ -145,7 +145,7 @@ public class CompeteProject implements Serializable { sb.append(", id=").append(id); sb.append(", name=").append(name); sb.append(", parentId=").append(parentId); - sb.append(", leve=").append(leve); + sb.append(", level=").append(level); sb.append(", team=").append(team); sb.append(", joinRule=").append(joinRule); sb.append(", certificate=").append(certificate); diff --git a/mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectExample.java b/mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectExample.java index 74e15499..027aa78c 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectExample.java +++ b/mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectExample.java @@ -295,63 +295,63 @@ public class CompeteProjectExample { return (Criteria) this; } - public Criteria andLeveIsNull() { - addCriterion("leve is null"); + public Criteria andLevelIsNull() { + addCriterion("level is null"); return (Criteria) this; } - public Criteria andLeveIsNotNull() { - addCriterion("leve is not null"); + public Criteria andLevelIsNotNull() { + addCriterion("level is not null"); return (Criteria) this; } - public Criteria andLeveEqualTo(Byte value) { - addCriterion("leve =", value, "leve"); + public Criteria andLevelEqualTo(Byte value) { + addCriterion("level =", value, "level"); return (Criteria) this; } - public Criteria andLeveNotEqualTo(Byte value) { - addCriterion("leve <>", value, "leve"); + public Criteria andLevelNotEqualTo(Byte value) { + addCriterion("level <>", value, "level"); return (Criteria) this; } - public Criteria andLeveGreaterThan(Byte value) { - addCriterion("leve >", value, "leve"); + public Criteria andLevelGreaterThan(Byte value) { + addCriterion("level >", value, "level"); return (Criteria) this; } - public Criteria andLeveGreaterThanOrEqualTo(Byte value) { - addCriterion("leve >=", value, "leve"); + public Criteria andLevelGreaterThanOrEqualTo(Byte value) { + addCriterion("level >=", value, "level"); return (Criteria) this; } - public Criteria andLeveLessThan(Byte value) { - addCriterion("leve <", value, "leve"); + public Criteria andLevelLessThan(Byte value) { + addCriterion("level <", value, "level"); return (Criteria) this; } - public Criteria andLeveLessThanOrEqualTo(Byte value) { - addCriterion("leve <=", value, "leve"); + public Criteria andLevelLessThanOrEqualTo(Byte value) { + addCriterion("level <=", value, "level"); return (Criteria) this; } - public Criteria andLeveIn(List values) { - addCriterion("leve in", values, "leve"); + public Criteria andLevelIn(List values) { + addCriterion("level in", values, "level"); return (Criteria) this; } - public Criteria andLeveNotIn(List values) { - addCriterion("leve not in", values, "leve"); + public Criteria andLevelNotIn(List values) { + addCriterion("level not in", values, "level"); return (Criteria) this; } - public Criteria andLeveBetween(Byte value1, Byte value2) { - addCriterion("leve between", value1, value2, "leve"); + public Criteria andLevelBetween(Byte value1, Byte value2) { + addCriterion("level between", value1, value2, "level"); return (Criteria) this; } - public Criteria andLeveNotBetween(Byte value1, Byte value2) { - addCriterion("leve not between", value1, value2, "leve"); + public Criteria andLevelNotBetween(Byte value1, Byte value2) { + addCriterion("level not between", value1, value2, "level"); return (Criteria) this; } diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java index ac792b85..76069f64 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java @@ -159,12 +159,14 @@ public class CompeteVo { private String name; @ApiModelProperty("是否是团队项目 0否 1是") private byte team; + @ApiModelProperty("参加限制,0同单位同组别,1同单位不限组别") + private byte joinRule; @ApiModelProperty("是否支持通级 0否 1是") private byte certificate; @ApiModelProperty("最少人数") - private byte memberMin; + private int memberMin; @ApiModelProperty("最多人数") - private byte memberMax; + private int memberMax; } @Data diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java index 7b70c14d..6d65e9ef 100644 --- a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java @@ -26,4 +26,18 @@ public interface CompeteTimeDao extends CompeteTimeMapper { * @return 返回类型下的所有组别 */ List queryCompeteGroupByType(@Param("type") int type); + + /** + * 根据类型查找所有参赛单位 + * @param type 类型 + * @return 所有参赛单位 + */ + List queryCompeteCompanyByType(@Param("type") int type); + + /** + * 查看参赛项目信息 + * @param type 类型 + * @return 参赛项目信息 + */ + List queryCompeteProjectByType(@Param("type") int type); } 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 0cb8d8f4..9ce9de43 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -1,15 +1,21 @@ package com.ccsens.mt.service; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Snowflake; import com.ccsens.mt.bean.dto.CompeteDto; import com.ccsens.mt.bean.po.CompeteCompany; import com.ccsens.mt.bean.po.CompeteCompanyExample; +import com.ccsens.mt.bean.po.CompetePlayer; import com.ccsens.mt.bean.vo.CompeteVo; import com.ccsens.mt.persist.dao.CompeteTimeDao; import com.ccsens.mt.persist.mapper.CompeteCompanyMapper; import com.ccsens.mt.util.Constant; +import com.ccsens.util.CodeEnum; +import com.ccsens.util.RedisKeyManager; import com.ccsens.util.RedisUtil; import com.ccsens.util.bean.dto.QueryDto; +import com.ccsens.util.exception.BaseException; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -24,9 +30,11 @@ public class CompeteService implements ICompeteService{ @Resource private CompeteTimeDao competeTimeDao; @Resource + private RedisUtil redisUtil; + @Resource private CompeteCompanyMapper competeCompanyMapper; @Resource - private RedisUtil redisUtil; + private Snowflake snowflake; /** * 查看第几届 @@ -54,15 +62,12 @@ public class CompeteService implements ICompeteService{ CompeteDto.CompeteTypeAndKey competeTypeAndKey = params.getParam(); String key = competeTypeAndKey.getType() + Constant.Redis.COMPETE_COMPANY; Object list = redisUtil.lGet(key,0,-1); - List competeCompanyList = (List) list; + List competeCompanyList = (List) list; List companyList = new ArrayList<>(); - System.out.println(competeCompanyList); + competeCompanyList.forEach(competeCompany -> { - if(competeCompany.getName().contains(competeTypeAndKey.getKey())){ - CompeteVo.CompeteCompany company = new CompeteVo.CompeteCompany(); - company.setGroupId(competeCompany.getId()); - company.setGroupName(competeCompany.getName()); - companyList.add(company); + if(competeCompany.getGroupName().contains(competeTypeAndKey.getKey())){ + companyList.add(competeCompany); } }); return companyList; @@ -74,13 +79,15 @@ public class CompeteService implements ICompeteService{ @Override public void syncCompeteCompany(QueryDto params) { CompeteDto.CompeteType competeType = params.getParam(); + String key = competeType.getType() + Constant.Redis.COMPETE_COMPANY; + //删除之前的数据 + redisUtil.del(key); //根据type查找数据库内所有参赛单位 - CompeteCompanyExample competeCompanyExample = new CompeteCompanyExample(); - competeCompanyExample.createCriteria().andTypeEqualTo((byte) competeType.getType()); - List competeCompanyList = competeCompanyMapper.selectByExample(competeCompanyExample); + List competeCompanyList = competeTimeDao.queryCompeteCompanyByType(competeType.getType()); if(CollectionUtil.isNotEmpty(competeCompanyList)){ - String key = competeType.getType() + Constant.Redis.COMPETE_COMPANY; - redisUtil.lSet(key,competeCompanyList,Constant.Redis.COMPETE_COMPANY_TIME); + competeCompanyList.forEach(competeCompany -> { + redisUtil.lSet(key,competeCompany,Constant.Redis.COMPETE_COMPANY_TIME); + }); } } @@ -89,6 +96,35 @@ public class CompeteService implements ICompeteService{ */ @Override public CompeteVo.CompetePlayerInfo saveCompetePlayerInfo(QueryDto params) { + CompeteDto.CompetePlayerInfo competePlayerInfo = params.getParam(); + Long userId = params.getUserId(); + //检查验证码是否正确 + if (!redisUtil.hasKey(RedisKeyManager.getSigninSmsKey(competePlayerInfo.getPhone()))) { + throw new BaseException(CodeEnum.SMS_CODE_CORRECT); + } + if (!competePlayerInfo.getSmsCode().equals(redisUtil.get(RedisKeyManager.getSigninSmsKey(competePlayerInfo.getPhone())).toString())) { + throw new BaseException(CodeEnum.SMS_CODE_CORRECT); + } + //添加基本信息 + CompetePlayer player = new CompetePlayer(); + BeanUtil.copyProperties(competePlayerInfo,player); + player.setId(snowflake.nextId()); + player.setUserId(userId); + //检查参赛单位是否存在,不存在则添加 + CompeteCompanyExample competeCompanyExample = new CompeteCompanyExample(); + competeCompanyExample.createCriteria().andNameEqualTo(competePlayerInfo.getCompanyName()); + List companyList = competeCompanyMapper.selectByExample(competeCompanyExample); + if(CollectionUtil.isEmpty(companyList)){ + CompeteCompany company = new CompeteCompany(); + company.setId(snowflake.nextId()); + company.setType((byte) competePlayerInfo.getType()); + company.setName(competePlayerInfo.getCompanyName()); + player.setCompanyId(company.getId()); + }else { + player.setCompanyId(companyList.get(0).getId()); + } + +// CompeteVo.CompetePlayerInfo playerInfo = return null; } @@ -97,7 +133,8 @@ public class CompeteService implements ICompeteService{ */ @Override public List queryCompeteProject(QueryDto params) { - return null; + CompeteDto.CompeteType competeType = params.getParam(); + return competeTimeDao.queryCompeteProjectByType(competeType.getType()); } /** diff --git a/mt/src/main/resources/mapper_dao/CompeteTimeDao.xml b/mt/src/main/resources/mapper_dao/CompeteTimeDao.xml index e85ce71b..a5a581a4 100644 --- a/mt/src/main/resources/mapper_dao/CompeteTimeDao.xml +++ b/mt/src/main/resources/mapper_dao/CompeteTimeDao.xml @@ -2,6 +2,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mt/src/main/resources/mapper_raw/CompeteProjectMapper.xml b/mt/src/main/resources/mapper_raw/CompeteProjectMapper.xml index bb8e67e8..8fdb82da 100644 --- a/mt/src/main/resources/mapper_raw/CompeteProjectMapper.xml +++ b/mt/src/main/resources/mapper_raw/CompeteProjectMapper.xml @@ -5,7 +5,7 @@ - + @@ -75,7 +75,7 @@ - id, name, parent_id, leve, team, join_rule, certificate, member_min, member_max, + id, name, parent_id, level, team, join_rule, certificate, member_min, member_max, type, created_at, updated_at, rec_status