he2802 3 лет назад
Родитель
Сommit
1a3269d7f9

+ 26 - 15
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -88,9 +88,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
     @Autowired
     private IOrderGoodsService iOrderGoodsService;
-
-    @Autowired
-    private IOrderBusinessService iOrderBusinessService;
     @Autowired
     private IGoodsService iGoodsService;
     @Autowired
@@ -102,8 +99,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Autowired
     private IClassGradeGoodsService iClassGradeGoodsService;
     @Autowired
-    private IGoodsCourseService iGoodsCourseService;
-    @Autowired
     private IOrderBillSheetService iOrderBillSheetService;
     @Autowired
     private ICourseMenuService iCourseMenuService;
@@ -143,8 +138,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Autowired
     private RedisCache redisCache;
 
-    @Autowired
-    private IUserMockSubscribeService iUserMockSubscribeService;
 
     @Autowired
     private ICourseEducationTypeService courseEducationTypeService;
@@ -1483,6 +1476,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             lqwLock.eq(ClassGradeUserTemp::getGradeId, gradeId);
             lqwLock.eq(ClassGradeUserTemp::getStatus, 1);
             int locakStudentNum = iClassGradeUserTempService.count(lqwLock);
+
             //预留0空位避免超人数
             if ((classGradeVo.getStudentUpper() - studentNum - locakStudentNum) > 0) {
                 ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getGradeId, gradeId)
@@ -1490,7 +1484,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 //不在此班级内
                 if(Validator.isEmpty(gradeUser)){
                     //班级还有剩位,直接锁定班级
-                    return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                    if(iClassGradeService.checkEjjjPeopleNumLimit(businessId,gradeId)){ //判断全系统平台二建班级人数是否超300
+                        return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                    }
+
                 }
             }
         }
@@ -1516,7 +1513,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                         .eq(ClassGradeUser::getUserId, userId));
                 //不在此班级内
                 if(Validator.isEmpty(gradeUser)){
-                    return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                    if(iClassGradeService.checkEjjjPeopleNumLimit(businessId,gradeId)){ //判断全系统平台二建班级人数是否超300
+                        return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                    }
                 }
             }
         }
@@ -1621,8 +1620,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 //预留0空位避免超人数
                 if ((classGradeVo.getStudentUpper() - studentNum - locakStudentNum) > 0) {
                     //班级还有剩位,直接加入班级
-                    joinGrade(orderGoodsId, gradeId, userId);
-                    return gradeId;
+                    if(iClassGradeService.checkEjjjPeopleNumLimit(businessId,gradeId)) { //判断全系统平台二建班级人数是否超300
+                        joinGrade(orderGoodsId, gradeId, userId);
+                        return gradeId;
+                    }
+
                 }
             }
         }
@@ -1647,8 +1649,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getUserId,userId).eq(ClassGradeUser::getGradeId,gradeId).last("limit 1"));
                 if(Validator.isEmpty(gradeUser)){
                     //班级还有剩位,直接加入班级
-                    joinGrade(orderGoodsId, gradeId, userId);
-                    return gradeId;
+                    if(iClassGradeService.checkEjjjPeopleNumLimit(businessId,gradeId)) { //判断全系统平台二建班级人数是否超300
+                        joinGrade(orderGoodsId, gradeId, userId);
+                        return gradeId;
+                    }
+
                 }
             }
         }
@@ -1723,8 +1728,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             //预留0空位避免超人数
             if ((classGradeVo.getStudentUpper() - studentNum - locakStudentNum) > 0) {
                 //班级还有剩位,直接加入班级
-                joinGrade(orderGoodsId, gradeId, userId);
-                return gradeId;
+                Goods goods = iGoodsService.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getGoodsId, goodsId));
+                if(iClassGradeService.checkEjjjPeopleNumLimit(goods.getBusinessId(),gradeId)) { //判断全系统平台二建班级人数是否超300
+                    joinGrade(orderGoodsId, gradeId, userId);
+                    return gradeId;
+                }else {
+                    throw new CustomException("该二建班级学员已满,请重新选班");
+                }
+
             } else {
                 throw new CustomException("该班级学员已满,请重新选班");
             }

+ 21 - 7
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

@@ -860,16 +860,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="queryOfficialGradeCount" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeQueryBo" resultType="Integer">
         SELECT
-            count(*)
-        FROM
-            class_grade_user cgu
-                LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
-        WHERE
-            cg.official_name = #{officialName}
+            ((
+                 SELECT
+                     count(*)
+                 FROM
+                     class_grade_user_temp cgu
+                         LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
+                 WHERE
+                     cg.official_name = #{officialName}
+                   AND cgu.`status` = 1
+             ) + (
+                 SELECT
+                     count(*)
+                 FROM
+                     class_grade_user cgu
+                         LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
+                 WHERE
+                     cg.official_name = #{officialName}
+                   AND cgu.`status` = 1
+             ))
 
-          AND cgu.`status` = 1
     </select>
 
+
+
     <select id="queryGradeList" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeQueryBo" resultMap="ClassGradeVoResult">
         SELECT
             cg.*,cgg.goods_id