content: package org.jeecg.modules.system.util;
  
  import java.util.List;
  
  import org.jeecg.common.util.oConvertUtils;
  import org.jeecg.modules.system.entity.SysPermission;
  
  /**
   * @Author: scott
   * @Date: 2019-04-03
   */
  public class PermissionDataUtil {
  
  	/**
  	 * 智能处理错误数据，简化用户失误操作
  	 * 
  	 * @param permission
  	 */
  	public static SysPermission intelligentProcessData(SysPermission permission) {
  		if (permission == null) {
  			return null;
  		}
  
  		// 组件
  		if (oConvertUtils.isNotEmpty(permission.getComponent())) {
  			String component = permission.getComponent();
  			if (component.startsWith("/")) {
  				component = component.substring(1);
  			}
  			if (component.startsWith("views/")) {
  				component = component.replaceFirst("views/", "");
  			}
  			if (component.startsWith("src/views/")) {
  				component = component.replaceFirst("src/views/", "");
  			}
  			if (component.endsWith(".vue")) {
  				component = component.replace(".vue", "");
  			}
  			permission.setComponent(component);
  		}
  		
  		// 请求URL
  		if (oConvertUtils.isNotEmpty(permission.getUrl())) {
  			String url = permission.getUrl();
  			if (url.endsWith(".vue")) {
  				url = url.replace(".vue", "");
  			}
  			if (!url.startsWith("http") && !url.startsWith("/")&&!url.trim().startsWith("{{")) {
  				url = "/" + url;
  			}
  			permission.setUrl(url);
  		}
  		
  		// 一级菜单默认组件
  		if (0 == permission.getMenuType() && oConvertUtils.isEmpty(permission.getComponent())) {
  			// 一级菜单默认组件
  			permission.setComponent("layouts/RouteView");
  		}
  		return permission;
  	}
  	
  	/**
  	 * 如果没有index页面 需要new 一个放到list中
  	 * @param metaList
  	 */
  	public static void addIndexPage(List<SysPermission> metaList) {
  		boolean hasIndexMenu = false;
  		for (SysPermission sysPermission : metaList) {
  			if("首页".equals(sysPermission.getName())) {
  				hasIndexMenu = true;
  				break;
  			}
  		}
  		if(!hasIndexMenu) {
  			metaList.add(0,new SysPermission(true));
  		}
  	}
  
  	/**
  	 * 判断是否授权首页
  	 * @param metaList
  	 * @return
  	 */
  	public static boolean hasIndexPage(List<SysPermission> metaList){
  		boolean hasIndexMenu = false;
  		for (SysPermission sysPermission : metaList) {
  			if("首页".equals(sysPermission.getName())) {
  				hasIndexMenu = true;
  				break;
  			}
  		}
  		return hasIndexMenu;
  	}
  	
  }
  