package com.zcloud.util;

import com.zcloud.entity.PageData;
import com.zcloud.entity.system.User;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;

/**
 * 说明：权限工具类
 * 作者：luoxiaobao
 * 官网：www.qdkjchina.com
 */
public class Jurisdiction {

	/**shiro管理的session
	 * @return
	 */
	public static Session getSession(){
		return SecurityUtils.getSubject().getSession();
	}

	/**获取当前登录的用户名
	 * @return
	 */
	public static String getUsername(){
		return getSession().getAttribute(Const.SESSION_USERNAME).toString();
	}

	/**获取当前登录的姓名
	 * @return
	 */
	public static String getName(){
		return getSession().getAttribute(Const.SESSION_U_NAME).toString();
	}

	/**获取当前登录用户的角色编码
	 * @return
	 */
	public static String getRnumbers(){
		return getSession().getAttribute(Const.SESSION_RNUMBERS).toString();
	}

	/**获取用户的最高组织机构权限集合
	 * @return
	 */
	public static String getDEPARTMENT_IDS(){
		return getSession().getAttribute(Const.DEPARTMENT_IDS).toString();
	}

	/**获取用户的最高组织机构权限
	 * @return
	 */
	public static String getDEPARTMENT_ID(){
		return getSession().getAttribute(Const.DEPARTMENT_ID).toString();
	}

	/**获取用户的企业ID
	 * @return
	 */
	public static String getCORPINFO_ID(){
		return getSession().getAttribute(Const.CORPINFO_ID).toString();
	}

	/**获取用户有没有定位系统
	 * @return
	 */
	public static String getPERSONNEL_POSITION(){
		return getSession().getAttribute("PERSONNEL_POSITION").toString();
	}

	/**获取用户的定位是集团版还是单体版
	 * @return
	 */
	public static String getPERSONNEL_TYPE(){
		return getSession().getAttribute("PERSONNEL_TYPE").toString();
	}
	/**获取用户的企业ID
	 * @return
	 */
	public static String getPOST_ID(){
		return getSession().getAttribute(Const.POST_ID).toString();
	}

	/**获取用户的userID
	 * @return
	 */
	public static String getUSER_ID(){
		return getSession().getAttribute(Const.USER_ID).toString();
	}

	/**获取是否主账号
	 * @return
	 */
	public static String getIS_MAIN(){
		return getSession().getAttribute(Const.IS_MAIN).toString();
	}

	/**获取是否监管部门
	 * @return
	 */
	public static String getISSUPERVISE(){
		return getSession().getAttribute(Const.ISSUPERVISE).toString();
	}
	/**获取企业培训类型
	 * @return
	 */
	public static String getCORPTRAINTYPE(){
		return getSession().getAttribute(Const.CORP_TRAINTYPE).toString();
	}

	/**获取企业会员等级
	 * @return
	 */
	public static String getVIPLEVEL(){
		return getSession().getAttribute(Const.VIPLEVEL).toString();
	}

	public static PageData getUserDataJurisdiction(PageData pd){
		if(null != Jurisdiction.getCORPINFO_ID()){
			pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
		}
		User loginUser = (User) getSession().getAttribute(Const.SESSION_USER);
		if(null != loginUser){
			pd.put("supDeparIds",loginUser.getSuperviseDepartId());
			pd.put("roleLevel",loginUser.getRoleLevel());
			pd.put("loginUserId",loginUser.getUSER_ID());
		}
		return pd;
	}

}
