Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -297,6 +297,8 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
job.setFilesList(processedFiles);
|
job.setFilesList(processedFiles);
|
||||||
|
//浏览量默认添加+1
|
||||||
|
this.view(jobId);
|
||||||
|
|
||||||
return job;
|
return job;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,22 @@ public class JobRecommendUtil {
|
|||||||
public static final Float EXP_MATCH_LOW1 = 2F;
|
public static final Float EXP_MATCH_LOW1 = 2F;
|
||||||
public static final Float EXP_MATCH_LOWER = 1F;
|
public static final Float EXP_MATCH_LOWER = 1F;
|
||||||
|
|
||||||
|
private static final Map<Character, Character> CHINA_NUM_MAP;
|
||||||
|
|
||||||
|
static {
|
||||||
|
CHINA_NUM_MAP = new HashMap<>();
|
||||||
|
CHINA_NUM_MAP.put('零', '0');
|
||||||
|
CHINA_NUM_MAP.put('一', '1');
|
||||||
|
CHINA_NUM_MAP.put('二', '2');
|
||||||
|
CHINA_NUM_MAP.put('三', '3');
|
||||||
|
CHINA_NUM_MAP.put('四', '4');
|
||||||
|
CHINA_NUM_MAP.put('五', '5');
|
||||||
|
CHINA_NUM_MAP.put('六', '6');
|
||||||
|
CHINA_NUM_MAP.put('七', '7');
|
||||||
|
CHINA_NUM_MAP.put('八', '8');
|
||||||
|
CHINA_NUM_MAP.put('九', '9');
|
||||||
|
}
|
||||||
|
|
||||||
// =====================基础计算方法=====================
|
// =====================基础计算方法=====================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -48,17 +64,62 @@ public class JobRecommendUtil {
|
|||||||
if (StrUtil.isBlank(startDateStr)) {
|
if (StrUtil.isBlank(startDateStr)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
LocalDate start = LocalDate.parse(startDateStr + "-01");
|
LocalDate start = parseToFirstDayOfMonth(startDateStr);
|
||||||
LocalDate end;
|
LocalDate end;
|
||||||
if (StrUtil.isBlank(endDateStr)) {
|
if (StrUtil.isBlank(endDateStr)) {
|
||||||
end = LocalDate.now();
|
end = LocalDate.now();
|
||||||
} else {
|
} else {
|
||||||
end = LocalDate.parse(endDateStr + "-01");
|
end = parseToFirstDayOfMonth(endDateStr);
|
||||||
}
|
}
|
||||||
Period period = Period.between(start, end);
|
Period period = Period.between(start, end);
|
||||||
return period.getYears() * 12 + period.getMonths();
|
return period.getYears() * 12 + period.getMonths();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 兼容两种格式:yyyy-MM / yyyy-MM-dd,返回当月1号
|
||||||
|
*/
|
||||||
|
private static LocalDate parseToFirstDayOfMonth(String dateStr) {
|
||||||
|
try {
|
||||||
|
String source = dateStr.trim();
|
||||||
|
//中文年份转阿拉伯数字:二零一六 → 2016
|
||||||
|
source = convertChinaYearToNum(source);
|
||||||
|
|
||||||
|
LocalDate date;
|
||||||
|
if (source.matches("^\\d{4}$")) {
|
||||||
|
// 仅年份 2016 → 2016-01-01
|
||||||
|
date = LocalDate.parse(source + "-01-01");
|
||||||
|
} else if (source.matches("^\\d{4}-\\d{2}$")) {
|
||||||
|
// yyyy-MM
|
||||||
|
date = LocalDate.parse(source + "-01");
|
||||||
|
} else if (source.matches("^\\d{4}-\\d{2}-\\d{2}$")) {
|
||||||
|
// yyyy-MM-dd
|
||||||
|
date = LocalDate.parse(source);
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException("无法识别日期格式:" + dateStr);
|
||||||
|
}
|
||||||
|
return date.withDayOfMonth(1);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new IllegalArgumentException("日期解析失败,原始值:" + dateStr
|
||||||
|
+ ",支持格式:2016、2016-09、2016-09-09、二零一六", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 中文年份字符串转数字年份
|
||||||
|
* 例:二零一六 → 2016;二零二五-03 保留后面横杠
|
||||||
|
*/
|
||||||
|
private static String convertChinaYearToNum(String str) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (char c : str.toCharArray()) {
|
||||||
|
if (CHINA_NUM_MAP.containsKey(c)) {
|
||||||
|
sb.append(CHINA_NUM_MAP.get(c));
|
||||||
|
} else {
|
||||||
|
sb.append(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算全部工作经历总月数(简单累加,不处理时间重叠)
|
* 计算全部工作经历总月数(简单累加,不处理时间重叠)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -143,6 +143,12 @@ public class Company extends BaseEntity
|
|||||||
@ApiModelProperty("是否人力资源机构(Y是,N否)")
|
@ApiModelProperty("是否人力资源机构(Y是,N否)")
|
||||||
private String isHrs;
|
private String isHrs;
|
||||||
|
|
||||||
|
@ApiModelProperty("省")
|
||||||
|
private String companyProvince;
|
||||||
|
|
||||||
|
@ApiModelProperty("市")
|
||||||
|
private String companyCity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 岗位列表
|
* 岗位列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -300,6 +300,8 @@ public class SsoService {
|
|||||||
company.setNature(object.getString("entType"));
|
company.setNature(object.getString("entType"));
|
||||||
company.setDescription(object.getString("entIntro"));
|
company.setDescription(object.getString("entIntro"));
|
||||||
company.setIsHrs(object.getString("isServiceProvider"));//是否是人力资源机构
|
company.setIsHrs(object.getString("isServiceProvider"));//是否是人力资源机构
|
||||||
|
company.setCompanyProvince(object.getString("entProvince"));
|
||||||
|
company.setCompanyCity(object.getString("entCity"));
|
||||||
// company.setScale(object.getString("entSize"));
|
// company.setScale(object.getString("entSize"));
|
||||||
//添加联系人
|
//添加联系人
|
||||||
CompanyContact contact=new CompanyContact();
|
CompanyContact contact=new CompanyContact();
|
||||||
|
|||||||
Reference in New Issue
Block a user