feat: 增加跨域招聘会逐场统计明细
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package com.ruoyi.cms.domain.rc;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 跨域线上招聘会统计中的单场明细。
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("跨域线上招聘会统计明细")
|
||||
public class CrossDomainStatisticsFairItem implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("招聘会 ID")
|
||||
private String fairId;
|
||||
|
||||
@ApiModelProperty("招聘会名称")
|
||||
private String fairTitle;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("招聘会起始时间")
|
||||
private Date startTime;
|
||||
|
||||
@ApiModelProperty("参会企业数量")
|
||||
private Long companyCount;
|
||||
|
||||
@ApiModelProperty("岗位数量")
|
||||
private Long jobCount;
|
||||
|
||||
@ApiModelProperty("招聘需求人数")
|
||||
private Long demandCount;
|
||||
|
||||
@ApiModelProperty("岗位浏览量")
|
||||
private Long viewCount;
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 跨域线上招聘会统计汇总。
|
||||
@@ -29,4 +30,7 @@ public class CrossDomainStatisticsVO implements Serializable {
|
||||
|
||||
@ApiModelProperty("岗位浏览量")
|
||||
private Long viewCount;
|
||||
|
||||
@ApiModelProperty("涉及招聘会明细")
|
||||
private List<CrossDomainStatisticsFairItem> fairs;
|
||||
}
|
||||
|
||||
@@ -68,6 +68,12 @@ public interface PublicJobFairMapper extends BaseMapper<PublicJobFair> {
|
||||
CrossDomainStatisticsVO selectCrossDomainStatistics(@Param("startDate") Date startDate,
|
||||
@Param("endDate") Date endDate);
|
||||
|
||||
/**
|
||||
* 查询指定时间范围内跨域线上招聘会的逐场统计明细。
|
||||
*/
|
||||
List<CrossDomainStatisticsFairItem> selectCrossDomainFairStatistics(@Param("startDate") Date startDate,
|
||||
@Param("endDate") Date endDate);
|
||||
|
||||
/**
|
||||
* 检查用户是否已报名
|
||||
*/
|
||||
|
||||
@@ -704,6 +704,11 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
|
||||
|
||||
@Override
|
||||
public CrossDomainStatisticsVO selectCrossDomainStatistics(Date startDate, Date endDate) {
|
||||
return publicJobFairMapper.selectCrossDomainStatistics(startDate, endDate);
|
||||
CrossDomainStatisticsVO statistics = publicJobFairMapper.selectCrossDomainStatistics(startDate, endDate);
|
||||
if (statistics == null) {
|
||||
statistics = new CrossDomainStatisticsVO();
|
||||
}
|
||||
statistics.setFairs(publicJobFairMapper.selectCrossDomainFairStatistics(startDate, endDate));
|
||||
return statistics;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user