投递列表

This commit is contained in:
zk
2026-03-20 20:26:27 +08:00
parent b5611a0f6c
commit 71ad614ce1
3 changed files with 61 additions and 1 deletions
@@ -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);
}
}