删除n个人之后,剩余人数加n操作
他的接口
Result deleteByListIdRU(List<Integer> ids);
实现他的接口
@Override
public Result deleteByListIdRU(List<Integer> ids) {
for (Integer id : ids) {
//根据id查询宿舍id
RoomUser roomUser = mapper.selectById(id);
//宿舍id
Integer roomId = roomUser.getRoomId();
//根据宿舍id查询出宿舍对象
Room room = roomMapper.selectById(roomId);
int i = mapper.deleteById(id);
if(i==1){
//删除成功时候,宿舍剩余人数+1
Integer surplus = room.getSurplus()+1;
room.setSurplus(surplus);
int i1 = roomMapper.updateById(room);
if(i1!=1){
return Result.error("500","修改人数失败");
}
}else{
return Result.error();
}
}
return Result.success();
}
理解实现的过程
首先利用一个增强的for循环,根据宿舍学生表查询到宿舍的id,再根据宿舍的id查询宿舍表的基本信息。一个整数类型存贮删除学生宿舍表的信息。如果是删除成功了,重新定义宿舍表里面剩余人数的属性值。用整数类型去存储更新宿舍表的信息。如果是不为1就是修改人数失败。
控制层
@PostMapping("/del/batch")
public Result deleteBatch(@RequestBody List<Integer> ids) {
roomUserService.deleteByListIdRU(ids);
return Result.success();
}