fix: 修复创建任务时productBarcodes数组转字符串的问题
This commit is contained in:
parent
9fe9297d27
commit
3d11d48dde
@ -37,13 +37,37 @@ public class TaskController {
|
||||
|
||||
@Operation(summary = "创建任务", description = "发起新的设计任务")
|
||||
@PostMapping
|
||||
public Result<Long> createTask(@RequestBody Task task, @RequestHeader("Authorization") String authHeader) {
|
||||
log.info("创建任务: {}", task.getTitle());
|
||||
public Result<Long> createTask(@RequestBody Object taskData, @RequestHeader("Authorization") String authHeader) {
|
||||
String token = jwtUtil.extractTokenFromHeader(authHeader);
|
||||
Long userId = jwtUtil.getUserIdFromToken(token);
|
||||
task.setPublisherId(userId);
|
||||
Long taskId = taskService.createTask(task);
|
||||
return Result.success(taskId);
|
||||
|
||||
try {
|
||||
com.fasterxml.jackson.databind.ObjectMapper objectMapper = new com.fasterxml.jackson.databind.ObjectMapper();
|
||||
String json = objectMapper.writeValueAsString(taskData);
|
||||
com.fasterxml.jackson.databind.JsonNode jsonNode = objectMapper.readTree(json);
|
||||
|
||||
// 处理 productBarcodes 字段:如果是数组,转换为逗号分隔的字符串
|
||||
if (jsonNode.has("productBarcodes") && jsonNode.get("productBarcodes").isArray()) {
|
||||
com.fasterxml.jackson.databind.node.ArrayNode barcodesArray = (com.fasterxml.jackson.databind.node.ArrayNode) jsonNode.get("productBarcodes");
|
||||
java.util.List<String> barcodesList = new java.util.ArrayList<>();
|
||||
for (com.fasterxml.jackson.databind.JsonNode barcodeNode : barcodesArray) {
|
||||
if (barcodeNode.isTextual()) {
|
||||
barcodesList.add(barcodeNode.asText());
|
||||
}
|
||||
}
|
||||
String barcodesString = String.join(",", barcodesList);
|
||||
((com.fasterxml.jackson.databind.node.ObjectNode) jsonNode).put("productBarcodes", barcodesString);
|
||||
}
|
||||
|
||||
Task task = objectMapper.treeToValue(jsonNode, Task.class);
|
||||
log.info("创建任务: {}", task.getTitle());
|
||||
task.setPublisherId(userId);
|
||||
Long taskId = taskService.createTask(task);
|
||||
return Result.success(taskId);
|
||||
} catch (Exception e) {
|
||||
log.error("解析任务数据失败", e);
|
||||
throw new com.designhub.exception.BusinessException(com.designhub.common.ResultCode.PARAM_ERROR, "任务数据格式错误");
|
||||
}
|
||||
}
|
||||
|
||||
@Operation(summary = "创建流水线任务", description = "创建包含多个子任务的流水线任务")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user