From c8d32a77a26ade498d6b3f06fbaa5cd6538cffb2 Mon Sep 17 00:00:00 2001 From: eric <465889110@qq.com> Date: Mon, 29 Sep 2025 13:52:55 +0800 Subject: [PATCH] no message --- .../sync/controller/SendDataController.java | 48 +++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/sczx/sync/controller/SendDataController.java b/src/main/java/com/sczx/sync/controller/SendDataController.java index 1544ba4..342697e 100644 --- a/src/main/java/com/sczx/sync/controller/SendDataController.java +++ b/src/main/java/com/sczx/sync/controller/SendDataController.java @@ -12,11 +12,17 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Lazy; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; /** @@ -33,6 +39,11 @@ public class SendDataController { @Autowired private SendDataService sendDataService; + @Autowired + @Lazy + @Qualifier("taskExecutor") + private Executor taskExecutor; + @ApiOperation(value = "接收需同步数据接口") @PostMapping("/dataToBattery") public Result sendDataToBattery(@RequestBody DataRceiveReq dataRceiveReq){ @@ -62,14 +73,45 @@ public class SendDataController { return sendDataService.sendStoreInfoToBattery(Long.parseLong(id)); } - @ApiOperation(value = "接收充电同步数据接口") +// @ApiOperation(value = "接收充电同步数据接口") +// @GetMapping("/subOrder/{id}") +// public Map sendSubOrderToBattery(@PathVariable String id){ +// log.info("/subOrder 接收充电数据:{}",id); +// return sendDataService.sendSubOrderToBattery(Long.parseLong(id)); +// } + + + @ApiOperation(value = "异步接收充电同步数据接口") @GetMapping("/subOrder/{id}") - public Map sendSubOrderToBattery(@PathVariable String id){ + public CompletableFuture>> sendSubOrderToBattery(@PathVariable String id){ log.info("/subOrder 接收充电数据:{}",id); - return sendDataService.sendSubOrderToBattery(Long.parseLong(id)); + return CompletableFuture + .supplyAsync(() -> { + try { + return sendDataService.sendSubOrderToBattery(Long.parseLong(id)); + } catch (Exception e) { + log.error("处理用户数据时发生异常", e); + Map errorResponse = new HashMap<>(); + errorResponse.put("code", "9999"); + errorResponse.put("msg", "处理失败: " + e.getMessage()); + return errorResponse; + } + }, taskExecutor) + .thenApply(result -> { + log.info("用户数据处理完成,返回结果: {}", result); + return ResponseEntity.ok(result); + }) + .exceptionally(throwable -> { + log.error("异步处理用户数据时发生异常", throwable); + Map errorResponse = new HashMap<>(); + errorResponse.put("code", "9999"); + errorResponse.put("msg", "系统异常"); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); + }); } + // // @ApiOperation(value = "接收需同步数据接口") // @GetMapping("/companyinfo")