|
|
@@ -5,6 +5,7 @@ import cn.hutool.core.convert.Convert;
|
|
|
import cn.hutool.core.lang.Validator;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
|
@@ -15,6 +16,7 @@ import com.zhongzheng.modules.course.domain.CourseBusiness;
|
|
|
import com.zhongzheng.modules.course.mapper.CourseMapper;
|
|
|
import com.zhongzheng.modules.course.service.ICourseService;
|
|
|
import com.zhongzheng.modules.exam.bo.ExamApplyQueryBo;
|
|
|
+import com.zhongzheng.modules.exam.bo.ExamApplySiteTimeJson;
|
|
|
import com.zhongzheng.modules.exam.mapper.ExamApplyMapper;
|
|
|
import com.zhongzheng.modules.exam.vo.ExamApplySiteTimeVo;
|
|
|
import com.zhongzheng.modules.exam.vo.ExamApplySiteVo;
|
|
|
@@ -128,12 +130,32 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
|
|
|
User user = iUserService.getOne(new LambdaQueryWrapper<User>()
|
|
|
.eq(User::getIdCard,info.getIdCard()).last("limit 1"));
|
|
|
if(Validator.isEmpty(user)){
|
|
|
- throw new CustomException("学员:"+info.getUserName()+"-"+info.getIdCard()+"没有符合导出的数据");
|
|
|
+ throw new CustomException("学员:"+info.getUserName()+"-"+info.getIdCard()+"不存在没有符合导出的数据,,请先处理再继续操作");
|
|
|
}
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<UserSubscribeIdsImport> checkIdsDataFilter(UserSubscribeIdsImportCheck bo) {
|
|
|
+ for(UserSubscribeIdsImport info : bo.getList()){
|
|
|
+ User user = iUserService.getOne(new LambdaQueryWrapper<User>()
|
|
|
+ .eq(User::getIdCard,info.getIdCard()).last("limit 1"));
|
|
|
+ if(Validator.isEmpty(user)){
|
|
|
+ throw new CustomException("学员:"+info.getUserName()+"-"+info.getIdCard()+"不存在,请先处理再继续操作");
|
|
|
+ }
|
|
|
+ UserSubscribe userSubscribe = this.getOne(new LambdaQueryWrapper<UserSubscribe>()
|
|
|
+ .eq(UserSubscribe::getSubscribeStatus,1)
|
|
|
+ .eq(UserSubscribe::getApplyId,bo.getApplyId())
|
|
|
+ .eq(UserSubscribe::getApplySiteAddress,bo.getApplySiteAddress())
|
|
|
+ .eq(UserSubscribe::getUserId,user.getUserId()).last("limit 1"));
|
|
|
+ if(Validator.isEmpty(userSubscribe)){
|
|
|
+ throw new CustomException("学员:"+info.getUserName()+"-"+info.getIdCard()+"没有符合导出的数据,请先处理再继续操作");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return bo.getList();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 实体类转化成视图对象
|
|
|
*
|
|
|
@@ -195,6 +217,22 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
|
|
|
if (System.currentTimeMillis()/1000 > time){
|
|
|
throw new IllegalArgumentException("当前选择的考试时间已过期,请重新预约,选择未过期考试时间");
|
|
|
}
|
|
|
+ ExamApplyQueryBo queryTimeBo = new ExamApplyQueryBo();
|
|
|
+ queryTimeBo.setApplySiteId(bo.getApplyId());
|
|
|
+ queryTimeBo.setStartTime(bo.getApplySiteStartTime().replace("-", ":"));
|
|
|
+ queryTimeBo.setEndTime(bo.getApplySiteEndTime().replace("-", ":"));
|
|
|
+ queryTimeBo.setExamTime(time);
|
|
|
+ queryTimeBo.setApplySiteAddress(bo.getApplySiteAddress());
|
|
|
+ //考点已申报人数
|
|
|
+ Long sitePeopleNum = examApplyMapper.sitePeopleNum(queryTimeBo);
|
|
|
+ String siteTimeJson = examApplyMapper.siteTimeJson(queryTimeBo);
|
|
|
+ if (Validator.isEmpty(siteTimeJson)) {
|
|
|
+ throw new IllegalArgumentException("考点数据错误");
|
|
|
+ }
|
|
|
+ int existNum = findPeopleNum(queryTimeBo,siteTimeJson);
|
|
|
+ if(existNum==-1||existNum>=sitePeopleNum){
|
|
|
+ throw new CustomException("考点人数已满");
|
|
|
+ }
|
|
|
validEntityBeforeSave(add);
|
|
|
add.setSubscribeStatus(1);
|
|
|
add.setExamStatus(0);
|
|
|
@@ -206,6 +244,17 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
|
|
|
return add.getSubscribeId();
|
|
|
}
|
|
|
|
|
|
+ private int findPeopleNum(ExamApplyQueryBo queryTimeBo,String siteTimeJson){
|
|
|
+ List<ExamApplySiteTimeJson> list = new ArrayList<ExamApplySiteTimeJson>();
|
|
|
+ list = JSONObject.parseArray(siteTimeJson, ExamApplySiteTimeJson.class);
|
|
|
+ for(ExamApplySiteTimeJson v : list){
|
|
|
+ if(v.getStartTime().equals(queryTimeBo.getStartTime())){
|
|
|
+ return v.getNum();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public UserSubscribeVo getRecentExam(UserSubscribeQueryBo bo) {
|
|
|
return this.baseMapper.getRecentExam(bo);
|
|
|
@@ -706,12 +755,28 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
|
|
|
queryTimeBo.setStartTime(startTime);
|
|
|
queryTimeBo.setEndTime(endTime);
|
|
|
queryTimeBo.setExamTime(userSubscribeAddBo.getApplySiteExamTime());
|
|
|
+ queryTimeBo.setApplySiteAddress(userSubscribeImport.getApplySiteAddress());
|
|
|
Long siteTime = examApplyMapper.checkSiteTimeHave(queryTimeBo);
|
|
|
if (Validator.isEmpty(siteTime)) {
|
|
|
userSubscribeImport.setCause("该考试时间段不存在");
|
|
|
userSubscribeImports.add(userSubscribeImport);
|
|
|
continue;
|
|
|
}
|
|
|
+ //考点已申报人数
|
|
|
+ Long sitePeopleNum = examApplyMapper.sitePeopleNum(queryTimeBo);
|
|
|
+ String siteTimeJson = examApplyMapper.siteTimeJson(queryTimeBo);
|
|
|
+ if (Validator.isEmpty(siteTimeJson)) {
|
|
|
+ userSubscribeImport.setCause("考点数据错误");
|
|
|
+ userSubscribeImports.add(userSubscribeImport);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ int existNum = findPeopleNum(queryTimeBo,siteTimeJson);
|
|
|
+ if(existNum==-1||existNum>=sitePeopleNum){
|
|
|
+ userSubscribeImport.setCause("考点人数已满");
|
|
|
+ userSubscribeImports.add(userSubscribeImport);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
//查看是否有无考试记录
|
|
|
ExamApplyQueryBo applyQueryBo = new ExamApplyQueryBo();
|
|
|
applyQueryBo.setUserId(userId);
|
|
|
@@ -918,13 +983,27 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
|
|
|
queryTimeBo.setStartTime(startTime);
|
|
|
queryTimeBo.setEndTime(endTime);
|
|
|
queryTimeBo.setExamTime(userSubscribeAddBo.getApplySiteExamTime());
|
|
|
+ queryTimeBo.setApplySiteAddress(userSubscribeImport.getApplySiteAddress());
|
|
|
Long siteTime = examApplyMapper.checkSiteTimeHave(queryTimeBo);
|
|
|
if (Validator.isEmpty(siteTime)) {
|
|
|
userSubscribeImport.setCause("该考试时间段不存在");
|
|
|
userSubscribeImports.add(userSubscribeImport);
|
|
|
continue;
|
|
|
}
|
|
|
-
|
|
|
+ //考点已申报人数
|
|
|
+ Long sitePeopleNum = examApplyMapper.sitePeopleNum(queryTimeBo);
|
|
|
+ String siteTimeJson = examApplyMapper.siteTimeJson(queryTimeBo);
|
|
|
+ if (Validator.isEmpty(siteTimeJson)) {
|
|
|
+ userSubscribeImport.setCause("考点数据错误");
|
|
|
+ userSubscribeImports.add(userSubscribeImport);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ int existNum = findPeopleNum(queryTimeBo,siteTimeJson);
|
|
|
+ if(existNum==-1||existNum>=sitePeopleNum){
|
|
|
+ userSubscribeImport.setCause("考点人数已满");
|
|
|
+ userSubscribeImports.add(userSubscribeImport);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(userSubscribeImport.getApplySiteAddressTrain())|| Validator.isEmpty(userSubscribeImport.getApplySiteExamTrainTime())|| Validator.isEmpty(userSubscribeImport.getApplySiteTime())) {
|