yangdamao 2 tahun lalu
induk
melakukan
542f6a95af

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamApplyServiceImpl.java

@@ -631,6 +631,16 @@ public class ExamApplyServiceImpl extends ServiceImpl<ExamApplyMapper, ExamApply
         add.setCode(ServletUtils.getEncoded("KSAP"));
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
+        add.setRelCode(ServletUtils.getEncoded("SHEX"));
+        //是否公用祥粤考场
+        String tenantId = ServletUtils.getRequest().getHeader("TenantId");
+        SysTenant sysTenant = sysTenantService.getById(Long.valueOf(tenantId));
+        if (ObjectUtils.isNotNull(sysTenant.getExamRoom()) && sysTenant.getExamRoom() == 1){
+            String code = baseMapper.getExamRelCodeNotTenant(add.getApplyName());
+            if (net.polyv.common.v1.util.StringUtils.isNotEmpty(code)){
+                add.setRelCode(code);
+            }
+        }
         this.save(add);
         if (CollectionUtils.isNotEmpty(bo.getApplyUsers())) {
             //专场预约学员

+ 31 - 32
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -1666,45 +1666,44 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                     return;
                 }
             }
-            ClassGrade classGrade = new ClassGrade();
-            classGrade.setCreateTime(DateUtils.getNowTime());
-            if (bo.getClassStatus() == 1){
-                //开班
-                classGrade.setClassStatus(1);
-                classGrade.setOfficialName(bo.getOfficialName());
-                classGrade.setLearningStatus(1);
-                classGrade.setClassStartTime(bo.getClassStartTime());
-                classGrade.setClassEndTime(bo.getClassEndTime());
-                //二建/二造官方信息推送开关打开
-                List<ClassGradeInterface> interfaceList = iClassGradeInterfaceService
-                        .list(new LambdaQueryWrapper<ClassGradeInterface>()
-                                .eq(ClassGradeInterface::getType, 1).last("limit 1"));
-                if (CollectionUtils.isNotEmpty(interfaceList)) {
-                    classGrade.setInterfacePushId(interfaceList.get(0).getId());
+            relGoods.forEach(item -> {
+                ClassGrade classGrade = new ClassGrade();
+                classGrade.setCreateTime(DateUtils.getNowTime());
+                if (bo.getClassStatus() == 1){
+                    //开班
+                    classGrade.setClassStatus(1);
+                    classGrade.setOfficialName(bo.getOfficialName());
+                    classGrade.setLearningStatus(1);
+                    classGrade.setClassStartTime(bo.getClassStartTime());
+                    classGrade.setClassEndTime(bo.getClassEndTime());
+                    //二建/二造官方信息推送开关打开
+                    List<ClassGradeInterface> interfaceList = iClassGradeInterfaceService
+                            .list(new LambdaQueryWrapper<ClassGradeInterface>()
+                                    .eq(ClassGradeInterface::getType, 1).last("limit 1"));
+                    if (CollectionUtils.isNotEmpty(interfaceList)) {
+                        classGrade.setInterfacePushId(interfaceList.get(0).getId());
+                    }
+                }else {
+                    classGrade.setClassStatus(0);
+                    classGrade.setLearningStatus(2);//待定
+                    classGrade.setOfficialName(bo.getRegisterCode());
                 }
-            }else {
-                classGrade.setClassStatus(0);
-                classGrade.setLearningStatus(2);//待定
-                classGrade.setOfficialName(bo.getRegisterCode());
-            }
-            classGrade.setStudentUpper(ClassGrade.INIT_UPPER); //上限300
-            classGrade.setUpdateTime(DateUtils.getNowTime());
-            classGrade.setStatus(1);
-            String gradeCode = ServletUtils.getEncoded("BJ");
-            classGrade.setGradeCode(gradeCode);
-            classGrade.setClassName(bo.getClassName());
-            classGrade.setTenantId(tenant.getTenantId());
-            save(classGrade);
-            List<ClassGradeGoods> gradeGoods = relGoods.stream().map(item -> {
+                classGrade.setStudentUpper(ClassGrade.INIT_UPPER); //上限300
+                classGrade.setUpdateTime(DateUtils.getNowTime());
+                classGrade.setStatus(1);
+                String gradeCode = ServletUtils.getEncoded("BJ");
+                classGrade.setGradeCode(gradeCode);
+                classGrade.setClassName(bo.getClassName());
+                classGrade.setTenantId(tenant.getTenantId());
+                save(classGrade);
                 ClassGradeGoods classGradeGoods = new ClassGradeGoods();
                 classGradeGoods.setGradeId(classGrade.getGradeId());
                 classGradeGoods.setGoodsId(item.getGoodsId());
                 classGradeGoods.setCreateTime(DateUtils.getNowTime());
                 classGradeGoods.setUpdateTime(DateUtils.getNowTime());
                 classGradeGoods.setTenantId(tenant.getTenantId());
-                return classGradeGoods;
-            }).collect(Collectors.toList());
-            iClassGradeGoodsService.saveBatch(gradeGoods);
+                iClassGradeGoodsService.save(classGradeGoods);
+            });
         });
     }
 

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserSubscribeMapper.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.user.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.user.bo.UserSubscribeQueryBo;
 import com.zhongzheng.modules.user.domain.UserSubscribe;
