1.移动端获取推荐岗位时-如果是企业则按照只查询企业发布的岗位

2.添加根据岗位id查询岗位申请人员接口
This commit is contained in:
sh
2025-10-23 17:07:02 +08:00
parent 802ea1fe76
commit 115f47118f
7 changed files with 72 additions and 1 deletions

View File

@@ -3,13 +3,16 @@ package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.domain.ESJobDocument; import com.ruoyi.cms.domain.ESJobDocument;
import com.ruoyi.cms.domain.Job; import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.query.ESJobSearch; import com.ruoyi.cms.domain.query.ESJobSearch;
import com.ruoyi.cms.service.ICompanyService;
import com.ruoyi.cms.service.IESJobSearchService; import com.ruoyi.cms.service.IESJobSearchService;
import com.ruoyi.cms.service.IJobCollectionService; import com.ruoyi.cms.service.IJobCollectionService;
import com.ruoyi.cms.service.IJobService; import com.ruoyi.cms.service.IJobService;
import com.ruoyi.cms.util.RoleUtils;
import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker; import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker;
import com.ruoyi.common.annotation.BussinessLog; import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.Company;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -20,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 岗位Controller * 岗位Controller
@@ -40,6 +44,8 @@ public class AppJobController extends BaseController
private IESJobSearchService esJobSearchService; private IESJobSearchService esJobSearchService;
@Autowired @Autowired
private SensitiveWordChecker sensitiveWordChecker; private SensitiveWordChecker sensitiveWordChecker;
@Autowired
private ICompanyService companyService;
/** /**
* 查询岗位列表 * 查询岗位列表
@@ -70,6 +76,10 @@ public class AppJobController extends BaseController
@GetMapping("/recommend") @GetMapping("/recommend")
public AjaxResult recommend(ESJobSearch esJobSearch) public AjaxResult recommend(ESJobSearch esJobSearch)
{ {
if (RoleUtils.getAppCurrentUseridCard() != null) {
Company company = companyService.queryCodeCompany(RoleUtils.getAppCurrentUseridCard());
esJobSearch.setCompanyId(Objects.nonNull(company) ? company.getCompanyId() : null);
}
List<ESJobDocument> jobList = jobService.recommend(esJobSearch); List<ESJobDocument> jobList = jobService.recommend(esJobSearch);
return success(jobList); return success(jobList);
} }
@@ -217,4 +227,13 @@ public class AppJobController extends BaseController
} }
return success(esJobSearchService.selectByIds(jobIds)); return success(esJobSearchService.selectByIds(jobIds));
} }
@GetMapping("/applyJobList")
@ApiOperation("根据岗位id查询岗位申请人员")
public AjaxResult applyJobList(@ApiParam("岗位id") @RequestParam("jobId") Long jobId) {
if (jobId==null) {
return AjaxResult.error("请传递岗位ID");
}
return success(jobService.selectApplyJobUserList(jobId));
}
} }

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
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.cms.domain.Job; import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.RowWork; import com.ruoyi.cms.domain.RowWork;
@@ -48,4 +49,6 @@ public interface JobMapper extends BaseMapper<Job>
void insertBatchRowWorkTmp(List<RowWork> batchList); void insertBatchRowWorkTmp(List<RowWork> batchList);
VectorJob selectVectorJob(Long jobId); VectorJob selectVectorJob(Long jobId);
List<AppUser> selectApplyJobUserList(Long jobId);
} }

View File

@@ -7,6 +7,7 @@ import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.query.ESJobSearch; import com.ruoyi.cms.domain.query.ESJobSearch;
import com.ruoyi.cms.domain.vo.CandidateVO; import com.ruoyi.cms.domain.vo.CandidateVO;
import com.ruoyi.cms.util.AppWechatEntity; import com.ruoyi.cms.util.AppWechatEntity;
import com.ruoyi.common.core.domain.entity.AppUser;
import org.dromara.easyes.core.biz.EsPageInfo; import org.dromara.easyes.core.biz.EsPageInfo;
/** /**
@@ -89,4 +90,6 @@ public interface IJobService
List<ESJobDocument> littleVideoRandom(String uuid, Integer count,String jobTitle); List<ESJobDocument> littleVideoRandom(String uuid, Integer count,String jobTitle);
void publishJob(Job job); void publishJob(Job job);
List<AppUser> selectApplyJobUserList(Long jobId);
} }

View File

@@ -184,6 +184,9 @@ public class ESJobSearchImpl implements IESJobSearchService
if(!StringUtil.isEmptyOrNull(esJobSearch.getCompanyNature())){ if(!StringUtil.isEmptyOrNull(esJobSearch.getCompanyNature())){
newSearch.setCompanyNature(esJobSearch.getCompanyNature()); newSearch.setCompanyNature(esJobSearch.getCompanyNature());
} }
if(esJobSearch.getCompanyId()!=null){
newSearch.setCompanyId(esJobSearch.getCompanyId());
}
} }
LambdaEsQueryWrapper<ESJobDocument> wrapper = getWrapper(newSearch,jobIds); LambdaEsQueryWrapper<ESJobDocument> wrapper = getWrapper(newSearch,jobIds);
@@ -417,6 +420,9 @@ public class ESJobSearchImpl implements IESJobSearchService
if(!StringUtil.isEmptyOrNull(esJobSearch.getCompanyNature())){ if(!StringUtil.isEmptyOrNull(esJobSearch.getCompanyNature())){
wrapper.and(x->x.eq(ESJobDocument::getCompanyNature,esJobSearch.getCompanyNature())); wrapper.and(x->x.eq(ESJobDocument::getCompanyNature,esJobSearch.getCompanyNature()));
} }
if(esJobSearch.getCompanyId()!=null){
wrapper.and(x->x.eq(ESJobDocument::getCompanyId,esJobSearch.getCompanyId()));
}
if(Objects.nonNull(esJobSearch.getOrder())){ if(Objects.nonNull(esJobSearch.getOrder())){
if(esJobSearch.getOrder()==1){ if(esJobSearch.getOrder()==1){
wrapper.orderByDesc(ESJobDocument::getIsHot); wrapper.orderByDesc(ESJobDocument::getIsHot);

View File

@@ -17,6 +17,7 @@ import com.ruoyi.cms.service.*;
import com.ruoyi.cms.util.*; import com.ruoyi.cms.util.*;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.TreeSelect; import com.ruoyi.common.core.domain.TreeSelect;
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.JobTitle; import com.ruoyi.common.core.domain.entity.JobTitle;
import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.redis.RedisCache;
@@ -803,4 +804,9 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
} }
iesJobSearchService.updateJob(job.getJobId()); iesJobSearchService.updateJob(job.getJobId());
} }
@Override
public List<AppUser> selectApplyJobUserList(Long jobId) {
return jobMapper.selectApplyJobUserList(jobId);
}
} }

View File

@@ -1,8 +1,11 @@
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.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.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.SiteSecurityUtils;
/** /**
* 判断是否企业用户 * 判断是否企业用户
@@ -25,7 +28,7 @@ public class RoleUtils {
} }
/** /**
* 获取获取身份证或统一信用代码 * 获取身份证或统一信用代码
* @return * @return
*/ */
public static String getCurrentUseridCard() { public static String getCurrentUseridCard() {
@@ -36,4 +39,26 @@ public class RoleUtils {
} }
return sysUser.getIdCard(); return sysUser.getIdCard();
} }
/**
* 获取App用户身份证或统一信用代码
* @return
*/
public static String getAppCurrentUseridCard(){
if (!SiteSecurityUtils.isLogin()) {
throw new IllegalArgumentException("未登录!"); // 未登录仍抛异常,确保登录状态有效性
}
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;
}
}
} }

View File

@@ -254,4 +254,13 @@
left join qd.bussiness_dict_data as ac on ac.dict_type = 'scale' and ac.dict_value = c.scale left join qd.bussiness_dict_data as ac on ac.dict_type = 'scale' and ac.dict_value = c.scale
where job_id =#{jobId} where job_id =#{jobId}
</select> </select>
<sql id="selectAppUserResult">
select a.user_id, a.name, a.age, a.sex, a.birth_date, a.education, a.political_affiliation, a.phone, a.avatar, a.salary_min, a.salary_max, a.area, a.status, a.del_flag, a.login_ip, a.login_date, a.create_by, a.create_time, a.update_by, a.update_time, a.remark,a.job_title_id,a.is_recommend,a.id_card,a.work_experience,a.is_company_user from job_apply e
</sql>
<select id="selectApplyJobUserList" resultType="com.ruoyi.common.core.domain.entity.AppUser">
<include refid="selectAppUserResult"/>inner join app_user a on e.user_id =a.user_id and a.del_flag='0'
where e.del_flag='0' and e.job_id=#{jobId}
</select>
</mapper> </mapper>