招聘会
This commit is contained in:
@@ -67,7 +67,7 @@ public class ESJobSearchImpl implements IESJobSearchService
|
||||
/**
|
||||
* 项目启动时,初始化索引及数据
|
||||
*/
|
||||
@PostConstruct
|
||||
// @PostConstruct
|
||||
public void init()
|
||||
{
|
||||
boolean isLockAcquired = false;
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.cms.service.rc;
|
||||
|
||||
/**
|
||||
* 招聘会报名Service接口
|
||||
*/
|
||||
public interface IJobFairSignUpService {
|
||||
|
||||
/**
|
||||
* 报名招聘会
|
||||
*/
|
||||
int signUp(Long jobFairId);
|
||||
|
||||
/**
|
||||
* 取消报名
|
||||
*/
|
||||
int cancelSignUp(Long jobFairId);
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.ruoyi.cms.service.rc;
|
||||
|
||||
import com.ruoyi.cms.domain.rc.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公共招聘会Service接口
|
||||
*/
|
||||
public interface IPublicJobFairService {
|
||||
|
||||
/**
|
||||
* 分页查询招聘会列表(APP端)
|
||||
*/
|
||||
PublicJobFairResponse getJobFairPage(PublicJobFairQuery query);
|
||||
|
||||
/**
|
||||
* 获取招聘会详情(APP端)
|
||||
*/
|
||||
PublicJobFairDetail getJobFairDetail(String jobFairId);
|
||||
|
||||
/**
|
||||
* 获取招聘会企业及岗位列表
|
||||
*/
|
||||
List<PublicJobFairCompanyVO> getEnterprisesWithJobs(String jobFairId);
|
||||
|
||||
// ========== CMS后台管理接口 ==========
|
||||
|
||||
/**
|
||||
* 查询招聘会列表(CMS)
|
||||
*/
|
||||
List<PublicJobFair> selectList(PublicJobFairQuery query);
|
||||
|
||||
/**
|
||||
* 根据ID查询招聘会
|
||||
*/
|
||||
PublicJobFair selectById(String jobFairId);
|
||||
|
||||
/**
|
||||
* 新增招聘会
|
||||
*/
|
||||
int insert(PublicJobFair publicJobFair);
|
||||
|
||||
/**
|
||||
* 修改招聘会
|
||||
*/
|
||||
int update(PublicJobFair publicJobFair);
|
||||
|
||||
/**
|
||||
* 批量删除招聘会
|
||||
*/
|
||||
int deleteByIds(String[] jobFairIds);
|
||||
|
||||
/**
|
||||
* 添加企业到招聘会
|
||||
*/
|
||||
int addCompany(PublicJobFairCompany company);
|
||||
|
||||
/**
|
||||
* 批量添加企业到招聘会
|
||||
*/
|
||||
int addCompanyBatch(List<PublicJobFairCompany> companies);
|
||||
|
||||
/**
|
||||
* 移除招聘会企业
|
||||
*/
|
||||
int removeCompany(String id);
|
||||
|
||||
/**
|
||||
* 添加岗位到招聘会
|
||||
*/
|
||||
int addJob(PublicJobFairJob job);
|
||||
|
||||
/**
|
||||
* 批量添加岗位到招聘会
|
||||
*/
|
||||
int addJobBatch(List<PublicJobFairJob> jobs);
|
||||
|
||||
/**
|
||||
* 移除招聘会岗位
|
||||
*/
|
||||
int removeJob(String id);
|
||||
|
||||
/**
|
||||
* 查询招聘会报名列表
|
||||
*/
|
||||
List<JobFairSignUpVO> selectSignUpList(String jobFairId);
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.ruoyi.cms.service.rc.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cms.domain.rc.JobFairSignUp;
|
||||
import com.ruoyi.cms.mapper.rc.JobFairSignUpMapper;
|
||||
import com.ruoyi.cms.service.rc.IJobFairSignUpService;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 招聘会报名Service业务层处理
|
||||
*/
|
||||
@Service
|
||||
public class JobFairSignUpServiceImpl extends ServiceImpl<JobFairSignUpMapper, JobFairSignUp> implements IJobFairSignUpService {
|
||||
|
||||
@Autowired
|
||||
private JobFairSignUpMapper jobFairSignUpMapper;
|
||||
|
||||
@Override
|
||||
public int signUp(Long jobFairId) {
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
|
||||
// 检查是否已有报名记录
|
||||
JobFairSignUp existSignUp = jobFairSignUpMapper.checkSignUp(jobFairId, userId);
|
||||
|
||||
if (existSignUp != null) {
|
||||
// 已有记录
|
||||
if ("0".equals(existSignUp.getStatus())) {
|
||||
throw new ServiceException("您已报名该招聘会,请勿重复报名");
|
||||
}
|
||||
// 已取消的记录,重新激活
|
||||
existSignUp.setStatus("0");
|
||||
existSignUp.setSignUpTime(new Date());
|
||||
return jobFairSignUpMapper.updateById(existSignUp);
|
||||
}
|
||||
|
||||
// 新增报名记录
|
||||
JobFairSignUp signUp = new JobFairSignUp();
|
||||
signUp.setJobFairId(jobFairId);
|
||||
signUp.setUserId(userId);
|
||||
signUp.setSignUpTime(new Date());
|
||||
signUp.setStatus("0");
|
||||
|
||||
return jobFairSignUpMapper.insert(signUp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int cancelSignUp(Long jobFairId) {
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
|
||||
JobFairSignUp existSignUp = jobFairSignUpMapper.checkSignUp(jobFairId, userId);
|
||||
if (existSignUp == null || "1".equals(existSignUp.getStatus())) {
|
||||
throw new ServiceException("您未报名该招聘会");
|
||||
}
|
||||
|
||||
existSignUp.setStatus("1"); // 已取消
|
||||
return jobFairSignUpMapper.updateById(existSignUp);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,207 @@
|
||||
package com.ruoyi.cms.service.rc.impl;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.rc.*;
|
||||
import com.ruoyi.cms.mapper.rc.PublicJobFairMapper;
|
||||
import com.ruoyi.cms.service.rc.IPublicJobFairService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 公共招聘会Service实现
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class PublicJobFairServiceImpl implements IPublicJobFairService {
|
||||
|
||||
@Autowired
|
||||
private PublicJobFairMapper publicJobFairMapper;
|
||||
|
||||
@Override
|
||||
public PublicJobFairResponse getJobFairPage(PublicJobFairQuery query) {
|
||||
PageHelper.startPage(query.getPageNum(), query.getPageSize());
|
||||
List<PublicJobFair> list = publicJobFairMapper.selectPublicJobFairList(query);
|
||||
PageInfo<PublicJobFair> pageInfo = new PageInfo<>(list);
|
||||
|
||||
PublicJobFairResponse response = new PublicJobFairResponse();
|
||||
response.setCode(200);
|
||||
|
||||
PublicJobFairResponse.PageData pageData = new PublicJobFairResponse.PageData();
|
||||
pageData.setTotal(pageInfo.getTotal());
|
||||
pageData.setList(list);
|
||||
pageData.setPageNum(pageInfo.getPageNum());
|
||||
pageData.setPageSize(pageInfo.getPageSize());
|
||||
pageData.setSize(pageInfo.getSize());
|
||||
pageData.setStartRow((int) pageInfo.getStartRow());
|
||||
pageData.setEndRow((int) pageInfo.getEndRow());
|
||||
pageData.setPages(pageInfo.getPages());
|
||||
pageData.setPrePage(pageInfo.getPrePage());
|
||||
pageData.setNextPage(pageInfo.getNextPage());
|
||||
pageData.setIsFirstPage(pageInfo.isIsFirstPage());
|
||||
pageData.setIsLastPage(pageInfo.isIsLastPage());
|
||||
pageData.setHasPreviousPage(pageInfo.isHasPreviousPage());
|
||||
pageData.setHasNextPage(pageInfo.isHasNextPage());
|
||||
pageData.setNavigatePages(pageInfo.getNavigatePages());
|
||||
pageData.setNavigatepageNums(Arrays.stream(pageInfo.getNavigatepageNums()).boxed().collect(Collectors.toList()));
|
||||
pageData.setNavigateFirstPage(pageInfo.getNavigateFirstPage());
|
||||
pageData.setNavigateLastPage(pageInfo.getNavigateLastPage());
|
||||
|
||||
response.setData(pageData);
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PublicJobFairDetail getJobFairDetail(String jobFairId) {
|
||||
PublicJobFairDetail detail = publicJobFairMapper.selectPublicJobFairDetailById(jobFairId);
|
||||
if (detail == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 获取当前登录用户ID
|
||||
Long userId = null;
|
||||
try {
|
||||
if (SiteSecurityUtils.isLogin()) {
|
||||
userId = SiteSecurityUtils.getUserId();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 未登录,忽略
|
||||
}
|
||||
|
||||
// 检查用户是否已报名
|
||||
if (userId != null) {
|
||||
Integer count = publicJobFairMapper.checkUserSignUp(jobFairId, userId);
|
||||
detail.setIsSignUp(count != null && count > 0 ? 1 : 0);
|
||||
} else {
|
||||
detail.setIsSignUp(0);
|
||||
}
|
||||
|
||||
return detail;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PublicJobFairCompanyVO> getEnterprisesWithJobs(String jobFairId) {
|
||||
List<PublicJobFairCompanyVO> companyList = publicJobFairMapper.selectCompanyListByJobFairId(jobFairId);
|
||||
|
||||
if (companyList != null && !companyList.isEmpty()) {
|
||||
for (PublicJobFairCompanyVO company : companyList) {
|
||||
List<Job> jobList = publicJobFairMapper.selectJobListByJobFairIdAndCompanyId(jobFairId, company.getCompanyId());
|
||||
company.setJobInfoList(jobList);
|
||||
}
|
||||
}
|
||||
return companyList;
|
||||
}
|
||||
|
||||
// ========== CMS后台管理接口实现 ==========
|
||||
|
||||
@Override
|
||||
public List<PublicJobFair> selectList(PublicJobFairQuery query) {
|
||||
return publicJobFairMapper.selectPublicJobFairList(query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PublicJobFair selectById(String jobFairId) {
|
||||
PublicJobFair jobFair = publicJobFairMapper.selectPublicJobFairById(jobFairId);
|
||||
if (jobFair != null) {
|
||||
// 查询关联的企业及岗位
|
||||
List<PublicJobFairCompanyVO> companyList = getEnterprisesWithJobs(jobFairId);
|
||||
jobFair.setCompanyList(companyList);
|
||||
}
|
||||
return jobFair;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int insert(PublicJobFair publicJobFair) {
|
||||
publicJobFair.setJobFairId(IdUtils.fastSimpleUUID());
|
||||
publicJobFair.setCreateTime(new Date());
|
||||
publicJobFair.setCreateBy(SecurityUtils.getUsername());
|
||||
return publicJobFairMapper.insertPublicJobFair(publicJobFair);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int update(PublicJobFair publicJobFair) {
|
||||
publicJobFair.setUpdateTime(new Date());
|
||||
publicJobFair.setUpdateBy(SecurityUtils.getUsername());
|
||||
return publicJobFairMapper.updatePublicJobFair(publicJobFair);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int deleteByIds(String[] jobFairIds) {
|
||||
return publicJobFairMapper.deletePublicJobFairByIds(jobFairIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int addCompany(PublicJobFairCompany company) {
|
||||
company.setId(IdUtils.fastSimpleUUID());
|
||||
company.setCreateTime(new Date());
|
||||
company.setCreateBy(SecurityUtils.getUsername());
|
||||
return publicJobFairMapper.insertJobFairCompany(company);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int addCompanyBatch(List<PublicJobFairCompany> companies) {
|
||||
String username = SecurityUtils.getUsername();
|
||||
Date now = new Date();
|
||||
for (PublicJobFairCompany company : companies) {
|
||||
company.setId(IdUtils.fastSimpleUUID());
|
||||
company.setCreateTime(now);
|
||||
company.setCreateBy(username);
|
||||
}
|
||||
return publicJobFairMapper.insertJobFairCompanyBatch(companies);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int removeCompany(String id) {
|
||||
return publicJobFairMapper.deleteJobFairCompanyById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int addJob(PublicJobFairJob job) {
|
||||
job.setId(IdUtils.fastSimpleUUID());
|
||||
job.setCreateTime(new Date());
|
||||
job.setCreateBy(SecurityUtils.getUsername());
|
||||
return publicJobFairMapper.insertJobFairJob(job);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int addJobBatch(List<PublicJobFairJob> jobs) {
|
||||
String username = SecurityUtils.getUsername();
|
||||
Date now = new Date();
|
||||
for (PublicJobFairJob job : jobs) {
|
||||
job.setId(IdUtils.fastSimpleUUID());
|
||||
job.setCreateTime(now);
|
||||
job.setCreateBy(username);
|
||||
}
|
||||
return publicJobFairMapper.insertJobFairJobBatch(jobs);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int removeJob(String id) {
|
||||
return publicJobFairMapper.deleteJobFairJobById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JobFairSignUpVO> selectSignUpList(String jobFairId) {
|
||||
return publicJobFairMapper.selectSignUpListByJobFairId(jobFairId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user