添加pc端es查询岗位方法
This commit is contained in:
@@ -76,6 +76,7 @@ public class AppJobController extends BaseController
|
|||||||
{
|
{
|
||||||
if (RoleUtils.getAppCurrentUseridCard() != null) {
|
if (RoleUtils.getAppCurrentUseridCard() != null) {
|
||||||
esJobSearch.setCode(RoleUtils.getAppCurrentUseridCard());
|
esJobSearch.setCode(RoleUtils.getAppCurrentUseridCard());
|
||||||
|
esJobSearch.setUserType(RoleUtils.getAppIscompanyUser());
|
||||||
}
|
}
|
||||||
List<ESJobDocument> jobList = jobService.recommend(esJobSearch);
|
List<ESJobDocument> jobList = jobService.recommend(esJobSearch);
|
||||||
return success(jobList);
|
return success(jobList);
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
package com.ruoyi.cms.controller.cms;
|
package com.ruoyi.cms.controller.cms;
|
||||||
|
|
||||||
|
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.vo.CandidateVO;
|
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||||
import com.ruoyi.cms.service.ICompanyService;
|
import com.ruoyi.cms.service.ICompanyService;
|
||||||
import com.ruoyi.cms.service.IJobService;
|
import com.ruoyi.cms.service.IJobService;
|
||||||
import com.ruoyi.cms.util.RoleUtils;
|
import com.ruoyi.cms.util.RoleUtils;
|
||||||
|
import com.ruoyi.cms.util.StringUtil;
|
||||||
import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker;
|
import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker;
|
||||||
import com.ruoyi.common.annotation.Anonymous;
|
import com.ruoyi.common.annotation.Anonymous;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
@@ -142,4 +145,18 @@ public class CmsJobController extends BaseController
|
|||||||
List<CandidateVO> list = jobService.candidates(jobId);
|
List<CandidateVO> list = jobService.candidates(jobId);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("获取推荐岗位")
|
||||||
|
@PreAuthorize("@ss.hasPermi('bussiness:job:recommend')")
|
||||||
|
@GetMapping("/recommend")
|
||||||
|
public AjaxResult recommend(ESJobSearch esJobSearch)
|
||||||
|
{
|
||||||
|
if (RoleUtils.isCompanyAdmin()) {
|
||||||
|
esJobSearch.setCode(RoleUtils.getCurrentUseridCard());
|
||||||
|
esJobSearch.setUserType(StringUtil.IS_COMPANY_USER);
|
||||||
|
}
|
||||||
|
esJobSearch.setPageSize(20);
|
||||||
|
List<ESJobDocument> jobList = jobService.sysRecommend(esJobSearch);
|
||||||
|
return success(jobList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.ruoyi.cms.domain.query;
|
package com.ruoyi.cms.domain.query;
|
||||||
|
|
||||||
import com.ruoyi.cms.domain.Job;
|
import com.ruoyi.cms.domain.Job;
|
||||||
import com.ruoyi.common.annotation.Excel;
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -54,4 +53,6 @@ public class ESJobSearch extends Job
|
|||||||
|
|
||||||
private String area;
|
private String area;
|
||||||
|
|
||||||
|
/*** 用户角色app角色:0企业,1求职者,2网格员 3内部政府人员*/
|
||||||
|
private String userType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,4 +57,6 @@ public interface IAppUserService
|
|||||||
AppUser selectByOpenid(String openid);
|
AppUser selectByOpenid(String openid);
|
||||||
|
|
||||||
public AppUser registerAppUser(RegisterBody registerBody);
|
public AppUser registerAppUser(RegisterBody registerBody);
|
||||||
|
|
||||||
|
public AppUser selectAppuserByIdcard(String idCard);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.ruoyi.cms.service;
|
package com.ruoyi.cms.service;
|
||||||
|
|
||||||
import com.ruoyi.cms.domain.ESJobDocument;
|
import com.ruoyi.cms.domain.ESJobDocument;
|
||||||
import com.ruoyi.cms.domain.Job;
|
|
||||||
import com.ruoyi.cms.domain.query.ESJobSearch;
|
import com.ruoyi.cms.domain.query.ESJobSearch;
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import org.dromara.easyes.core.biz.EsPageInfo;
|
import org.dromara.easyes.core.biz.EsPageInfo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -69,4 +69,6 @@ public interface IESJobSearchService
|
|||||||
void deleteJob(Long jobId);
|
void deleteJob(Long jobId);
|
||||||
|
|
||||||
List<ESJobDocument> selectByIds(Long[] jobIds);
|
List<ESJobDocument> selectByIds(Long[] jobIds);
|
||||||
|
|
||||||
|
List<ESJobDocument> selectSysTextListExceptJobId(ESJobSearch esJobSearch, List<Long> jobIds, AppUser appUser);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,4 +92,6 @@ public interface IJobService
|
|||||||
void publishJob(Job job);
|
void publishJob(Job job);
|
||||||
|
|
||||||
List<AppUser> selectApplyJobUserList(Long jobId);
|
List<AppUser> selectApplyJobUserList(Long jobId);
|
||||||
|
|
||||||
|
List<ESJobDocument> sysRecommend(ESJobSearch esJobSearch);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -210,4 +210,9 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
|
|||||||
appUserMapper.updateById(appUser);
|
appUserMapper.updateById(appUser);
|
||||||
return appUser;
|
return appUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AppUser selectAppuserByIdcard(String idCard) {
|
||||||
|
return appUserMapper.selectOne(Wrappers.<AppUser>lambdaQuery().eq(AppUser::getIdCard, idCard).orderByDesc(AppUser::getUpdateTime).last("LIMIT 1"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import com.ruoyi.cms.service.IESJobSearchService;
|
|||||||
import com.ruoyi.cms.util.ListUtil;
|
import com.ruoyi.cms.util.ListUtil;
|
||||||
import com.ruoyi.cms.util.StringUtil;
|
import com.ruoyi.cms.util.StringUtil;
|
||||||
import com.ruoyi.common.core.domain.entity.Company;
|
import com.ruoyi.common.core.domain.entity.Company;
|
||||||
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
|
||||||
import com.ruoyi.common.core.text.Convert;
|
import com.ruoyi.common.core.text.Convert;
|
||||||
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||||
import org.dromara.easyes.core.biz.EsPageInfo;
|
import org.dromara.easyes.core.biz.EsPageInfo;
|
||||||
@@ -441,11 +441,7 @@ public class ESJobSearchImpl implements IESJobSearchService
|
|||||||
}
|
}
|
||||||
//企业用户排除es去除jobIds
|
//企业用户排除es去除jobIds
|
||||||
boolean needExclude = true;
|
boolean needExclude = true;
|
||||||
if (SiteSecurityUtils.isLogin()) {
|
needExclude = !StringUtil.IS_COMPANY_USER.equals(esJobSearch.getUserType());
|
||||||
LoginSiteUser siteUser = SiteSecurityUtils.getLoginSiteUser();
|
|
||||||
AppUser appUser = siteUser.getUser();
|
|
||||||
needExclude = !StringUtil.IS_COMPANY_USER.equals(appUser.getIsCompanyUser());
|
|
||||||
}
|
|
||||||
if(needExclude && !ListUtil.isListEmptyOrNull(jobIds)){
|
if(needExclude && !ListUtil.isListEmptyOrNull(jobIds)){
|
||||||
wrapper.not().in(ESJobDocument::getJobId, jobIds);
|
wrapper.not().in(ESJobDocument::getJobId, jobIds);
|
||||||
}
|
}
|
||||||
@@ -595,4 +591,123 @@ public class ESJobSearchImpl implements IESJobSearchService
|
|||||||
wrapper.in(ESJobDocument::getJobId,jobIds);
|
wrapper.in(ESJobDocument::getJobId,jobIds);
|
||||||
return esJobDocumentMapper.selectList(wrapper);
|
return esJobDocumentMapper.selectList(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* pc端查询es
|
||||||
|
* @param esJobSearch
|
||||||
|
* @param jobIds
|
||||||
|
* @param appUser
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<ESJobDocument> selectSysTextListExceptJobId(ESJobSearch esJobSearch, List<Long> jobIds,AppUser appUser) {
|
||||||
|
|
||||||
|
ESJobSearch newSearch = new ESJobSearch();
|
||||||
|
BeanUtils.copyProperties(esJobSearch,newSearch);
|
||||||
|
//查询
|
||||||
|
if(SecurityUtils.isLogin()){
|
||||||
|
if(appUser!=null){
|
||||||
|
if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())){
|
||||||
|
List<String> jobTitle = appUser.getJobTitle();
|
||||||
|
newSearch.setJobTitle(String.join(",", jobTitle));
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(appUser.getEducation())){
|
||||||
|
newSearch.setEducation(appUser.getEducation());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(appUser.getArea())){
|
||||||
|
newSearch.setArea(appUser.getArea());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(appUser.getExperience())){
|
||||||
|
newSearch.setExperience(appUser.getExperience());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getExperience())){
|
||||||
|
newSearch.setExperience(esJobSearch.getExperience());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(appUser.getSalaryMax())){
|
||||||
|
newSearch.setMaxSalary(Long.valueOf(appUser.getSalaryMax()));
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(appUser.getSalaryMin())){
|
||||||
|
newSearch.setMinSalary(Long.valueOf(appUser.getSalaryMin()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getArea())){
|
||||||
|
newSearch.setArea(esJobSearch.getArea());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getEducation())){
|
||||||
|
newSearch.setEducation(esJobSearch.getEducation());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getJobTitle())){
|
||||||
|
newSearch.setJobTitle(esJobSearch.getJobTitle());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getJobType())){
|
||||||
|
newSearch.setJobType(esJobSearch.getJobType());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getType())){
|
||||||
|
newSearch.setType(esJobSearch.getType());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getDescription())){
|
||||||
|
newSearch.setDescription(esJobSearch.getDescription());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getCompanyNature())){
|
||||||
|
newSearch.setCompanyNature(esJobSearch.getCompanyNature());
|
||||||
|
}
|
||||||
|
if(!StringUtil.isEmptyOrNull(esJobSearch.getCode())){
|
||||||
|
newSearch.setCode(esJobSearch.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LambdaEsQueryWrapper<ESJobDocument> wrapper = getWrapper(newSearch,jobIds);
|
||||||
|
|
||||||
|
//todo 暂时
|
||||||
|
wrapper.limit(esJobSearch.getPageSize());
|
||||||
|
List<ESJobDocument> esJobDocuments = esJobDocumentMapper.selectList(wrapper);
|
||||||
|
|
||||||
|
if (esJobDocuments.size() < esJobSearch.getPageSize()) {
|
||||||
|
// 定义要逐步放宽的搜索条件字段
|
||||||
|
List<Runnable> relaxConditions = new ArrayList<>();
|
||||||
|
relaxConditions.add(() -> newSearch.setArea(null));
|
||||||
|
relaxConditions.add(() -> newSearch.setExperience(null));
|
||||||
|
relaxConditions.add(() -> newSearch.setMaxSalary(null));
|
||||||
|
relaxConditions.add(() -> newSearch.setMinSalary(null));
|
||||||
|
relaxConditions.add(() -> newSearch.setEducation(null));
|
||||||
|
relaxConditions.add(()-> newSearch.setJobTitle(null));
|
||||||
|
// 保存所有查询到的文档
|
||||||
|
List<ESJobDocument> allDocuments = new ArrayList<>(esJobDocuments);
|
||||||
|
|
||||||
|
// 记录已经放宽的条件数量
|
||||||
|
int relaxedConditions = 0;
|
||||||
|
|
||||||
|
// 继续放宽条件直到满足分页或所有条件都已放宽
|
||||||
|
while (allDocuments.size() < esJobSearch.getPageSize()
|
||||||
|
&& relaxedConditions < relaxConditions.size()) {
|
||||||
|
// 放宽下一个条件
|
||||||
|
relaxConditions.get(relaxedConditions).run();
|
||||||
|
relaxedConditions++;
|
||||||
|
|
||||||
|
// 查询新增的文档(不包含之前已经查询到的)
|
||||||
|
wrapper = getWrapper(newSearch, jobIds);
|
||||||
|
wrapper.limit(esJobSearch.getPageSize() - allDocuments.size());
|
||||||
|
if (!allDocuments.isEmpty()) {
|
||||||
|
// 排除已经查询到的文档ID
|
||||||
|
Set<String> existingIds = allDocuments.stream()
|
||||||
|
.map(ESJobDocument::getId)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
wrapper.not().in(ESJobDocument::getId, existingIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ESJobDocument> newDocuments = esJobDocumentMapper.selectList(wrapper);
|
||||||
|
allDocuments.addAll(newDocuments);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果总数超过分页大小,截取所需数量
|
||||||
|
if (allDocuments.size() > esJobSearch.getPageSize()) {
|
||||||
|
esJobDocuments = allDocuments.subList(0, esJobSearch.getPageSize());
|
||||||
|
} else {
|
||||||
|
esJobDocuments = allDocuments;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return esJobDocuments;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import com.ruoyi.cms.domain.vo.CandidateVO;
|
|||||||
import com.ruoyi.cms.mapper.*;
|
import com.ruoyi.cms.mapper.*;
|
||||||
import com.ruoyi.cms.service.*;
|
import com.ruoyi.cms.service.*;
|
||||||
import com.ruoyi.cms.util.*;
|
import com.ruoyi.cms.util.*;
|
||||||
|
import com.ruoyi.common.constant.CacheConstants;
|
||||||
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.AppUser;
|
||||||
@@ -22,6 +23,7 @@ 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;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||||
@@ -79,6 +81,8 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
|||||||
private JobContactMapper jobContactMapper;
|
private JobContactMapper jobContactMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private FileMapper fileMapper;
|
private FileMapper fileMapper;
|
||||||
|
@Autowired
|
||||||
|
private IAppUserService appUserService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新工作地址的经纬度信息
|
* 更新工作地址的经纬度信息
|
||||||
@@ -786,6 +790,23 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
|||||||
return jobs;
|
return jobs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<ESJobDocument> sysUserCollection(List<ESJobDocument> jobs){
|
||||||
|
if(jobs.isEmpty()){return new ArrayList<>();}
|
||||||
|
if(SecurityUtils.isLogin()){
|
||||||
|
//收藏
|
||||||
|
Set<Long> collectionIds = jobCollectionMapper.selectList(Wrappers.<JobCollection>lambdaQuery()
|
||||||
|
.eq(JobCollection::getUserId, SecurityUtils.getUserId())
|
||||||
|
.in(JobCollection::getJobId, jobs.stream().map(ESJobDocument::getJobId).collect(Collectors.toList())))
|
||||||
|
.stream().map(JobCollection::getJobId).collect(Collectors.toSet());
|
||||||
|
for (ESJobDocument j : jobs) {
|
||||||
|
if (collectionIds.contains(j.getJobId())) {
|
||||||
|
j.setIsCollection(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return jobs;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void publishJob(Job job) {
|
public void publishJob(Job job) {
|
||||||
job.setIsPublish(0);
|
job.setIsPublish(0);
|
||||||
@@ -809,4 +830,27 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
|||||||
public List<AppUser> selectApplyJobUserList(Long jobId) {
|
public List<AppUser> selectApplyJobUserList(Long jobId) {
|
||||||
return jobMapper.selectApplyJobUserList(jobId);
|
return jobMapper.selectApplyJobUserList(jobId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ESJobDocument> sysRecommend(ESJobSearch esJobSearch) {
|
||||||
|
String jobKey=CacheConstants.SYS_JOB_IDS+ SecurityUtils.getUserId();
|
||||||
|
RedisCache redisCache = SpringUtils.getBean(RedisCache.class);
|
||||||
|
JSONArray cacheObject = redisCache.getCacheObject(jobKey);
|
||||||
|
List<Long> jobList = new ArrayList<>();
|
||||||
|
if(Objects.isNull(cacheObject)){
|
||||||
|
ArrayList<Long> longs = new ArrayList<>();
|
||||||
|
jobList =longs;
|
||||||
|
}else {
|
||||||
|
jobList = cacheObject.toList(Long.class);
|
||||||
|
}
|
||||||
|
AppUser appUser=appUserService.selectAppuserByIdcard(RoleUtils.getCurrentUseridCard());
|
||||||
|
|
||||||
|
//从es中查询
|
||||||
|
List<ESJobDocument> jobListResult = iesJobSearchService.selectSysTextListExceptJobId(esJobSearch,jobList,appUser);
|
||||||
|
//存入当前session中查看的岗位 避免重复 todo 定时删除 key上保存用户信息
|
||||||
|
jobList.addAll(jobListResult.stream().map(ESJobDocument::getJobId).collect(Collectors.toList()));
|
||||||
|
redisCache.setCacheObject(jobKey,jobList);
|
||||||
|
List<ESJobDocument> esJobDocuments = sysUserCollection(jobListResult);
|
||||||
|
return esJobDocuments;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,4 +61,17 @@ public class RoleUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户角色
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getAppIscompanyUser(){
|
||||||
|
LoginSiteUser loginSiteUser = SiteSecurityUtils.getLoginUser();
|
||||||
|
AppUser appUser = loginSiteUser.getUser();
|
||||||
|
if (appUser == null) {
|
||||||
|
throw new IllegalArgumentException("用户信息为空,无法获取身份证号"); // 用户信息为空仍抛异常,避免空指针
|
||||||
|
}
|
||||||
|
return appUser.getIsCompanyUser();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -44,4 +44,9 @@ public class CacheConstants
|
|||||||
*/
|
*/
|
||||||
public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:";
|
public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:";
|
||||||
public static final String PWD_ERR_CNT_KEY_SITE = "site:pwd_err_cnt:";
|
public static final String PWD_ERR_CNT_KEY_SITE = "site:pwd_err_cnt:";
|
||||||
|
|
||||||
|
/**
|
||||||
|
*pc岗位ids
|
||||||
|
*/
|
||||||
|
public static final String SYS_JOB_IDS = "job_ids:";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user