|
@@ -5,6 +5,7 @@ import cn.hutool.core.convert.Convert;
|
|
import cn.hutool.core.lang.Validator;
|
|
import cn.hutool.core.lang.Validator;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
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.mapper.CourseMapper;
|
|
import com.zhongzheng.modules.course.service.ICourseService;
|
|
import com.zhongzheng.modules.course.service.ICourseService;
|
|
import com.zhongzheng.modules.exam.bo.ExamApplyQueryBo;
|
|
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.mapper.ExamApplyMapper;
|
|
import com.zhongzheng.modules.exam.vo.ExamApplySiteTimeVo;
|
|
import com.zhongzheng.modules.exam.vo.ExamApplySiteTimeVo;
|
|
import com.zhongzheng.modules.exam.vo.ExamApplySiteVo;
|
|
import com.zhongzheng.modules.exam.vo.ExamApplySiteVo;
|
|
@@ -195,6 +197,22 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
|
|
if (System.currentTimeMillis()/1000 > time){
|
|
if (System.currentTimeMillis()/1000 > time){
|
|
throw new IllegalArgumentException("当前选择的考试时间已过期,请重新预约,选择未过期考试时间");
|
|
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);
|
|
validEntityBeforeSave(add);
|
|
add.setSubscribeStatus(1);
|
|
add.setSubscribeStatus(1);
|
|
add.setExamStatus(0);
|
|
add.setExamStatus(0);
|
|
@@ -206,6 +224,17 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
|
|
return add.getSubscribeId();
|
|
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
|
|
@Override
|
|
public UserSubscribeVo getRecentExam(UserSubscribeQueryBo bo) {
|
|
public UserSubscribeVo getRecentExam(UserSubscribeQueryBo bo) {
|
|
return this.baseMapper.getRecentExam(bo);
|
|
return this.baseMapper.getRecentExam(bo);
|
|
@@ -706,12 +735,28 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
|
|
queryTimeBo.setStartTime(startTime);
|
|
queryTimeBo.setStartTime(startTime);
|
|
queryTimeBo.setEndTime(endTime);
|
|
queryTimeBo.setEndTime(endTime);
|
|
queryTimeBo.setExamTime(userSubscribeAddBo.getApplySiteExamTime());
|
|
queryTimeBo.setExamTime(userSubscribeAddBo.getApplySiteExamTime());
|
|
|
|
+ queryTimeBo.setApplySiteAddress(userSubscribeImport.getApplySiteAddress());
|
|
Long siteTime = examApplyMapper.checkSiteTimeHave(queryTimeBo);
|
|
Long siteTime = examApplyMapper.checkSiteTimeHave(queryTimeBo);
|
|
if (Validator.isEmpty(siteTime)) {
|
|
if (Validator.isEmpty(siteTime)) {
|
|
userSubscribeImport.setCause("该考试时间段不存在");
|
|
userSubscribeImport.setCause("该考试时间段不存在");
|
|
userSubscribeImports.add(userSubscribeImport);
|
|
userSubscribeImports.add(userSubscribeImport);
|
|
continue;
|
|
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();
|
|
ExamApplyQueryBo applyQueryBo = new ExamApplyQueryBo();
|
|
applyQueryBo.setUserId(userId);
|
|
applyQueryBo.setUserId(userId);
|
|
@@ -918,13 +963,27 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
|
|
queryTimeBo.setStartTime(startTime);
|
|
queryTimeBo.setStartTime(startTime);
|
|
queryTimeBo.setEndTime(endTime);
|
|
queryTimeBo.setEndTime(endTime);
|
|
queryTimeBo.setExamTime(userSubscribeAddBo.getApplySiteExamTime());
|
|
queryTimeBo.setExamTime(userSubscribeAddBo.getApplySiteExamTime());
|
|
|
|
+ queryTimeBo.setApplySiteAddress(userSubscribeImport.getApplySiteAddress());
|
|
Long siteTime = examApplyMapper.checkSiteTimeHave(queryTimeBo);
|
|
Long siteTime = examApplyMapper.checkSiteTimeHave(queryTimeBo);
|
|
if (Validator.isEmpty(siteTime)) {
|
|
if (Validator.isEmpty(siteTime)) {
|
|
userSubscribeImport.setCause("该考试时间段不存在");
|
|
userSubscribeImport.setCause("该考试时间段不存在");
|
|
userSubscribeImports.add(userSubscribeImport);
|
|
userSubscribeImports.add(userSubscribeImport);
|
|
continue;
|
|
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())) {
|
|
if (StringUtils.isEmpty(userSubscribeImport.getApplySiteAddressTrain())|| Validator.isEmpty(userSubscribeImport.getApplySiteExamTrainTime())|| Validator.isEmpty(userSubscribeImport.getApplySiteTime())) {
|