📄 powerservice.java
字号:
package com.xaccp.biz.service;
import java.util.*;
import com.xaccp.biz.dao.*;
import com.xaccp.biz.po.*;
import com.xaccp.biz.service.power.PowerStrategy;
import com.xaccp.biz.service.power.PowerStrategyFactory;
public class PowerService {
private PowerDAO powerDAO;
private RoleDAO roleDAO;
private UserDAO userDAO;
private RolePowerDAO rolePowerDAO;
private UserPowerDAO userPowerDAO;
public RolePowerDAO getRolePowerDAO() {
return rolePowerDAO;
}
public void setRolePowerDAO(RolePowerDAO rolePowerDAO) {
this.rolePowerDAO = rolePowerDAO;
}
public UserPowerDAO getUserPowerDAO() {
return userPowerDAO;
}
public void setUserPowerDAO(UserPowerDAO userPowerDAO) {
this.userPowerDAO = userPowerDAO;
}
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public PowerDAO getPowerDAO() {
return powerDAO;
}
public void setPowerDAO(PowerDAO powerDAO) {
this.powerDAO = powerDAO;
}
public RoleDAO getRoleDAO() {
return roleDAO;
}
public void setRoleDAO(RoleDAO roleDAO) {
this.roleDAO = roleDAO;
}
public List findAllRoles() {
return roleDAO.findAll();
}
/**
* 获取指定用户所拥有的权限
* @param user
* @return
*/
public Map getUserPower(User user) {
List powers = powerDAO.findAll();
PowerStrategy strategy = PowerStrategyFactory.create(user.getStrategy());
return strategy.buildPower(powers, user);
}
public List findAllPowers() {
return powerDAO.findAll();
}
public Role findRoleById(int id) {
return roleDAO.findById(id);
}
public Power findPowerById(int id) {
return powerDAO.findById(id);
}
public void saveRole(Role role) {
roleDAO.save(role);
}
public void deleteRole(int roleId) {
deleteRole(roleId, false);
}
/**
* 删除角色
* @param roleId
* @param delSon
*/
public void deleteRole(int roleId, boolean delSon) {
if (!delSon) {
Role role = roleDAO.findById(roleId);
role.getTblRoles().clear();
roleDAO.delete(role);
} else {
Role role = roleDAO.findById(roleId);
//得到所有的子角色
Set roles = role.getTblRoles();
for (Object obj : roles) {
Role son = (Role) obj;
//先递归删除子角色
deleteRole(son.getId(), true);
}
//最后删除自己
roleDAO.delete(role);
}
}
/**
* 根据功能节点编号查找所有的权限
* @param funId
* @return
*/
public List findPowersByFunId(int funId) {
return powerDAO.findByFunId(funId);
}
/**
* 删除权限,已经对此权限的引用关系
* @param powerId
*/
public void deletePower(int powerId) {
Power power = powerDAO.findById(powerId);
//解除"权限~角色"关系
for (Object obj : power.getTblRolePowers()) {
((RolePower) obj).setTblPower(null);
}
power.getTblRolePowers().clear();
//解除"权限~用户"关系
for (Object obj : power.getTblUserPowers()) {
((UserPower)obj).setTblPower(null);
}
power.getTblUserPowers().clear();
powerDAO.delete(power);
}
public void savePower(Power power) {
powerDAO.save(power);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -