轻松聘AI开发
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

32 lines
912 B

package com.mydreamjob.application;
/**
* 投递状态枚举
*
* SUBMITTED — 学生已投递
* VIEWED — 企业已查看
* INTERVIEW — 进入面试阶段
* REJECTED — 已拒绝
* HIRED — 已录用
*/
public enum ApplicationStatus {
SUBMITTED,
VIEWED,
INTERVIEW,
REJECTED,
HIRED,
WITHDRAWN; // 学生主动撤回
/**
* 校验状态流转是否合法
*/
public boolean canTransitionTo(ApplicationStatus target) {
if (target == null) return false;
return switch (this) {
case SUBMITTED -> target == VIEWED || target == REJECTED || target == WITHDRAWN;
case VIEWED -> target == INTERVIEW || target == REJECTED || target == WITHDRAWN;
case INTERVIEW -> target == REJECTED || target == HIRED;
case REJECTED, HIRED, WITHDRAWN -> false; // 终态不可再流转
};
}
}