更新:添加岗位匹配简历接口
This commit is contained in:
@@ -365,4 +365,49 @@
|
||||
<delete id="delRowWork">
|
||||
delete from row_work
|
||||
</delete>
|
||||
|
||||
<select id="getRecommendAppUser" resultType="com.ruoyi.common.core.domain.entity.AppUser">
|
||||
SELECT
|
||||
*,
|
||||
CASE match_level
|
||||
WHEN 1 THEN '一级: 学历+区域+薪资+岗位类别'
|
||||
WHEN 2 THEN '二级: 区域+薪资+岗位类别'
|
||||
WHEN 3 THEN '三级: 薪资+岗位类别'
|
||||
WHEN 4 THEN '四级: 仅岗位类别'
|
||||
WHEN 5 THEN '五级: 无满足条件'
|
||||
END AS match_level_desc
|
||||
FROM (
|
||||
SELECT
|
||||
*,
|
||||
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY match_level asc) AS best_rn
|
||||
FROM (
|
||||
SELECT
|
||||
r.*,
|
||||
CASE
|
||||
WHEN CAST(j.job_id AS TEXT) = ANY(string_to_array(r.job_title_id, ','))
|
||||
AND ((CAST(r.salary_min AS INTEGER) <= p.max_salary AND CAST(r.salary_max AS INTEGER) >= p.min_salary) OR p.max_salary IS NULL)
|
||||
AND (CAST(r.area AS INTEGER) = CAST(p.job_location_area_code AS INTEGER) OR p.job_location_area_code IS NULL)
|
||||
AND (CAST(r.education AS INTEGER) >=CAST(p.education AS INTEGER) OR p.education IS NULL OR p.education = '-1')
|
||||
THEN 1
|
||||
WHEN CAST(j.job_id AS TEXT) = ANY(string_to_array(r.job_title_id, ','))
|
||||
AND ((CAST(r.salary_min AS INTEGER) <= p.max_salary AND CAST(r.salary_max AS INTEGER) >= p.min_salary) OR p.max_salary IS NULL)
|
||||
AND (CAST(r.area AS INTEGER) = CAST(p.job_location_area_code AS INTEGER) OR p.job_location_area_code IS NULL)
|
||||
THEN 2
|
||||
WHEN CAST(j.job_id AS TEXT) = ANY(string_to_array(r.job_title_id, ','))
|
||||
AND ((CAST(r.salary_min AS INTEGER) <= p.max_salary AND CAST(r.salary_max AS INTEGER) >= p.min_salary) OR p.max_salary IS NULL)
|
||||
THEN 3
|
||||
WHEN (CAST(j.job_id AS TEXT) = ANY(string_to_array(r.job_title_id, ',')) OR p.job_category IS NULL)
|
||||
THEN 4
|
||||
ELSE 5
|
||||
END AS match_level
|
||||
FROM shz.job p
|
||||
JOIN shz.app_user r ON r.del_flag = '0'
|
||||
JOIN shz.job_title j ON j.job_name = p.job_category
|
||||
WHERE p.job_id = #{jobId}
|
||||
) c
|
||||
) t
|
||||
WHERE best_rn = 1
|
||||
ORDER BY match_level ASC, login_date DESC
|
||||
LIMIT (SELECT vacancies FROM shz.job WHERE job_id = #{jobId})
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user