?? 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 + -