feat: Add Cross-Domain Job Fair and Alliance City Management

- Implemented AppOutdoorFairController for outdoor job fair public H5 interfaces.
- Created CrossCityAllianceController for managing cross-domain alliance cities.
- Added CrossCityAlliance domain model and corresponding service and mapper.
- Developed CrossDomainJobVO for aggregating job data across job fairs.
- Created SQL scripts for initializing the cross-city alliance table and modifying the public job fair schema.
- Added migration script for backing up and restoring the HighGo database schema.
This commit is contained in:
2026-06-27 22:44:56 +08:00
parent 0ccfb6e6dc
commit b35ed5989e
29 changed files with 1969 additions and 50 deletions

View File

@@ -34,7 +34,10 @@
</sql>
<select id="selectFairJobPage" resultType="com.ruoyi.cms.domain.Job">
SELECT job.*
SELECT job.*,
relation.review_status AS "fairReviewStatus",
relation.review_remark AS "fairReviewRemark",
to_char(relation.review_time, 'YYYY-MM-DD HH24:MI:SS') AS "fairReviewTime"
FROM shz.cms_outdoor_fair_job relation
INNER JOIN shz.job job ON job.job_id = relation.job_id
<include refid="fairJobWhere"/>

View File

@@ -31,6 +31,8 @@
<result property="deptCodeLast" column="dept_code_last"/>
<result property="deptCodeAll" column="dept_code_all"/>
<result property="jobFairCategory" column="job_fair_category"/>
<result property="isCrossDomain" column="is_cross_domain"/>
<result property="crossDomainCities" column="cross_domain_cities"/>
</resultMap>
<resultMap type="com.ruoyi.cms.domain.rc.PublicJobFairDetail" id="DetailResult">
@@ -59,7 +61,7 @@
job_fair_host_unit, job_fair_help_unit, job_fair_organize_unit, job_fair_introduction, job_fair_remark,
job_fair_phone, job_fair_image, job_fair_area_image, create_by, create_time, update_by, update_time,
job_fair_venue_id, job_fair_sign_up_start_time, job_fair_sign_up_end_time, enterprise_num, booth_num,
division_name, dept_code_last, dept_code_all, job_fair_category
division_name, dept_code_last, dept_code_all, job_fair_category, is_cross_domain, cross_domain_cities
from public_job_fair
</sql>
@@ -106,6 +108,23 @@
order by j.create_time desc
</select>
<select id="selectCrossDomainJobs" resultType="com.ruoyi.cms.domain.rc.CrossDomainJobVO">
select j.job_id as jobId, j.job_title as jobTitle, j.min_salary as minSalary, j.max_salary as maxSalary,
j.education, j.experience, j.vacancies, j.posting_date as postingDate,
j.company_id as companyId, j.company_name as companyName,
c.industry, c.scale,
pf.job_fair_id as jobFairId, pf.job_fair_title as jobFairTitle, pf.cross_domain_cities as crossDomainCities
from public_job_fair pf
inner join public_job_fair_job pfj on pfj.job_fair_id = pf.job_fair_id and pfj.del_flag = '0'
inner join job j on j.job_id = pfj.job_id and j.del_flag = '0'
left join company c on c.company_id = pfj.company_id
where pf.is_cross_domain = 'y' and pf.del_flag = '0'
<if test="cityNames != null and cityNames != ''">
and string_to_array(pf.cross_domain_cities, ',') &amp;&amp; string_to_array(#{cityNames}, ',')
</if>
order by j.posting_date desc nulls last, j.job_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'
@@ -126,7 +145,7 @@
job_fair_image, job_fair_area_image, job_fair_venue_id,
job_fair_sign_up_start_time, job_fair_sign_up_end_time,
enterprise_num, booth_num, division_name, dept_code_last, dept_code_all,
job_fair_category, latitude, longitude,
job_fair_category, is_cross_domain, cross_domain_cities, latitude, longitude,
create_by, create_time, del_flag
) values (
#{jobFairId}, #{jobFairTitle}, #{jobFairAddress}, #{jobFairType},
@@ -135,7 +154,7 @@
#{jobFairImage}, #{jobFairAreaImage}, #{jobFairVenueId},
#{jobFairSignUpStartTime}, #{jobFairSignUpEndTime},
#{enterpriseNum}, #{boothNum}, #{divisionName}, #{deptCodeLast}, #{deptCodeAll},
#{jobFairCategory}, #{latitude}, #{longitude},
#{jobFairCategory}, #{isCrossDomain}, #{crossDomainCities}, #{latitude}, #{longitude},
#{createBy}, #{createTime}, '0'
)
</insert>
@@ -165,6 +184,8 @@
<if test="deptCodeLast != null">dept_code_last = #{deptCodeLast},</if>
<if test="deptCodeAll != null">dept_code_all = #{deptCodeAll},</if>
<if test="jobFairCategory != null">job_fair_category = #{jobFairCategory},</if>
<if test="isCrossDomain != null">is_cross_domain = #{isCrossDomain},</if>
<if test="crossDomainCities != null">cross_domain_cities = #{crossDomainCities},</if>
<if test="latitude != null">latitude = #{latitude},</if>
<if test="longitude != null">longitude = #{longitude},</if>
update_by = #{updateBy},