package com.ruoyi.cms.util; import com.ruoyi.common.core.domain.entity.AppUser; import com.ruoyi.common.core.domain.entity.Company; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginSiteUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SiteSecurityUtils; /** * 判断是否企业用户 */ public class RoleUtils { /** * 验证用户角色是否是企业用户 * @return */ public static boolean isCompanyAdmin() { // 先判断用户是否登录 if (!SecurityUtils.isLogin()) { return false; } // 获取当前登录用户的角色列表,判断是否包含企业管理员角色ID LoginUser loginUser = SecurityUtils.getLoginUser(); return loginUser.getUser().getRoles().stream() .anyMatch(role -> StringUtil.COMPANY_ADMIN_ROLE_KEY.equals(role.getRoleId())); } /** * 获取身份证或统一信用代码 * @return */ public static String getCurrentUseridCard() { LoginUser loginUser = SecurityUtils.getLoginUser(); // 已包含登录校验 SysUser sysUser = loginUser.getUser(); if (sysUser == null) { throw new IllegalArgumentException("用户信息为空,无法获取身份证号"); } return sysUser.getIdCard(); } /** * 获取App用户身份证或统一信用代码 * @return */ public static String getAppCurrentUseridCard(){ if (!SiteSecurityUtils.isLogin()) { return null; } LoginSiteUser loginSiteUser = SiteSecurityUtils.getLoginUser(); AppUser appUser = loginSiteUser.getUser(); if (appUser == null) { throw new IllegalArgumentException("用户信息为空,无法获取身份证号"); // 用户信息为空仍抛异常,避免空指针 } if ("0".equals(appUser.getIsCompanyUser())) { return appUser.getIdCard(); } else { return null; } } /** * 获取用户角色 * @return */ public static String getAppIscompanyUser(){ LoginSiteUser loginSiteUser = SiteSecurityUtils.getLoginUser(); AppUser appUser = loginSiteUser.getUser(); if (appUser == null) { throw new IllegalArgumentException("用户信息为空,无法获取身份证号"); // 用户信息为空仍抛异常,避免空指针 } return appUser.getIsCompanyUser(); } /** * 获取当前登录的App用户 * @return AppUser */ public static AppUser getAppUser() { if (!SiteSecurityUtils.isLogin()) { return null; } LoginSiteUser loginSiteUser = SiteSecurityUtils.getLoginUser(); return loginSiteUser.getUser(); } /** * 判断当前用户是否是企业用户 * @return true=企业用户 */ public static boolean isCompanyUser() { AppUser appUser = getAppUser(); return appUser != null && StringUtil.IS_COMPANY_USER.equals(appUser.getIsCompanyUser()); } /** * 获取当前企业用户的企业信用代码 * @return 企业信用代码,非企业用户返回null */ public static String getCompanyCode() { AppUser appUser = getAppUser(); if (appUser != null && StringUtil.IS_COMPANY_USER.equals(appUser.getIsCompanyUser())) { return appUser.getIdCard(); } return null; } }