|
@@ -9,8 +9,11 @@ import com.citu.module.menduner.system.api.python.GraphApi;
|
|
import com.citu.module.menduner.system.api.python.GraphQueryDTO;
|
|
import com.citu.module.menduner.system.api.python.GraphQueryDTO;
|
|
import com.citu.module.menduner.system.api.python.GraphQueryPageDTO;
|
|
import com.citu.module.menduner.system.api.python.GraphQueryPageDTO;
|
|
import com.citu.module.menduner.system.api.python.GraphSendDTO;
|
|
import com.citu.module.menduner.system.api.python.GraphSendDTO;
|
|
|
|
+import com.citu.module.menduner.system.controller.app.recruit.person.job.AppRecruitJobInterestedRespVO;
|
|
import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonDetailRespVO;
|
|
import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonDetailRespVO;
|
|
import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonInfoRespVO;
|
|
import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonInfoRespVO;
|
|
|
|
+import com.citu.module.menduner.system.controller.app.recruit.person.workexp.AppRecruitWorkExpRespVO;
|
|
|
|
+import com.citu.module.menduner.system.controller.base.area.AreaWebRespVO;
|
|
import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
|
|
import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
|
|
import com.citu.module.menduner.system.controller.base.person.PersonQueryReqVO;
|
|
import com.citu.module.menduner.system.controller.base.person.PersonQueryReqVO;
|
|
import com.citu.module.menduner.system.controller.base.person.PersonRecommendQueryReqVO;
|
|
import com.citu.module.menduner.system.controller.base.person.PersonRecommendQueryReqVO;
|
|
@@ -26,6 +29,7 @@ import com.citu.module.menduner.system.dal.dataobject.eduexp.EduExpDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseTalentPoolDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseTalentPoolDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
|
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.person.PersonEnterpriseBlockDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.person.PersonSkillDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.person.PersonSkillDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.projectexp.ProjectExpDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.projectexp.ProjectExpDO;
|
|
@@ -35,6 +39,7 @@ import com.citu.module.menduner.system.dal.dataobject.workexp.WorkExpDO;
|
|
import com.citu.module.menduner.system.dal.mysql.eduexp.EduExpMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.eduexp.EduExpMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseTalentPoolMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseTalentPoolMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.job.JobInterestedMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.job.JobInterestedMapper;
|
|
|
|
+import com.citu.module.menduner.system.dal.mysql.person.PersonEnterpriseBlockMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.person.PersonInfoMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.person.PersonInfoMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.person.PersonSkillMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.person.PersonSkillMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.projectexp.ProjectExpMapper;
|
|
import com.citu.module.menduner.system.dal.mysql.projectexp.ProjectExpMapper;
|
|
@@ -48,6 +53,7 @@ import com.citu.module.menduner.system.service.job.JobAdvertisedService;
|
|
import com.citu.module.menduner.system.service.position.PositionService;
|
|
import com.citu.module.menduner.system.service.position.PositionService;
|
|
import com.citu.module.menduner.system.util.RedisUtils;
|
|
import com.citu.module.menduner.system.util.RedisUtils;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
@@ -106,6 +112,11 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
private RedisUtils redisUtils;
|
|
private RedisUtils redisUtils;
|
|
|
|
+ @Autowired
|
|
|
|
+ private MdeUserMapper mdeUserMapper;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ PersonEnterpriseBlockMapper personEnterpriseBlockMapper;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public PageResult<UserPersonRespVO> page(UserPersonPageReqVO pageReqVO) {
|
|
public PageResult<UserPersonRespVO> page(UserPersonPageReqVO pageReqVO) {
|
|
@@ -351,24 +362,56 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
|
|
reqVO.setAreaIds(areaIdList);
|
|
reqVO.setAreaIds(areaIdList);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ List<Long> blockUserIds = personEnterpriseBlockMapper.getEnterpriseBlockUserIds(LoginUserContext.getEnterpriseId());
|
|
|
|
+ reqVO.setUserIds(blockUserIds);
|
|
|
|
+
|
|
|
|
+ if(org.apache.commons.lang3.StringUtils.isNotBlank(reqVO.getBrand())){
|
|
|
|
+ List<Long> userIds = workExpMapper.selectByEnterpriseName(reqVO.getBrand());
|
|
|
|
+ if(userIds.size() > 5000){
|
|
|
|
+ // TODO 考虑提示用户输入更精确的检索
|
|
|
|
+ }
|
|
|
|
+ reqVO.setUserIds(userIds);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
PageResult<PersonInfoRespVO> result = personInfoMapper.queryPage(reqVO, LoginUserContext.getEnterpriseId());
|
|
PageResult<PersonInfoRespVO> result = personInfoMapper.queryPage(reqVO, LoginUserContext.getEnterpriseId());
|
|
|
|
+
|
|
fillPosition(result);
|
|
fillPosition(result);
|
|
result = fillArea(result);
|
|
result = fillArea(result);
|
|
PageResult<AppRecruitPersonInfoRespVO> recruitResult =
|
|
PageResult<AppRecruitPersonInfoRespVO> recruitResult =
|
|
BeanUtils.toBean(result, AppRecruitPersonInfoRespVO.class);
|
|
BeanUtils.toBean(result, AppRecruitPersonInfoRespVO.class);
|
|
|
|
+ Map<Long,List<AppRecruitJobInterestedRespVO>> appRecruitJobInterestedRespVOCache =new HashMap<>();
|
|
|
|
+ Map<Long,List<AppRecruitWorkExpRespVO>> workExpRespVOCache =new HashMap<>();
|
|
|
|
+
|
|
recruitResult.getList().forEach(item -> {
|
|
recruitResult.getList().forEach(item -> {
|
|
- item.setInterestedList(
|
|
|
|
- JobInterestedConvert.INSTANCE.convertList2(jobInterestedMapper.selectByUserIdList(item.getUserId()))
|
|
|
|
|
|
+ List<AppRecruitJobInterestedRespVO> appRecruitJobInterestedRespVOS = appRecruitJobInterestedRespVOCache.computeIfAbsent(item.getUserId(), k -> new ArrayList<>());
|
|
|
|
+ List<AppRecruitWorkExpRespVO> workExpRespVO= workExpRespVOCache.computeIfAbsent(item.getUserId(), k -> new ArrayList<>());
|
|
|
|
+
|
|
|
|
+ item.setInterestedList(appRecruitJobInterestedRespVOS
|
|
|
|
+// JobInterestedConvert.INSTANCE.convertList2(jobInterestedMapper.selectByUserIdList(item.getUserId()))
|
|
);
|
|
);
|
|
- item.setWorkList(
|
|
|
|
- WorkExpConvert.INSTANCE.convertList2(workExpMapper.selectByUserIdList(item.getUserId()))
|
|
|
|
|
|
+ item.setWorkList(workExpRespVO
|
|
|
|
+// WorkExpConvert.INSTANCE.convertList2(workExpMapper.selectByUserIdList(item.getUserId()))
|
|
);
|
|
);
|
|
});
|
|
});
|
|
|
|
+ if(!appRecruitJobInterestedRespVOCache.isEmpty()) {
|
|
|
|
+ List<JobInterestedDO> jobInterestedDOS = jobInterestedMapper.selectByUserIdsList(appRecruitJobInterestedRespVOCache.keySet());
|
|
|
|
+ jobInterestedDOS.forEach(item -> appRecruitJobInterestedRespVOCache.getOrDefault(item.getUserId(), new ArrayList<>()).add(JobInterestedConvert.INSTANCE.convert2(item)));
|
|
|
|
+ }
|
|
|
|
+ if(!workExpRespVOCache.isEmpty()) {
|
|
|
|
+ List<WorkExpDO> workExpDOS = workExpMapper.selectByUserIdsList(workExpRespVOCache.keySet());
|
|
|
|
+ workExpDOS.forEach(item->workExpRespVOCache.getOrDefault(item.getUserId(),new ArrayList<>()).add( WorkExpConvert.INSTANCE.convert2(item)));
|
|
|
|
+ }
|
|
|
|
+
|
|
return recruitResult;
|
|
return recruitResult;
|
|
}
|
|
}
|
|
|
|
|
|
@NotNull
|
|
@NotNull
|
|
private PageResult<PersonInfoRespVO> fillArea(PageResult<PersonInfoRespVO> result) {
|
|
private PageResult<PersonInfoRespVO> fillArea(PageResult<PersonInfoRespVO> result) {
|
|
|
|
+
|
|
|
|
+
|
|
result.getList().forEach(item -> {
|
|
result.getList().forEach(item -> {
|
|
if (null != item.getAreaId()) {
|
|
if (null != item.getAreaId()) {
|
|
item.setArea(areaService.getById(item.getAreaId()));
|
|
item.setArea(areaService.getById(item.getAreaId()));
|