import { request } from '@umijs/max'; import { downLoadXlsx } from '@/utils/downloadfile'; import type { RecruitmentFairExportParams } from './recruitmentFairExport'; const BASE_URL = '/api/cms/publicJobFair'; /** 企业报名审核请求 */ export interface PublicJobFairCompanyReviewParams { reviewStatus: '0' | '1' | '2'; reviewRemark?: string; } /** 企业报名岗位表单 */ export interface PublicJobFairJobForm { jobId?: number; jobTitle: string; minSalary?: number; maxSalary?: number; education?: string; experience?: string; vacancies?: number; jobLocation?: string; jobAddress?: string; description?: string; jobCategory?: string; type?: string; } /** 跨域招聘会岗位列表项 */ export interface CrossDomainJobItem { jobId: number; jobTitle: string; view?: number; minSalary?: number; maxSalary?: number; education?: string; experience?: string; vacancies?: number; postingDate?: string; companyId?: number; companyName?: string; industry?: string; scale?: string; jobFairId?: string; jobFairTitle?: string; crossDomainCities?: string; } /** 跨域岗位查询参数 */ export interface CrossDomainJobParams { /** 逗号分隔的城市名称 */ cityNames?: string; /** 招聘会起始日期(含当天) */ startDate?: string; /** 招聘会起始日期(含当天) */ endDate?: string; current?: number; pageSize?: number; } /** 跨域岗位列表响应 */ export interface CrossDomainJobResult { code: number; msg?: string; total: number; rows: CrossDomainJobItem[]; } /** 查询跨域招聘会下的岗位(可按联盟城市过滤) */ export async function getCrossDomainJobs(params?: CrossDomainJobParams) { return request(`${BASE_URL}/cross-domain-jobs`, { method: 'GET', params, }); } /** 查询跨域线上招聘会的去重统计。 */ export interface CrossDomainStatisticsParams { startDate: string; endDate: string; } export interface CrossDomainStatistics { fairCount: number; companyCount: number; jobCount: number; demandCount: number; viewCount: number; } export async function getCrossDomainStatistics(params: CrossDomainStatisticsParams) { return request<{ code: number; msg?: string; data?: CrossDomainStatistics }>( `${BASE_URL}/cross-domain-statistics`, { method: 'GET', params, }, ); } /** 查询招聘会列表 */ export async function getPublicJobFairList(params?: API.PublicJobFair.ListParams) { return request(`${BASE_URL}/list`, { method: 'GET', params, }); } /** 获取招聘会详情 */ export async function getPublicJobFairDetail(jobFairId: string) { return request(`${BASE_URL}/${jobFairId}`, { method: 'GET', }); } /** 企业报名招聘会 */ export async function signupPublicJobFair(jobFairId: string) { return request(`${BASE_URL}/${jobFairId}/company/signup`, { method: 'POST', }); } /** 管理员审核企业报名 */ export async function reviewPublicJobFairCompany( jobFairId: string, relationId: string, data: PublicJobFairCompanyReviewParams, ) { return request( `${BASE_URL}/${jobFairId}/companies/${relationId}/review`, { method: 'PUT', data, }, ); } /** 新增招聘会 */ export async function addPublicJobFair(data: API.PublicJobFair.JobFairForm) { return request(BASE_URL, { method: 'POST', data, }); } /** 修改招聘会 */ export async function updatePublicJobFair(data: API.PublicJobFair.JobFairForm) { return request(BASE_URL, { method: 'PUT', data, }); } /** 删除招聘会 */ export async function deletePublicJobFair(jobFairIds: string) { return request(`${BASE_URL}/${jobFairIds}`, { method: 'DELETE', }); } /** 添加企业到招聘会 */ export async function addCompanyToJobFair(data: API.PublicJobFair.AddCompanyParams) { return request(`${BASE_URL}/company`, { method: 'POST', data, }); } /** 批量添加企业到招聘会 */ export async function batchAddCompanyToJobFair(data: API.PublicJobFair.AddCompanyParams[]) { return request(`${BASE_URL}/company/batch`, { method: 'POST', data, }); } /** 移除招聘会企业 */ export async function removeCompanyFromJobFair(id: string) { return request(`${BASE_URL}/company/${id}`, { method: 'DELETE', }); } /** 添加岗位到招聘会 */ export async function addJobToJobFair(data: API.PublicJobFair.AddJobParams) { return request(`${BASE_URL}/job`, { method: 'POST', data, }); } /** 批量添加岗位到招聘会 */ export async function batchAddJobToJobFair(data: API.PublicJobFair.AddJobParams[]) { return request(`${BASE_URL}/job/batch`, { method: 'POST', data, }); } /** 移除招聘会岗位 */ export async function removeJobFromJobFair(id: string) { return request(`${BASE_URL}/job/${id}`, { method: 'DELETE', }); } /** 企业新增报名岗位 */ export async function addCurrentCompanyJob(jobFairId: string, data: PublicJobFairJobForm) { return request(`${BASE_URL}/${jobFairId}/company/jobs`, { method: 'POST', data, }); } /** 企业修改报名岗位 */ export async function updateCurrentCompanyJob( jobFairId: string, jobId: number, data: PublicJobFairJobForm, ) { return request(`${BASE_URL}/${jobFairId}/company/jobs/${jobId}`, { method: 'PUT', data, }); } /** 企业删除报名岗位 */ export async function removeCurrentCompanyJob(jobFairId: string, jobId: number) { return request(`${BASE_URL}/${jobFairId}/company/jobs/${jobId}`, { method: 'DELETE', }); } /** 查询当前企业在招聘会中已报名的岗位 */ export async function getCurrentCompanyJobs(jobFairId: string) { return request(`${BASE_URL}/${jobFairId}/company/jobs`, { method: 'GET', }); } /** 查询招聘会报名列表 */ export async function getJobFairSignups( jobFairId: string, params?: { userName?: string; status?: string }, ) { return request(`${BASE_URL}/signups/${jobFairId}`, { method: 'GET', params, }); } /** 查询招聘会企业及岗位 */ export async function getJobFairCompanies(jobFairId: string) { return request(`${BASE_URL}/companies/${jobFairId}`, { method: 'GET', }); } /** 导出招聘会 */ export async function exportPublicJobFair(params: RecruitmentFairExportParams) { return downLoadXlsx( `${BASE_URL}/export`, { params }, `online_fair_participants_${new Date().getTime()}.xlsx`, ); }