|
|
@@ -1200,20 +1200,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (gradeGoods == null) {
|
|
|
throw new CustomException("该班级不支持该商品使用");
|
|
|
}
|
|
|
- LambdaQueryWrapper<ClassGradeUser> lqw = new LambdaQueryWrapper<>();
|
|
|
- lqw.eq(ClassGradeUser::getGradeId, gradeId);
|
|
|
- lqw.eq(ClassGradeUser::getStatus, 1);
|
|
|
- int studentNum = iClassGradeUserService.count(lqw);
|
|
|
- //临时锁定的班级学员数量
|
|
|
- LambdaQueryWrapper<ClassGradeUserTemp> lqwLock = new LambdaQueryWrapper<>();
|
|
|
- lqwLock.eq(ClassGradeUserTemp::getGradeId, gradeId);
|
|
|
- lqwLock.eq(ClassGradeUserTemp::getStatus, 1);
|
|
|
- int locakStudentNum = iClassGradeUserTempService.count(lqwLock);
|
|
|
- //预留0空位避免超人数
|
|
|
- if ((classGradeVo.getStudentUpper() - studentNum - locakStudentNum) > 0) {
|
|
|
- //班级还有剩位,直接加入班级
|
|
|
- joinGrade(orderGoodsId, gradeId, userId);
|
|
|
- return gradeId;
|
|
|
+ //判断用户是否在此班过
|
|
|
+ ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getUserId,userId).eq(ClassGradeUser::getGradeId,gradeId).last("limit 1"));
|
|
|
+ if(Validator.isEmpty(gradeUser)){
|
|
|
+ LambdaQueryWrapper<ClassGradeUser> lqw = new LambdaQueryWrapper<>();
|
|
|
+ lqw.eq(ClassGradeUser::getGradeId, gradeId);
|
|
|
+ lqw.eq(ClassGradeUser::getStatus, 1);
|
|
|
+ int studentNum = iClassGradeUserService.count(lqw);
|
|
|
+ //临时锁定的班级学员数量
|
|
|
+ LambdaQueryWrapper<ClassGradeUserTemp> lqwLock = new LambdaQueryWrapper<>();
|
|
|
+ lqwLock.eq(ClassGradeUserTemp::getGradeId, gradeId);
|
|
|
+ lqwLock.eq(ClassGradeUserTemp::getStatus, 1);
|
|
|
+ int locakStudentNum = iClassGradeUserTempService.count(lqwLock);
|
|
|
+ //预留0空位避免超人数
|
|
|
+ if ((classGradeVo.getStudentUpper() - studentNum - locakStudentNum) > 0) {
|
|
|
+ //班级还有剩位,直接加入班级
|
|
|
+ joinGrade(orderGoodsId, gradeId, userId);
|
|
|
+ return gradeId;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//无指定班级或者指定班级已满
|
|
|
@@ -1233,18 +1237,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if ((classGradeVo.getStudentUpper() - classGradeVo.getStudentNum() - locakStudentNum) > 0) {
|
|
|
//有空位则进入班级
|
|
|
gradeId = classGradeVo.getGradeId();
|
|
|
- //班级还有剩位,直接加入班级
|
|
|
- joinGrade(orderGoodsId, gradeId, userId);
|
|
|
- return gradeId;
|
|
|
+ //判断用户是否在此班过
|
|
|
+ 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;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
CourseBusinessVo businessVo = iCourseBusinessService.queryById(businessId);
|
|
|
boolean isConfigTp = false; //商品是否有配置选班模板
|
|
|
if (Validator.isNotEmpty(businessVo) && Validator.isNotEmpty(businessVo.getTemplateStatus()) && businessVo.getTemplateStatus() == 1) {
|
|
|
isConfigTp = true;
|
|
|
}
|
|
|
- //创建新班级
|
|
|
+ //都不符合则创建新班级
|
|
|
ClassGrade classGrade = new ClassGrade();
|
|
|
if (isConfigTp) {
|
|
|
classGrade.setLearningStatus(2);//待定
|