|
@@ -457,10 +457,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
lqw.eq(ClassGradeUser::getGradeId,gradeId);
|
|
lqw.eq(ClassGradeUser::getGradeId,gradeId);
|
|
lqw.eq(ClassGradeUser::getStatus,1);
|
|
lqw.eq(ClassGradeUser::getStatus,1);
|
|
int studentNum = iClassGradeUserService.count(lqw);
|
|
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空位避免超人数
|
|
//预留0空位避免超人数
|
|
- if(classGradeVo.getStudentUpper()-studentNum>0){
|
|
|
|
- //班级还有剩位,直接加入班级
|
|
|
|
- return joinGrade(orderGoodsId,gradeId,userId);
|
|
|
|
|
|
+ if((classGradeVo.getStudentUpper()-studentNum-locakStudentNum)>0){
|
|
|
|
+ //班级还有剩位,直接锁定班级
|
|
|
|
+ return lockGrade(orderGoodsId,gradeId,userId,goodsId,orderSn);
|
|
}
|
|
}
|
|
}else {
|
|
}else {
|
|
//无指定班级
|
|
//无指定班级
|
|
@@ -469,12 +474,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
List<ClassGradeVo> classGradeVoList = iClassGradeService.queryList(bo);
|
|
List<ClassGradeVo> classGradeVoList = iClassGradeService.queryList(bo);
|
|
for(int i = 0; i < classGradeVoList.size(); i++){
|
|
for(int i = 0; i < classGradeVoList.size(); i++){
|
|
ClassGradeVo classGradeVo = classGradeVoList.get(i);
|
|
ClassGradeVo classGradeVo = classGradeVoList.get(i);
|
|
|
|
+ //临时锁定的班级学员数量
|
|
|
|
+ LambdaQueryWrapper<ClassGradeUserTemp> lqwLock = new LambdaQueryWrapper<>();
|
|
|
|
+ lqwLock.eq(ClassGradeUserTemp::getGradeId,gradeId);
|
|
|
|
+ lqwLock.eq(ClassGradeUserTemp::getStatus,1);
|
|
|
|
+ int locakStudentNum = iClassGradeUserTempService.count(lqwLock);
|
|
//预留0空位避免超人数
|
|
//预留0空位避免超人数
|
|
- if(classGradeVo.getStudentUpper()-classGradeVo.getStudentNum()>0){
|
|
|
|
|
|
+ if((classGradeVo.getStudentUpper()-classGradeVo.getStudentNum()-locakStudentNum)>0){
|
|
//有空位则进入班级
|
|
//有空位则进入班级
|
|
gradeId = classGradeVo.getGradeId();
|
|
gradeId = classGradeVo.getGradeId();
|
|
- //班级还有剩位,直接加入班级
|
|
|
|
- return joinGrade(orderGoodsId,gradeId,userId);
|
|
|
|
|
|
+ //班级还有剩位,直接锁定班级
|
|
|
|
+ return lockGrade(orderGoodsId,gradeId,userId,goodsId,orderSn);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -529,25 +539,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
iOrderGoodsService.updateById(orderGoods);
|
|
iOrderGoodsService.updateById(orderGoods);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
public boolean joinGrade(Long orderGoodsId,Long gradeId,Long userId){
|
|
public boolean joinGrade(Long orderGoodsId,Long gradeId,Long userId){
|
|
//进入班级
|
|
//进入班级
|
|
ClassGradeUser classGradeUser = new ClassGradeUser();
|
|
ClassGradeUser classGradeUser = new ClassGradeUser();
|
|
classGradeUser.setUserId(userId);
|
|
classGradeUser.setUserId(userId);
|
|
classGradeUser.setGradeId(gradeId);
|
|
classGradeUser.setGradeId(gradeId);
|
|
classGradeUser.setStatus(1);
|
|
classGradeUser.setStatus(1);
|
|
- // classGradeUser.setCreateBy(SecurityUtils.getUsername());
|
|
|
|
|
|
+ // classGradeUser.setCreateBy(SecurityUtils.getUsername());
|
|
classGradeUser.setCreateBy("sys"); //系统分班
|
|
classGradeUser.setCreateBy("sys"); //系统分班
|
|
classGradeUser.setFromType(1);
|
|
classGradeUser.setFromType(1);
|
|
classGradeUser.setOrderGoodsId(orderGoodsId);
|
|
classGradeUser.setOrderGoodsId(orderGoodsId);
|
|
classGradeUser.setCreateTime(DateUtils.getNowTime());
|
|
classGradeUser.setCreateTime(DateUtils.getNowTime());
|
|
classGradeUser.setUpdateTime(DateUtils.getNowTime());
|
|
classGradeUser.setUpdateTime(DateUtils.getNowTime());
|
|
iClassGradeUserService.save(classGradeUser);
|
|
iClassGradeUserService.save(classGradeUser);
|
|
- //更新订单绑定班级ID
|
|
|
|
- OrderGoods orderGoods = new OrderGoods();
|
|
|
|
- orderGoods.setOrderGoodsId(orderGoodsId);
|
|
|
|
- orderGoods.setGradeId(gradeId);
|
|
|
|
- orderGoods.setUpdateTime(DateUtils.getNowTime());
|
|
|
|
- iOrderGoodsService.updateById(orderGoods);
|
|
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|