Skip to content

Commit f5bd653

Browse files
authored
Merge pull request #69 from Boyuan-IT-Club/Red_Moon
适应最新的前端传递格式
2 parents 9b47bed + d24d8f3 commit f5bd653

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

src/main/java/club/boyuan/official/service/impl/InterviewAssignmentServiceImpl.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import club.boyuan.official.service.IUserService;
1414
import com.fasterxml.jackson.core.type.TypeReference;
1515
import com.fasterxml.jackson.databind.ObjectMapper;
16+
import com.fasterxml.jackson.databind.JsonNode;
1617
import lombok.AllArgsConstructor;
1718
import org.slf4j.Logger;
1819
import org.slf4j.LoggerFactory;
@@ -280,11 +281,26 @@ private Map<Integer, List<String>> getUserPreferredTimes(List<Resume> resumes, I
280281
for (ResumeFieldValue interviewTimeValue : interviewTimeValues) {
281282
logger.info("用户 {} 的期望面试时间字段值: {}", resume.getUserId(), interviewTimeValue.getFieldValue());
282283
try {
283-
// 解析JSON数组
284-
List<String> preferredTimes = objectMapper.readValue(
285-
interviewTimeValue.getFieldValue(),
286-
new TypeReference<List<String>>() {});
287-
allPreferredTimes.addAll(preferredTimes);
284+
// 检查是否是包含first和second字段的JSON对象格式
285+
String fieldValue = interviewTimeValue.getFieldValue();
286+
if (fieldValue != null && fieldValue.contains("\"first\"") && fieldValue.contains("\"second\"")) {
287+
// 解析包含first和second字段的JSON对象
288+
JsonNode jsonNode = objectMapper.readTree(fieldValue);
289+
String first = jsonNode.get("first").asText();
290+
String second = jsonNode.get("second").asText();
291+
292+
// 添加非空的时间选项
293+
if (first != null && !first.isEmpty() && !"null".equals(first)) {
294+
allPreferredTimes.add(first);
295+
}
296+
if (second != null && !second.isEmpty() && !"null".equals(second)) {
297+
allPreferredTimes.add(second);
298+
}
299+
} else {
300+
// 解析普通的JSON数组格式(向后兼容)
301+
List<String> preferredTimes = objectMapper.readValue(fieldValue, new TypeReference<List<String>>() {});
302+
allPreferredTimes.addAll(preferredTimes);
303+
}
288304
} catch (Exception e) {
289305
logger.warn("解析用户 {} 的期望面试时间失败: {}", resume.getUserId(),
290306
interviewTimeValue.getFieldValue(), e);

0 commit comments

Comments
 (0)