yangdamao 1 year ago
parent
commit
6b8d7624de

+ 32 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -2516,6 +2516,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         //创建新班级
         CourseBusinessVo businessVo = iCourseBusinessService.queryById(businessId);
         boolean isConfigTp = false; //商品是否有配置选班模板
+        Boolean isNewClass = true; //商品是否有配置选班模板
         if (Validator.isNotEmpty(businessVo) && Validator.isNotEmpty(businessVo.getTemplateName()) && businessVo.getTemplateName().equals("班级")) {
             isConfigTp = true;
         }
@@ -2528,7 +2529,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             String businessFullName = iGoodsService.getGoodsBusinessName(goodsId);
             if (businessFullName.contains("继续教育") && businessFullName.contains("施工现场专业人员")){
                 //七大员继教
-                classGrade.setStudentUpper(ClassGrade.INIT_UPPER3); //上限1000
+//                classGrade.setStudentUpper(ClassGrade.INIT_UPPER3); //上限1000
+                classGrade.setStudentUpper(1); //上限1000
                 //班级绑定学员资料推送和学时推送
                 List<ClassGradeInterface> list = iClassGradeInterfaceService
                         .list(new LambdaQueryWrapper<ClassGradeInterface>()
@@ -2545,7 +2547,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 }
                 if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
                     //七大员继教班级共享
-                    classGrade.setSevenCode(getSevenCodeNoTenant(goodsId));
+//                    classGrade.setSevenCode(getSevenCodeNoTenant(goodsId,classGrade,isNewClass));
+                    classGrade.setSevenCode(ServletUtils.getEncoded("SEV"));
+                    Goods g = iGoodsService.getById(goodsId);
+                    String businessName = iGoodsService.getGoodsBusinessName(g.getGoodsId());
+                    Major major = iMajorService.getById(g.getMajorId());
+                    List<Goods> list4 = iGoodsService.getRelevanceGoodsNoTenant(businessName,major.getCategoryName(),g.getGoodsId());
+                    if (CollectionUtils.isNotEmpty(list4)){
+                        List<ClassGradeGoods> classGradeList = iClassGradeGoodsService
+                                .getClassNoTenant(list4.stream().map(Goods::getGoodsId).collect(Collectors.toList()));
+                        if (CollectionUtils.isNotEmpty(classGradeList)){
+                            ClassGrade classGrade4 = baseMapper.getSevenGradeNoTenant(classGradeList.stream().map(ClassGradeGoods::getGradeId).collect(Collectors.toList()));
+                            if (ObjectUtils.isNotNull(classGrade4)){
+                                //判断班级人数
+                                Integer locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGrade4.getSevenCode());
+                                if ((classGrade.getStudentUpper() - locakStudentNum) > 0) {
+                                    isNewClass = false;
+                                    classGrade.setSevenCode(classGrade4.getSevenCode());
+                                }
+                            }
+                        }
+                    }
                 }else {
                     classGrade.setSevenCode(getSevenCode(goodsId));
                 }
@@ -2588,7 +2610,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             }
             if (CollectionUtils.isNotEmpty(gradeName)){
                 ClassGrade grade = gradeName.stream().filter(x -> ObjectUtils.isNotNull(x.getClassStatus()) && x.getClassStatus() == 1).findFirst().orElse(null);
-                if (ObjectUtils.isNotEmpty(grade)){
+                if (ObjectUtils.isNotEmpty(grade) && !isNewClass){
                     //存在已开班的班级
                     classGrade.setClassStatus(grade.getClassStatus());
                     classGrade.setOfficialName(grade.getOfficialName());
@@ -2757,7 +2779,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return ServletUtils.getEncoded("SEV");
     }
 
-    private String getSevenCodeNoTenant(Long goodsId) {
+    private String getSevenCodeNoTenant(Long goodsId,ClassGrade classGradeVo,Boolean isNewClass) {
         Goods g = iGoodsService.getById(goodsId);
         String businessName = iGoodsService.getGoodsBusinessName(g.getGoodsId());
         Major major = iMajorService.getById(g.getMajorId());
@@ -2768,10 +2790,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             if (CollectionUtils.isNotEmpty(classGradeList)){
                 ClassGrade classGrade = baseMapper.getSevenGradeNoTenant(classGradeList.stream().map(ClassGradeGoods::getGradeId).collect(Collectors.toList()));
                 if (ObjectUtils.isNotNull(classGrade)){
-                    return classGrade.getSevenCode();
+                    //判断班级人数
+                    Integer locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGrade.getSevenCode());
+                    if ((classGradeVo.getStudentUpper() - locakStudentNum) > 0) {
+                        return classGrade.getSevenCode();
+                    }
                 }
             }
         }
+        isNewClass = true;
         return ServletUtils.getEncoded("SEV");
     }