添加投递状态
This commit is contained in:
@@ -48,6 +48,9 @@ public class JobDto {
|
|||||||
/** 是否收藏 */
|
/** 是否收藏 */
|
||||||
private Boolean isFavorite;
|
private Boolean isFavorite;
|
||||||
|
|
||||||
|
/** 投递状态(null=未投递,0=已投递 1=面试中 2=有Offer 3=未通过 4=已结束) */
|
||||||
|
private Integer applicationStatus;
|
||||||
|
|
||||||
/** 匹配总分(0-90) */
|
/** 匹配总分(0-90) */
|
||||||
private Integer matchScore;
|
private Integer matchScore;
|
||||||
|
|
||||||
|
|||||||
@@ -22,9 +22,9 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 岗位服务
|
* 岗位服务
|
||||||
* <p>主要功能:岗位列表查询、岗位详情查询、岗位收藏管理、岗位不感兴趣管理、匹配度计算</p>
|
* <p>主要功能:岗位列表查询、岗位详情查询、岗位收藏管理、岗位不感兴趣管理、岗位投递管理、匹配度计算</p>
|
||||||
* <p>依赖服务:JobMatchService(匹配度计算)</p>
|
* <p>依赖服务:JobMatchService(匹配度计算)</p>
|
||||||
* <p>使用的表:bg_job、bg_company、bg_user_job_dislike、bg_user_job_favorite、bg_job_region、bg_china_regions_code、bg_job_category、bg_industry</p>
|
* <p>使用的表:bg_job、bg_company、bg_user_job_dislike、bg_user_job_favorite、bg_user_job_application、bg_job_region、bg_china_regions_code、bg_job_category、bg_industry</p>
|
||||||
*
|
*
|
||||||
* @author zk
|
* @author zk
|
||||||
*/
|
*/
|
||||||
@@ -56,6 +56,9 @@ public class JobService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private JobRegionRelationMapper jobRegionRelationMapper;
|
private JobRegionRelationMapper jobRegionRelationMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserJobApplicationMapper userJobApplicationMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private JobMatchService jobMatchService;
|
private JobMatchService jobMatchService;
|
||||||
|
|
||||||
@@ -96,14 +99,18 @@ public class JobService {
|
|||||||
List<Long> jobIds = page.getRecords().stream().map(JobListItemVo::getId).collect(Collectors.toList());
|
List<Long> jobIds = page.getRecords().stream().map(JobListItemVo::getId).collect(Collectors.toList());
|
||||||
Map<Long, Boolean> favoriteMap = getFavoriteMap(userId, jobIds);
|
Map<Long, Boolean> favoriteMap = getFavoriteMap(userId, jobIds);
|
||||||
|
|
||||||
// 8. 批量计算匹配度
|
// 8. 查询投递状态
|
||||||
|
Map<Long, Integer> applicationMap = getApplicationStatusMap(userId, jobIds);
|
||||||
|
|
||||||
|
// 9. 批量计算匹配度
|
||||||
Map<Long, Map<String, Integer>> matchScoreMap = jobMatchService.batchCalculateMatchScore(page.getRecords(), userId);
|
Map<Long, Map<String, Integer>> matchScoreMap = jobMatchService.batchCalculateMatchScore(page.getRecords(), userId);
|
||||||
|
|
||||||
// 9. 组装返回数据
|
// 10. 组装返回数据
|
||||||
List<JobDto> dtoList = page.getRecords().stream().map(vo -> {
|
List<JobDto> dtoList = page.getRecords().stream().map(vo -> {
|
||||||
JobDto dto = new JobDto();
|
JobDto dto = new JobDto();
|
||||||
BeanUtils.copyProperties(vo, dto);
|
BeanUtils.copyProperties(vo, dto);
|
||||||
dto.setIsFavorite(favoriteMap.getOrDefault(vo.getId(), false));
|
dto.setIsFavorite(favoriteMap.getOrDefault(vo.getId(), false));
|
||||||
|
dto.setApplicationStatus(applicationMap.get(vo.getId()));
|
||||||
Map<String, Integer> scoreMap = matchScoreMap.get(vo.getId());
|
Map<String, Integer> scoreMap = matchScoreMap.get(vo.getId());
|
||||||
if (scoreMap != null) {
|
if (scoreMap != null) {
|
||||||
JobMatchScoreDto matchScore = new JobMatchScoreDto(scoreMap.get("industryScore"), scoreMap.get("skillScore"), scoreMap.get("experienceScore"));
|
JobMatchScoreDto matchScore = new JobMatchScoreDto(scoreMap.get("industryScore"), scoreMap.get("skillScore"), scoreMap.get("experienceScore"));
|
||||||
@@ -167,6 +174,18 @@ public class JobService {
|
|||||||
return favorites.stream().collect(Collectors.toMap(UserJobFavorite::getJobId, f -> true));
|
return favorites.stream().collect(Collectors.toMap(UserJobFavorite::getJobId, f -> true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询投递状态Map
|
||||||
|
* <p>批量查询用户对岗位的投递状态</p>
|
||||||
|
*/
|
||||||
|
private Map<Long, Integer> getApplicationStatusMap(Long userId, List<Long> jobIds) {
|
||||||
|
if (jobIds == null || jobIds.isEmpty()) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
List<UserJobApplication> applications = userJobApplicationMapper.selectList(new LambdaQueryWrapper<UserJobApplication>().eq(UserJobApplication::getUserId, userId).in(UserJobApplication::getJobId, jobIds));
|
||||||
|
return applications.stream().collect(Collectors.toMap(UserJobApplication::getJobId, UserJobApplication::getStatus));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询岗位详情
|
* 查询岗位详情
|
||||||
|
|||||||
Reference in New Issue
Block a user