面试功能开发

This commit is contained in:
francis-fh
2026-06-25 13:32:37 +08:00
parent 92ff657e71
commit feaa9cf747
10 changed files with 331 additions and 11 deletions

View File

@@ -16,6 +16,7 @@
<result property="meetingPassword" column="meeting_password"/>
<result property="interviewLocation" column="interview_location"/>
<result property="contactPhone" column="contact_phone"/>
<result property="interviewerName" column="interviewer_name"/>
<result property="companyName" column="company_name"/>
<result property="jobName" column="job_name"/>
<result property="status" column="status"/>
@@ -30,12 +31,14 @@
<!-- VO 带公司名和岗位名继承基础映射jobTitle 来自关联查询的实时数据) -->
<resultMap type="com.ruoyi.cms.domain.vo.InterviewInvitationVO" id="InterviewInvitationVOResult" extends="InterviewInvitationResult">
<result property="jobTitle" column="job_title"/>
<result property="applicantName" column="applicant_name"/>
<result property="applicantPhone" column="applicant_phone"/>
</resultMap>
<sql id="selectInterviewInvitationVo">
select id, company_id, job_id, user_id, apply_id, interview_time,
interview_method, meeting_link, meeting_password, interview_location,
contact_phone, company_name, job_name, status, del_flag,
contact_phone, interviewer_name, company_name, job_name, status, del_flag,
create_by, create_time, update_by, update_time, remark
from interview_invitation
</sql>
@@ -56,10 +59,13 @@
<select id="getInterviewInvitationVOList" resultMap="InterviewInvitationVOResult" parameterType="InterviewInvitation">
select t.*,
COALESCE(c.name, t.company_name) as company_name,
COALESCE(j.job_title, t.job_name) as job_title
COALESCE(j.job_title, t.job_name) as job_title,
u.name as applicant_name,
u.phone as applicant_phone
from interview_invitation t
left join company c on c.company_id = t.company_id and c.del_flag = '0'
left join job j on j.job_id = t.job_id and j.del_flag = '0'
left join app_user u on u.user_id = t.user_id and u.del_flag = '0'
<where> t.del_flag = '0'
<if test="companyId != null and companyId != ''"> and t.company_id = #{companyId}</if>
<if test="jobId != null and jobId != ''"> and t.job_id = #{jobId}</if>

View File

@@ -42,10 +42,26 @@
ORDER BY ja.create_time DESC
</select>
<select id="candidates" resultType="com.ruoyi.cms.domain.vo.CandidateVO">
SELECT au.*,jc.create_time as apply_date,jc.matching_degree,jc.id as applyId
SELECT au.*, jc.create_time as apply_date, jc.matching_degree, jc.id as applyId,
latest_ii.status as interviewStatus, latest_ii.id as interviewId
from job_apply as jc
inner join app_user as au on jc.user_id = au.user_id
left join (
select ii1.*
from interview_invitation ii1
inner join (
select user_id, job_id, max(create_time) as max_ct
from interview_invitation
where del_flag = '0'
group by user_id, job_id
) ii2 on ii1.user_id = ii2.user_id
and ii1.job_id = ii2.job_id
and ii1.create_time = ii2.max_ct
) latest_ii on latest_ii.user_id = jc.user_id
and latest_ii.job_id = jc.job_id
and latest_ii.del_flag = '0'
where jc.job_id = #{jobId} and jc.del_flag = '0' and au.del_flag ='0'
order by jc.create_time desc
</select>
<select id="trendChart" resultType="java.util.HashMap" parameterType="JobApply">
@@ -104,10 +120,26 @@
</select>
<select id="selectApplyJobUserList" parameterType="com.ruoyi.common.core.domain.entity.AppUser" resultType="com.ruoyi.cms.domain.vo.CandidateVO">
select a.id applyId, a.hire, b.job_title jobName,l.name companyName,e.* from job_apply a
select a.id applyId, a.hire, b.job_title jobName, l.name companyName, e.*,
latest_ii.status as interviewStatus, latest_ii.id as interviewId
from job_apply a
INNER join job b on a.job_id=b.job_id and b.del_flag='0'
INNER join app_user e on a.user_id =e.user_id and e.del_flag='0'
INNER join company l on b.company_id =l.company_id and l.del_flag='0'
left join (
select ii1.*
from interview_invitation ii1
inner join (
select user_id, job_id, max(create_time) as max_ct
from interview_invitation
where del_flag = '0'
group by user_id, job_id
) ii2 on ii1.user_id = ii2.user_id
and ii1.job_id = ii2.job_id
and ii1.create_time = ii2.max_ct
) latest_ii on latest_ii.user_id = a.user_id
and latest_ii.job_id = a.job_id
and latest_ii.del_flag = '0'
where a.del_flag='0'
<if test="company != null and company.jobTitle != null and company.jobTitle != ''"> and b.job_title like concat('%', cast(#{company.jobTitle, jdbcType=VARCHAR} as varchar), '%')</if>
<if test="company != null and company.education != null and company.education != ''"> and b.education = #{company.education}</if>