|
|
@ -1,6 +1,9 @@ |
|
|
|
package com.ccsens.mt.service; |
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.lang.Snowflake; |
|
|
|
import cn.hutool.core.util.IdcardUtil; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
import com.ccsens.mt.bean.dto.CompeteDto; |
|
|
@ -9,7 +12,9 @@ import com.ccsens.mt.bean.po.*; |
|
|
|
import com.ccsens.mt.bean.vo.ProvinceCompeteVo; |
|
|
|
import com.ccsens.mt.persist.dao.CompeteCompanyDao; |
|
|
|
import com.ccsens.mt.persist.dao.CompetePlayerDao; |
|
|
|
import com.ccsens.mt.persist.dao.CompeteTeamDao; |
|
|
|
import com.ccsens.mt.persist.dao.CompeteTimeDao; |
|
|
|
import com.ccsens.mt.persist.mapper.*; |
|
|
|
import com.ccsens.mt.persist.mapper.CommonFileMapper; |
|
|
|
import com.ccsens.mt.persist.mapper.CompeteCoachMapper; |
|
|
|
import com.ccsens.mt.persist.mapper.CompetePlayerMapper; |
|
|
@ -49,6 +54,14 @@ public class ProvinceService implements IProvinceService { |
|
|
|
@Resource |
|
|
|
private CompeteCoachMapper competeCoachMapper; |
|
|
|
@Resource |
|
|
|
private CompeteProjectMapper competeProjectMapper; |
|
|
|
@Resource |
|
|
|
private CompeteProjectPlayerMapper projectPlayerMapper; |
|
|
|
@Resource |
|
|
|
private CompeteTeamDao competeTeamDao; |
|
|
|
@Resource |
|
|
|
private CompeteTeamMemberMapper teamMemberMapper; |
|
|
|
@Resource |
|
|
|
private CompetePlayerMapper competePlayerMapper; |
|
|
|
|
|
|
|
/** |
|
|
@ -56,7 +69,11 @@ public class ProvinceService implements IProvinceService { |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public ProvinceCompeteVo.CompeteOverview getOverview(CompeteDto.CompeteTime param, Long userId) { |
|
|
|
return competeCompanyDao.getCompanyOverview(param.getCompeteTimeId(),userId); |
|
|
|
ProvinceCompeteVo.CompeteOverview competeOverview = competeCompanyDao.getCompanyOverview(param.getCompeteTimeId(),userId); |
|
|
|
if(ObjectUtil.isNotNull(competeOverview)){ |
|
|
|
competeOverview.setProjectNum(competeCompanyDao.getJoinProjectNum(competeOverview.getCompanyId())); |
|
|
|
} |
|
|
|
return competeOverview; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -91,7 +108,7 @@ public class ProvinceService implements IProvinceService { |
|
|
|
* 添加或修改选手 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void saveOrUpdatePlayer(ProvinceCompeteDto.PlayerInfo param, Long userId) throws Exception { |
|
|
|
public void saveOrUpdatePlayer(ProvinceCompeteDto.PlayerInfo param, Long userId) { |
|
|
|
//判断选手id是否为空
|
|
|
|
if(ObjectUtil.isNull(param.getPlayerId())){ |
|
|
|
//id为空,新加一个选手
|
|
|
@ -99,21 +116,35 @@ public class ProvinceService implements IProvinceService { |
|
|
|
player.setId(snowflake.nextId()); |
|
|
|
player.setName(param.getPlayerName()); |
|
|
|
player.setGender((byte) param.getGender()); |
|
|
|
//身份证不能为空,且正确
|
|
|
|
if(StrUtil.isEmpty(param.getIdCard()) || !IdcardUtil.isValidCard(param.getIdCard())){throw new BaseException(CodeEnum.ID_CARD_ERROR);} |
|
|
|
//是否已注册
|
|
|
|
CompetePlayerExample competePlayerExample = new CompetePlayerExample(); |
|
|
|
competePlayerExample.createCriteria().andIdCardEqualTo(param.getIdCard()); |
|
|
|
if(competePlayerDao.countByExample(competePlayerExample) != 0){ |
|
|
|
throw new BaseException(CodeEnum.WBS_REPEAT_MEMBER_PHONE); |
|
|
|
} |
|
|
|
player.setIdCard(param.getIdCard()); |
|
|
|
player.setCompanyId(param.getCompeteId()); |
|
|
|
player.setCompeteGroupId(param.getGroupId()); |
|
|
|
//添加身份证正面照片
|
|
|
|
player.setIdCardFrontFile(uploadPhotoFile(param.getIdCardFront(),userId)); |
|
|
|
//身份证反面
|
|
|
|
player.setIdCardBackFile(uploadPhotoFile(param.getIdCardFront(),userId)); |
|
|
|
//一寸证件照
|
|
|
|
player.setIdPhotoFile(uploadPhotoFile(param.getIdCardFront(),userId)); |
|
|
|
//学籍证明
|
|
|
|
player.setStudentRecordFile(uploadPhotoFile(param.getIdCardFront(),userId)); |
|
|
|
//健康证明
|
|
|
|
player.setHealthRecordFile(uploadPhotoFile(param.getIdCardFront(),userId)); |
|
|
|
//保险证明
|
|
|
|
player.setInsuranceRecordFile(uploadPhotoFile(param.getIdCardFront(),userId)); |
|
|
|
player.setIdCardFrontFile(param.getIdCardFront()); |
|
|
|
player.setIdCardBackFile(param.getIdCardBack()); |
|
|
|
player.setIdPhotoFile(param.getIdPhone()); |
|
|
|
player.setStudentRecordFile(param.getStudentRecord()); |
|
|
|
player.setHealthRecordFile(param.getHealthRecord()); |
|
|
|
player.setInsuranceRecordFile(param.getInsuranceRecord()); |
|
|
|
// //添加身份证正面照片
|
|
|
|
// player.setIdCardFrontFile(uploadPhotoFile(param.getIdCardFront(),userId));
|
|
|
|
// //身份证反面
|
|
|
|
// player.setIdCardBackFile(uploadPhotoFile(param.getIdCardFront(),userId));
|
|
|
|
// //一寸证件照
|
|
|
|
// player.setIdPhotoFile(uploadPhotoFile(param.getIdCardFront(),userId));
|
|
|
|
// //学籍证明
|
|
|
|
// player.setStudentRecordFile(uploadPhotoFile(param.getIdCardFront(),userId));
|
|
|
|
// //健康证明
|
|
|
|
// player.setHealthRecordFile(uploadPhotoFile(param.getIdCardFront(),userId));
|
|
|
|
// //保险证明
|
|
|
|
// player.setInsuranceRecordFile(uploadPhotoFile(param.getIdCardFront(),userId));
|
|
|
|
competePlayerDao.insertSelective(player); |
|
|
|
log.info("新加参赛选手:{}",player); |
|
|
|
}else { |
|
|
@ -127,19 +158,32 @@ public class ProvinceService implements IProvinceService { |
|
|
|
if(ObjectUtil.isNotNull(param.getGender())){player.setGender((byte) param.getGender());} |
|
|
|
if(ObjectUtil.isNotNull(param.getGroupId())){player.setCompeteGroupId(param.getGroupId());} |
|
|
|
if(ObjectUtil.isNotNull(param.getCompeteId())){player.setCompanyId(param.getCompeteId());} |
|
|
|
if(ObjectUtil.isNotNull(param.getIdCardFront())){player.setIdCardFrontFile(uploadPhotoFile(param.getIdCardFront(),userId));} |
|
|
|
if(ObjectUtil.isNotNull(param.getIdCardBack())){player.setIdCardBackFile(uploadPhotoFile(param.getIdCardFront(),userId));} |
|
|
|
if(ObjectUtil.isNotNull(param.getIdPhone())){player.setIdPhotoFile(uploadPhotoFile(param.getIdCardFront(),userId));} |
|
|
|
if(ObjectUtil.isNotNull(param.getStudentRecord())){ player.setStudentRecordFile(uploadPhotoFile(param.getIdCardFront(),userId));} |
|
|
|
if(ObjectUtil.isNotNull(param.getHealthRecord())){ player.setHealthRecordFile(uploadPhotoFile(param.getIdCardFront(),userId));} |
|
|
|
if(ObjectUtil.isNotNull(param.getInsuranceRecord())){ player.setInsuranceRecordFile(uploadPhotoFile(param.getIdCardFront(),userId));} |
|
|
|
|
|
|
|
if(ObjectUtil.isNotNull(param.getIdCardFront())){player.setIdCardFrontFile(param.getIdCardFront());} |
|
|
|
if(ObjectUtil.isNotNull(param.getIdCardBack())){player.setIdCardBackFile(param.getIdCardBack());} |
|
|
|
if(ObjectUtil.isNotNull(param.getIdPhone())){player.setIdPhotoFile(param.getIdPhone());} |
|
|
|
if(ObjectUtil.isNotNull(param.getStudentRecord())){player.setStudentRecordFile(param.getStudentRecord());} |
|
|
|
if(ObjectUtil.isNotNull(param.getHealthRecord())){player.setHealthRecordFile(param.getHealthRecord());} |
|
|
|
if(ObjectUtil.isNotNull(param.getInsuranceRecord())){player.setInsuranceRecordFile(param.getInsuranceRecord());} |
|
|
|
|
|
|
|
// if(ObjectUtil.isNotNull(param.getIdCardFront())){player.setIdCardFrontFile(uploadPhotoFile(param.getIdCardFront(),userId));}
|
|
|
|
// if(ObjectUtil.isNotNull(param.getIdCardBack())){player.setIdCardBackFile(uploadPhotoFile(param.getIdCardFront(),userId));}
|
|
|
|
// if(ObjectUtil.isNotNull(param.getIdPhone())){player.setIdPhotoFile(uploadPhotoFile(param.getIdCardFront(),userId));}
|
|
|
|
// if(ObjectUtil.isNotNull(param.getStudentRecord())){ player.setStudentRecordFile(uploadPhotoFile(param.getIdCardFront(),userId));}
|
|
|
|
// if(ObjectUtil.isNotNull(param.getHealthRecord())){ player.setHealthRecordFile(uploadPhotoFile(param.getIdCardFront(),userId));}
|
|
|
|
// if(ObjectUtil.isNotNull(param.getInsuranceRecord())){ player.setInsuranceRecordFile(uploadPhotoFile(param.getIdCardFront(),userId));}
|
|
|
|
competePlayerDao.updateByPrimaryKeySelective(player); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 查找所有选手 |
|
|
|
* @param param 单位id |
|
|
|
* @param userId userId |
|
|
|
* @return 返回选手信息 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<ProvinceCompeteVo.PlayerByCompanyId> queryPlayerByCompanyId(ProvinceCompeteDto.CompanyIdVo param, Long userId) { |
|
|
|
|
|
|
|
return competePlayerDao.queryPlayerByCompanyId(param.getCompanyId()); |
|
|
|
} |
|
|
|
|
|
|
@ -221,8 +265,6 @@ public class ProvinceService implements IProvinceService { |
|
|
|
} |
|
|
|
return competeCompany1; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public ProvinceCompeteVo.CompeteCompanyCoach queryCoach(CompeteDto.CompeteCompany param) { |
|
|
|
Long company = param.getCompanyId(); |
|
|
@ -251,7 +293,7 @@ public class ProvinceService implements IProvinceService { |
|
|
|
CompeteCoach competeCoach = new CompeteCoach(); |
|
|
|
Long companyId = param.getCompanyId(); |
|
|
|
competeCoach.setCompanyId(companyId); |
|
|
|
Long cpachId = param.getCpachId(); |
|
|
|
Long cpachId = param.getCoachId(); |
|
|
|
competeCoach.setId(cpachId); |
|
|
|
int identity = param.getIdentity(); |
|
|
|
competeCoach.setIdentity((byte) identity); |
|
|
@ -272,11 +314,16 @@ public class ProvinceService implements IProvinceService { |
|
|
|
|
|
|
|
@Override |
|
|
|
public void deleteCoach(CompeteDto.AddCoach param) { |
|
|
|
Long cpachId = param.getCpachId(); |
|
|
|
CompeteCoach competeCoach = competeCoachMapper.selectByPrimaryKey(cpachId); |
|
|
|
//<<<<<<< HEAD
|
|
|
|
// Long coachId = param.getCoachId();
|
|
|
|
// CompeteCoach competeCoach = competeCoachMapper.selectByPrimaryKey(coachId);
|
|
|
|
// competeCoachMapper.deleteByPrimaryKey(competeCoach.getId());
|
|
|
|
//=======
|
|
|
|
Long coachId = param.getCoachId(); |
|
|
|
CompeteCoach competeCoach = competeCoachMapper.selectByPrimaryKey(coachId); |
|
|
|
competeCoach.setRecStatus((byte) 2); |
|
|
|
CompeteCoachExample competeCoachExample = new CompeteCoachExample(); |
|
|
|
competeCoachExample.createCriteria().andIdEqualTo(cpachId); |
|
|
|
competeCoachExample.createCriteria().andIdEqualTo(coachId); |
|
|
|
competeCoachMapper.updateByExample(competeCoach,competeCoachExample); |
|
|
|
|
|
|
|
} |
|
|
@ -315,5 +362,102 @@ public class ProvinceService implements IProvinceService { |
|
|
|
return playerInfo; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void updateLeader(ProvinceCompeteDto.ModifyLeader param) { |
|
|
|
Long coachId=param.getCoachId(); |
|
|
|
if(ObjectUtil.isNull(coachId)){ |
|
|
|
CompeteCoach competeCoach=new CompeteCoach(); |
|
|
|
competeCoach.setId(snowflake.nextId()); |
|
|
|
BeanUtil.copyProperties(param,competeCoach); |
|
|
|
competeCoachMapper.insertSelective(competeCoach); |
|
|
|
}else{ |
|
|
|
CompeteCoach competeCoach=competeCoachMapper.selectByPrimaryKey(coachId); |
|
|
|
if(ObjectUtil.isNotNull(competeCoach)){ |
|
|
|
BeanUtil.copyProperties(param,competeCoach); |
|
|
|
competeCoachMapper.updateByPrimaryKeySelective(competeCoach); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 选择选手参加比赛 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void playerJoinProject(ProvinceCompeteDto.JoinProject param) { |
|
|
|
//查找项目信息
|
|
|
|
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()){ |
|
|
|
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("该项目该组别")); |
|
|
|
} |
|
|
|
//查找个人参赛数量是否符合
|
|
|
|
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())); |
|
|
|
} |
|
|
|
//参加比赛记录
|
|
|
|
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 { |
|
|
|
//查找当前公司是否已经报名次项目
|
|
|
|
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("该项目")); |
|
|
|
} |
|
|
|
//生成团队
|
|
|
|
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)); |
|
|
|
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())); |
|
|
|
} |
|
|
|
//团队性别组根据参赛成员而定
|
|
|
|
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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|