Merge remote-tracking branch 'origin/main'

This commit is contained in:
戈经莹
2026-07-29 16:29:42 +08:00
4 changed files with 73 additions and 2 deletions

View File

@@ -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;
} }

View File

@@ -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();
}
/** /**
* 计算全部工作经历总月数(简单累加,不处理时间重叠) * 计算全部工作经历总月数(简单累加,不处理时间重叠)
*/ */

View File

@@ -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;
/** /**
* 岗位列表 * 岗位列表
*/ */

View File

@@ -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();