岗位表 修改查询相关字段

This commit is contained in:
zk
2026-06-04 10:45:33 +08:00
parent 28179e2a4d
commit e4384b003f
8 changed files with 52 additions and 3 deletions
@@ -2,6 +2,7 @@ package org.jiayunet.pojo.dto.job;
import lombok.Data; import lombok.Data;
import java.time.Instant;
import java.util.List; import java.util.List;
/** /**
@@ -41,6 +42,15 @@ public class JobDetailDto {
/** 要求的行业经验名称 */ /** 要求的行业经验名称 */
private String requiredIndustryName; private String requiredIndustryName;
/** 发布日期 */
private Instant expireAt;
/** 脚本名字 */
private String pyname;
/** 招聘分类 0=校招 1=实习 2=社招 3=其他 */
private Integer recruitCategory;
// ========== 公司信息 ========== // ========== 公司信息 ==========
/** 公司ID */ /** 公司ID */
private Long companyId; private Long companyId;
@@ -2,6 +2,7 @@ package org.jiayunet.pojo.dto.job;
import lombok.Data; import lombok.Data;
import java.time.Instant;
import java.util.List; import java.util.List;
/** /**
@@ -54,6 +55,15 @@ public class JobDto {
/** 岗位状态(0=有效 1=已下架 2=已过期) */ /** 岗位状态(0=有效 1=已下架 2=已过期) */
private Integer status; private Integer status;
/** 发布日期 */
private Instant expireAt;
/** 脚本名字 */
private String pyname;
/** 招聘分类 0=校招 1=实习 2=社招 3=其他 */
private Integer recruitCategory;
/** 匹配总分(0-100 */ /** 匹配总分(0-100 */
private Integer matchScore; private Integer matchScore;
@@ -33,6 +33,9 @@ public class JobQueryParam extends PageParam {
/** 排除岗位ID列表(用于推荐时排除已推荐过的) */ /** 排除岗位ID列表(用于推荐时排除已推荐过的) */
private List<Long> excludeJobIds; private List<Long> excludeJobIds;
/** 招聘分类 0=校招 1=实习 2=社招 3=其他 */
private Integer recruitCategory;
/** 岗位状态过滤(0=有效 1=已下架 2=已过期,可多选,null或空=查所有) */ /** 岗位状态过滤(0=有效 1=已下架 2=已过期,可多选,null或空=查所有) */
private List<Integer> statusFilter; private List<Integer> statusFilter;
} }
@@ -112,7 +112,7 @@ public class JobService {
List<UserJobDislike> dislikes = userJobDislikeMapper.selectList(new LambdaQueryWrapper<UserJobDislike>().eq(UserJobDislike::getUserId, userId)); List<UserJobDislike> dislikes = userJobDislikeMapper.selectList(new LambdaQueryWrapper<UserJobDislike>().eq(UserJobDislike::getUserId, userId));
// 3. 提取排除列表 // 3. 提取排除列表
List<Long> excludeJobIds = new ArrayList<>(dislikes.stream().map(UserJobDislike::getJobId).filter(Objects::nonNull).distinct().collect(Collectors.toList())); List<Long> excludeJobIds = dislikes.stream().map(UserJobDislike::getJobId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
if (param.getExcludeJobIds() != null && !param.getExcludeJobIds().isEmpty()) { if (param.getExcludeJobIds() != null && !param.getExcludeJobIds().isEmpty()) {
excludeJobIds.addAll(param.getExcludeJobIds()); excludeJobIds.addAll(param.getExcludeJobIds());
} }
@@ -127,7 +127,7 @@ public class JobService {
// 6. 执行分页查询 // 6. 执行分页查询
Page<JobListItemVo> pageParam = param.toPage(); Page<JobListItemVo> pageParam = param.toPage();
pageParam.setSearchCount(false); pageParam.setSearchCount(false);
Page<JobListItemVo> page = jobMapper.selectJobPage(pageParam, param.getJobIds(),param.getStatusFilter(), param.getKeyword(), expandedRegionCodes, expandedCategoryIds, expandedIndustryIds, param.getEmploymentType(), excludeJobIds, excludeCompanyIds, excludeRegionCodes, excludeIndustryIds); Page<JobListItemVo> page = jobMapper.selectJobPage(pageParam, param.getJobIds(),param.getStatusFilter(), param.getKeyword(), expandedRegionCodes, expandedCategoryIds, expandedIndustryIds, param.getEmploymentType(), excludeJobIds, excludeCompanyIds, excludeRegionCodes, excludeIndustryIds, param.getRecruitCategory());
// 7. 查询收藏状态 // 7. 查询收藏状态
List<Long> jobIds = page.getRecords().stream().map(JobListItemVo::getId).collect(Collectors.toList()); List<Long> jobIds = page.getRecords().stream().map(JobListItemVo::getId).collect(Collectors.toList());
@@ -292,6 +292,9 @@ public class JobService {
dto.setTags(job.getTags()); dto.setTags(job.getTags());
dto.setSkillTags(job.getSkillTags()); dto.setSkillTags(job.getSkillTags());
dto.setSourceUrl(job.getSourceUrl()); dto.setSourceUrl(job.getSourceUrl());
dto.setExpireAt(job.getExpireAt());
dto.setPyname(job.getPyname());
dto.setRecruitCategory(job.getRecruitCategory());
dto.setCategoryName(categoryName); dto.setCategoryName(categoryName);
dto.setRequiredIndustryName(requiredIndustryName); dto.setRequiredIndustryName(requiredIndustryName);
dto.setCompanyId(company.getId()); dto.setCompanyId(company.getId());
@@ -19,5 +19,5 @@ public interface JobMapper extends CommonMapper<Job> {
/** /**
* 分页查询岗位列表 * 分页查询岗位列表
*/ */
Page<JobListItemVo> selectJobPage(Page<JobListItemVo> page, @Param("jobIds") List<Long> jobIds, @Param("statusFilter") List<Integer> statusFilter, @Param("keyword") String keyword, @Param("regionCodes") List<String> regionCodes, @Param("categoryIds") List<Long> categoryIds, @Param("industryIds") List<Long> industryIds, @Param("employmentType") Integer employmentType, @Param("excludeJobIds") List<Long> excludeJobIds, @Param("excludeCompanyIds") List<Long> excludeCompanyIds, @Param("excludeRegionCodes") List<String> excludeRegionCodes, @Param("excludeIndustryIds") List<Long> excludeIndustryIds); Page<JobListItemVo> selectJobPage(Page<JobListItemVo> page, @Param("jobIds") List<Long> jobIds, @Param("statusFilter") List<Integer> statusFilter, @Param("keyword") String keyword, @Param("regionCodes") List<String> regionCodes, @Param("categoryIds") List<Long> categoryIds, @Param("industryIds") List<Long> industryIds, @Param("employmentType") Integer employmentType, @Param("excludeJobIds") List<Long> excludeJobIds, @Param("excludeCompanyIds") List<Long> excludeCompanyIds, @Param("excludeRegionCodes") List<String> excludeRegionCodes, @Param("excludeIndustryIds") List<Long> excludeIndustryIds, @Param("recruitCategory") Integer recruitCategory);
} }
@@ -86,6 +86,9 @@ public class Job {
/** 发布日期 */ /** 发布日期 */
private Instant expireAt; private Instant expireAt;
/** 脚本名字 */
private String pyname;
/** 状态 0=上架 1=下架 2=已失效 */ /** 状态 0=上架 1=下架 2=已失效 */
private Integer status; private Integer status;
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data; import lombok.Data;
import org.jiayunet.config.LongListTypeHandler; import org.jiayunet.config.LongListTypeHandler;
import java.time.Instant;
import java.util.List; import java.util.List;
/** /**
@@ -73,4 +74,13 @@ public class JobListItemVo {
/** 岗位状态(0=有效 1=已下架 2=已过期) */ /** 岗位状态(0=有效 1=已下架 2=已过期) */
private Integer status; private Integer status;
/** 发布日期 */
private Instant expireAt;
/** 脚本名字 */
private String pyname;
/** 招聘分类 0=校招 1=实习 2=社招 3=其他 */
private Integer recruitCategory;
} }
@@ -13,6 +13,9 @@
<result column="required_major_ids" property="requiredMajorIds" typeHandler="org.jiayunet.config.LongListTypeHandler"/> <result column="required_major_ids" property="requiredMajorIds" typeHandler="org.jiayunet.config.LongListTypeHandler"/>
<result column="major_sensitivity" property="majorSensitivity"/> <result column="major_sensitivity" property="majorSensitivity"/>
<result column="status" property="status"/> <result column="status" property="status"/>
<result column="expire_at" property="expireAt"/>
<result column="pyname" property="pyname"/>
<result column="recruit_category" property="recruitCategory"/>
<result column="company_id" property="companyId"/> <result column="company_id" property="companyId"/>
<result column="company_name" property="companyName"/> <result column="company_name" property="companyName"/>
<result column="company_short_name" property="companyShortName"/> <result column="company_short_name" property="companyShortName"/>
@@ -36,6 +39,9 @@
j.required_major_ids, j.required_major_ids,
j.major_sensitivity, j.major_sensitivity,
j.status, j.status,
j.expire_at,
j.pyname,
j.recruit_category,
c.id AS company_id, c.id AS company_id,
c.name AS company_name, c.name AS company_name,
c.short_name AS company_short_name, c.short_name AS company_short_name,
@@ -126,6 +132,10 @@
<if test="employmentType != null"> <if test="employmentType != null">
AND j.employment_type = #{employmentType} AND j.employment_type = #{employmentType}
</if> </if>
<!-- 筛选条件:招聘分类 -->
<if test="recruitCategory != null">
AND j.recruit_category = #{recruitCategory}
</if>
ORDER BY j.id DESC ORDER BY j.id DESC
</select> </select>