添加求职助手任务列表

This commit is contained in:
zk
2026-04-23 21:52:09 +08:00
parent ef1507748f
commit 3db75be486
3 changed files with 67 additions and 5 deletions
@@ -4,11 +4,7 @@ import lombok.AllArgsConstructor;
import org.jiayunet.pojo.PageResult; import org.jiayunet.pojo.PageResult;
import org.jiayunet.pojo.dto.job.JobDetailDto; import org.jiayunet.pojo.dto.job.JobDetailDto;
import org.jiayunet.pojo.dto.job.JobDto; import org.jiayunet.pojo.dto.job.JobDto;
import org.jiayunet.pojo.param.job.JobApplyParam; import org.jiayunet.pojo.param.job.*;
import org.jiayunet.pojo.param.job.JobApplyQueryParam;
import org.jiayunet.pojo.param.job.JobDislikeParam;
import org.jiayunet.pojo.param.job.JobFavoriteQueryParam;
import org.jiayunet.pojo.param.job.JobQueryParam;
import org.jiayunet.pojo.vo.JobApplyCountVo; import org.jiayunet.pojo.vo.JobApplyCountVo;
import org.jiayunet.pojo.vo.JobFavoriteCountVo; import org.jiayunet.pojo.vo.JobFavoriteCountVo;
import org.jiayunet.service.JobService; import org.jiayunet.service.JobService;
@@ -134,4 +130,13 @@ public class JobController {
Long userId = UserSecurityTool.getUserId(); Long userId = UserSecurityTool.getUserId();
return jobService.getApplyCount(userId); return jobService.getApplyCount(userId);
} }
/**
* 求职助手任务列表(tab=1 进行中/待投递,tab=2 已完成)
*/
@PostMapping("/agent/task/list")
public PageResult<JobDto> listAgentTasks(@Validated @RequestBody JobAgentTaskQueryParam param) {
Long userId = UserSecurityTool.getUserId();
return jobService.listAgentTasks(param, userId);
}
} }
@@ -0,0 +1,25 @@
package org.jiayunet.pojo.param.job;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jiayunet.pojo.PageParam;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* 求职助手任务列表查询参数
*
* @author zk
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class JobAgentTaskQueryParam extends PageParam {
/** tab类型 1=进行中(待投递) 2=已完成(已投递及之后状态) */
@NotNull(message = "tab不能为空")
@Min(value = 1, message = "tab值范围1-2")
@Max(value = 2, message = "tab值范围1-2")
private Integer tab;
}
@@ -8,6 +8,7 @@ import org.jiayunet.pojo.PageResult;
import org.jiayunet.pojo.dto.job.JobDetailDto; import org.jiayunet.pojo.dto.job.JobDetailDto;
import org.jiayunet.pojo.dto.job.JobDto; import org.jiayunet.pojo.dto.job.JobDto;
import org.jiayunet.pojo.dto.job.JobMatchScoreDto; import org.jiayunet.pojo.dto.job.JobMatchScoreDto;
import org.jiayunet.pojo.param.job.JobAgentTaskQueryParam;
import org.jiayunet.pojo.param.job.JobApplyQueryParam; import org.jiayunet.pojo.param.job.JobApplyQueryParam;
import org.jiayunet.pojo.param.job.JobFavoriteQueryParam; import org.jiayunet.pojo.param.job.JobFavoriteQueryParam;
import org.jiayunet.pojo.param.job.JobQueryParam; import org.jiayunet.pojo.param.job.JobQueryParam;
@@ -451,6 +452,37 @@ public class JobService {
return listJobs(queryParam, userId); return listJobs(queryParam, userId);
} }
/**
* 求职助手任务列表
* <p>tab=1 进行中(待投递),tab=2 已完成(已投递及之后状态)</p>
*/
public PageResult<JobDto> listAgentTasks(JobAgentTaskQueryParam 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.getTab() == 1) {
wrapper.in(UserJobApplication::getStatus, -1).orderByDesc(UserJobApplication::getCreateTime);
} else {
wrapper.in(UserJobApplication::getStatus, 0, 1, 2, 3, 4).orderByDesc(UserJobApplication::getApplyTime);
}
Page<UserJobApplication> applications = userJobApplicationMapper.selectPage(appPage, wrapper);
// 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);
queryParam.setStatusFilter(Arrays.asList(0, 1, 2));
return listJobs(queryParam, userId);
}
/** /**
* 投递岗位 * 投递岗位
* <p>方法逻辑流程:</p> * <p>方法逻辑流程:</p>