SSM-Project-Day05:用户管理-部门删除 :部门里有部员不允许删除部门

需求分析:删除部门的时候 如果部门里有人,不允许删除

一、Dao :SysUserDao

//    删除部门的时候 如果部门里有人,不允许删除
    int getUserCountByDeptId (Integer DeptId);

二、Mapper :SysUserMapper

<!--根据部门id查看用户人数-->
    <select id="getUserCountByDeptId"
            resultType="int">
         select count(*)
         from sys_users
         where deptId=#{deptId}
    </select>

三、Service

   //    查询此部门有没有对应的子元素,有没有员工,有则不允许删除
    //    删除功能
    int deleteObject(Integer id);        //按id传
//    绑定Dao
    @Autowired
    private SysDeptDao sysDeptDao;
    @Autowired
    private SysUserDao sysUserDao;

//    信息呈现功能 业务逻辑
    @Override
    public List<Map<String, Object>> findObjects() {
        return sysDeptDao.findObjects();
    }

//    删除 有子不删 没子删掉
    @Override
    public int deleteObject(Integer id) {
//       1.合法性验证
        if(id==null||id<=0){
            throw new ServiceException("数据不合法:"+id);
        }
//      2.判定有没有子 ,没有子--删
        int childCount=sysDeptDao.getChildCount(id);
        if(childCount>0){
            throw new ServiceException("此元素有子元素,不可被删除");
        }
        //2.2判定此部门是否有用户
        int userCount=sysUserDao.getUserCountByDeptId(id);
        if(userCount>0) {
            throw new ServiceException("此部门有员工,不允许对部门进行删除");
        }
        int rows = sysDeptDao.deleteObject(id);
        if(rows==0){
            throw new ServiceException("此信息可能已经不存在");
        }
        return rows;
    }

四、Controller

    @RequestMapping("doDeleteObject")
    @ResponseBody
    public JsonResult doDeleteObject(Integer id){
        sysDeptService.deleteObject(id);
        return new JsonResult("Delete Ok");
    }

测试一下吧

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值