feat: 增加跨域招聘会逐场统计明细

This commit is contained in:
2026-07-24 10:24:18 +08:00
parent a7e9d911db
commit 3784dd5208
5 changed files with 136 additions and 1 deletions

View File

@@ -270,6 +270,85 @@
), 0) AS "viewCount"
</select>
<select id="selectCrossDomainFairStatistics"
resultType="com.ruoyi.cms.domain.rc.CrossDomainStatisticsFairItem">
SELECT
f.job_fair_id AS "fairId",
f.job_fair_title AS "fairTitle",
f.job_fair_start_time AS "startTime",
COALESCE((
SELECT COUNT(DISTINCT company_relation.company_id)
FROM public_job_fair_company company_relation
WHERE company_relation.job_fair_id = f.job_fair_id
AND company_relation.del_flag = '0'
AND COALESCE(company_relation.review_status, '1') = '1'
), 0) AS "companyCount",
COALESCE((
SELECT COUNT(DISTINCT fair_job.job_id)
FROM public_job_fair_job fair_job
INNER JOIN job job_info ON job_info.job_id = fair_job.job_id
AND job_info.del_flag = '0'
WHERE fair_job.job_fair_id = f.job_fair_id
AND fair_job.del_flag = '0'
AND EXISTS (
SELECT 1
FROM public_job_fair_company company_relation
WHERE company_relation.job_fair_id = fair_job.job_fair_id
AND company_relation.company_id = fair_job.company_id
AND company_relation.del_flag = '0'
AND COALESCE(company_relation.review_status, '1') = '1'
)
), 0) AS "jobCount",
COALESCE((
SELECT SUM(CASE
WHEN job_info.vacancies IS NULL OR job_info.vacancies <![CDATA[ <= ]]> 0 THEN 1
ELSE job_info.vacancies
END)
FROM (
SELECT DISTINCT fair_job.job_id
FROM public_job_fair_job fair_job
WHERE fair_job.job_fair_id = f.job_fair_id
AND fair_job.del_flag = '0'
AND EXISTS (
SELECT 1
FROM public_job_fair_company company_relation
WHERE company_relation.job_fair_id = fair_job.job_fair_id
AND company_relation.company_id = fair_job.company_id
AND company_relation.del_flag = '0'
AND COALESCE(company_relation.review_status, '1') = '1'
)
) fair_job
INNER JOIN job job_info ON job_info.job_id = fair_job.job_id
AND job_info.del_flag = '0'
), 0) AS "demandCount",
COALESCE((
SELECT SUM(COALESCE(job_info."view", 0))
FROM (
SELECT DISTINCT fair_job.job_id
FROM public_job_fair_job fair_job
WHERE fair_job.job_fair_id = f.job_fair_id
AND fair_job.del_flag = '0'
AND EXISTS (
SELECT 1
FROM public_job_fair_company company_relation
WHERE company_relation.job_fair_id = fair_job.job_fair_id
AND company_relation.company_id = fair_job.company_id
AND company_relation.del_flag = '0'
AND COALESCE(company_relation.review_status, '1') = '1'
)
) fair_job
INNER JOIN job job_info ON job_info.job_id = fair_job.job_id
AND job_info.del_flag = '0'
), 0) AS "viewCount"
FROM public_job_fair f
WHERE UPPER(COALESCE(f.is_cross_domain, 'N')) = 'Y'
AND f.job_fair_type = '1'
AND f.del_flag = '0'
AND f.job_fair_start_time <![CDATA[ >= ]]> #{startDate}
AND f.job_fair_start_time <![CDATA[ < ]]> #{endDate}
ORDER BY f.job_fair_start_time DESC NULLS LAST, f.job_fair_id DESC
</select>
<select id="checkUserSignUp" resultType="java.lang.Integer">
select count(1) from rc_job_fair_sign_up
where job_fair_id = #{jobFairId}::bigint and user_id = #{personId} and del_flag = '0' and status = '0'