Browse Source

20201029v1.5

tiaosheng
zy_Java 5 years ago
parent
commit
01fad86630
  1. 11
      mt/src/main/java/com/ccsens/mt/bean/dto/ProvinceCompeteDto.java
  2. 1
      mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java
  3. 2
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteCompanyDao.java
  4. 172
      mt/src/main/java/com/ccsens/mt/service/ProvinceService.java
  5. 12
      mt/src/main/resources/mapper_dao/CompeteCompanyDao.xml
  6. 4
      tall/src/main/resources/application.yml

11
mt/src/main/java/com/ccsens/mt/bean/dto/ProvinceCompeteDto.java

@ -92,7 +92,16 @@ public class ProvinceCompeteDto {
@ApiModelProperty("单位id")
private Long companyId;
@ApiModelProperty("选手id")
private List<Long> playerId;
private List<JoinProjectPlayer> players;
}
@Data
@ApiModel("选手是否参加项目")
public static class JoinProjectPlayer{
@NotNull
@ApiModelProperty("大赛id")
private Long playerId ;
@ApiModelProperty("是否参加此项目 0否 1是")
private int joinProject;
}
@Data

1
mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java

@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.servlet.http.Part;
import java.util.List;

2
mt/src/main/java/com/ccsens/mt/persist/dao/CompeteCompanyDao.java

