提交 25e0b152 编写于 作者: 过期的豆豆糖's avatar 过期的豆豆糖 🎧

修复删除部门时,未检查部门下人员问题

上级 7271753b
/**
*
*
*
*
*
*/
package com.person.modules.sys.controller;
import com.person.common.utils.Constant;
import com.person.common.utils.R;
import com.person.modules.sys.entity.SysUserEntity;
import com.person.modules.sys.entity.SysDeptEntity;
import com.person.modules.sys.service.SysDeptService;
import com.person.modules.sys.service.SysUserService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
......@@ -26,120 +21,126 @@ import java.util.List;
/**
* 部门管理
*
* @author
* @author
*/
@RestController
@RequestMapping("/sys/dept")
public class SysDeptController extends AbstractController {
@Autowired
private SysDeptService sysDeptService;
/**
* 列表
*/
@RequestMapping("/list")
@Autowired
private SysDeptService sysDeptService;
@Autowired
private SysUserService sysUserService;
/**
* 列表
*/
@RequestMapping("/list")
// @RequiresPermissions("sys:dept:list")
public List<SysDeptEntity> list(){
List<SysDeptEntity> deptList = sysDeptService.queryList(new HashMap<String, Object>());
return deptList;
}
/**
* 选择部门(添加、修改菜单)
*/
@RequestMapping("/select")
@RequiresPermissions("sys:dept:select")
public R select(){
List<SysDeptEntity> deptList = sysDeptService.queryList(new HashMap<String, Object>());
//添加一级部门
if(getUserId() == Constant.SUPER_ADMIN){
SysDeptEntity root = new SysDeptEntity();
root.setDeptId(0L);
root.setName("一级部门");
root.setParentId(-1L);
root.setOpen(true);
deptList.add(root);
}
return R.ok().put("deptList", deptList);
}
/**
* 上级部门Id(管理员则为0)
*/
@RequestMapping("/info")
@RequiresPermissions("sys:dept:list")
public R info(){
long deptId = 0;
if(getUserId() != Constant.SUPER_ADMIN){
List<SysDeptEntity> deptList = sysDeptService.queryList(new HashMap<String, Object>());
Long parentId = null;
for(SysDeptEntity sysDeptEntity : deptList){
if(parentId == null){
parentId = sysDeptEntity.getParentId();
continue;
}
if(parentId > sysDeptEntity.getParentId().longValue()){
parentId = sysDeptEntity.getParentId();
}
}
deptId = parentId;
}
return R.ok().put("deptId", deptId);
}
/**
* 信息
*/
@RequestMapping("/info/{deptId}")
@RequiresPermissions("sys:dept:info")
public R info(@PathVariable("deptId") Long deptId){
SysDeptEntity dept = sysDeptService.getById(deptId);
return R.ok().put("dept", dept);
}
/**
* 保存
*/
@RequestMapping("/save")
@RequiresPermissions("sys:dept:save")
public R save(@RequestBody SysDeptEntity dept){
sysDeptService.save(dept);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@RequiresPermissions("sys:dept:update")
public R update(@RequestBody SysDeptEntity dept){
sysDeptService.updateById(dept);
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
@RequiresPermissions("sys:dept:delete")
public R delete(long deptId){
//判断是否有子部门
List<Long> deptList = sysDeptService.queryDetpIdList(deptId);
if(deptList.size() > 0){
return R.error("请先删除子部门");
}
sysDeptService.removeById(deptId);
return R.ok();
}
public List<SysDeptEntity> list() {
List<SysDeptEntity> deptList = sysDeptService.queryList(new HashMap<String, Object>());
return deptList;
}
/**
* 选择部门(添加、修改菜单)
*/
@RequestMapping("/select")
@RequiresPermissions("sys:dept:select")
public R select() {
List<SysDeptEntity> deptList = sysDeptService.queryList(new HashMap<String, Object>());
//添加一级部门
if (getUserId() == Constant.SUPER_ADMIN) {
SysDeptEntity root = new SysDeptEntity();
root.setDeptId(0L);
root.setName("一级部门");
root.setParentId(-1L);
root.setOpen(true);
deptList.add(root);
}
return R.ok().put("deptList", deptList);
}
/**
* 上级部门Id(管理员则为0)
*/
@RequestMapping("/info")
@RequiresPermissions("sys:dept:list")
public R info() {
long deptId = 0;
if (getUserId() != Constant.SUPER_ADMIN) {
List<SysDeptEntity> deptList = sysDeptService.queryList(new HashMap<String, Object>());
Long parentId = null;
for (SysDeptEntity sysDeptEntity : deptList) {
if (parentId == null) {
parentId = sysDeptEntity.getParentId();
continue;
}
if (parentId > sysDeptEntity.getParentId().longValue()) {
parentId = sysDeptEntity.getParentId();
}
}
deptId = parentId;
}
return R.ok().put("deptId", deptId);
}
/**
* 信息
*/
@RequestMapping("/info/{deptId}")
@RequiresPermissions("sys:dept:info")
public R info(@PathVariable("deptId") Long deptId) {
SysDeptEntity dept = sysDeptService.getById(deptId);
return R.ok().put("dept", dept);
}
/**
* 保存
*/
@RequestMapping("/save")
@RequiresPermissions("sys:dept:save")
public R save(@RequestBody SysDeptEntity dept) {
sysDeptService.save(dept);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@RequiresPermissions("sys:dept:update")
public R update(@RequestBody SysDeptEntity dept) {
sysDeptService.updateById(dept);
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
@RequiresPermissions("sys:dept:delete")
public R delete(long deptId) {
//判断是否有子部门
List<Long> deptList = sysDeptService.queryDetpIdList(deptId);
if (deptList.size() > 0) {
return R.error("请先删除子部门");
}
List<SysUserEntity> sysUsers = sysUserService.queryByDeptId(deptId);
int size = sysUsers.size();
if (size > 0) {
return R.error("请先删除部门下人员");
}
sysDeptService.removeById(deptId);
return R.ok();
}
}
......@@ -29,7 +29,13 @@ public interface SysUserService extends IService<SysUserEntity> {
* 查询用户的所有菜单ID
*/
List<Long> queryAllMenuId(Long userId);
/**
* 查询部门下的所有人
* @param deptId
* @return
*/
List<SysUserEntity> queryByDeptId(Long deptId);
/**
* 保存用户
*/
......
/**
*
*
*
*
*
*/
package com.person.modules.sys.service.impl;
......@@ -37,76 +33,84 @@ import java.util.Map;
/**
* 系统用户
*
* @author
* @author
*/
@Service("sysUserService")
public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> implements SysUserService {
@Autowired
private SysUserRoleService sysUserRoleService;
@Autowired
private SysDeptService sysDeptService;
@Override
public List<Long> queryAllMenuId(Long userId) {
return baseMapper.queryAllMenuId(userId);
}
@Override
@DataFilter(subDept = true, user = false)
public PageUtils queryPage(Map<String, Object> params) {
String name = (String)params.get("name");
IPage<SysUserEntity> page = this.page(
new Query<SysUserEntity>().getPage(params),
new QueryWrapper<SysUserEntity>()
.like(StringUtils.isNotBlank(name),"name", name)
.apply(params.get(Constant.SQL_FILTER) != null, (String)params.get(Constant.SQL_FILTER))
);
for(SysUserEntity sysUserEntity : page.getRecords()){
SysDeptEntity sysDeptEntity = sysDeptService.getById(sysUserEntity.getDeptId());
sysUserEntity.setDeptName(sysDeptEntity.getName());
}
return new PageUtils(page);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveUser(SysUserEntity user) {
user.setCreateTime(new Date());
//sha256加密
String salt = RandomStringUtils.randomAlphanumeric(20);
user.setSalt(salt);
user.setPassword(ShiroUtils.sha256(user.getPassword(), user.getSalt()));
this.save(user);
//保存用户与角色关系
sysUserRoleService.saveOrUpdate(user.getUserId(), user.getRoleIdList());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(SysUserEntity user) {
if(StringUtils.isBlank(user.getPassword())){
user.setPassword(null);
}else{
SysUserEntity userEntity = this.getById(user.getUserId());
user.setPassword(ShiroUtils.sha256(user.getPassword(), userEntity.getSalt()));
}
this.updateById(user);
//保存用户与角色关系
sysUserRoleService.saveOrUpdate(user.getUserId(), user.getRoleIdList());
}
@Override
public boolean updatePassword(Long userId, String password, String newPassword) {
@Autowired
private SysUserRoleService sysUserRoleService;
@Autowired
private SysDeptService sysDeptService;
@Override
public List<Long> queryAllMenuId(Long userId) {
return baseMapper.queryAllMenuId(userId);
}
@Override
public List<SysUserEntity> queryByDeptId(Long deptId) {
List<SysUserEntity> list = this.list(new QueryWrapper<SysUserEntity>().eq("dept_id", deptId));
return list;
}
@Override
@DataFilter(subDept = true, user = false)
public PageUtils queryPage(Map<String, Object> params) {
String name = (String) params.get("name");
IPage<SysUserEntity> page = this.page(
new Query<SysUserEntity>().getPage(params),
new QueryWrapper<SysUserEntity>()
.like(StringUtils.isNotBlank(name), "name", name)
.apply(params.get(Constant.SQL_FILTER) != null, (String) params.get(Constant.SQL_FILTER))
);
for (SysUserEntity sysUserEntity : page.getRecords()) {
SysDeptEntity sysDeptEntity = sysDeptService.getById(sysUserEntity.getDeptId());
if (null != sysDeptEntity) {
sysUserEntity.setDeptName(sysDeptEntity.getName());
}
}
return new PageUtils(page);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveUser(SysUserEntity user) {
user.setCreateTime(new Date());
//sha256加密
String salt = RandomStringUtils.randomAlphanumeric(20);
user.setSalt(salt);
user.setPassword(ShiroUtils.sha256(user.getPassword(), user.getSalt()));
this.save(user);
//保存用户与角色关系
sysUserRoleService.saveOrUpdate(user.getUserId(), user.getRoleIdList());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(SysUserEntity user) {
if (StringUtils.isBlank(user.getPassword())) {
user.setPassword(null);
} else {
SysUserEntity userEntity = this.getById(user.getUserId());
user.setPassword(ShiroUtils.sha256(user.getPassword(), userEntity.getSalt()));
}
this.updateById(user);
//保存用户与角色关系
sysUserRoleService.saveOrUpdate(user.getUserId(), user.getRoleIdList());
}
@Override
public boolean updatePassword(Long userId, String password, String newPassword) {
SysUserEntity userEntity = new SysUserEntity();
userEntity.setPassword(newPassword);
return this.update(userEntity,
new QueryWrapper<SysUserEntity>().eq("user_id", userId).eq("password", password));
new QueryWrapper<SysUserEntity>().eq("user_id", userId).eq("password", password));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册