예제 #1
0
 /** 获取菜单名称路径(如:系统设置-机构用户-用户管理-编辑) */
 public static String getMenuNamePath(String requestUri, String permission) {
   String href = StringUtils.substringAfter(requestUri, Global.getAdminPath());
   @SuppressWarnings("unchecked")
   Map<String, String> menuMap = (Map<String, String>) CacheUtils.get(CACHE_MENU_NAME_PATH_MAP);
   if (menuMap == null) {
     menuMap = Maps.newHashMap();
     List<Menu> menuList = menuDao.findAllList(new Menu());
     for (Menu menu : menuList) {
       // 获取菜单名称路径(如:系统设置-机构用户-用户管理-编辑)
       String namePath = "";
       if (menu.getParentIds() != null) {
         List<String> namePathList = Lists.newArrayList();
         for (String id : StringUtils.split(menu.getParentIds(), ",")) {
           if (Menu.getRootId().equals(id)) {
             continue; // 过滤跟节点
           }
           for (Menu m : menuList) {
             if (m.getId().equals(id)) {
               namePathList.add(m.getName());
               break;
             }
           }
         }
         namePathList.add(menu.getName());
         namePath = StringUtils.join(namePathList, "-");
       }
       // 设置菜单名称路径
       if (StringUtils.isNotBlank(menu.getHref())) {
         menuMap.put(menu.getHref(), namePath);
       } else if (StringUtils.isNotBlank(menu.getPermission())) {
         for (String p : StringUtils.split(menu.getPermission())) {
           menuMap.put(p, namePath);
         }
       }
     }
     CacheUtils.put(CACHE_MENU_NAME_PATH_MAP, menuMap);
   }
   String menuNamePath = menuMap.get(href);
   if (menuNamePath == null) {
     for (String p : StringUtils.split(permission)) {
       menuNamePath = menuMap.get(p);
       if (StringUtils.isNotBlank(menuNamePath)) {
         break;
       }
     }
     if (menuNamePath == null) {
       return "";
     }
   }
   return menuNamePath;
 }
예제 #2
0
 @Override
 public void run() {
   // 获取日志标题
   if (StringUtils.isBlank(log.getTitle())) {
     String permission = "";
     if (handler instanceof HandlerMethod) {
       Method m = ((HandlerMethod) handler).getMethod();
       RequiresPermissions rp = m.getAnnotation(RequiresPermissions.class);
       permission = (rp != null ? StringUtils.join(rp.value(), ",") : "");
     }
     log.setTitle(getMenuNamePath(log.getRequestUri(), permission));
   }
   // 如果有异常,设置异常信息
   log.setException(Exceptions.getStackTraceAsString(ex));
   // 如果无标题并无异常日志,则不保存信息
   if (StringUtils.isBlank(log.getTitle()) && StringUtils.isBlank(log.getException())) {
     return;
   }
   // 保存日志信息
   log.preInsert();
   logDao.insert(log);
 }