@ -30,7 +30,7 @@ public interface CompeteCompanyDao extends CompeteCompanyMapper {
* @param projectId 项目id
* @return 返回选手信息
*/
List<ProvinceCompeteVo.GroupAndPlayer> queryPlayerByGroupId(@Param("companyId")Long companyId,@Param("groupId")Long groupId,@Param("projectId")Long projectId);
List<ProvinceCompeteVo.GroupAndPlayer> queryPlayerByGroupId(@Param("type")int type,@Param("companyId")Long companyId,@Param("groupId")Long groupId,@Param("projectId")Long projectId);
/**
* 查找大赛所有的比赛项目

172
mt/src/main/java/com/ccsens/mt/service/ProvinceService.java

@ -72,6 +72,8 @@ public class ProvinceService implements IProvinceService {
ProvinceCompeteVo.CompeteOverview competeOverview = competeCompanyDao.getCompanyOverview(param.getCompeteTimeId(),userId);
if(ObjectUtil.isNotNull(competeOverview)){
competeOverview.setProjectNum(competeCompanyDao.getJoinProjectNum(competeOverview.getCompanyId()));
}else {
competeOverview = new ProvinceCompeteVo.CompeteOverview();
}
return competeOverview;
}
@ -81,7 +83,13 @@ public class ProvinceService implements IProvinceService {
*/
@Override
public List<ProvinceCompeteVo.GroupAndPlayer> queryPlayerByGroupId(ProvinceCompeteDto.QueryPlayerByGroup param, Long userId) {
return competeCompanyDao.queryPlayerByGroupId(param.getCompanyId(),param.getGroupId(),param.getProjectId());
//查找比赛类型
int type = 0;
CompeteCompany company = competeCompanyDao.selectByPrimaryKey(param.getCompanyId());
if(ObjectUtil.isNotNull(company)){
type = company.getType();
}
return competeCompanyDao.queryPlayerByGroupId(type,param.getCompanyId(),param.getGroupId(),param.getProjectId());
}
@ -388,76 +396,130 @@ public class ProvinceService implements IProvinceService {
//查找项目信息
CompeteProject competeProject = competeProjectMapper.selectByPrimaryKey(param.getProjectId());
if(ObjectUtil.isNull(competeProject)){ throw new BaseException(CodeEnum.PARAM_ERROR); }
//检查参赛人数是否符合
if(CollectionUtil.isEmpty(param.getPlayerId())){ throw new BaseException(CodeEnum.PARAM_ERROR); }
if(param.getPlayerId().size() < competeProject.getMemberMin() || param.getPlayerId().size() > competeProject.getMemberMax()){
if(CollectionUtil.isEmpty(param.getPlayers())){ throw new BaseException(CodeEnum.PARAM_ERROR); }
int joinCount = 0;
for(ProvinceCompeteDto.JoinProjectPlayer joinProject : param.getPlayers()){
if(joinProject.getJoinProject() == 1){
joinCount++;
}
}
if(joinCount < competeProject.getMemberMin() || joinCount > competeProject.getMemberMax()){
throw new BaseException(CodeEnum.TEAM_MEMBER_ERROR);
}
//判断项目是个人还是团队
//判断项目是个人还是团队,参加
if(competeProject.getTeam() == 0){
param.getPlayerId().forEach(playerId -> {
CompetePlayer player = competePlayerDao.selectByPrimaryKey(playerId);
if(ObjectUtil.isNull(player)){ throw new BaseException(CodeEnum.PARAM_ERROR); }
//查找此公司此组别是否参加过这个项目
int num = competeCompanyDao.getNumByCompanyAndGroup(competeProject.getId(),player.getCompanyId(),player.getCompeteGroupId(),param.getCompeteTimeId());
if(num > 0){
throw new BaseException(CodeEnum.JOIN_PROJECT_NUM_FULL.mtProjectMsg("该项目该组别"));
param.getPlayers().forEach(joinPlayer -> {
//检查此用户之前是否参加此项目
CompeteProjectPlayerExample example = new CompeteProjectPlayerExample();
example.createCriteria().andProjectIdEqualTo(competeProject.getId()).andPlayerIdEqualTo(joinPlayer.getPlayerId())
.andCompeteTimeIdEqualTo(param.getCompeteTimeId());
List<CompeteProjectPlayer> competeProjectPlayerList = projectPlayerMapper.selectByExample(example);
//用户现在不参加且之前已经参加本项目,退出
if(joinPlayer.getJoinProject() == 0 && CollectionUtil.isNotEmpty(competeProjectPlayerList)) {
competeProjectPlayerList.forEach(projectPlayer -> {
projectPlayer.setRecStatus((byte) 2);
projectPlayerMapper.updateByPrimaryKeySelective(projectPlayer);
});
}
//查找个人参赛数量是否符合
CompeteProjectPlayerExample projectPlayerExample = new CompeteProjectPlayerExample();
projectPlayerExample.createCriteria().andPlayerIdEqualTo(playerId).andCompeteTimeIdEqualTo(param.getCompeteTimeId());
if(projectPlayerMapper.countByExample(projectPlayerExample) >= 3){
throw new BaseException(CodeEnum.JOIN_PROJECT_NUM_FULL.mtProjectMsg(player.getName()));
//用户现在参加且之前未参加本项目,参加
if(joinPlayer.getJoinProject() == 1 && CollectionUtil.isEmpty(competeProjectPlayerList)) {
CompetePlayer player = competePlayerDao.selectByPrimaryKey(joinPlayer.getPlayerId());
if (ObjectUtil.isNull(player)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
//查找此公司此组别是否参加过这个项目
int num = competeCompanyDao.getNumByCompanyAndGroup(competeProject.getId(), player.getCompanyId(), player.getCompeteGroupId(), param.getCompeteTimeId());
if (num > 0) {
throw new BaseException(CodeEnum.JOIN_PROJECT_NUM_FULL.mtProjectMsg("该项目该组别"));
}
//查找个人参赛数量是否符合
CompeteProjectPlayerExample projectPlayerExample = new CompeteProjectPlayerExample();
projectPlayerExample.createCriteria().andPlayerIdEqualTo(joinPlayer.getPlayerId()).andCompeteTimeIdEqualTo(param.getCompeteTimeId());
if (projectPlayerMapper.countByExample(projectPlayerExample) >= 3) {
throw new BaseException(CodeEnum.JOIN_PROJECT_NUM_FULL.mtProjectMsg(player.getName()));
}
//参加比赛记录
CompeteProjectPlayer projectPlayer = new CompeteProjectPlayer();
projectPlayer.setId(snowflake.nextId());
projectPlayer.setCompeteTimeId(param.getCompeteTimeId());
projectPlayer.setProjectId(param.getProjectId());
projectPlayer.setPlayerId(joinPlayer.getPlayerId());
projectPlayer.setCompeteGroupId(player.getCompeteGroupId());
projectPlayer.setGenderGroup(player.getGender());
projectPlayerMapper.insertSelective(projectPlayer);
}
//参加比赛记录
CompeteProjectPlayer projectPlayer = new CompeteProjectPlayer();
projectPlayer.setId(snowflake.nextId());
projectPlayer.setCompeteTimeId(param.getCompeteTimeId());
projectPlayer.setProjectId(param.getProjectId());
projectPlayer.setPlayerId(playerId);
projectPlayer.setCompeteGroupId(player.getCompeteGroupId());
projectPlayer.setGenderGroup(player.getGender());
projectPlayerMapper.insertSelective(projectPlayer);
});
}else {
//查找当前公司是否已经报名次项目
//查找当前公司是否已经报名此项目
CompeteTeam competeTeam;
CompeteTeamExample teamExample = new CompeteTeamExample();
teamExample.createCriteria().andProjectIdEqualTo(competeProject.getId()).andCompanyIdEqualTo(param.getCompanyId()).andCompeteTimeIdEqualTo(param.getCompeteTimeId());
if(competeTeamDao.countByExample(teamExample) > 0){
throw new BaseException(CodeEnum.JOIN_PROJECT_NUM_FULL.mtProjectMsg("该项目"));
List<CompeteTeam> competeTeamList = competeTeamDao.selectByExample(teamExample);
if(CollectionUtil.isNotEmpty(competeTeamList)){
competeTeam = competeTeamList.get(0);
}else {
competeTeam = new CompeteTeam();
competeTeam.setId(snowflake.nextId());
competeTeam.setCompeteTimeId(param.getCompeteTimeId());
competeTeam.setProjectId(param.getProjectId());
competeTeam.setCompanyId(param.getCompanyId());
//添加团队表
competeTeamDao.insertSelective(competeTeam);
}
//生成团队
CompeteTeam competeTeam = new CompeteTeam();
competeTeam.setId(snowflake.nextId());
competeTeam.setCompeteTimeId(param.getCompeteTimeId());
competeTeam.setProjectId(param.getProjectId());
competeTeam.setCompanyId(param.getCompanyId());
//添加成员表
for (int i = 0; i < param.getPlayerId().size(); i++) {
CompetePlayer player = competePlayerDao.selectByPrimaryKey(param.getPlayerId().get(i));
for (int i = 0; i < param.getPlayers().size(); i++) {
ProvinceCompeteDto.JoinProjectPlayer joinProjectPlayer = param.getPlayers().get(i);
CompetePlayer player = competePlayerDao.selectByPrimaryKey(joinProjectPlayer.getPlayerId());
if(ObjectUtil.isNull(player)){ throw new BaseException(CodeEnum.PARAM_ERROR); }
//检查该选手报名项目数量
int a = competeCompanyDao.getTeamNumByPlayerId(param.getCompeteTimeId(),player.getId());
if(a >= 6){
throw new BaseException(CodeEnum.JOIN_PROJECT_NUM_FULL.mtProjectMsg(player.getName()));
//查找改选手是否在本团队内
CompeteTeamMemberExample memberExample = new CompeteTeamMemberExample();
memberExample.createCriteria().andPlayerIdEqualTo(player.getId())
.andCompeteTeamIdEqualTo(competeTeam.getId());
List<CompeteTeamMember> teamMemberList = teamMemberMapper.selectByExample(memberExample);
//选手现在不参加,但以前参加了。删除以前的数据
if(joinProjectPlayer.getJoinProject() == 0 && CollectionUtil.isNotEmpty(teamMemberList)){
teamMemberList.forEach(member -> {
member.setRecStatus((byte) 2);
teamMemberMapper.updateByPrimaryKeySelective(member);
});
}
//团队性别组根据参赛成员而定
if (i == 0){
competeTeam.setGenderGroup(player.getGender());
}else {
if(!competeTeam.getGenderGroup().equals(player.getGender())){
competeTeam.setGenderGroup((byte) 2);
//选手这次参加,以前未参加,添加数据
if(joinProjectPlayer.getJoinProject() == 1 && CollectionUtil.isEmpty(teamMemberList)){
//检查该选手报名项目数量
int a = competeCompanyDao.getTeamNumByPlayerId(param.getCompeteTimeId(),player.getId());
if(a >= 6){
throw new BaseException(CodeEnum.JOIN_PROJECT_NUM_FULL.mtProjectMsg(player.getName()));
}
//添加成员表
CompeteTeamMember teamMember = new CompeteTeamMember();
teamMember.setId(snowflake.nextId());
teamMember.setCompeteTeamId(competeTeam.getId());
teamMember.setPlayerId(player.getId());
teamMemberMapper.insertSelective(teamMember);
}
//添加成员表
CompeteTeamMember teamMember = new CompeteTeamMember();
teamMember.setId(snowflake.nextId());
teamMember.setCompeteTeamId(competeTeam.getId());
teamMember.setPlayerId(player.getId());
teamMemberMapper.insertSelective(teamMember);
// //检查该选手报名项目数量
// int a = competeCompanyDao.getTeamNumByPlayerId(param.getCompeteTimeId(),player.getId());
// if(a >= 6){
// throw new BaseException(CodeEnum.JOIN_PROJECT_NUM_FULL.mtProjectMsg(player.getName()));
// }
// //团队性别组根据参赛成员而定
// if (i == 0){
// competeTeam.setGenderGroup(player.getGender());
// }else {
// if(!competeTeam.getGenderGroup().equals(player.getGender())){
// competeTeam.setGenderGroup((byte) 2);
// }
// }
// //添加成员表
// CompeteTeamMember teamMember = new CompeteTeamMember();
// teamMember.setId(snowflake.nextId());
// teamMember.setCompeteTeamId(competeTeam.getId());
// teamMember.setPlayerId(player.getId());
// teamMemberMapper.insertSelective(teamMember);
}
//添加团队表
competeTeamDao.insertSelective(competeTeam);
}
}
}

12
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.id = p.group_id
LEFT JOIN t_compete_player p on cg.id = p.compete_group_id
LEFT JOIN t_compete_project_player pp on p.id = pp.player_id and pp.project_id = 1
LEFT JOIN
( SELECT
@ -65,12 +65,14 @@
and m.rec_status = 0
) a on a.mPlayerId = p.id
WHERE
p.company_id = #{companyId}
cg.type = #{type}
and cg.rec_status = 0
<if test="groupId != null">
AND p.compete_group_id = #{groupId}
and(p.company_id = #{companyId} or p.company_id is null)
</if>
and p.rec_status = 0
and pp.rec_status = 0
AND (p.compete_group_id =#{groupId} or p.compete_group_id is null)
AND (p.rec_status = 0 or p.rec_status is null)
AND (pp.rec_status = 0 or pp.rec_status is null)
</select>
<select id="queryProjectByCompeteTimeId" resultMap="compete_project">
SELECT

4
tall/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring:
profiles:
active: test
include: util-test,common
active: dev
include: util-dev,common

Loading…
Cancel
Save