@RequestMapping("/viewMenu.do") public String viewMenuAction() { List<Menu> topMenu = new ArrayList<Menu>(); Map<Menu, List<Menu>> childMenus = new HashMap<Menu, List<Menu>>(); String isBoss = (String) this.getSession().getAttribute(Constants.SESSION_CURRENT_USER_IS_BOS); if ("1".equals(isBoss)) { List<Menu> menuList = ServiceLocator.getMenuService().getMenusByScope(ADEConstants.SUBSYSTEM_DEFINITION_ADE); for (Menu menu : menuList) { if (menu.getParentMenu() == null) { topMenu.add(menu); } else { if (childMenus.get(menu.getParentMenu()) != null) { childMenus.get(menu.getParentMenu()).add(menu); } else { List<Menu> childs = new ArrayList<Menu>(); childs.add(menu); childMenus.put(menu.getParentMenu(), childs); } } } } else { List<Role> roleList = (List<Role>) this.getSession().getAttribute(ADEConstants.ADE_SESSION_CURRENT_ROLE); for (Role role : roleList) { if (role != null) { List<Menu> menuList = role.getMenus(); for (Menu menu : menuList) { if (menu.getParentMenu() == null) { topMenu.add(menu); } else { if (childMenus.get(menu.getParentMenu()) != null) { childMenus.get(menu.getParentMenu()).add(menu); } else { List<Menu> childs = new ArrayList<Menu>(); childs.add(menu); childMenus.put(menu.getParentMenu(), childs); } } } } } } this.getRequest().setAttribute("topMenu", topMenu); this.getRequest().setAttribute("childMenus", childMenus); return ADEConstants.ADE_JSP_ROOT + "common/menu"; }
private void initCRMRole() { List<ResourceType> rts = session.createQuery("from ResourceType rt").list(); Map<String, ResourceType> rtMap = new HashMap<String, ResourceType>(); for (ResourceType rt : rts) { rtMap.put(rt.getName(), rt); } List<Menu> menus = session.createQuery("from Menu m where m.scope = 'crm'").list(); Map<String, Menu> menuMap = new HashMap<String, Menu>(); for (Menu menu : menus) { menuMap.put(menu.getPath(), menu); } // Role admin = new Role(); // admin.setName("系统管理员"); // admin.setSysAdmin(true); // admin.setCode(Role.ROLE_ADMIN); // admin.setDescription("拥有系统管理的权限"); // admin.addMenu(menuMap.get("系统管理")); // admin.addMenu(menuMap.get("系统管理/企业管理")); // admin.addMenu(menuMap.get("系统管理/用户管理")); // session.save(admin); SubSystemDefinition ssd = (SubSystemDefinition) session .createQuery("from SubSystemDefinition ssd where ssd.code = 'crm'") .uniqueResult(); Role account = new Role(); account.setName("账户管理"); account.setCode(Role.ROLE_CODE_CRM_ACCOUNT); account.setDescription("拥有账户管理的权限"); account.setSubSystem(ssd); account.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_CRMACCOUNT), "*")); account.addMenu(menuMap.get("账户管理")); account.addMenu(menuMap.get("账户管理/用户管理")); account.addMenu(menuMap.get("账户管理/部门管理")); account.addMenu(menuMap.get("账户管理/数据字典管理")); account.addMenu(menuMap.get("账户管理/客户完整度管理")); account.setType("company|agency|provider"); account.setResourceType(rtMap.get(ResourceType.RES_TYPE_ACCOUNT)); session.save(account); Role sell = new Role(); sell.setName("销售人员"); sell.setCode(Role.ROLE_CODE_CRM_SELL); sell.setDescription("拥有销售机会管理的权限"); sell.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_CUSTOMER), "*")); sell.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_SELL), "*")); // sell.addMenu(menuMap.get("客户管理")); // sell.addMenu(menuMap.get("客户管理/客户管理")); // sell.addMenu(menuMap.get("客户管理/联系人管理")); // sell.addMenu(menuMap.get("客户管理/客户关怀")); // sell.addMenu(menuMap.get("客户管理/客户所有人查询")); // sell.addMenu(menuMap.get("销售管理")); // sell.addMenu(menuMap.get("销售管理/销售机会管理")); // sell.addMenu(menuMap.get("销售管理/合同管理")); sell.setSubSystem(ssd); sell.setType("company|agency|provider"); sell.setResourceType(rtMap.get(ResourceType.RES_TYPE_ACCOUNT)); session.save(sell); Role customService = new Role(); customService.setName("客户服务"); customService.setCode(Role.ROLE_CODE_CRM_SERVICE); customService.setDescription("拥有客户服务管理的权限"); customService.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_CUSTOMER), "*")); // customService.addMenu(menuMap.get("客户管理")); // customService.addMenu(menuMap.get("客户管理/客户管理")); // customService.addMenu(menuMap.get("客户管理/联系人管理")); // customService.addMenu(menuMap.get("客户管理/客户关怀")); // customService.addMenu(menuMap.get("客户管理/客户所有人查询")); // customService.addMenu(menuMap.get("客服管理")); // customService.addMenu(menuMap.get("客服管理/通话记录管理")); customService.setSubSystem(ssd); customService.setType("company|agency|provider"); customService.setResourceType(rtMap.get(ResourceType.RES_TYPE_ACCOUNT)); session.save(customService); // Role resourceManager = new Role(); // resourceManager.setName("资源管理"); // resourceManager.setCode(Role.RESOURCE_MANAGER); // resourceManager.setDescription("拥有资源审批的权限"); // resourceManager.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_CUSTOMER), // "*")); // resourceManager.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_SELL), "*")); // resourceManager.addMenu(menuMap.get("客户管理")); // resourceManager.addMenu(menuMap.get("客户管理/客户管理")); // resourceManager.addMenu(menuMap.get("客户管理/联系人管理")); // resourceManager.addMenu(menuMap.get("客户管理/客户关怀")); // resourceManager.addMenu(menuMap.get("客户管理/客户关怀")); // resourceManager.addMenu(menuMap.get("客户管理/客户所有人查询")); // resourceManager.addMenu(menuMap.get("客户管理/统计分析/客户类型分布")); // resourceManager.addMenu(menuMap.get("客户管理/统计分析/客户来源分布")); // resourceManager.addMenu(menuMap.get("客户管理/统计分析/客户行业分布")); // resourceManager.addMenu(menuMap.get("客户管理/统计分析/客户规模分布")); // resourceManager.addMenu(menuMap.get("客户管理/统计分析/销售进程分布")); // resourceManager.addMenu(menuMap.get("客户管理/统计分析/销售机会所有人分布")); // resourceManager.addMenu(menuMap.get("客户管理/统计分析/预计金额分布")); // resourceManager.addMenu(menuMap.get("销售管理")); // resourceManager.addMenu(menuMap.get("销售管理/销售机会管理")); // resourceManager.addMenu(menuMap.get("销售管理/合同管理")); // session.save(resourceManager); Role sellManager = new Role(); sellManager.setName("销售管理"); sellManager.setCode(Role.ROLE_CODE_CRM_MANAGER); sellManager.setDescription("拥有销售管理的权限"); sellManager.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_CUSTOMER), "*")); sellManager.addPermission(new Permission(rtMap.get(ResourceType.RES_TYPE_SELL), "*")); sellManager.addMenu(menuMap.get("客户管理")); sellManager.addMenu(menuMap.get("客户管理/客户管理")); sellManager.addMenu(menuMap.get("客户管理/联系人管理")); sellManager.addMenu(menuMap.get("客户管理/客户关怀")); sellManager.addMenu(menuMap.get("销售管理")); sellManager.addMenu(menuMap.get("销售管理/销售机会管理")); sellManager.addMenu(menuMap.get("销售管理/合同管理")); // sellManager.addMenu(menuMap.get("销售管理/统计报表")); // sellManager.addMenu(menuMap.get("销售管理/统计报表/呼叫统计")); // sellManager.addMenu(menuMap.get("销售管理/统计报表/广告分析统计")); // sellManager.addMenu(menuMap.get("销售管理/统计报表/销售分析统计")); // sellManager.addMenu(menuMap.get("销售管理/统计报表/客户分析统计")); sellManager.addMenu(menuMap.get("客服管理")); sellManager.addMenu(menuMap.get("客服管理/通话记录管理")); sellManager.setSubSystem(ssd); sellManager.setType("company|agency|provider"); sellManager.setResourceType(rtMap.get(ResourceType.RES_TYPE_ACCOUNT)); session.save(sellManager); }