package com.doumee.biz.system.impl;
|
|
import com.doumee.biz.system.SystemRoleBiz;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.dao.system.dto.CreateRoleMenuDTO;
|
import com.doumee.dao.system.dto.CreateRolePermissionDTO;
|
import com.doumee.dao.system.model.SystemRole;
|
import com.doumee.dao.system.model.SystemRoleMenu;
|
import com.doumee.dao.system.model.SystemRolePermission;
|
import com.doumee.service.system.SystemRoleMenuService;
|
import com.doumee.service.system.SystemRolePermissionService;
|
import com.doumee.service.system.SystemRoleService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.List;
|
|
@Service
|
public class SystemRoleBizImpl implements SystemRoleBiz {
|
|
@Autowired
|
private SystemRoleService systemRoleService;
|
|
@Autowired
|
private SystemRolePermissionService systemRolePermissionService;
|
|
@Autowired
|
private SystemRoleMenuService systemRoleMenuService;
|
|
@Override
|
public Integer create(SystemRole systemRole) {
|
// 验证用户名
|
SystemRole queryDto = new SystemRole();
|
queryDto.setCode(systemRole.getCode());
|
queryDto.setDeleted(Boolean.FALSE);
|
SystemRole role = systemRoleService.findOne(queryDto);
|
if (role != null) {
|
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "角色编码已存在");
|
}
|
return systemRoleService.create(systemRole);
|
}
|
|
@Override
|
public void updateById(SystemRole systemRole) {
|
// 验证角色编码
|
SystemRole queryDto = new SystemRole();
|
queryDto.setCode(systemRole.getCode());
|
queryDto.setDeleted(Boolean.FALSE);
|
SystemRole role = systemRoleService.findOne(queryDto);
|
if (role != null && !role.getId().equals(systemRole.getId())) {
|
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "角色编号已存在");
|
}
|
systemRoleService.updateById(systemRole);
|
}
|
|
@Override
|
public void deleteById(Integer id) {
|
SystemRole role = systemRoleService.findById(id);
|
if (role == null) {
|
return;
|
}
|
if (role.getFixed()) {
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "请勿删除" + role.getName() + ",因为这是固定角色");
|
}
|
systemRoleService.deleteById(id);
|
}
|
|
@Override
|
@Transactional
|
public void deleteByIdInBatch(List<Integer> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return;
|
}
|
for (Integer id : ids) {
|
this.deleteById(id);
|
}
|
}
|
|
@Override
|
@Transactional
|
public void createRolePermission(CreateRolePermissionDTO dto) {
|
// 删除关联权限
|
SystemRolePermission deleteDto = new SystemRolePermission();
|
deleteDto.setRoleId(dto.getRoleId());
|
systemRolePermissionService.delete(deleteDto);
|
// 新增新的权限
|
for (Integer permissionId : dto.getPermissionIds()) {
|
SystemRolePermission newRolePermission = new SystemRolePermission();
|
newRolePermission.setRoleId(dto.getRoleId());
|
newRolePermission.setPermissionId(permissionId);
|
newRolePermission.setCreateUser(dto.getCreateUser());
|
systemRolePermissionService.create(newRolePermission);
|
}
|
}
|
|
@Override
|
@Transactional
|
public void createRoleMenu(CreateRoleMenuDTO dto) {
|
// 删除关联权限
|
SystemRoleMenu deleteDto = new SystemRoleMenu();
|
deleteDto.setRoleId(dto.getRoleId());
|
systemRoleMenuService.delete(deleteDto);
|
// 新增新的权限
|
for (Integer menuId : dto.getMenuIds()) {
|
SystemRoleMenu newRoleMenu = new SystemRoleMenu();
|
newRoleMenu.setRoleId(dto.getRoleId());
|
newRoleMenu.setMenuId(menuId);
|
newRoleMenu.setCreateUser(dto.getCreateUser());
|
systemRoleMenuService.create(newRoleMenu);
|
}
|
}
|
}
|