package com.nanometer.smartlab.controller; import com.nanometer.smartlab.entity.BasePage; import com.nanometer.smartlab.entity.BaseRole; import com.nanometer.smartlab.service.BasePageService; import com.nanometer.smartlab.service.BaseRoleService; import com.nanometer.smartlab.util.Constants; import com.nanometer.smartlab.util.FacesUtils; import org.apache.log4j.Logger; import org.primefaces.context.RequestContext; import org.primefaces.model.LazyDataModel; import org.primefaces.model.SortOrder; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; /** * Created by johnny on 17/11/20. */ @Controller @Scope("session") public class RoleMngController extends BaseController { private static Logger logger = Logger.getLogger(RoleMngController.class); @Resource private BaseRoleService baseRoleService; @Resource private BasePageService basePageService; private LazyDataModel dataModel; private BaseRole baseRole; private List selectedList; private List basePageList; private int action; public void onNewBtnClick() { this.baseRole = new BaseRole(); this.action = Constants.ACTION_ADD; this.basePageList = this.basePageService.getBasePageList(); } public void onEditBtnClick() { if (this.selectedList == null || this.selectedList.size() == 0) { FacesUtils.warn("请选择数据。"); return; } if (this.selectedList.size() > 1) { FacesUtils.warn("只能选择一个数据进行修改。"); return; } this.baseRole = this.baseRoleService.getBaseRole(this.selectedList.get(0).getId()); this.action = Constants.ACTION_EDIT; this.basePageList = this.basePageService.getBasePageList(); RequestContext.getCurrentInstance().execute("PF('dialog').show()"); } public void btnPermissionClick() { if (this.selectedList == null || this.selectedList.size() == 0) { FacesUtils.warn("请选择数据。"); return; } if (this.selectedList.size() > 1) { FacesUtils.warn("只能选择一个数据进行修改。"); return; } this.baseRole = this.baseRoleService.getBaseRole(this.selectedList.get(0).getId()); RequestContext.getCurrentInstance().execute("PF('btnDialog').show()"); } public void userPermissionClick() { if (this.selectedList == null || this.selectedList.size() == 0) { FacesUtils.warn("请选择数据。"); return; } if (this.selectedList.size() > 1) { FacesUtils.warn("只能选择一个数据进行修改。"); return; } this.baseRole = this.baseRoleService.getBaseRole(this.selectedList.get(0).getId()); RequestContext.getCurrentInstance().execute("PF('userDialog').show()"); } public void onSaveBtnClick() { try { // 新建 if (this.action == Constants.ACTION_ADD) { if (this.baseRole == null) { FacesUtils.warn("新建对象为空。"); return; } if (this.baseRoleService.isBaseRoleExist(this.baseRole.getName(), null)) { FacesUtils.warn("角色名称已存在。"); return; } if (this.baseRole.getPageIdList() == null || this.baseRole.getPageIdList().size() == 0) { FacesUtils.warn("请选择角色权限。"); return; } baseRole.setUserPermission("自己"); baseRole.setBtnPermission("新增,修改,删除,导入"); this.baseRoleService.insertBaseRole(this.baseRole); FacesUtils.info("新建成功。"); RequestContext.getCurrentInstance().execute("PF('dialog').hide()"); // 修改 } else if (this.action == Constants.ACTION_EDIT) { if (this.baseRole == null) { FacesUtils.warn("修改对象为空。"); return; } if (this.baseRoleService.isBaseRoleExist(this.baseRole.getName(), this.baseRole.getId())) { FacesUtils.warn("角色名称已存在。"); return; } if (this.baseRole.getPageIdList() == null || this.baseRole.getPageIdList().size() == 0) { FacesUtils.warn("请选择角色权限。"); return; } this.baseRoleService.updateBaseRole(this.baseRole); FacesUtils.info("修改成功。"); RequestContext.getCurrentInstance().execute("PF('dialog').hide()"); } } catch (Exception e) { logger.error("操作失败。", e); FacesUtils.warn("操作失败。"); } } /** * 人员管理按钮权限修改 */ public void onSaveBtnPermission() { try { if (this.baseRole == null) { FacesUtils.warn("修改对象为空。"); return; } if (this.baseRole.getBtnPermissions() == null || this.baseRole.getBtnPermissions().size() == 0) { FacesUtils.warn("请选择功能。"); return; } this.baseRoleService.updateUserMngPageBtn(this.baseRole); FacesUtils.info("修改成功。"); RequestContext.getCurrentInstance().execute("PF('btnDialog').hide()"); } catch (Exception e) { logger.error("操作失败。", e); FacesUtils.warn("操作失败。"); } } /** * 人员管理人员可见权限修改 */ public void onSaveUserPermission() { try { if (this.baseRole == null) { FacesUtils.warn("修改对象为空。"); return; } if (this.baseRole.getUserPermission() == null) { FacesUtils.warn("请选择可见范围。"); return; } this.baseRoleService.updateUserMngPageBtn(this.baseRole); FacesUtils.info("修改成功。"); RequestContext.getCurrentInstance().execute("PF('userDialog').hide()"); } catch (Exception e) { logger.error("操作失败。", e); FacesUtils.warn("操作失败。"); } } public void onDeleteBtnClick() { try { if (this.selectedList == null || this.selectedList.size() == 0) { FacesUtils.warn("请选择数据。"); return; } this.baseRoleService.deleteBaseRole(this.selectedList); FacesUtils.info("删除成功。"); } catch (Exception e) { logger.error("操作失败。", e); FacesUtils.warn("操作失败。"); } } public LazyDataModel getDataModel() { if (this.dataModel == null) { this.dataModel = new LazyDataModel() { @Override public List load(int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) { List list = null; try { int count = baseRoleService.getBaseRoleTotalCount(null, null); this.setRowCount(count); if (count > 0) { list = baseRoleService.getBaseRoleList(null, null, first, pageSize); } selectedList = new ArrayList<>(); } catch (Exception e) { logger.error(e); } return list; } @Override public BaseRole getRowData(String rowKey) { // Iterator iterator = this.iterator(); // if (iterator != null) { // BaseRole br = null; // while (iterator.hasNext()) { // br = iterator.next(); // if (rowKey.equals(br.getId())) { // return br; // } // } // } Long id=Long.valueOf(rowKey); return baseRoleService.getBaseRole(id); } }; } return dataModel; } public BaseRole getBaseRole() { return baseRole; } public void setBaseRole(BaseRole baseRole) { this.baseRole = baseRole; } public List getSelectedList() { return selectedList; } public void setSelectedList(List selectedList) { this.selectedList = selectedList; } public List getBasePageList() { return basePageList; } public int getAction() { return action; } }