diff --git a/client-api/src/main/java/org/jiayunet/pojo/dto/job/JobDetailDto.java b/client-api/src/main/java/org/jiayunet/pojo/dto/job/JobDetailDto.java index 999884d..5aac86f 100644 --- a/client-api/src/main/java/org/jiayunet/pojo/dto/job/JobDetailDto.java +++ b/client-api/src/main/java/org/jiayunet/pojo/dto/job/JobDetailDto.java @@ -2,6 +2,7 @@ package org.jiayunet.pojo.dto.job; import lombok.Data; +import java.time.Instant; import java.util.List; /** @@ -41,6 +42,15 @@ public class JobDetailDto { /** 要求的行业经验名称 */ private String requiredIndustryName; + /** 发布日期 */ + private Instant expireAt; + + /** 脚本名字 */ + private String pyname; + + /** 招聘分类 0=校招 1=实习 2=社招 3=其他 */ + private Integer recruitCategory; + // ========== 公司信息 ========== /** 公司ID */ private Long companyId; diff --git a/client-api/src/main/java/org/jiayunet/pojo/dto/job/JobDto.java b/client-api/src/main/java/org/jiayunet/pojo/dto/job/JobDto.java index 8787491..6dddb26 100644 --- a/client-api/src/main/java/org/jiayunet/pojo/dto/job/JobDto.java +++ b/client-api/src/main/java/org/jiayunet/pojo/dto/job/JobDto.java @@ -2,6 +2,7 @@ package org.jiayunet.pojo.dto.job; import lombok.Data; +import java.time.Instant; import java.util.List; /** @@ -54,6 +55,15 @@ public class JobDto { /** 岗位状态(0=有效 1=已下架 2=已过期) */ private Integer status; + /** 发布日期 */ + private Instant expireAt; + + /** 脚本名字 */ + private String pyname; + + /** 招聘分类 0=校招 1=实习 2=社招 3=其他 */ + private Integer recruitCategory; + /** 匹配总分(0-100) */ private Integer matchScore; diff --git a/client-api/src/main/java/org/jiayunet/pojo/param/job/JobQueryParam.java b/client-api/src/main/java/org/jiayunet/pojo/param/job/JobQueryParam.java index ea5894d..89a099d 100644 --- a/client-api/src/main/java/org/jiayunet/pojo/param/job/JobQueryParam.java +++ b/client-api/src/main/java/org/jiayunet/pojo/param/job/JobQueryParam.java @@ -33,6 +33,9 @@ public class JobQueryParam extends PageParam { /** 排除岗位ID列表(用于推荐时排除已推荐过的) */ private List excludeJobIds; + /** 招聘分类 0=校招 1=实习 2=社招 3=其他 */ + private Integer recruitCategory; + /** 岗位状态过滤(0=有效 1=已下架 2=已过期,可多选,null或空=查所有) */ private List statusFilter; } 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 01bdc68..f9bf592 100644 --- a/client-api/src/main/java/org/jiayunet/service/JobService.java +++ b/client-api/src/main/java/org/jiayunet/service/JobService.java @@ -112,7 +112,7 @@ public class JobService { List dislikes = userJobDislikeMapper.selectList(new LambdaQueryWrapper().eq(UserJobDislike::getUserId, userId)); // 3. 提取排除列表 - List excludeJobIds = new ArrayList<>(dislikes.stream().map(UserJobDislike::getJobId).filter(Objects::nonNull).distinct().collect(Collectors.toList())); + List excludeJobIds = dislikes.stream().map(UserJobDislike::getJobId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); if (param.getExcludeJobIds() != null && !param.getExcludeJobIds().isEmpty()) { excludeJobIds.addAll(param.getExcludeJobIds()); } @@ -127,7 +127,7 @@ public class JobService { // 6. 执行分页查询 Page pageParam = param.toPage(); pageParam.setSearchCount(false); - Page page = jobMapper.selectJobPage(pageParam, param.getJobIds(),param.getStatusFilter(), param.getKeyword(), expandedRegionCodes, expandedCategoryIds, expandedIndustryIds, param.getEmploymentType(), excludeJobIds, excludeCompanyIds, excludeRegionCodes, excludeIndustryIds); + Page page = jobMapper.selectJobPage(pageParam, param.getJobIds(),param.getStatusFilter(), param.getKeyword(), expandedRegionCodes, expandedCategoryIds, expandedIndustryIds, param.getEmploymentType(), excludeJobIds, excludeCompanyIds, excludeRegionCodes, excludeIndustryIds, param.getRecruitCategory()); // 7. 查询收藏状态 List jobIds = page.getRecords().stream().map(JobListItemVo::getId).collect(Collectors.toList()); @@ -292,6 +292,9 @@ public class JobService { dto.setTags(job.getTags()); dto.setSkillTags(job.getSkillTags()); dto.setSourceUrl(job.getSourceUrl()); + dto.setExpireAt(job.getExpireAt()); + dto.setPyname(job.getPyname()); + dto.setRecruitCategory(job.getRecruitCategory()); dto.setCategoryName(categoryName); dto.setRequiredIndustryName(requiredIndustryName); dto.setCompanyId(company.getId()); diff --git a/manager/src/main/java/org/jiayunet/mapper/JobMapper.java b/manager/src/main/java/org/jiayunet/mapper/JobMapper.java index 4d058f2..ff297d9 100644 --- a/manager/src/main/java/org/jiayunet/mapper/JobMapper.java +++ b/manager/src/main/java/org/jiayunet/mapper/JobMapper.java @@ -19,5 +19,5 @@ public interface JobMapper extends CommonMapper { /** * 分页查询岗位列表 */ - Page selectJobPage(Page page, @Param("jobIds") List jobIds, @Param("statusFilter") List statusFilter, @Param("keyword") String keyword, @Param("regionCodes") List regionCodes, @Param("categoryIds") List categoryIds, @Param("industryIds") List industryIds, @Param("employmentType") Integer employmentType, @Param("excludeJobIds") List excludeJobIds, @Param("excludeCompanyIds") List excludeCompanyIds, @Param("excludeRegionCodes") List excludeRegionCodes, @Param("excludeIndustryIds") List excludeIndustryIds); + Page selectJobPage(Page page, @Param("jobIds") List jobIds, @Param("statusFilter") List statusFilter, @Param("keyword") String keyword, @Param("regionCodes") List regionCodes, @Param("categoryIds") List categoryIds, @Param("industryIds") List industryIds, @Param("employmentType") Integer employmentType, @Param("excludeJobIds") List excludeJobIds, @Param("excludeCompanyIds") List excludeCompanyIds, @Param("excludeRegionCodes") List excludeRegionCodes, @Param("excludeIndustryIds") List excludeIndustryIds, @Param("recruitCategory") Integer recruitCategory); } diff --git a/manager/src/main/java/org/jiayunet/pojo/po/Job.java b/manager/src/main/java/org/jiayunet/pojo/po/Job.java index 27f0d75..0084533 100644 --- a/manager/src/main/java/org/jiayunet/pojo/po/Job.java +++ b/manager/src/main/java/org/jiayunet/pojo/po/Job.java @@ -86,6 +86,9 @@ public class Job { /** 发布日期 */ private Instant expireAt; + /** 脚本名字 */ + private String pyname; + /** 状态 0=上架 1=下架 2=已失效 */ private Integer status; diff --git a/manager/src/main/java/org/jiayunet/pojo/vo/JobListItemVo.java b/manager/src/main/java/org/jiayunet/pojo/vo/JobListItemVo.java index 643c4df..ed48b60 100644 --- a/manager/src/main/java/org/jiayunet/pojo/vo/JobListItemVo.java +++ b/manager/src/main/java/org/jiayunet/pojo/vo/JobListItemVo.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.Data; import org.jiayunet.config.LongListTypeHandler; +import java.time.Instant; import java.util.List; /** @@ -73,4 +74,13 @@ public class JobListItemVo { /** 岗位状态(0=有效 1=已下架 2=已过期) */ private Integer status; + + /** 发布日期 */ + private Instant expireAt; + + /** 脚本名字 */ + private String pyname; + + /** 招聘分类 0=校招 1=实习 2=社招 3=其他 */ + private Integer recruitCategory; } diff --git a/manager/src/main/resources/mapper/JobMapper.xml b/manager/src/main/resources/mapper/JobMapper.xml index 5ce5683..5c33f9d 100644 --- a/manager/src/main/resources/mapper/JobMapper.xml +++ b/manager/src/main/resources/mapper/JobMapper.xml @@ -13,6 +13,9 @@ + + + @@ -36,6 +39,9 @@ j.required_major_ids, j.major_sensitivity, j.status, + j.expire_at, + j.pyname, + j.recruit_category, c.id AS company_id, c.name AS company_name, c.short_name AS company_short_name, @@ -126,6 +132,10 @@ AND j.employment_type = #{employmentType} + + + AND j.recruit_category = #{recruitCategory} + ORDER BY j.id DESC