diff --git a/client-api/src/main/java/org/jiayunet/controller/JobController.java b/client-api/src/main/java/org/jiayunet/controller/JobController.java index 5972310..a6658a2 100644 --- a/client-api/src/main/java/org/jiayunet/controller/JobController.java +++ b/client-api/src/main/java/org/jiayunet/controller/JobController.java @@ -4,11 +4,7 @@ import lombok.AllArgsConstructor; 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.JobApplyParam; -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.param.job.*; import org.jiayunet.pojo.vo.JobApplyCountVo; import org.jiayunet.pojo.vo.JobFavoriteCountVo; import org.jiayunet.service.JobService; @@ -134,4 +130,13 @@ public class JobController { Long userId = UserSecurityTool.getUserId(); return jobService.getApplyCount(userId); } + + /** + * 求职助手任务列表(tab=1 进行中/待投递,tab=2 已完成) + */ + @PostMapping("/agent/task/list") + public PageResult listAgentTasks(@Validated @RequestBody JobAgentTaskQueryParam param) { + Long userId = UserSecurityTool.getUserId(); + return jobService.listAgentTasks(param, userId); + } } diff --git a/client-api/src/main/java/org/jiayunet/pojo/param/job/JobAgentTaskQueryParam.java b/client-api/src/main/java/org/jiayunet/pojo/param/job/JobAgentTaskQueryParam.java new file mode 100644 index 0000000..b6f475d --- /dev/null +++ b/client-api/src/main/java/org/jiayunet/pojo/param/job/JobAgentTaskQueryParam.java @@ -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; +} diff --git a/client-api/src/main/java/org/jiayunet/service/JobService.java b/client-api/src/main/java/org/jiayunet/service/JobService.java index be9cc3d..bc16f38 100644 --- a/client-api/src/main/java/org/jiayunet/service/JobService.java +++ b/client-api/src/main/java/org/jiayunet/service/JobService.java @@ -8,6 +8,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.JobAgentTaskQueryParam; import org.jiayunet.pojo.param.job.JobApplyQueryParam; import org.jiayunet.pojo.param.job.JobFavoriteQueryParam; import org.jiayunet.pojo.param.job.JobQueryParam; @@ -451,6 +452,37 @@ public class JobService { return listJobs(queryParam, userId); } + /** + * 求职助手任务列表 + *

tab=1 进行中(待投递),tab=2 已完成(已投递及之后状态)

+ */ + public PageResult listAgentTasks(JobAgentTaskQueryParam param, Long userId) { + // 1. 分页查询投递记录 + Page appPage = new Page<>(param.getPageNum(), param.getPageSize()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper().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 applications = userJobApplicationMapper.selectPage(appPage, wrapper); + + // 2. 提取 jobId 列表 + List 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); + } + /** * 投递岗位 *

方法逻辑流程: