修改移动端企业查询政策报错问题
This commit is contained in:
@@ -12,8 +12,10 @@ import com.ruoyi.cms.service.IJobService;
|
|||||||
import com.ruoyi.cms.service.rc.IPublicJobFairService;
|
import com.ruoyi.cms.service.rc.IPublicJobFairService;
|
||||||
import com.ruoyi.cms.util.RoleUtils;
|
import com.ruoyi.cms.util.RoleUtils;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import com.ruoyi.common.core.domain.entity.Company;
|
import com.ruoyi.common.core.domain.entity.Company;
|
||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
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.core.domain.model.LoginUser;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
@@ -129,7 +131,7 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
|
|||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean enterpriseRole = RoleUtils.isCompanyAdmin();
|
boolean enterpriseRole = RoleUtils.isCompanyAdminSafe();
|
||||||
boolean cmsAdmin = SecurityUtils.isLogin() && !enterpriseRole;
|
boolean cmsAdmin = SecurityUtils.isLogin() && !enterpriseRole;
|
||||||
Company currentCompany = enterpriseRole ? getCurrentCompanyOrNull() : null;
|
Company currentCompany = enterpriseRole ? getCurrentCompanyOrNull() : null;
|
||||||
if (enterpriseRole && currentCompany == null) {
|
if (enterpriseRole && currentCompany == null) {
|
||||||
@@ -286,7 +288,7 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public AjaxResult signupCurrentCompany(String jobFairId) {
|
public AjaxResult signupCurrentCompany(String jobFairId) {
|
||||||
if (!RoleUtils.isCompanyAdmin()) {
|
if (!RoleUtils.isCompanyAdminSafe()) {
|
||||||
return AjaxResult.error("仅企业用户可以报名招聘会");
|
return AjaxResult.error("仅企业用户可以报名招聘会");
|
||||||
}
|
}
|
||||||
if (StringUtils.isBlank(jobFairId)) {
|
if (StringUtils.isBlank(jobFairId)) {
|
||||||
@@ -545,7 +547,7 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
|
|||||||
* 为企业端列表补充报名状态和按钮状态。
|
* 为企业端列表补充报名状态和按钮状态。
|
||||||
*/
|
*/
|
||||||
private void fillCompanyApplyState(List<PublicJobFair> list) {
|
private void fillCompanyApplyState(List<PublicJobFair> list) {
|
||||||
if (list == null || list.isEmpty() || !RoleUtils.isCompanyAdmin()) {
|
if (list == null || list.isEmpty() || !RoleUtils.isCompanyAdminSafe()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Company company = getCurrentCompanyOrNull();
|
Company company = getCurrentCompanyOrNull();
|
||||||
@@ -588,13 +590,13 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void ensureCompanyOperation() {
|
private void ensureCompanyOperation() {
|
||||||
if (!RoleUtils.isCompanyAdmin()) {
|
if (!RoleUtils.isCompanyAdminSafe()) {
|
||||||
throw new ServiceException("仅企业用户可以维护报名岗位");
|
throw new ServiceException("仅企业用户可以维护报名岗位");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ensureAdminOperation() {
|
private void ensureAdminOperation() {
|
||||||
if (RoleUtils.isCompanyAdmin()) {
|
if (RoleUtils.isCompanyAdminSafe()) {
|
||||||
throw new ServiceException("企业用户不能执行管理员操作");
|
throw new ServiceException("企业用户不能执行管理员操作");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -647,21 +649,43 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
|
|||||||
* 两种方式都保留,和户外招聘会的企业识别规则一致。
|
* 两种方式都保留,和户外招聘会的企业识别规则一致。
|
||||||
*/
|
*/
|
||||||
private Company getCurrentCompanyOrNull() {
|
private Company getCurrentCompanyOrNull() {
|
||||||
if (!RoleUtils.isCompanyAdmin() || !SecurityUtils.isLogin()) {
|
if (!RoleUtils.isCompanyAdminSafe()) {
|
||||||
return null;
|
|
||||||
}
|
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
|
||||||
if (loginUser == null || loginUser.getUser() == null) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
String idCard = null;
|
||||||
|
Long userId = null;
|
||||||
|
String nickName = null;
|
||||||
|
String userName = null;
|
||||||
|
|
||||||
|
//后台登录用户
|
||||||
|
LoginUser loginUser = SecurityUtils.getLoginUserSafe();
|
||||||
|
if (loginUser != null && loginUser.getUser() != null) {
|
||||||
SysUser sysUser = loginUser.getUser();
|
SysUser sysUser = loginUser.getUser();
|
||||||
if (StringUtils.isNotBlank(sysUser.getIdCard())) {
|
userId = loginUser.getUserId() == null ? sysUser.getUserId() : loginUser.getUserId();
|
||||||
Company company = companyService.queryCodeCompany(sysUser.getIdCard());
|
idCard = sysUser.getIdCard();
|
||||||
|
nickName = sysUser.getNickName();
|
||||||
|
userName = sysUser.getUserName();
|
||||||
|
}
|
||||||
|
// 移动端登录用户
|
||||||
|
else if (SiteSecurityUtils.isLogin()) {
|
||||||
|
LoginSiteUser loginSiteUser = SiteSecurityUtils.getLoginUser();
|
||||||
|
if (loginSiteUser != null && loginSiteUser.getUser() != null) {
|
||||||
|
AppUser siteUser = loginSiteUser.getUser();
|
||||||
|
userId = loginSiteUser.getUserId() == null ? siteUser.getUserId() : loginSiteUser.getUserId();
|
||||||
|
idCard = siteUser.getIdCard();
|
||||||
|
nickName = siteUser.getName();
|
||||||
|
userName = siteUser.getName();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(idCard)) {
|
||||||
|
Company company = companyService.queryCodeCompany(idCard);
|
||||||
if (company != null) {
|
if (company != null) {
|
||||||
return company;
|
return company;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Long userId = loginUser.getUserId() == null ? sysUser.getUserId() : loginUser.getUserId();
|
|
||||||
if (userId != null) {
|
if (userId != null) {
|
||||||
Company company = companyMapper.selectOne(new LambdaQueryWrapper<Company>()
|
Company company = companyMapper.selectOne(new LambdaQueryWrapper<Company>()
|
||||||
.eq(Company::getUserId, userId)
|
.eq(Company::getUserId, userId)
|
||||||
@@ -673,11 +697,11 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<String> names = new ArrayList<>();
|
List<String> names = new ArrayList<>();
|
||||||
if (StringUtils.isNotBlank(sysUser.getNickName())) {
|
if (StringUtils.isNotBlank(nickName)) {
|
||||||
names.add(sysUser.getNickName());
|
names.add(nickName);
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(sysUser.getUserName()) && !names.contains(sysUser.getUserName())) {
|
if (StringUtils.isNotBlank(userName) && !names.contains(userName)) {
|
||||||
names.add(sysUser.getUserName());
|
names.add(userName);
|
||||||
}
|
}
|
||||||
if (!names.isEmpty()) {
|
if (!names.isEmpty()) {
|
||||||
List<Company> companies = companyMapper.selectList(new LambdaQueryWrapper<Company>()
|
List<Company> companies = companyMapper.selectList(new LambdaQueryWrapper<Company>()
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.ruoyi.cms.util;
|
package com.ruoyi.cms.util;
|
||||||
|
|
||||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
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.entity.SysUser;
|
||||||
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
||||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||||
@@ -31,6 +30,24 @@ public class RoleUtils {
|
|||||||
.anyMatch(role -> StringUtil.COMPANY_ADMIN_ROLE_KEY.equals(role.getRoleId()));
|
.anyMatch(role -> StringUtil.COMPANY_ADMIN_ROLE_KEY.equals(role.getRoleId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安全获取是否企业账号
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean isCompanyAdminSafe() {
|
||||||
|
LoginUser loginUser = SecurityUtils.getLoginUserSafe();
|
||||||
|
if (loginUser != null && loginUser.getUser() != null && loginUser.getUser().getRoles() != null) {
|
||||||
|
return loginUser.getUser().getRoles().stream()
|
||||||
|
.anyMatch(role -> StringUtil.COMPANY_ADMIN_ROLE_KEY.equals(role.getRoleId()));
|
||||||
|
}
|
||||||
|
if (SiteSecurityUtils.isLogin()) {
|
||||||
|
LoginSiteUser loginSiteUser = SiteSecurityUtils.getLoginUser();
|
||||||
|
return loginSiteUser != null && loginSiteUser.getUser() != null
|
||||||
|
&& StringUtil.IS_COMPANY_USER.equals(loginSiteUser.getUser().getIsCompanyUser());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取身份证或统一信用代码
|
* 获取身份证或统一信用代码
|
||||||
* @return
|
* @return
|
||||||
|
|||||||
@@ -95,6 +95,21 @@ public class SecurityUtils
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安全获取后台登录用户,不会抛异常;类型不匹配/未登录返回null
|
||||||
|
*/
|
||||||
|
public static LoginUser getLoginUserSafe() {
|
||||||
|
Authentication authentication = getAuthentication();
|
||||||
|
if (authentication == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Object principal = authentication.getPrincipal();
|
||||||
|
if (principal instanceof LoginUser) {
|
||||||
|
return (LoginUser) principal;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取Authentication
|
* 获取Authentication
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user