@@ -63,4 +64,8 @@ public interface UserSubscribeMapper extends BaseMapper<UserSubscribe> {
     Long selectMajorId(@Param("majorName")String majorName);
 
     List<Long> getGoodsIds(@Param("userId")Long userId, @Param("applyId")Long applyId,@Param("majorId") Long majorId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    Integer getExamApplyNum(String relCode);
+
 }

+ 69 - 22
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java

@@ -371,6 +371,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
         if (System.currentTimeMillis()/1000 > time){
             throw new CustomException("当前选择的考试时间已过期,请重新预约,选择未过期考试时间");
         }
+        subscribeNumCheck(60L,bo.getApplyId());
         //要求非必填考点
         if(Validator.isNotEmpty(bo.getApplySiteAddress())){
             ExamApplyQueryBo queryTimeBo = new ExamApplyQueryBo();
@@ -1211,28 +1212,51 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                 continue;
             }
             //考点已申报人数
-            Long sitePeopleNum = examApplyMapper.sitePeopleNum(queryTimeBo);
-            System.out.println(queryTimeBo);
-            List<String> siteTimeJsonList = examApplyMapper.siteTimeJson(queryTimeBo);
-            String siteTimeJson = siteTimeJsonList.stream().filter(x -> {
-                List<ExamApplySiteTimeTwoVo> timeTwoVos = JSONArray.parseArray(x, ExamApplySiteTimeTwoVo.class);
-                ExamApplySiteTimeTwoVo timeTwoVo = timeTwoVos.get(0);
-                if (timeTwoVo.getStartTime().equals(queryTimeBo.getStartTime())
-                        && timeTwoVo.getEndTime().equals(queryTimeBo.getEndTime())) {
-                    return true;
+//            Long sitePeopleNum = examApplyMapper.sitePeopleNum(queryTimeBo);
+//            System.out.println(queryTimeBo);
+//            List<String> siteTimeJsonList = examApplyMapper.siteTimeJson(queryTimeBo);
+//            String siteTimeJson = siteTimeJsonList.stream().filter(x -> {
+//                List<ExamApplySiteTimeTwoVo> timeTwoVos = JSONArray.parseArray(x, ExamApplySiteTimeTwoVo.class);
+//                ExamApplySiteTimeTwoVo timeTwoVo = timeTwoVos.get(0);
+//                if (timeTwoVo.getStartTime().equals(queryTimeBo.getStartTime())
+//                        && timeTwoVo.getEndTime().equals(queryTimeBo.getEndTime())) {
+//                    return true;
+//                }
+//                return false;
+//            }).findFirst().orElse(null);
+//            if (Validator.isEmpty(siteTimeJson)) {
+//                userSubscribeImport.setCause("考点数据错误");
+//                userSubscribeImports.add(userSubscribeImport);
+//                continue;
+//            }
+//            int num = findPeopleNum(queryTimeBo,siteTimeJson);
+//            if(num==-1||num<=sitePeopleNum){
+//                userSubscribeImport.setCause("考点人数已满");
+//                userSubscribeImports.add(userSubscribeImport);
+//                continue;
+//            }
+
+            String tenantId = ServletUtils.getRequest().getHeader("TenantId");
+            SysTenant sysTenant = iSysTenantService.getById(Long.valueOf(tenantId));
+            if (ObjectUtils.isNotNull(sysTenant.getExamRoom()) && sysTenant.getExamRoom() == 1){
+                //公用祥粤考场
+                ExamApply examApply = iExamApplyService.getById(applyId);
+                if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(examApply.getRelCode())){
+                    //约考人数
+                    Integer number = baseMapper.getExamApplyNum(examApply.getRelCode());
+                    if (number >= 60){
+                        userSubscribeImport.setCause("考点人数已满");
+                        userSubscribeImports.add(userSubscribeImport);
+                    }
+                }
+            }else {
+                int countNum = count(new LambdaQueryWrapper<UserSubscribe>()
+                        .eq(UserSubscribe::getApplyId, applyId)
+                        .eq(UserSubscribe::getSubscribeStatus, 1));
+                if (countNum >= 60){
+                    userSubscribeImport.setCause("考点人数已满");
+                    userSubscribeImports.add(userSubscribeImport);
                 }
-                return false;
-            }).findFirst().orElse(null);
-            if (Validator.isEmpty(siteTimeJson)) {
-                userSubscribeImport.setCause("考点数据错误");
-                userSubscribeImports.add(userSubscribeImport);
-                continue;
-            }
-            int num = findPeopleNum(queryTimeBo,siteTimeJson);
-            if(num==-1||num<=sitePeopleNum){
-                userSubscribeImport.setCause("考点人数已满");
-                userSubscribeImports.add(userSubscribeImport);
-                continue;
             }
 
             //查看是否有无考试记录
@@ -2302,7 +2326,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
         //考场人数
         List<ExamApplySiteTimeTwoAddBo> siteTimeTwoAddBos = JSONArray.parseArray(examApplySiteTime.getSiteTime(), ExamApplySiteTimeTwoAddBo.class);
         Long userNum = siteTimeTwoAddBos.get(0).getNum();
-
+        subscribeNumCheck(userNum,bo.getApplyId());
         //生成座位号
         Integer tNum = getSeatNumber(bo,userNum);
         add.setSeatNumber(tNum.toString());
@@ -2382,6 +2406,29 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
         return add.getSubscribeId();
     }
 
+    private void subscribeNumCheck(Long userNum,Long applyId) {
+        String tenantId = ServletUtils.getRequest().getHeader("TenantId");
+        SysTenant sysTenant = iSysTenantService.getById(Long.valueOf(tenantId));
+        if (ObjectUtils.isNotNull(sysTenant.getExamRoom()) && sysTenant.getExamRoom() == 1){
+            //公用祥粤考场
+            ExamApply examApply = iExamApplyService.getById(applyId);
+            if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(examApply.getRelCode())){
+                //约考人数
+                Integer number = baseMapper.getExamApplyNum(examApply.getRelCode());
+                if (number >= userNum){
+                    throw new CustomException("预约考点人数已满,请选择其他场次");
+                }
+            }
+        }else {
+            int count = count(new LambdaQueryWrapper<UserSubscribe>()
+                    .eq(UserSubscribe::getApplyId, applyId)
+                    .eq(UserSubscribe::getSubscribeStatus, 1));
+            if (count >= userNum){
+                throw new CustomException("预约考点人数已满,请选择其他场次");
+            }
+        }
+    }
+
     @Override
     public List<ExamSessionVo> getExamSession(String applyDate) {
         //根据月份筛选

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml

@@ -867,6 +867,7 @@
                 LEFT JOIN major m ON g.major_id = m.id
         WHERE
             g.`status` = 1
+            AND g.goods_status = 1
             AND INSTR(#{businessName}, cet.education_name)
             AND INSTR(#{businessName}, cpt.project_name)
             AND INSTR(#{categoryName}, m.category_name)

+ 12 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserSubscribeMapper.xml

@@ -582,4 +582,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             AND og.refund_status != 2
 	        AND og.pay_status IN (2,3,4)
     </select>
+
+    <select id="getExamApplyNum" parameterType="java.lang.String" resultType="java.lang.Integer">
+        SELECT
+            COUNT( DISTINCT us.user_id )
+        FROM
+            exam_apply ea
+                LEFT JOIN user_subscribe us ON ea.apply_id = us.apply_id
+        WHERE
+            ea.rel_code = ''
+          AND ea.`status` = 1
+          AND us.subscribe_status = 1
+    </select>
 </mapper>