feat: Add job fair status tracking and corresponding unit tests

This commit is contained in:
2026-07-21 09:41:20 +08:00
parent 25f73dc580
commit 2dcf674fac
4 changed files with 91 additions and 3 deletions

View File

@@ -39,6 +39,9 @@ public class PublicJobFair implements Serializable {
@ApiModelProperty("招聘会结束时间")
private Date jobFairEndTime;
@ApiModelProperty("举办状态(未举办、正在举办、已举办)")
private String jobFairStatus;
@ApiModelProperty("主办单位")
private String jobFairHostUnit;

View File

@@ -41,6 +41,10 @@ import java.util.stream.Collectors;
@Service
public class PublicJobFairServiceImpl implements IPublicJobFairService {
private static final String JOB_FAIR_STATUS_NOT_STARTED = "未举办";
private static final String JOB_FAIR_STATUS_IN_PROGRESS = "正在举办";
private static final String JOB_FAIR_STATUS_FINISHED = "已举办";
@Autowired
private PublicJobFairMapper publicJobFairMapper;
@@ -57,6 +61,7 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
public PublicJobFairResponse getJobFairPage(PublicJobFairQuery query) {
PageHelper.startPage(query.getPageNum(), query.getPageSize());
List<PublicJobFair> list = publicJobFairMapper.selectPublicJobFairList(query);
fillJobFairStatus(list);
fillCompanyApplyState(list);
PageInfo<PublicJobFair> pageInfo = new PageInfo<>(list);
@@ -154,12 +159,16 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
@Override
public List<PublicJobFair> getCurrentQuarterFairs() {
return publicJobFairMapper.getCurrentQuarterFairs();
List<PublicJobFair> list = publicJobFairMapper.getCurrentQuarterFairs();
fillJobFairStatus(list);
return list;
}
@Override
public List<PublicJobFair> getCurrentMonthFairs() {
return publicJobFairMapper.getCurrentMonthFairs();
List<PublicJobFair> list = publicJobFairMapper.getCurrentMonthFairs();
fillJobFairStatus(list);
return list;
}
@Override
@@ -172,6 +181,7 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
@Override
public List<PublicJobFair> selectList(PublicJobFairQuery query) {
List<PublicJobFair> list = publicJobFairMapper.selectPublicJobFairList(query);
fillJobFairStatus(list);
fillCompanyApplyState(list);
return list;
}
@@ -180,6 +190,8 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
public PublicJobFair selectById(String jobFairId) {
PublicJobFair jobFair = publicJobFairMapper.selectPublicJobFairById(jobFairId);
if (jobFair != null) {
jobFair.setJobFairStatus(resolveJobFairStatus(
jobFair.getJobFairStartTime(), jobFair.getJobFairEndTime(), new Date()));
// 查询关联的企业及岗位
List<PublicJobFairCompanyVO> companyList = getEnterprisesWithJobs(jobFairId);
jobFair.setCompanyList(companyList);
@@ -485,6 +497,33 @@ public class PublicJobFairServiceImpl implements IPublicJobFairService {
return publicJobFairMapper.selectJobListByJobFairIdAndCompanyId(jobFairId, company.getCompanyId());
}
/**
* 根据招聘会开始、结束时间补充实时举办状态。
*/
private void fillJobFairStatus(List<PublicJobFair> list) {
if (list == null || list.isEmpty()) {
return;
}
Date now = new Date();
for (PublicJobFair fair : list) {
fair.setJobFairStatus(resolveJobFairStatus(
fair.getJobFairStartTime(), fair.getJobFairEndTime(), now));
}
}
static String resolveJobFairStatus(Date startTime, Date endTime, Date now) {
if (startTime == null || endTime == null || now == null) {
return null;
}
if (now.before(startTime)) {
return JOB_FAIR_STATUS_NOT_STARTED;
}
if (now.after(endTime)) {
return JOB_FAIR_STATUS_FINISHED;
}
return JOB_FAIR_STATUS_IN_PROGRESS;
}
/**
* 为企业端列表补充报名状态和按钮状态。
*/