📄 rolemanageaction.java
字号:
/**
*
*/
package com.sunwah.baseapp.system.action;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.validation.SkipValidation;
import com.sunwah.baseapp.action.QueryManageAction;
import com.sunwah.baseapp.common.ActionConstants;
import com.sunwah.baseapp.common.Constants;
import com.sunwah.baseapp.common.DictionaryConstants;
import com.sunwah.baseapp.common.SqlConstants;
import com.sunwah.baseapp.service.CommonStatusCodes;
import com.sunwah.baseapp.system.criteria.FunctionQueryCriteria;
import com.sunwah.baseapp.system.criteria.RoleQueryCriteria;
import com.sunwah.baseapp.system.model.Functions;
import com.sunwah.baseapp.system.model.Roles;
import com.sunwah.baseapp.system.service.RoleManager;
import com.sunwah.baseapp.system.vo.UserVO;
/**
* 角色管理ACTION类
*
* @author MARK
*
*/
public class RoleManageAction extends QueryManageAction implements
ServletRequestAware {
/**
*
*/
private static final long serialVersionUID = -414940580109714040L;
private RoleManager roleManager;
private Roles role;
private Long roleId;
private List<Long> functionIds;
private HttpServletRequest servletRequest;
private List roleFunctionList;
private RoleQueryCriteria queryCriteria;
@SkipValidation
public String findRoles() {
super.query(SqlConstants.GET_ROLES, SqlConstants.GET_ROLE_COUNT,
queryCriteria);
// 页面资源权限校验
super.check(ActionConstants.ROLE_MANAGE_FIND_ROLES,
ActionConstants.ROLE_MANAGE_VIEW_ROLE,
ActionConstants.ROLE_MANAGE_ADD_ROLE,
ActionConstants.ROLE_MANAGE_EDIT_ROLE,
ActionConstants.ROLE_MANAGE_DELETE_ROLE);
return SUCCESS;
}
@SkipValidation
public String findRole() {
role = this.roleManager.findRole(roleId);
if (role != null) {
queryCriteria = new RoleQueryCriteria();
queryCriteria.setRoleId(role.getRoleId());
roleFunctionList = super.getQueryManager().queryForList(
SqlConstants.GET_ROLE_FUNCTIONS, queryCriteria);
return SUCCESS;
} else
return ERROR;
}
@SkipValidation
public String toCreateRole() {
role = new Roles();
role.setState(DictionaryConstants.STATE_ENABLED);
return SUCCESS;
}
public String createRole() {
collectFunctions();
UserVO user = (UserVO) getSession().get(Constants.SESSION_USER);
role.setCreateDate(new Date());
role.setCreateUserId(user.getUserId());
role.setModifyUserId(user.getUserId());
role.setModifyDate(new Date());
int statusCode = this.roleManager.createRole(role, functionIds);
if (statusCode == CommonStatusCodes.NAME_EXIST) {
super.addActionError(getText("role.roleName.existed"));
return INPUT;
}
return SUCCESS;
}
@SkipValidation
public String toUpdateRole() {
role = this.roleManager.findRole(roleId);
if (role == null) {
this.addActionError(getText("data.not.exist"));
return ERROR;
}
setRoleFunctions(roleId);
return SUCCESS;
}
private void setRoleFunctions(Long roleId) {
functionIds = new ArrayList<Long>();
FunctionQueryCriteria queryCriteria = new FunctionQueryCriteria();
queryCriteria.setRoleId(roleId);
List functionList = super.getQueryManager().queryForList(
SqlConstants.GET_ROLE_FUNCTIONS, queryCriteria);
Functions function = null;
for (Object obj : functionList) {
function = (Functions) obj;
functionIds.add(function.getFunctionId());
}
}
public String updateRole() {
collectFunctions();
UserVO user = (UserVO) getSession().get(Constants.SESSION_USER);
role.setModifyUserId(user.getUserId());
role.setModifyDate(new Date());
int statusCode = this.roleManager.updateRole(role, functionIds);
if (statusCode == CommonStatusCodes.NAME_EXIST) {
super.addActionError(getText("role.roleName.existed"));
return INPUT;
}
return SUCCESS;
}
private void collectFunctions() {
Object object = servletRequest.getParameterValues("funcIds");
if (object != null) {
functionIds = new ArrayList<Long>();
String[] funcIdArray = Pattern.compile("\\,").split(
((String[]) object)[0]);
for (String string : funcIdArray) {
if (string != null && !string.equals(""))
functionIds.add(Long.valueOf(string));
}
}
}
@SkipValidation
public String deleteRole() {
this.roleManager.deleteRole(roleId);
return SUCCESS;
}
public void setServletRequest(HttpServletRequest servletRequest) {
this.servletRequest = servletRequest;
}
@Override
public void validate() {
if ((super.getFieldErrors().size() > 0)
|| (super.getActionErrors().size() > 0)) {
if (role.getRoleId() != null)
setRoleFunctions(role.getRoleId());
}
super.validate();
}
public Roles getRole() {
return role;
}
public void setRole(Roles role) {
this.role = role;
}
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public List<Long> getFunctionIds() {
return functionIds;
}
public void setFunctionIds(List<Long> functionIds) {
this.functionIds = functionIds;
}
public RoleQueryCriteria getQueryCriteria() {
return queryCriteria;
}
public void setQueryCriteria(RoleQueryCriteria queryCriteria) {
this.queryCriteria = queryCriteria;
}
public void setRoleManager(RoleManager roleManager) {
this.roleManager = roleManager;
}
public List getRoleFunctionList() {
return roleFunctionList;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -