feat: Add job fair status tracking and corresponding unit tests
This commit is contained in:
@@ -39,6 +39,9 @@ public class PublicJobFair implements Serializable {
|
||||
@ApiModelProperty("招聘会结束时间")
|
||||
private Date jobFairEndTime;
|
||||
|
||||
@ApiModelProperty("举办状态(未举办、正在举办、已举办)")
|
||||
private String jobFairStatus;
|
||||
|
||||
@ApiModelProperty("主办单位")
|
||||
private String jobFairHostUnit;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 为企业端列表补充报名状态和按钮状态。
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user