package com.norteksoft.acs.web.sale; import java.io.File; import java.net.URLEncoder; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.springframework.beans.factory.annotation.Required; import com.norteksoft.acs.base.web.struts2.CRUDActionSupport; import com.norteksoft.acs.entity.authorization.BusinessSystem; import com.norteksoft.acs.entity.authorization.Function; import com.norteksoft.acs.entity.authorization.FunctionGroup; import com.norteksoft.acs.service.ServiceException; import com.norteksoft.acs.service.authorization.BusinessSystemManager; import com.norteksoft.acs.service.authorization.FunctionGroupManager; import com.norteksoft.acs.service.authorization.FunctionManager; import com.norteksoft.mms.base.data.DataHandle; import com.norteksoft.product.orm.Page; /** * 功能组管理Action */ @ParentPackage("default") @Results( { @Result(name = CRUDActionSupport.RELOAD, location = "/sale/function-group!getFuncGroupsBySystem.action?systemId=${systemId}", type = "redirect") }) public class FunctionGroupAction extends CRUDActionSupport<FunctionGroup> { private static final long serialVersionUID = 4814560124772644966L; private FunctionGroupManager functionGroupManager; private BusinessSystemManager businessSystemManager; private FunctionManager functionManager; private Page<FunctionGroup> page = new Page<FunctionGroup>(20, true); private Page<Function> pageFunction = new Page<Function>(30, true); private FunctionGroup functionGroup; private Long id; private List<FunctionGroup> allFunctionGroup; private String functionGroupName; private String functionGroupId; private Long paternId; private List<Long> functionIds; private String funcGroupIds; private Long systemId; private Integer addOrRemove; private DataHandle dataHandle; private File file; private String fileName; public String getFunctionGroupName() { return functionGroupName; } public void setFunctionGroupName(String functionGroupName) { this.functionGroupName = functionGroupName; } public String getFunctionGroupId() { return functionGroupId; } public void setFunctionGroupId(String functionGroupId) { this.functionGroupId = functionGroupId; } @Override public String delete() throws Exception { try { FunctionGroup fg = functionGroupManager.getFunctionGroup(id); setSystemId(fg.getBusinessSystem().getId()); functionGroupManager.deleteFunGroup(id); addActionMessage("删除功能组成功"); } catch (ServiceException e) { logger.error(e.getMessage(), e); addActionMessage(e.getMessage()); } return RELOAD; } @Override public String list() throws Exception { page = functionGroupManager.getSearchFunctionGroup(page, functionGroup, false); return SUCCESS; } @Override public String input() throws Exception { return INPUT; } @Override protected void prepareModel() throws Exception { if (id != null) { functionGroup = functionGroupManager.getFunctionGroup(id); } else { functionGroup = new FunctionGroup(); if (systemId != null) { BusinessSystem businessSystem = businessSystemManager .getBusiness(systemId); functionGroup.setBusinessSystem(businessSystem); } } } @Override public String save() throws Exception { functionGroupManager.saveFunGroup(functionGroup); addActionMessage("保存用户成功"); return RELOAD; } /** * 功能组添加功能跳转页 */ public String inputFunction() throws Exception { addOrRemove = 0; pageFunction = functionManager.getFunctionsBySystem(pageFunction, systemId); return "function-list"; } public String removeFunction() throws Exception { addOrRemove = 1; pageFunction = functionManager.getFunctionsCanRemoveFromFunctionGroup(pageFunction, paternId); return "function-list"; } /** * 保存功能组和功能的关系 */ public String saveFunction() throws Exception { functionGroup = functionGroupManager.getFunctionGroup(paternId); systemId = functionGroup.getBusinessSystem().getId(); functionGroupManager.saveFunction(paternId, functionIds, addOrRemove); return RELOAD; } /** * 导出系统 * @return * @throws Exception */ public String exportFuncGroup() throws Exception{ HttpServletResponse response = ServletActionContext.getResponse(); response.reset(); response.setContentType("application/x-download"); response.addHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode("acs-func-group.xls","UTF-8")); dataHandle.exportFunGroup(response.getOutputStream(),systemId, funcGroupIds); return null; } public String showImportFuncGroup() throws Exception{ return "show-import"; } /** * 导入系统 * @return * @throws Exception */ public String importFuncGroup() throws Exception{ if(fileName==null || !fileName.endsWith(".xls")){ this.addActionMessage("请选择excel文件格式"); return "show-import"; } boolean success = true; try { dataHandle.importFunGroup(file,systemId); } catch (Exception e) { success = false; } if(success){ this.addActionMessage("导入成功"); }else{ this.addActionMessage("导入失败,请检查excel文件格式"); } return "show-import"; } public FunctionGroup getModel() { return functionGroup; } public Page<FunctionGroup> getPage() { return page; } public void setPage(Page<FunctionGroup> page) { this.page = page; } @Required public void setFunctionGroupManager( FunctionGroupManager functionGroupManager) { this.functionGroupManager = functionGroupManager; } public List<FunctionGroup> getAllFunGroup() { return allFunctionGroup; } public void setId(Long id) { this.id = id; } /** * 按条件查�? */ public void prepareSearch() throws Exception { prepareModel(); } public String search() throws Exception { page = functionGroupManager.getSearchFunctionGroup(page, functionGroup, false); return SUCCESS; } public Page<Function> getPageFunction() { return pageFunction; } public void setPageFunction(Page<Function> pageFunction) { this.pageFunction = pageFunction; } public FunctionManager getFunctionManager() { return functionManager; } @Required public void setBusinessSystemManager( BusinessSystemManager businessSystemManager) { this.businessSystemManager = businessSystemManager; } @Required public void setFunctionManager(FunctionManager functionManager) { this.functionManager = functionManager; } public Long getPaternId() { return paternId; } public void setPaternId(Long paternId) { this.paternId = paternId; } public List<Long> getFunctionIds() { return functionIds; } public void setFunctionIds(List<Long> functionIds) { this.functionIds = functionIds; } public Long getSystemId() { return systemId; } public void setSystemId(Long systemId) { this.systemId = systemId; } public void setFuncGroupIds(String funcGroupIds) { this.funcGroupIds = funcGroupIds; } public Integer getAddOrRemove() { return addOrRemove; } public void setAddOrRemove(Integer addOrRemove) { this.addOrRemove = addOrRemove; } public String getFuncGroupsBySystem() { if (systemId != null) { page = functionGroupManager.getFuncGroupsBySystem(page, systemId); } return SUCCESS; } @Required public void setDataHandle(DataHandle dataHandle) { this.dataHandle = dataHandle; } public void setFile(File file) { this.file = file; } public void setFileFileName(String fileName) { this.fileName = fileName; } }