批量删除之后的剩余人数的逻辑问题

删除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();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值