|
@@ -153,6 +153,52 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 系统批量选新班
|
|
|
+ * @param bo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean sysChangeGrade(ClassGradeUserSysChangeBo bo) {
|
|
|
+ for(ClassGradeUserChangeBo item : bo.getUserList()){
|
|
|
+ ClassGradeQueryBo classGradeQueryBo = new ClassGradeQueryBo();
|
|
|
+ classGradeQueryBo.setUserId(item.getUserId());
|
|
|
+ classGradeQueryBo.setGoodsId(item.getGoodsId());
|
|
|
+ classGradeQueryBo.setPastDue(1L);
|
|
|
+ List<ClassGradeVo> list = iClassGradeService.queryList(classGradeQueryBo);
|
|
|
+ if(list!=null&&list.size()>0){
|
|
|
+ throw new CustomException("包含购买商品班级尚未过期");
|
|
|
+ }
|
|
|
+ OrderGoodsVo orderGoodsVo = iOrderGoodsService.queryById(item.getOrderGoodsId());
|
|
|
+ if(Validator.isEmpty(orderGoodsVo)||Validator.isEmpty(orderGoodsVo.getStudyCount())||orderGoodsVo.getStudyCount()<1){
|
|
|
+ throw new CustomException("学习次数不够");
|
|
|
+ }
|
|
|
+ GoodsVo goodsVo = iGoodsService.selectDetail(item.getGoodsId());
|
|
|
+ //分新班
|
|
|
+ Long newGradeId = iOrderService.sysChangeGrade(goodsVo.getGoodsName(),item.getGoodsId(),item.getOrderGoodsId(),item.getGradeId(),item.getUserId());
|
|
|
+ if(newGradeId>0){
|
|
|
+ //老班修改换班状态
|
|
|
+ ClassGradeUser classGradeUser = getOne(new LambdaQueryWrapper< ClassGradeUser>().eq(ClassGradeUser::getUserId,item.getUserId())
|
|
|
+ .eq(ClassGradeUser::getStatus,1)
|
|
|
+ .eq(ClassGradeUser::getGradeId,item.getOldGradeId())
|
|
|
+ .last("limit 1"));
|
|
|
+ classGradeUser.setChangeGrade(1);
|
|
|
+ classGradeUser.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ updateById(classGradeUser);
|
|
|
+ //消耗学习次数
|
|
|
+ OrderGoods orderGoods = new OrderGoods();
|
|
|
+ orderGoods.setOrderGoodsId(item.getOrderGoodsId());
|
|
|
+ orderGoods.setStudyCount(orderGoodsVo.getStudyCount()-1);
|
|
|
+ orderGoods.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ orderGoods.setGradeId(newGradeId);
|
|
|
+ iOrderGoodsService.updateById(orderGoods);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Boolean updateByEditBo(ClassGradeUserEditBo bo) {
|
|
|
for (Long aLong : bo.getId()) {
|