需求分析:删除部门的时候 如果部门里有人,不允许删除
一、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");
}
测试一下吧
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/93ef23c4d00da8d5bf0345fbb4dabc1f.png)