投递列表
This commit is contained in:
@@ -5,6 +5,7 @@ import org.jiayunet.pojo.PageParam;
|
||||
import org.jiayunet.pojo.PageResult;
|
||||
import org.jiayunet.pojo.dto.job.JobDetailDto;
|
||||
import org.jiayunet.pojo.dto.job.JobDto;
|
||||
import org.jiayunet.pojo.param.job.JobApplyQueryParam;
|
||||
import org.jiayunet.pojo.param.job.JobDislikeParam;
|
||||
import org.jiayunet.pojo.param.job.JobQueryParam;
|
||||
import org.jiayunet.service.JobService;
|
||||
@@ -79,4 +80,13 @@ public class JobController {
|
||||
Long userId = UserSecurityTool.getUserId();
|
||||
return jobService.listFavoriteJobs(param, userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 投递列表
|
||||
*/
|
||||
@PostMapping("/apply/list")
|
||||
public PageResult<JobDto> listApplications(@Validated @RequestBody JobApplyQueryParam param) {
|
||||
Long userId = UserSecurityTool.getUserId();
|
||||
return jobService.listApplications(param, userId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package org.jiayunet.pojo.param.job;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.jiayunet.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 投递列表查询参数
|
||||
*
|
||||
* @author zk
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class JobApplyQueryParam extends PageParam {
|
||||
|
||||
/** 投递状态(可选筛选,0=已投递 1=面试中 2=有Offer 3=未通过 4=已结束) */
|
||||
private Integer status;
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import org.jiayunet.pojo.PageResult;
|
||||
import org.jiayunet.pojo.dto.job.JobDetailDto;
|
||||
import org.jiayunet.pojo.dto.job.JobDto;
|
||||
import org.jiayunet.pojo.dto.job.JobMatchScoreDto;
|
||||
import org.jiayunet.pojo.param.job.JobApplyQueryParam;
|
||||
import org.jiayunet.pojo.param.job.JobQueryParam;
|
||||
import org.jiayunet.pojo.po.*;
|
||||
import org.jiayunet.pojo.vo.JobListItemVo;
|
||||
@@ -380,7 +381,7 @@ public class JobService {
|
||||
*/
|
||||
public PageResult<JobDto> listFavoriteJobs(PageParam param, Long userId) {
|
||||
// 1. 分页查询收藏记录
|
||||
Page<UserJobFavorite> favPage = new Page<>(param.getPageNum(), param.getPageNum());
|
||||
Page<UserJobFavorite> favPage = new Page<>(param.getPageNum(), param.getPageSize());
|
||||
Page<UserJobFavorite> favorites = userJobFavoriteMapper.selectPage(favPage, new LambdaQueryWrapper<UserJobFavorite>().eq(UserJobFavorite::getUserId, userId).orderByDesc(UserJobFavorite::getCreateTime));
|
||||
|
||||
// 2. 提取 jobId 列表
|
||||
@@ -397,4 +398,35 @@ public class JobService {
|
||||
|
||||
return listJobs(queryParam, userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 投递列表查询
|
||||
* <p>方法逻辑流程:</p>
|
||||
* <p>1. 分页查询投递记录(可选 status 筛选,按 applyTime 倒序)</p>
|
||||
* <p>2. 提取岗位ID列表</p>
|
||||
* <p>3. 复用岗位列表查询逻辑</p>
|
||||
*/
|
||||
public PageResult<JobDto> listApplications(JobApplyQueryParam param, Long userId) {
|
||||
// 1. 分页查询投递记录
|
||||
Page<UserJobApplication> appPage = new Page<>(param.getPageNum(), param.getPageSize());
|
||||
LambdaQueryWrapper<UserJobApplication> wrapper = new LambdaQueryWrapper<UserJobApplication>().eq(UserJobApplication::getUserId, userId);
|
||||
if (param.getStatus() != null) {
|
||||
wrapper.eq(UserJobApplication::getStatus, param.getStatus());
|
||||
}
|
||||
Page<UserJobApplication> applications = userJobApplicationMapper.selectPage(appPage, wrapper.orderByDesc(UserJobApplication::getApplyTime));
|
||||
|
||||
// 2. 提取 jobId 列表
|
||||
List<Long> jobIds = applications.getRecords().stream().map(UserJobApplication::getJobId).collect(Collectors.toList());
|
||||
if (jobIds.isEmpty()) {
|
||||
return new PageResult<>(param.getPageNum().longValue(), param.getPageSize().longValue(), 0L, Collections.emptyList());
|
||||
}
|
||||
|
||||
// 3. 构造查询参数,复用岗位列表逻辑
|
||||
JobQueryParam queryParam = new JobQueryParam();
|
||||
queryParam.setPageNum(param.getPageNum());
|
||||
queryParam.setPageSize(param.getPageSize());
|
||||
queryParam.setJobIds(jobIds);
|
||||
|
||||
return listJobs(queryParam, userId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user