⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rolemanageaction.java

📁 利用STRUTS2+SPRING+HIBERNATE/IBATIS建立的基本开发框架
💻 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 + -