feat: Implement job fair company registration review workflow

- Added review status fields to the public_job_fair_company table to manage company registration states (pending, approved, rejected).
- Enhanced PublicJobFairServiceImpl to handle company registration, review, and job management for companies.
- Updated PublicJobFairMapper.xml with new SQL queries for managing company relations and reviews.
- Created migration script to add review fields and set default values for existing records.
- Introduced new permissions for company users to manage job postings and registration status.
- Added utility methods for ensuring proper role checks and company retrieval.
This commit is contained in:
2026-07-15 11:34:31 +08:00
parent 8538de3776
commit 5060fb0557
13 changed files with 1091 additions and 36 deletions

View File

@@ -54,6 +54,25 @@
<result property="scale" column="scale"/>
<result property="industry" column="industry"/>
<result property="companyType" column="nature"/>
<result property="reviewStatus" column="review_status"/>
<result property="reviewBy" column="review_by"/>
<result property="reviewTime" column="review_time"/>
<result property="reviewRemark" column="review_remark"/>
</resultMap>
<resultMap type="com.ruoyi.cms.domain.rc.PublicJobFairCompany" id="PublicJobFairCompanyResult">
<result property="id" column="id"/>
<result property="jobFairId" column="job_fair_id"/>
<result property="companyId" column="company_id"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
<result property="reviewStatus" column="review_status"/>
<result property="reviewBy" column="review_by"/>
<result property="reviewTime" column="review_time"/>
<result property="reviewRemark" column="review_remark"/>
</resultMap>
<sql id="selectPublicJobFairVo">
@@ -91,13 +110,60 @@
</select>
<select id="selectCompanyListByJobFairId" resultMap="CompanyVOResult">
select pfc.id, pfc.company_id, c.name, c.scale, c.industry, c.nature
select pfc.id, pfc.company_id, c.name, c.scale, c.industry, c.nature,
pfc.review_status, pfc.review_by, pfc.review_time, pfc.review_remark
from public_job_fair_company pfc
left join company c on pfc.company_id = c.company_id
where pfc.job_fair_id = #{jobFairId} and pfc.del_flag = '0'
order by pfc.create_time desc
</select>
<select id="selectCompanyRelation" resultMap="PublicJobFairCompanyResult">
select id, job_fair_id, company_id, create_by, create_time, update_by, update_time,
del_flag, review_status, review_by, review_time, review_remark
from public_job_fair_company
where job_fair_id = #{jobFairId}
and company_id = #{companyId}
and del_flag = '0'
order by create_time desc
limit 1
</select>
<select id="selectCompanyRelations" resultMap="PublicJobFairCompanyResult">
select id, job_fair_id, company_id, create_by, create_time, update_by, update_time,
del_flag, review_status, review_by, review_time, review_remark
from public_job_fair_company
where company_id = #{companyId}
and del_flag = '0'
and job_fair_id in
<foreach item="jobFairId" collection="jobFairIds" open="(" separator="," close=")">
#{jobFairId}
</foreach>
order by create_time desc
</select>
<select id="selectCompanyRelationById" resultMap="PublicJobFairCompanyResult">
select id, job_fair_id, company_id, create_by, create_time, update_by, update_time,
del_flag, review_status, review_by, review_time, review_remark
from public_job_fair_company
where id = #{id} and del_flag = '0'
</select>
<update id="updateCompanyReview">
update public_job_fair_company
<set>
review_status = #{reviewStatus},
review_by = #{reviewBy},
review_time = #{reviewTime},
review_remark = #{reviewRemark},
update_by = #{updateBy},
update_time = #{updateTime}
</set>
where id = #{id}
and job_fair_id = #{jobFairId}
and del_flag = '0'
</update>
<select id="selectJobListByJobFairIdAndCompanyId" resultType="com.ruoyi.cms.domain.Job">
select j.job_id, j.job_title, j.min_salary, j.max_salary, j.education, j.experience,
j.company_name, j.job_location, j.job_location_area_code, j.posting_date, j.vacancies,
@@ -203,15 +269,27 @@
</update>
<insert id="insertJobFairCompany">
insert into public_job_fair_company (id, job_fair_id, company_id, create_by, create_time, del_flag)
values (#{id}, #{jobFairId}, #{companyId}, #{createBy}, #{createTime}, '0')
insert into public_job_fair_company (
id, job_fair_id, company_id, create_by, create_time, del_flag,
review_status, review_by, review_time, review_remark
)
values (
#{id}, #{jobFairId}, #{companyId}, #{createBy}, #{createTime}, '0',
#{reviewStatus}, #{reviewBy}, #{reviewTime}, #{reviewRemark}
)
</insert>
<insert id="insertJobFairCompanyBatch">
insert into public_job_fair_company (id, job_fair_id, company_id, create_by, create_time, del_flag)
insert into public_job_fair_company (
id, job_fair_id, company_id, create_by, create_time, del_flag,
review_status, review_by, review_time, review_remark
)
values
<foreach item="item" collection="list" separator=",">
(#{item.id}, #{item.jobFairId}, #{item.companyId}, #{item.createBy}, #{item.createTime}, '0')
(
#{item.id}, #{item.jobFairId}, #{item.companyId}, #{item.createBy}, #{item.createTime}, '0',
#{item.reviewStatus}, #{item.reviewBy}, #{item.reviewTime}, #{item.reviewRemark}
)
</foreach>
</insert>
@@ -219,6 +297,14 @@
update public_job_fair_company set del_flag = '2' where id = #{id}
</update>
<update id="deleteJobFairJobsByCompany">
update public_job_fair_job
set del_flag = '2', update_time = CURRENT_TIMESTAMP
where job_fair_id = #{jobFairId}
and company_id = #{companyId}
and del_flag = '0'
</update>
<insert id="insertJobFairJob">
insert into public_job_fair_job (id, job_fair_id, job_id, company_id, create_by, create_time, del_flag)
values (#{id}, #{jobFairId}, #{jobId}, #{companyId}, #{createBy}, #{createTime}, '0')
@@ -236,6 +322,22 @@
update public_job_fair_job set del_flag = '2' where id = #{id}
</update>
<select id="selectJobRelation" resultType="com.ruoyi.cms.domain.rc.PublicJobFairJob">
select id, job_fair_id, job_id, company_id, create_by, create_time, update_by, update_time, del_flag
from public_job_fair_job
where job_fair_id = #{jobFairId}
and job_id = #{jobId}
and del_flag = '0'
limit 1
</select>
<select id="selectJobRelationById" resultType="com.ruoyi.cms.domain.rc.PublicJobFairJob">
select id, job_fair_id, job_id, company_id, create_by, create_time, update_by, update_time, del_flag
from public_job_fair_job
where id = #{id}
and del_flag = '0'
</select>
<resultMap type="com.ruoyi.cms.domain.rc.JobFairSignUpVO" id="SignUpVOResult">
<result property="id" column="id"/>
<result property="jobFairId" column="job_fair_id"/>