黑马程序员Java企业级实战开发《学成在线》微服务项目,基于SpringClou

课程计划排序代码如下:
@Override
public void orderByUpOrDown(String moveType, Long teachplanId) {
Teachplan teachplan = teachplanMapper.selectById(teachplanId);
Integer grade = teachplan.getGrade();
if (moveType.equals("moveup") || moveType.equals("movedown") && (grade == 1 || grade == 2)) {
changePostition(teachplan, moveType);
}
}
private void changePostition(Teachplan teachplan, String moveType) {
// 定位上一个标题或下一个标题
LambdaQueryWrapper<Teachplan> wrapper = new LambdaQueryWrapper<>();
int offset = moveType.equals("moveup") ? -1 : 1;
wrapper.eq(Teachplan::getOrderby, teachplan.getOrderby() + offset)
.eq(Teachplan::getCourseId, teachplan.getCourseId())
.eq(Teachplan::getGrade, teachplan.getGrade());
Teachplan beforeTeachPlan = teachplanMapper.selectOne(wrapper);
if (beforeTeachPlan == null) {
throw new XueChengPlusException("不能移动了");
}
beforeTeachPlan.setOrderby(teachplan.getOrderby());
teachplanMapper.updateById(beforeTeachPlan);
// 定位当前标题
Teachplan currentTachPlan = teachplanMapper.selectById(teachplan.getId());
currentTachPlan.setOrderby(teachplan.getOrderby() + offset);
teachplanMapper.updateById(currentTachPlan);
}