From d78492af4071bee18a4ad249e7d51d5e8bc9d148 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Tue, 28 Mar 2023 17:12:46 +0800 Subject: [PATCH 01/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加视频生成 --- .../wabestway/recall/web/OrderController.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 44d5439..4fda49b 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -1,5 +1,7 @@ package com.wabestway.recall.web; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.wabestway.recall.model.Order; import com.wabestway.recall.model.OrderList; import com.wabestway.recall.model.Record; @@ -11,7 +13,13 @@ import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; @@ -67,4 +75,75 @@ public class OrderController { }); }); } + + @GetMapping("/ffmpeg") + public Mono createMp4() { + Order order = new Order(); + order.setComplete("1"); + ExampleMatcher matcher = ExampleMatcher.matching() + .withIgnoreNullValues().withIgnorePaths("createAt", "last", "page", "pageSize"); + Example ep = Example.of(order, matcher); + Sort s = Sort.by("createAt"); + Flux flux = orderRepository.findAll(ep, s); + flux.subscribe(fo -> { + Flux rs = recordRepository.findAllByTraceIdOrderByCreateAtAsc(fo.getTraceId()); + Mono>> es = rs.map(rr -> rr.getEvents()).collectList(); + Mono> events = es.flatMapIterable(lists -> lists).flatMapIterable(list -> list).collectList(); + events.subscribe(e -> { + JSONArray array = JSONArray.parseArray(JSON.toJSONString(e)); + try { + createVideo(fo.getOrderId(), array.toJSONString()); + } catch (IOException ex) { + ex.printStackTrace(); + } + }); + }); + return Mono.just(ResObj.ok()); + } + + void createVideo(String dir, String jsonData) throws IOException { + + // 创建临时目录 + Path tempDir = null; + try { + tempDir = Files.createTempDirectory("dir"); + } catch (IOException e) { + e.printStackTrace(); + } + System.out.println("Created temporary directory: " + tempDir); + + try { + File tempFile = File.createTempFile("traces", ".json", tempDir.toFile()); + FileWriter fw = new FileWriter(tempFile); + BufferedWriter bw = new BufferedWriter(fw); + bw.write(jsonData); + bw.flush(); + bw.close(); + fw.close(); + String[] command = {"ts-node", "/opt/trace-transform/src/index.ts"}; + ProcessBuilder processBuilder = new ProcessBuilder(command); + processBuilder.directory(tempDir.toFile()); + // 在临时目录下执行命令 + Process process = processBuilder.start(); + // 读取命令输出 + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + reader.close(); + + // 等待命令执行完成 + int exitCode = process.waitFor(); + System.out.println("Command exited with code " + exitCode); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } finally { + // 删除临时目录 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } + } } From e7ac0ef1036703546553865639a4fb1d1f703500 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Tue, 28 Mar 2023 17:22:44 +0800 Subject: [PATCH 02/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加视频生成 --- src/main/java/com/wabestway/recall/web/OrderController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 4fda49b..1b5b16d 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -106,7 +106,7 @@ public class OrderController { // 创建临时目录 Path tempDir = null; try { - tempDir = Files.createTempDirectory("dir"); + tempDir = Files.createTempDirectory(dir); } catch (IOException e) { e.printStackTrace(); } From b3286059240d45a05ca4dade396f8fac9e6e8562 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 29 Mar 2023 15:40:26 +0800 Subject: [PATCH 03/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整临时文件生成 --- pom.xml | 9 +++ .../recall/AfisRecallApplication.java | 2 + .../wabestway/recall/web/OrderController.java | 6 +- .../java/com/wabestway/recall/FFmpeg.java | 59 ++++++++++++++++++- 4 files changed, 72 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 236c479..c2a565c 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,15 @@ 2.2.3.RELEASE + + org.springframework.cloud + spring-cloud-starter-openfeign + + + com.wabestway.engine + afis-engine-api + 2.5 + com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config diff --git a/src/main/java/com/wabestway/recall/AfisRecallApplication.java b/src/main/java/com/wabestway/recall/AfisRecallApplication.java index 7233137..0106001 100644 --- a/src/main/java/com/wabestway/recall/AfisRecallApplication.java +++ b/src/main/java/com/wabestway/recall/AfisRecallApplication.java @@ -3,9 +3,11 @@ package com.wabestway.recall; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient +@EnableFeignClients(basePackages = {"com.wabestway.engine"}) public class AfisRecallApplication { public static void main(String[] args) { diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 1b5b16d..46663db 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -101,19 +101,19 @@ public class OrderController { return Mono.just(ResObj.ok()); } - void createVideo(String dir, String jsonData) throws IOException { + void createVideo(String orderId, String jsonData) throws IOException { // 创建临时目录 Path tempDir = null; try { - tempDir = Files.createTempDirectory(dir); + tempDir = Files.createTempDirectory("ts"); } catch (IOException e) { e.printStackTrace(); } System.out.println("Created temporary directory: " + tempDir); try { - File tempFile = File.createTempFile("traces", ".json", tempDir.toFile()); + File tempFile = new File(tempDir.toFile(), "traces.json"); FileWriter fw = new FileWriter(tempFile); BufferedWriter bw = new BufferedWriter(fw); bw.write(jsonData); diff --git a/src/test/java/com/wabestway/recall/FFmpeg.java b/src/test/java/com/wabestway/recall/FFmpeg.java index adb9639..3945f20 100644 --- a/src/test/java/com/wabestway/recall/FFmpeg.java +++ b/src/test/java/com/wabestway/recall/FFmpeg.java @@ -1,12 +1,69 @@ package com.wabestway.recall; +import com.alibaba.fastjson.JSONArray; import org.junit.jupiter.api.Test; +import javax.script.*; +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Base64; +import java.util.Comparator; +import java.util.List; +import java.util.zip.GZIPInputStream; + + public class FFmpeg { @Test - public void TestMp4() { + public void TestMp4() throws IOException { + String jsonData = new String(Files.readAllBytes(Paths.get("C:","Users/Administrator/Desktop","traces.json")), StandardCharsets.UTF_8); + // 创建临时目录 + Path tempDir = null; + try { + tempDir = Files.createTempDirectory("example"); + } catch (IOException e) { + e.printStackTrace(); + } + System.out.println("Created temporary directory: " + tempDir); + try { + File tempFile = File.createTempFile("traces", ".json", tempDir.toFile()); + FileWriter fw = new FileWriter(tempFile); + BufferedWriter bw = new BufferedWriter(fw); + bw.write(jsonData); + bw.flush(); + bw.close(); + fw.close(); + String[] command = {"C:\\Users\\Administrator\\AppData\\Roaming\\npm\\ts-node", "E:\\Develop\\trace-transform\\src\\index.ts"}; + ProcessBuilder processBuilder = new ProcessBuilder(command); + processBuilder.directory(tempDir.toFile()); + // 在临时目录下执行命令 + Process process = processBuilder.start(); + // 读取命令输出 + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + reader.close(); + + // 等待命令执行完成 + int exitCode = process.waitFor(); + System.out.println("Command exited with code " + exitCode); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } finally { + // 删除临时目录 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } } + + } From bf028d503493d874bfcd09b4734ebe7c5de04d7d Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 29 Mar 2023 16:28:38 +0800 Subject: [PATCH 04/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加文件上传 --- .../wabestway/recall/web/OrderController.java | 37 +++++++++++++++---- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 46663db..4169c38 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -2,36 +2,41 @@ package com.wabestway.recall.web; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.wabestway.commons.http.ResObj; +import com.wabestway.engine.api.dfs.UploadFileDTO; +import com.wabestway.engine.api.dfs.UploadRespVO; +import com.wabestway.engine.api.feign.DfsStorageFeignClient; import com.wabestway.recall.model.Order; import com.wabestway.recall.model.OrderList; import com.wabestway.recall.model.Record; -import com.wabestway.recall.model.ResObj; import com.wabestway.recall.repository.OrderRepository; import com.wabestway.recall.repository.RecordRepository; +import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.*; import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.io.*; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.Comparator; import java.util.List; - +@Slf4j @RestController @RequestMapping("/order") public class OrderController { private final RecordRepository recordRepository; private final OrderRepository orderRepository; - public OrderController(RecordRepository recordRepository, OrderRepository orderRepository) { + private final DfsStorageFeignClient storageFeignClient; + + public OrderController(RecordRepository recordRepository, OrderRepository orderRepository, DfsStorageFeignClient storageFeignClient) { this.recordRepository = recordRepository; this.orderRepository = orderRepository; + this.storageFeignClient = storageFeignClient; } @GetMapping @@ -85,14 +90,14 @@ public class OrderController { Example ep = Example.of(order, matcher); Sort s = Sort.by("createAt"); Flux flux = orderRepository.findAll(ep, s); - flux.subscribe(fo -> { + flux.filter(fo -> fo.getFileId() == null).subscribe(fo -> { Flux rs = recordRepository.findAllByTraceIdOrderByCreateAtAsc(fo.getTraceId()); Mono>> es = rs.map(rr -> rr.getEvents()).collectList(); Mono> events = es.flatMapIterable(lists -> lists).flatMapIterable(list -> list).collectList(); events.subscribe(e -> { JSONArray array = JSONArray.parseArray(JSON.toJSONString(e)); try { - createVideo(fo.getOrderId(), array.toJSONString()); + createVideo(fo, array.toJSONString()); } catch (IOException ex) { ex.printStackTrace(); } @@ -101,7 +106,7 @@ public class OrderController { return Mono.just(ResObj.ok()); } - void createVideo(String orderId, String jsonData) throws IOException { + void createVideo(Order fo, String jsonData) throws IOException { // 创建临时目录 Path tempDir = null; @@ -135,7 +140,23 @@ public class OrderController { // 等待命令执行完成 int exitCode = process.waitFor(); + System.out.println("Command exited with code " + exitCode); + + File file = new File(tempDir.toFile(), "video.mp4"); + if (file.exists()) { + byte[] fileBytes = Files.readAllBytes(file.toPath()); + String titles = fo.getOrderId() + ".mp4"; + UploadFileDTO uploadFileDTO = new UploadFileDTO(fileBytes, "contractExcel", titles); + + ResObj uploadResObj = storageFeignClient.uploadBytes(uploadFileDTO); + log.info(JSON.toJSONString(uploadResObj)); + if (uploadResObj.isOk()) { + fo.setFileId(uploadResObj.getData().getFileId()); + fo.setFileUrl(uploadResObj.getData().getFileUrl()); + orderRepository.save(fo).subscribe(); + } + } } catch (IOException | InterruptedException e) { e.printStackTrace(); } finally { From 7986b423848ecbf15ee3da156c18a7413f0e1f62 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 29 Mar 2023 16:41:57 +0800 Subject: [PATCH 05/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加HttpMessageConverters --- .../com/wabestway/recall/AfisRecallApplication.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/com/wabestway/recall/AfisRecallApplication.java b/src/main/java/com/wabestway/recall/AfisRecallApplication.java index 0106001..83093f5 100644 --- a/src/main/java/com/wabestway/recall/AfisRecallApplication.java +++ b/src/main/java/com/wabestway/recall/AfisRecallApplication.java @@ -1,9 +1,16 @@ package com.wabestway.recall; +import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Bean; +import org.springframework.http.converter.HttpMessageConverter; + +import java.util.stream.Collectors; @SpringBootApplication @EnableDiscoveryClient @@ -14,4 +21,10 @@ public class AfisRecallApplication { SpringApplication.run(AfisRecallApplication.class, args); } + @Bean + @ConditionalOnMissingBean + public HttpMessageConverters messageConverters(ObjectProvider> converters) { + return new HttpMessageConverters(converters.orderedStream().collect(Collectors.toList())); + } + } From f6b53f228e59aa5dfae2e0070a7f097d47703fdc Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 30 Mar 2023 10:23:46 +0800 Subject: [PATCH 06/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改存储桶 --- .../java/com/wabestway/recall/web/OrderController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 4169c38..5f5ac59 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -91,8 +91,7 @@ public class OrderController { Sort s = Sort.by("createAt"); Flux flux = orderRepository.findAll(ep, s); flux.filter(fo -> fo.getFileId() == null).subscribe(fo -> { - Flux rs = recordRepository.findAllByTraceIdOrderByCreateAtAsc(fo.getTraceId()); - Mono>> es = rs.map(rr -> rr.getEvents()).collectList(); + Mono>> es = recordRepository.findAllByTraceIdOrderByCreateAtAsc(fo.getTraceId()).map(rr -> rr.getEvents()).collectList(); Mono> events = es.flatMapIterable(lists -> lists).flatMapIterable(list -> list).collectList(); events.subscribe(e -> { JSONArray array = JSONArray.parseArray(JSON.toJSONString(e)); @@ -145,9 +144,10 @@ public class OrderController { File file = new File(tempDir.toFile(), "video.mp4"); if (file.exists()) { + log.info(String.valueOf(file.length())); byte[] fileBytes = Files.readAllBytes(file.toPath()); String titles = fo.getOrderId() + ".mp4"; - UploadFileDTO uploadFileDTO = new UploadFileDTO(fileBytes, "contractExcel", titles); + UploadFileDTO uploadFileDTO = new UploadFileDTO(fileBytes, "RECALL", titles); ResObj uploadResObj = storageFeignClient.uploadBytes(uploadFileDTO); log.info(JSON.toJSONString(uploadResObj)); @@ -157,7 +157,7 @@ public class OrderController { orderRepository.save(fo).subscribe(); } } - } catch (IOException | InterruptedException e) { + } catch (Exception e) { e.printStackTrace(); } finally { // 删除临时目录 From e3593e3d27e399f5568f952f86fc70484d69d38a Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 30 Mar 2023 12:39:51 +0800 Subject: [PATCH 07/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改文件读取方式 --- src/main/java/com/wabestway/recall/web/OrderController.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 5f5ac59..ecf701f 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -1,5 +1,6 @@ package com.wabestway.recall.web; +import cn.hutool.core.io.FileUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.wabestway.commons.http.ResObj; @@ -145,7 +146,8 @@ public class OrderController { File file = new File(tempDir.toFile(), "video.mp4"); if (file.exists()) { log.info(String.valueOf(file.length())); - byte[] fileBytes = Files.readAllBytes(file.toPath()); + //byte[] fileBytes = Files.readAllBytes(file.toPath()); + byte[] fileBytes = FileUtil.readBytes(file); String titles = fo.getOrderId() + ".mp4"; UploadFileDTO uploadFileDTO = new UploadFileDTO(fileBytes, "RECALL", titles); @@ -159,6 +161,7 @@ public class OrderController { } } catch (Exception e) { e.printStackTrace(); + log.error(e.getMessage()); } finally { // 删除临时目录 Files.walk(tempDir) From a189a59e8ba3f5eb59f2a7082c633d8658d7c3e8 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 30 Mar 2023 12:56:08 +0800 Subject: [PATCH 08/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改文件读取方式 --- .../java/com/wabestway/recall/web/OrderController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index ecf701f..30c6ee0 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -164,10 +164,10 @@ public class OrderController { log.error(e.getMessage()); } finally { // 删除临时目录 - Files.walk(tempDir) - .sorted(Comparator.reverseOrder()) - .map(Path::toFile) - .forEach(File::delete); +// Files.walk(tempDir) +// .sorted(Comparator.reverseOrder()) +// .map(Path::toFile) +// .forEach(File::delete); } } } From 04c1f0bda6334a6bd6a11b84f523cbf48bfbc0ec Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 30 Mar 2023 14:08:25 +0800 Subject: [PATCH 09/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整等待方式 --- .../wabestway/recall/web/OrderController.java | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 30c6ee0..c867be0 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -130,18 +130,33 @@ public class OrderController { processBuilder.directory(tempDir.toFile()); // 在临时目录下执行命令 Process process = processBuilder.start(); - // 读取命令输出 - BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - String line; - while ((line = reader.readLine()) != null) { - System.out.println(line); + + Thread processThread = new Thread(() -> { + try { + // 读取命令输出 + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + reader.close(); + // 等待命令执行完成 + int exitCode = process.waitFor(); + + System.out.println("Command exited with code " + exitCode); + } catch (InterruptedException | IOException e) { + e.printStackTrace(); + } + }); + processThread.start(); + + // Continue with other tasks here... + + try { + processThread.join(); + } catch (InterruptedException e) { + e.printStackTrace(); } - reader.close(); - - // 等待命令执行完成 - int exitCode = process.waitFor(); - - System.out.println("Command exited with code " + exitCode); File file = new File(tempDir.toFile(), "video.mp4"); if (file.exists()) { From 075ac687444a396c9a7edcde8ea5e22a9af96178 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 4 May 2023 17:02:45 +0800 Subject: [PATCH 10/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 第一版 --- .../com/wabestway/recall/web/RecallController.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/wabestway/recall/web/RecallController.java b/src/main/java/com/wabestway/recall/web/RecallController.java index 2c7813c..7a7b656 100644 --- a/src/main/java/com/wabestway/recall/web/RecallController.java +++ b/src/main/java/com/wabestway/recall/web/RecallController.java @@ -5,12 +5,13 @@ import com.wabestway.recall.model.Record; import com.wabestway.recall.model.ResObj; import com.wabestway.recall.repository.OrderRepository; import com.wabestway.recall.repository.RecordRepository; +import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.util.UUID; - +@Slf4j @RestController @RequestMapping("/track") public class RecallController { @@ -29,6 +30,7 @@ public class RecallController { @PostMapping("/save") public Mono save(@RequestBody Record record) { + if (record.getOrderId() != null && !record.getOrderId().isEmpty()) { Mono order = orderRepository.findByOrderId(record.getOrderId()); order.hasElement().subscribe(exit -> { @@ -53,11 +55,11 @@ public class RecallController { forder.setAppKey(record.getAppKey()); forder.setArchived("0"); forder.setComplete("0"); - forder.setHolderName("王五"); - forder.setHolderPhone("18515064530"); - forder.setSupplierName("阳光保险"); - forder.setStartDate("2023-01-01"); - forder.setEndDate("2035-01-01"); +// forder.setHolderName("王五"); +// forder.setHolderPhone("18515064530"); +// forder.setSupplierName("阳光保险"); +// forder.setStartDate("2023-01-01"); +// forder.setEndDate("2035-01-01"); if (record.isLast()) { forder.setComplete("1"); } From b0596333150013e3a2174525e671745cfec7c3ef Mon Sep 17 00:00:00 2001 From: BrandWang Date: Fri, 5 May 2023 15:20:22 +0800 Subject: [PATCH 11/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加更新 --- .../wabestway/recall/web/OrderController.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index c867be0..57fc1cc 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -68,6 +68,23 @@ public class OrderController { }); } + @PostMapping("/recallUp") + public Mono recallUp(@RequestBody Order order) { + Mono queryOrder = orderRepository.findByOrderId(order.getOrderId()); + return queryOrder.flatMap(ss -> { + if (ss != null) { + ss.setStartDate(order.getStartDate()); + ss.setEndDate(order.getEndDate()); + ss.setHolderName(order.getHolderName()); + ss.setHolderPhone(order.getHolderPhone()); + ss.setSupplierName(order.getSupplierName()); + orderRepository.save(ss).subscribe(); + return Mono.just(ResObj.ok()); + } + return Mono.just(ResObj.fail("订单不存在")); + }); + } + @PostMapping("/info/{orderId}") public Mono findByOrderId(@PathVariable String orderId) { Mono forder = orderRepository.findByOrderId(orderId); From 0436a7a399fcedc62134804726815a9c2d14ef60 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Fri, 5 May 2023 16:02:05 +0800 Subject: [PATCH 12/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 注释 --- .../com/wabestway/recall/web/RecallController.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/wabestway/recall/web/RecallController.java b/src/main/java/com/wabestway/recall/web/RecallController.java index 7a7b656..f96abd4 100644 --- a/src/main/java/com/wabestway/recall/web/RecallController.java +++ b/src/main/java/com/wabestway/recall/web/RecallController.java @@ -85,11 +85,11 @@ public class RecallController { order.setAppKey(record.getAppKey()); order.setArchived("0"); order.setComplete("0"); - order.setHolderName("王五"); - order.setHolderPhone("18515064530"); - order.setSupplierName("阳光保险"); - order.setStartDate("2023-01-01"); - order.setEndDate("2035-01-01"); +// order.setHolderName("王五"); +// order.setHolderPhone("18515064530"); +// order.setSupplierName("阳光保险"); +// order.setStartDate("2023-01-01"); +// order.setEndDate("2035-01-01"); if (record.isLast()) { order.setComplete("1"); } From a30661b564cc426c92945fba2b55beda7f109842 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Fri, 5 May 2023 16:02:48 +0800 Subject: [PATCH 13/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 注释 --- src/main/java/com/wabestway/recall/web/RecallController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/wabestway/recall/web/RecallController.java b/src/main/java/com/wabestway/recall/web/RecallController.java index f96abd4..0878b0c 100644 --- a/src/main/java/com/wabestway/recall/web/RecallController.java +++ b/src/main/java/com/wabestway/recall/web/RecallController.java @@ -1,5 +1,6 @@ package com.wabestway.recall.web; +import com.alibaba.fastjson.JSON; import com.wabestway.recall.model.Order; import com.wabestway.recall.model.Record; import com.wabestway.recall.model.ResObj; @@ -11,6 +12,7 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.util.UUID; + @Slf4j @RestController @RequestMapping("/track") @@ -30,7 +32,7 @@ public class RecallController { @PostMapping("/save") public Mono save(@RequestBody Record record) { - + log.info("请求数据:{}", JSON.toJSONString(record)); if (record.getOrderId() != null && !record.getOrderId().isEmpty()) { Mono order = orderRepository.findByOrderId(record.getOrderId()); order.hasElement().subscribe(exit -> { From d19a4b4df6640e8799c2640801f685c91f42b467 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Fri, 5 May 2023 16:17:30 +0800 Subject: [PATCH 14/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加空处理 --- src/main/java/com/wabestway/recall/web/OrderController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 57fc1cc..b2a7712 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -82,7 +82,7 @@ public class OrderController { return Mono.just(ResObj.ok()); } return Mono.just(ResObj.fail("订单不存在")); - }); + }).defaultIfEmpty(null); } @PostMapping("/info/{orderId}") From abdce58be2159026b5b9e588e00c3d78107afe4c Mon Sep 17 00:00:00 2001 From: BrandWang Date: Fri, 5 May 2023 17:17:59 +0800 Subject: [PATCH 15/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整打印 --- src/main/java/com/wabestway/recall/web/RecallController.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/wabestway/recall/web/RecallController.java b/src/main/java/com/wabestway/recall/web/RecallController.java index 0878b0c..ac0c261 100644 --- a/src/main/java/com/wabestway/recall/web/RecallController.java +++ b/src/main/java/com/wabestway/recall/web/RecallController.java @@ -32,7 +32,6 @@ public class RecallController { @PostMapping("/save") public Mono save(@RequestBody Record record) { - log.info("请求数据:{}", JSON.toJSONString(record)); if (record.getOrderId() != null && !record.getOrderId().isEmpty()) { Mono order = orderRepository.findByOrderId(record.getOrderId()); order.hasElement().subscribe(exit -> { @@ -99,7 +98,7 @@ public class RecallController { } } record.setCreateAt(System.currentTimeMillis()); - + log.info("保存数据:{}", JSON.toJSONString(record)); return recordRepository.save(record).flatMap(ss -> { ss.setEvents(null); return Mono.just(ResObj.ok(ss)); From f94103c6fcda11296d6ae1b6b1f6f646f5dfcad0 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Fri, 5 May 2023 17:36:20 +0800 Subject: [PATCH 16/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 取消索引 --- src/main/java/com/wabestway/recall/model/Record.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/wabestway/recall/model/Record.java b/src/main/java/com/wabestway/recall/model/Record.java index d81df73..5b8d629 100644 --- a/src/main/java/com/wabestway/recall/model/Record.java +++ b/src/main/java/com/wabestway/recall/model/Record.java @@ -14,7 +14,6 @@ public class Record { @Id private String id; private List events; - @Indexed(unique = false) private String traceId; @BsonIgnore private String orderId; From 45ff862c8e01452f6b7431726d0398adc5eedb13 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Fri, 5 May 2023 17:38:45 +0800 Subject: [PATCH 17/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 取消索引 --- .../wabestway/recall/web/OrderController.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index b2a7712..90fed7a 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -72,17 +72,14 @@ public class OrderController { public Mono recallUp(@RequestBody Order order) { Mono queryOrder = orderRepository.findByOrderId(order.getOrderId()); return queryOrder.flatMap(ss -> { - if (ss != null) { - ss.setStartDate(order.getStartDate()); - ss.setEndDate(order.getEndDate()); - ss.setHolderName(order.getHolderName()); - ss.setHolderPhone(order.getHolderPhone()); - ss.setSupplierName(order.getSupplierName()); - orderRepository.save(ss).subscribe(); - return Mono.just(ResObj.ok()); - } - return Mono.just(ResObj.fail("订单不存在")); - }).defaultIfEmpty(null); + ss.setStartDate(order.getStartDate()); + ss.setEndDate(order.getEndDate()); + ss.setHolderName(order.getHolderName()); + ss.setHolderPhone(order.getHolderPhone()); + ss.setSupplierName(order.getSupplierName()); + orderRepository.save(ss).subscribe(); + return Mono.just(ResObj.ok()); + }).defaultIfEmpty(ResObj.fail("订单不存在")); } @PostMapping("/info/{orderId}") From ba094c70083b747538bdbdcb32ac0b2d1f15df59 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Sat, 6 May 2023 15:19:27 +0800 Subject: [PATCH 18/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=AF=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 取消索引 --- pom.xml | 1 - .../com/wabestway/recall/web/OrderController.java | 8 +------- src/test/java/com/wabestway/recall/JSEngine.java | 15 +++++++++++++++ 3 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 src/test/java/com/wabestway/recall/JSEngine.java diff --git a/pom.xml b/pom.xml index c2a565c..cd35c4c 100644 --- a/pom.xml +++ b/pom.xml @@ -48,7 +48,6 @@ org.springframework.boot spring-boot-starter-webflux - org.projectlombok lombok diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 90fed7a..e703799 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -22,7 +22,6 @@ import java.io.*; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Comparator; import java.util.List; @Slf4j @@ -57,11 +56,6 @@ public class OrderController { Flux flux = orderRepository.findAll(ep, s); flux.skip(pageRequest.getOffset()).limitRequest(pageRequest.getPageSize()).subscribe(list::add); resList.setList(list); -// Mono> listMono = flux.skip(pageRequest.getOffset()).limitRequest(pageRequest.getPageSize()).collectList(); -// return listMono.flatMap(list -> { -// resList.setList(list); -// return Mono.just(ResObj.ok(resList)); -// }); return flux.count().flatMap(count -> { resList.setTotal(count); return Mono.just(ResObj.ok(resList)); @@ -93,7 +87,7 @@ public class OrderController { fo.setEvents(e); return Mono.just(ResObj.ok(fo)); }); - }); + }).defaultIfEmpty(ResObj.fail("订单不存在")); } @GetMapping("/ffmpeg") diff --git a/src/test/java/com/wabestway/recall/JSEngine.java b/src/test/java/com/wabestway/recall/JSEngine.java new file mode 100644 index 0000000..8503276 --- /dev/null +++ b/src/test/java/com/wabestway/recall/JSEngine.java @@ -0,0 +1,15 @@ +package com.wabestway.recall; + +import org.junit.Test; + +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; + +public class JSEngine { + @Test + public void TestEngine(){ + ScriptEngineManager manager = new ScriptEngineManager(); + ScriptEngine engine = manager.getEngineByName("js"); + System.out.printf(engine.toString()); + } +} From 7412cafda04e66746dccb3099aea2f114b3aa476 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Sat, 6 May 2023 18:29:18 +0800 Subject: [PATCH 19/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构为mysql --- afis-recall-service/.gitignore | 38 +++ afis-recall-service/pom.xml | 65 +++++ .../recall/trace/dao/RecallOrderDao.java | 51 ++++ .../recall/trace/dao/RecallRecordDao.java | 51 ++++ .../recall/trace/dto/RecallOrderDTO.java | 77 ++++++ .../recall/trace/dto/RecallRecordDTO.java | 44 ++++ .../trace/entity/RecallOrderEntity.java | 66 +++++ .../trace/entity/RecallRecordEntity.java | 38 +++ .../trace/service/RecallOrderService.java | 48 ++++ .../trace/service/RecallRecordService.java | 48 ++++ .../service/impl/RecallOrderServiceImpl.java | 46 ++++ .../service/impl/RecallRecordServiceImpl.java | 46 ++++ .../recall/trace/vo/RecallOrderVO.java | 87 +++++++ .../recall/trace/vo/RecallRecordVO.java | 48 ++++ .../resources/mapper/trace/RecallOrderDao.xml | 236 ++++++++++++++++++ .../mapper/trace/RecallRecordDao.xml | 117 +++++++++ afis-recall-web/.gitignore | 38 +++ afis-recall-web/pom.xml | 105 ++++++++ .../recall/AfisRecallApplication.java | 0 .../com/wabestway/recall/model/Order.java | 0 .../com/wabestway/recall/model/OrderList.java | 0 .../com/wabestway/recall/model/Record.java | 0 .../com/wabestway/recall/model/ResObj.java | 0 .../recall/repository/OrderRepository.java | 0 .../recall/repository/RecordRepository.java | 0 .../controller/RecallOrderController.java | 69 +++++ .../controller/RecallRecordController.java | 69 +++++ .../trace/service/RecallOrderApiService.java | 54 ++++ .../trace/service/RecallRecordApiService.java | 54 ++++ .../impl/RecallOrderApiServiceImpl.java | 85 +++++++ .../impl/RecallRecordApiServiceImpl.java | 85 +++++++ .../wabestway/recall/web/OrderController.java | 0 .../recall/web/RecallController.java | 0 pom.xml | 119 +++------ src/main/resources/application-dev.yml | 7 - src/main/resources/application-native.yml | 7 - src/main/resources/application.properties | 1 - src/main/resources/application.yml | 1 - src/main/resources/bootstrap-dev.yml | 16 -- src/main/resources/bootstrap-prod.yml | 17 -- src/main/resources/bootstrap-sit.yml | 16 -- src/main/resources/bootstrap-uat.yml | 16 -- src/main/resources/bootstrap.yml | 3 - .../java/com/wabestway/recall/FFmpeg.java | 69 ----- .../java/com/wabestway/recall/JSEngine.java | 15 -- 45 files changed, 1699 insertions(+), 253 deletions(-) create mode 100644 afis-recall-service/.gitignore create mode 100644 afis-recall-service/pom.xml create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallOrderDao.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallRecordDao.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallOrderDTO.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallRecordDTO.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallOrderEntity.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallRecordService.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordServiceImpl.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallRecordVO.java create mode 100644 afis-recall-service/src/main/resources/mapper/trace/RecallOrderDao.xml create mode 100644 afis-recall-service/src/main/resources/mapper/trace/RecallRecordDao.xml create mode 100644 afis-recall-web/.gitignore create mode 100644 afis-recall-web/pom.xml rename {src => afis-recall-web/src}/main/java/com/wabestway/recall/AfisRecallApplication.java (100%) rename {src => afis-recall-web/src}/main/java/com/wabestway/recall/model/Order.java (100%) rename {src => afis-recall-web/src}/main/java/com/wabestway/recall/model/OrderList.java (100%) rename {src => afis-recall-web/src}/main/java/com/wabestway/recall/model/Record.java (100%) rename {src => afis-recall-web/src}/main/java/com/wabestway/recall/model/ResObj.java (100%) rename {src => afis-recall-web/src}/main/java/com/wabestway/recall/repository/OrderRepository.java (100%) rename {src => afis-recall-web/src}/main/java/com/wabestway/recall/repository/RecordRepository.java (100%) create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallRecordController.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java rename {src => afis-recall-web/src}/main/java/com/wabestway/recall/web/OrderController.java (100%) rename {src => afis-recall-web/src}/main/java/com/wabestway/recall/web/RecallController.java (100%) delete mode 100644 src/main/resources/application-dev.yml delete mode 100644 src/main/resources/application-native.yml delete mode 100644 src/main/resources/application.properties delete mode 100644 src/main/resources/application.yml delete mode 100644 src/main/resources/bootstrap-dev.yml delete mode 100644 src/main/resources/bootstrap-prod.yml delete mode 100644 src/main/resources/bootstrap-sit.yml delete mode 100644 src/main/resources/bootstrap-uat.yml delete mode 100644 src/main/resources/bootstrap.yml delete mode 100644 src/test/java/com/wabestway/recall/FFmpeg.java delete mode 100644 src/test/java/com/wabestway/recall/JSEngine.java diff --git a/afis-recall-service/.gitignore b/afis-recall-service/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/afis-recall-service/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/afis-recall-service/pom.xml b/afis-recall-service/pom.xml new file mode 100644 index 0000000..6bd1a71 --- /dev/null +++ b/afis-recall-service/pom.xml @@ -0,0 +1,65 @@ + + + 4.0.0 + + com.wabestway.recall + afis-recall + 0.0.1-SNAPSHOT + + jar + afis-recall-service + + 1.8 + 1.8 + UTF-8 + UTF-8 + 3.3.2 + + + + + com.wabestway.common + afis-web-common + 1.0 + + + + javax.validation + validation-api + 2.0.1.Final + + + org.springframework + spring-context + 5.2.10.RELEASE + provided + + + org.springframework + spring-beans + 5.2.10.RELEASE + provided + + + + com.fasterxml.jackson.core + jackson-databind + 2.10.5 + provided + + + com.baomidou + mybatis-plus + ${mybatisplus.version} + provided + + + com.baomidou + dynamic-datasource-spring-boot-starter + 3.5.1 + provided + + + \ No newline at end of file diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallOrderDao.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallOrderDao.java new file mode 100644 index 0000000..22efc10 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallOrderDao.java @@ -0,0 +1,51 @@ +package com.wabestway.recall.trace.dao; + +import com.wabestway.recall.trace.entity.RecallOrderEntity; +import com.wabestway.recall.trace.dto.RecallOrderDTO; +import com.wabestway.recall.trace.vo.RecallOrderVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Mapper +public interface RecallOrderDao extends BaseMapper { + + /** + * 分页查询 + * @param page 分页对象 + * @param recallOrderDTO + * @return + */ + IPage queryRecallOrderByCondition(Page page, @Param("recallOrderDTO")RecallOrderDTO recallOrderDTO); + + /** + * 条件查询,不分页 + * @param recallOrderDTO + * @return + */ + List queryRecallOrderListNoPage(@Param("recallOrderDTO")RecallOrderDTO recallOrderDTO); + + /** + * 根据id更新 + * @param recallOrder 对象 + * @return + */ + void updateRecallOrderById(@Param("recallOrder")RecallOrderEntity recallOrder); + + /** + * 根据id查询详情 + * @param id + * @return + */ + RecallOrderVO queryRecallOrderById(@Param("id") String id); +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallRecordDao.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallRecordDao.java new file mode 100644 index 0000000..7e295f8 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallRecordDao.java @@ -0,0 +1,51 @@ +package com.wabestway.recall.trace.dao; + +import com.wabestway.recall.trace.entity.RecallRecordEntity; +import com.wabestway.recall.trace.dto.RecallRecordDTO; +import com.wabestway.recall.trace.vo.RecallRecordVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Mapper +public interface RecallRecordDao extends BaseMapper { + + /** + * 分页查询 + * @param page 分页对象 + * @param recallRecordDTO + * @return + */ + IPage queryRecallRecordByCondition(Page page, @Param("recallRecordDTO")RecallRecordDTO recallRecordDTO); + + /** + * 条件查询,不分页 + * @param recallRecordDTO + * @return + */ + List queryRecallRecordListNoPage(@Param("recallRecordDTO")RecallRecordDTO recallRecordDTO); + + /** + * 根据id更新 + * @param recallRecord 对象 + * @return + */ + void updateRecallRecordById(@Param("recallRecord")RecallRecordEntity recallRecord); + + /** + * 根据id查询详情 + * @param id + * @return + */ + RecallRecordVO queryRecallRecordById(@Param("id") String id); +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallOrderDTO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallOrderDTO.java new file mode 100644 index 0000000..12edece --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallOrderDTO.java @@ -0,0 +1,77 @@ +package com.wabestway.recall.trace.dto; + +import java.io.Serializable; +import lombok.Data; +import com.wabestway.commons.http.PageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Data +@ApiModel +public class RecallOrderDTO extends PageDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** 主键 */ + @ApiModelProperty(value = "主键") + private String id; + /** 产品编码 */ + @ApiModelProperty(value = "产品编码") + private String productCode; + /** 产品名称 */ + @ApiModelProperty(value = "产品名称") + private String productName; + /** 保单号 */ + @ApiModelProperty(value = "保单号") + private String policyNo; + /** 投保人名称 */ + @ApiModelProperty(value = "投保人名称") + private String holderName; + /** 投保人手机号 */ + @ApiModelProperty(value = "投保人手机号") + private String holderPhone; + /** 保险公司名称 */ + @ApiModelProperty(value = "保险公司名称") + private String supplierName; + /** 是否记录完整0-否1-是 */ + @ApiModelProperty(value = "是否记录完整0-否1-是") + private String complete; + /** 是否已归档 0-否1-是 */ + @ApiModelProperty(value = "是否已归档 0-否1-是 ") + private String archived; + /** 完成日期 */ + @ApiModelProperty(value = "完成日期") + private Long completeDate; + /** 归档日期 */ + @ApiModelProperty(value = "归档日期") + private Long archivedDate; + /** 保单起始日期 */ + @ApiModelProperty(value = "保单起始日期") + private String startDate; + /** 保单结束日期 */ + @ApiModelProperty(value = "保单结束日期") + private String endDate; + /** 生成视频文件ID */ + @ApiModelProperty(value = "生成视频文件ID") + private String fileId; + /** 生成视频文件地址 */ + @ApiModelProperty(value = "生成视频文件地址") + private String fileUrl; + /** 业务订单ID */ + @ApiModelProperty(value = "业务订单ID") + private String orderId; + /** 回溯记录跟踪ID */ + @ApiModelProperty(value = "回溯记录跟踪ID") + private String traceId; + /** 可回溯记录appKey */ + @ApiModelProperty(value = "可回溯记录appKey") + private String appKey; + +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallRecordDTO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallRecordDTO.java new file mode 100644 index 0000000..33de171 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallRecordDTO.java @@ -0,0 +1,44 @@ +package com.wabestway.recall.trace.dto; + +import java.io.Serializable; +import lombok.Data; +import com.wabestway.commons.http.PageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Data +@ApiModel +public class RecallRecordDTO extends PageDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** 主键 */ + @ApiModelProperty(value = "主键") + private String id; + /** 产品编码 */ + @ApiModelProperty(value = "产品编码") + private String productCode; + /** 产品名称 */ + @ApiModelProperty(value = "产品名称") + private String productName; + /** 模块 */ + @ApiModelProperty(value = "模块") + private String module; + /** 页面说明 */ + @ApiModelProperty(value = "页面说明") + private String content; + /** 记录事件 */ + @ApiModelProperty(value = "记录事件") + private Blob events; + /** 回溯记录跟踪ID */ + @ApiModelProperty(value = "回溯记录跟踪ID") + private String traceId; + +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallOrderEntity.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallOrderEntity.java new file mode 100644 index 0000000..317f8c9 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallOrderEntity.java @@ -0,0 +1,66 @@ +package com.wabestway.recall.trace.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableId; + +import lombok.Data; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Data +@TableName(value = "recall_order") +public class RecallOrderEntity { + /** 主键 */ + @TableId + private String id; + /** 产品编码 */ + private String productCode; + /** 产品名称 */ + private String productName; + /** 保单号 */ + private String policyNo; + /** 投保人名称 */ + private String holderName; + /** 投保人手机号 */ + private String holderPhone; + /** 保险公司名称 */ + private String supplierName; + /** 是否记录完整0-否1-是 */ + private String complete; + /** 是否已归档 0-否1-是 */ + private String archived; + /** 完成日期 */ + private Long completeDate; + /** 归档日期 */ + private Long archivedDate; + /** 保单起始日期 */ + private String startDate; + /** 保单结束日期 */ + private String endDate; + /** 生成视频文件ID */ + private String fileId; + /** 生成视频文件地址 */ + private String fileUrl; + /** 业务订单ID */ + private String orderId; + /** 回溯记录跟踪ID */ + private String traceId; + /** 租户ID */ + private String tenantId; + /** 可回溯记录appKey */ + private String appKey; + /** 创建人 */ + private String createBy; + /** 创建时间 */ + private Long createTime; + /** 更新人 */ + private String updateBy; + /** 更新时间 */ + private Long updateTime; + +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java new file mode 100644 index 0000000..12e41f2 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java @@ -0,0 +1,38 @@ +package com.wabestway.recall.trace.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableId; + +import lombok.Data; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Data +@TableName(value = "recall_record") +public class RecallRecordEntity { + /** 主键 */ + @TableId + private String id; + /** 产品编码 */ + private String productCode; + /** 产品名称 */ + private String productName; + /** 模块 */ + private String module; + /** 页面说明 */ + private String content; + /** 记录事件 */ + private Blob events; + /** 回溯记录跟踪ID */ + private String traceId; + /** 创建人 */ + private String createBy; + /** 创建时间 */ + private Long createTime; + +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java new file mode 100644 index 0000000..56f4cfa --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java @@ -0,0 +1,48 @@ +package com.wabestway.recall.trace.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.wabestway.recall.trace.entity.RecallOrderEntity; +import com.wabestway.recall.trace.dto.RecallOrderDTO; +import com.wabestway.recall.trace.vo.RecallOrderVO; +import java.util.List; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +public interface RecallOrderService extends IService { + + /** + * 分页查询 + * @param page 分页对象 + * @param recallOrderDTO + * @return + */ + IPage queryRecallOrderByCondition(long page, long size, RecallOrderDTO recallOrderDTO); + + /** + * 条件查询,不分页 + * @param recallOrderDTO + * @return + */ + List queryRecallOrderListNoPage(RecallOrderDTO recallOrderDTO); + + /** + * 根据id更新 + * @param recallOrder 对象 + * @return + */ + void updateRecallOrderById(RecallOrderEntity recallOrder); + + /** + * 根据id查询详情 + * @param id + * @return + */ + RecallOrderVO queryRecallOrderById(String id); +} + diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallRecordService.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallRecordService.java new file mode 100644 index 0000000..7c9b966 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallRecordService.java @@ -0,0 +1,48 @@ +package com.wabestway.recall.trace.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.wabestway.recall.trace.entity.RecallRecordEntity; +import com.wabestway.recall.trace.dto.RecallRecordDTO; +import com.wabestway.recall.trace.vo.RecallRecordVO; +import java.util.List; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +public interface RecallRecordService extends IService { + + /** + * 分页查询 + * @param page 分页对象 + * @param recallRecordDTO + * @return + */ + IPage queryRecallRecordByCondition(long page, long size, RecallRecordDTO recallRecordDTO); + + /** + * 条件查询,不分页 + * @param recallRecordDTO + * @return + */ + List queryRecallRecordListNoPage(RecallRecordDTO recallRecordDTO); + + /** + * 根据id更新 + * @param recallRecord 对象 + * @return + */ + void updateRecallRecordById(RecallRecordEntity recallRecord); + + /** + * 根据id查询详情 + * @param id + * @return + */ + RecallRecordVO queryRecallRecordById(String id); +} + diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java new file mode 100644 index 0000000..5cff9f6 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java @@ -0,0 +1,46 @@ +package com.wabestway.recall.trace.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wabestway.recall.trace.dao.RecallOrderDao; +import com.wabestway.recall.trace.entity.RecallOrderEntity; +import com.wabestway.recall.trace.dto.RecallOrderDTO; +import com.wabestway.recall.trace.vo.RecallOrderVO; +import com.wabestway.recall.trace.service.RecallOrderService; +import java.util.List; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Service +public class RecallOrderServiceImpl extends ServiceImpl implements RecallOrderService { + + @Override + public IPage queryRecallOrderByCondition(long page, long size, RecallOrderDTO recallOrderDTO) { + Page paramReq = new Page<>(page,size); + paramReq.addOrder(new OrderItem().setColumn("create_time").setAsc(false));//创建时间降序排序 + IPage iPage = baseMapper.queryRecallOrderByCondition(paramReq, recallOrderDTO); + return iPage; + } + + public List queryRecallOrderListNoPage(RecallOrderDTO recallOrderDTO) { + return baseMapper.queryRecallOrderListNoPage(recallOrderDTO); + } + + @Override + public void updateRecallOrderById(RecallOrderEntity recallOrder) { + baseMapper.updateRecallOrderById(recallOrder); + } + + @Override + public RecallOrderVO queryRecallOrderById(String id ) { + return baseMapper.queryRecallOrderById(id); + } +} \ No newline at end of file diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordServiceImpl.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordServiceImpl.java new file mode 100644 index 0000000..f5f2bf0 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordServiceImpl.java @@ -0,0 +1,46 @@ +package com.wabestway.recall.trace.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wabestway.recall.trace.dao.RecallRecordDao; +import com.wabestway.recall.trace.entity.RecallRecordEntity; +import com.wabestway.recall.trace.dto.RecallRecordDTO; +import com.wabestway.recall.trace.vo.RecallRecordVO; +import com.wabestway.recall.trace.service.RecallRecordService; +import java.util.List; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Service +public class RecallRecordServiceImpl extends ServiceImpl implements RecallRecordService { + + @Override + public IPage queryRecallRecordByCondition(long page, long size, RecallRecordDTO recallRecordDTO) { + Page paramReq = new Page<>(page,size); + paramReq.addOrder(new OrderItem().setColumn("create_time").setAsc(false));//创建时间降序排序 + IPage iPage = baseMapper.queryRecallRecordByCondition(paramReq, recallRecordDTO); + return iPage; + } + + public List queryRecallRecordListNoPage(RecallRecordDTO recallRecordDTO) { + return baseMapper.queryRecallRecordListNoPage(recallRecordDTO); + } + + @Override + public void updateRecallRecordById(RecallRecordEntity recallRecord) { + baseMapper.updateRecallRecordById(recallRecord); + } + + @Override + public RecallRecordVO queryRecallRecordById(String id ) { + return baseMapper.queryRecallRecordById(id); + } +} \ No newline at end of file diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java new file mode 100644 index 0000000..bda9bf9 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java @@ -0,0 +1,87 @@ +package com.wabestway.recall.trace.vo; + +import java.io.Serializable; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Data +@ApiModel +public class RecallOrderVO implements Serializable { + private static final long serialVersionUID = 1L; + + /** 主键 */ + @ApiModelProperty(value = "主键") + private String id; + /** 产品编码 */ + @ApiModelProperty(value = "产品编码") + private String productCode; + /** 产品名称 */ + @ApiModelProperty(value = "产品名称") + private String productName; + /** 保单号 */ + @ApiModelProperty(value = "保单号") + private String policyNo; + /** 投保人名称 */ + @ApiModelProperty(value = "投保人名称") + private String holderName; + /** 投保人手机号 */ + @ApiModelProperty(value = "投保人手机号") + private String holderPhone; + /** 保险公司名称 */ + @ApiModelProperty(value = "保险公司名称") + private String supplierName; + /** 是否记录完整0-否1-是 */ + @ApiModelProperty(value = "是否记录完整0-否1-是") + private String complete; + /** 是否已归档 0-否1-是 */ + @ApiModelProperty(value = "是否已归档 0-否1-是 ") + private String archived; + /** 完成日期 */ + @ApiModelProperty(value = "完成日期") + private Long completeDate; + /** 归档日期 */ + @ApiModelProperty(value = "归档日期") + private Long archivedDate; + /** 保单起始日期 */ + @ApiModelProperty(value = "保单起始日期") + private String startDate; + /** 保单结束日期 */ + @ApiModelProperty(value = "保单结束日期") + private String endDate; + /** 生成视频文件ID */ + @ApiModelProperty(value = "生成视频文件ID") + private String fileId; + /** 生成视频文件地址 */ + @ApiModelProperty(value = "生成视频文件地址") + private String fileUrl; + /** 业务订单ID */ + @ApiModelProperty(value = "业务订单ID") + private String orderId; + /** 回溯记录跟踪ID */ + @ApiModelProperty(value = "回溯记录跟踪ID") + private String traceId; + /** 可回溯记录appKey */ + @ApiModelProperty(value = "可回溯记录appKey") + private String appKey; + /** 创建人 */ + @ApiModelProperty(value = "创建人") + private String createBy; + /** 创建时间 */ + @ApiModelProperty(value = "创建时间") + private Long createTime; + /** 更新人 */ + @ApiModelProperty(value = "更新人") + private String updateBy; + /** 更新时间 */ + @ApiModelProperty(value = "更新时间") + private Long updateTime; + +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallRecordVO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallRecordVO.java new file mode 100644 index 0000000..f0748c8 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallRecordVO.java @@ -0,0 +1,48 @@ +package com.wabestway.recall.trace.vo; + +import java.io.Serializable; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Data +@ApiModel +public class RecallRecordVO implements Serializable { + private static final long serialVersionUID = 1L; + + /** 主键 */ + @ApiModelProperty(value = "主键") + private String id; + /** 产品编码 */ + @ApiModelProperty(value = "产品编码") + private String productCode; + /** 产品名称 */ + @ApiModelProperty(value = "产品名称") + private String productName; + /** 模块 */ + @ApiModelProperty(value = "模块") + private String module; + /** 页面说明 */ + @ApiModelProperty(value = "页面说明") + private String content; + /** 记录事件 */ + @ApiModelProperty(value = "记录事件") + private Blob events; + /** 回溯记录跟踪ID */ + @ApiModelProperty(value = "回溯记录跟踪ID") + private String traceId; + /** 创建人 */ + @ApiModelProperty(value = "创建人") + private String createBy; + /** 创建时间 */ + @ApiModelProperty(value = "创建时间") + private Long createTime; + +} diff --git a/afis-recall-service/src/main/resources/mapper/trace/RecallOrderDao.xml b/afis-recall-service/src/main/resources/mapper/trace/RecallOrderDao.xml new file mode 100644 index 0000000..c0253a2 --- /dev/null +++ b/afis-recall-service/src/main/resources/mapper/trace/RecallOrderDao.xml @@ -0,0 +1,236 @@ + + + + + + + t.id id, + t.product_code productCode, + t.product_name productName, + t.policy_no policyNo, + t.holder_name holderName, + t.holder_phone holderPhone, + t.supplier_name supplierName, + t.complete complete, + t.archived archived, + t.complete_date completeDate, + t.archived_date archivedDate, + t.start_date startDate, + t.end_date endDate, + t.file_id fileId, + t.file_url fileUrl, + t.order_id orderId, + t.trace_id traceId, + t.tenant_id tenantId, + t.app_key appKey, + t.create_by createBy, + t.create_time createTime, + t.update_by updateBy, + t.update_time updateTime + + + + + + + + + + update recall_order t + + + + t.id = #{recallOrder.id}, + + + t.product_code = #{recallOrder.productCode}, + + + t.product_name = #{recallOrder.productName}, + + + t.policy_no = #{recallOrder.policyNo}, + + + t.holder_name = #{recallOrder.holderName}, + + + t.holder_phone = #{recallOrder.holderPhone}, + + + t.supplier_name = #{recallOrder.supplierName}, + + + t.complete = #{recallOrder.complete}, + + + t.archived = #{recallOrder.archived}, + + + t.complete_date = #{recallOrder.completeDate}, + + + t.archived_date = #{recallOrder.archivedDate}, + + + t.start_date = #{recallOrder.startDate}, + + + t.end_date = #{recallOrder.endDate}, + + + t.file_id = #{recallOrder.fileId}, + + + t.file_url = #{recallOrder.fileUrl}, + + + t.order_id = #{recallOrder.orderId}, + + + t.trace_id = #{recallOrder.traceId}, + + + t.app_key = #{recallOrder.appKey}, + + + t.update_by = #{recallOrder.updateBy}, + + + t.update_time = #{recallOrder.updateTime}, + + + where t.id= #{recallOrder.id} + + + \ No newline at end of file diff --git a/afis-recall-service/src/main/resources/mapper/trace/RecallRecordDao.xml b/afis-recall-service/src/main/resources/mapper/trace/RecallRecordDao.xml new file mode 100644 index 0000000..19067eb --- /dev/null +++ b/afis-recall-service/src/main/resources/mapper/trace/RecallRecordDao.xml @@ -0,0 +1,117 @@ + + + + + + + t.id id, + t.product_code productCode, + t.product_name productName, + t.module module, + t.content content, + t.events events, + t.trace_id traceId, + t.create_by createBy, + t.create_time createTime + + + + + + + + + + update recall_record t + + + + t.id = #{recallRecord.id}, + + + t.product_code = #{recallRecord.productCode}, + + + t.product_name = #{recallRecord.productName}, + + + t.module = #{recallRecord.module}, + + + t.content = #{recallRecord.content}, + + + t.events = #{recallRecord.events}, + + + t.trace_id = #{recallRecord.traceId}, + + + where t.id= #{recallRecord.id} + + + \ No newline at end of file diff --git a/afis-recall-web/.gitignore b/afis-recall-web/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/afis-recall-web/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/afis-recall-web/pom.xml b/afis-recall-web/pom.xml new file mode 100644 index 0000000..76fa513 --- /dev/null +++ b/afis-recall-web/pom.xml @@ -0,0 +1,105 @@ + + + 4.0.0 + + com.wabestway.recall + afis-recall + 0.0.1-SNAPSHOT + + + afis-recall-web + jar + + 1.8 + Hoxton.SR9 + 2.2.3.RELEASE + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + com.wabestway.engine + afis-engine-api + 2.5 + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-data-mongodb-reactive + + + org.springframework.boot + spring-boot-starter-webflux + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + io.projectreactor + reactor-test + test + + + com.alibaba + fastjson + 2.0.17 + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + ${spring-cloud-alibaba.version} + pom + import + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/wabestway/recall/AfisRecallApplication.java b/afis-recall-web/src/main/java/com/wabestway/recall/AfisRecallApplication.java similarity index 100% rename from src/main/java/com/wabestway/recall/AfisRecallApplication.java rename to afis-recall-web/src/main/java/com/wabestway/recall/AfisRecallApplication.java diff --git a/src/main/java/com/wabestway/recall/model/Order.java b/afis-recall-web/src/main/java/com/wabestway/recall/model/Order.java similarity index 100% rename from src/main/java/com/wabestway/recall/model/Order.java rename to afis-recall-web/src/main/java/com/wabestway/recall/model/Order.java diff --git a/src/main/java/com/wabestway/recall/model/OrderList.java b/afis-recall-web/src/main/java/com/wabestway/recall/model/OrderList.java similarity index 100% rename from src/main/java/com/wabestway/recall/model/OrderList.java rename to afis-recall-web/src/main/java/com/wabestway/recall/model/OrderList.java diff --git a/src/main/java/com/wabestway/recall/model/Record.java b/afis-recall-web/src/main/java/com/wabestway/recall/model/Record.java similarity index 100% rename from src/main/java/com/wabestway/recall/model/Record.java rename to afis-recall-web/src/main/java/com/wabestway/recall/model/Record.java diff --git a/src/main/java/com/wabestway/recall/model/ResObj.java b/afis-recall-web/src/main/java/com/wabestway/recall/model/ResObj.java similarity index 100% rename from src/main/java/com/wabestway/recall/model/ResObj.java rename to afis-recall-web/src/main/java/com/wabestway/recall/model/ResObj.java diff --git a/src/main/java/com/wabestway/recall/repository/OrderRepository.java b/afis-recall-web/src/main/java/com/wabestway/recall/repository/OrderRepository.java similarity index 100% rename from src/main/java/com/wabestway/recall/repository/OrderRepository.java rename to afis-recall-web/src/main/java/com/wabestway/recall/repository/OrderRepository.java diff --git a/src/main/java/com/wabestway/recall/repository/RecordRepository.java b/afis-recall-web/src/main/java/com/wabestway/recall/repository/RecordRepository.java similarity index 100% rename from src/main/java/com/wabestway/recall/repository/RecordRepository.java rename to afis-recall-web/src/main/java/com/wabestway/recall/repository/RecordRepository.java diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java new file mode 100644 index 0000000..f23c9f6 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java @@ -0,0 +1,69 @@ +package com.wabestway.recall.trace.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.wabestway.recall.trace.dto.RecallOrderDTO; +import com.wabestway.recall.trace.vo.RecallOrderVO; +import com.wabestway.recall.trace.service.RecallOrderApiService; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@RestController +@RequestMapping("/trace/recallOrder") +@Api(tags = {"-接口"}, description = "-接口") +public class RecallOrderController { + @Autowired + private RecallOrderApiService recallOrderApiService; + + /** + * 列表 + */ + @PostMapping("/list") + @ApiOperation(value = "分页列表查询", notes = "条件分页查询列表", httpMethod = "POST") + public ResObj> list(@RequestBody RecallOrderDTO paramRequest) { + return recallOrderApiService.list(paramRequest); + } + + /** + * 信息 + */ + @GetMapping("/info/{id}") + @ApiOperation(value = "根据id查详情", notes = "根据id查详情", httpMethod = "GET") + public ResObj info(@PathVariable("id") String id) { + return recallOrderApiService.getRecallOrder(id); + } + + /** + * 保存 + */ + @PostMapping("/save") + @ApiOperation(value = "保存", notes = "保存", httpMethod = "POST") + public ResObj saveRecallOrder(@RequestBody RecallOrderDTO paramRequest) { + return recallOrderApiService.saveRecallOrder(paramRequest); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperation(value = "修改", notes = "修改", httpMethod = "POST") + public ResObj updateRecallOrder(@RequestBody RecallOrderDTO paramRequest) { + return recallOrderApiService.updateRecallOrder(paramRequest); + } + + @PostMapping("/changeStatus") + @ApiOperation(value = "启禁用更新", notes = "启禁用更新", httpMethod = "POST") + public ResObj changeStatus(@RequestBody RecallOrderDTO paramRequest) { + return recallOrderApiService.changeStatus(paramRequest.getId(), paramRequest.getStatus()); + } +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallRecordController.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallRecordController.java new file mode 100644 index 0000000..df72b34 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallRecordController.java @@ -0,0 +1,69 @@ +package com.wabestway.recall.trace.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.wabestway.recall.trace.dto.RecallRecordDTO; +import com.wabestway.recall.trace.vo.RecallRecordVO; +import com.wabestway.recall.trace.service.RecallRecordApiService; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@RestController +@RequestMapping("/trace/recallRecord") +@Api(tags = {"-接口"}, description = "-接口") +public class RecallRecordController { + @Autowired + private RecallRecordApiService recallRecordApiService; + + /** + * 列表 + */ + @PostMapping("/list") + @ApiOperation(value = "分页列表查询", notes = "条件分页查询列表", httpMethod = "POST") + public ResObj> list(@RequestBody RecallRecordDTO paramRequest) { + return recallRecordApiService.list(paramRequest); + } + + /** + * 信息 + */ + @GetMapping("/info/{id}") + @ApiOperation(value = "根据id查详情", notes = "根据id查详情", httpMethod = "GET") + public ResObj info(@PathVariable("id") String id) { + return recallRecordApiService.getRecallRecord(id); + } + + /** + * 保存 + */ + @PostMapping("/save") + @ApiOperation(value = "保存", notes = "保存", httpMethod = "POST") + public ResObj saveRecallRecord(@RequestBody RecallRecordDTO paramRequest) { + return recallRecordApiService.saveRecallRecord(paramRequest); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperation(value = "修改", notes = "修改", httpMethod = "POST") + public ResObj updateRecallRecord(@RequestBody RecallRecordDTO paramRequest) { + return recallRecordApiService.updateRecallRecord(paramRequest); + } + + @PostMapping("/changeStatus") + @ApiOperation(value = "启禁用更新", notes = "启禁用更新", httpMethod = "POST") + public ResObj changeStatus(@RequestBody RecallRecordDTO paramRequest) { + return recallRecordApiService.changeStatus(paramRequest.getId(), paramRequest.getStatus()); + } +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java new file mode 100644 index 0000000..9cd1d5d --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java @@ -0,0 +1,54 @@ +package com.wabestway.recall.trace.service; + +import java.util.List; +import com.wabestway.recall.trace.dto.RecallOrderDTO; +import com.wabestway.recall.trace.vo.RecallOrderVO; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +public interface RecallOrderApiService { + + /** + * 列表 + * @param paramReq + * @return + */ + ResObj> list(RecallOrderDTO paramReq); + + /** + * 查询详情 + * @param id + * @return + */ + ResObj getRecallOrder(String id); + + /** + * 保存 + * @param paramReq + * @return + */ + ResObj saveRecallOrder(RecallOrderDTO paramReq); + + /** + * 修改 + * @param paramReq + * @return + */ + ResObj updateRecallOrder(RecallOrderDTO paramReq); + + /** + * 启禁用 + * @param id + * @param status + * @return + */ + ResObj changeStatus(String id, String status); +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java new file mode 100644 index 0000000..991c83a --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java @@ -0,0 +1,54 @@ +package com.wabestway.recall.trace.service; + +import java.util.List; +import com.wabestway.recall.trace.dto.RecallRecordDTO; +import com.wabestway.recall.trace.vo.RecallRecordVO; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +public interface RecallRecordApiService { + + /** + * 列表 + * @param paramReq + * @return + */ + ResObj> list(RecallRecordDTO paramReq); + + /** + * 查询详情 + * @param id + * @return + */ + ResObj getRecallRecord(String id); + + /** + * 保存 + * @param paramReq + * @return + */ + ResObj saveRecallRecord(RecallRecordDTO paramReq); + + /** + * 修改 + * @param paramReq + * @return + */ + ResObj updateRecallRecord(RecallRecordDTO paramReq); + + /** + * 启禁用 + * @param id + * @param status + * @return + */ + ResObj changeStatus(String id, String status); +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java new file mode 100644 index 0000000..5b573e9 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -0,0 +1,85 @@ +package com.wabestway.recall.trace.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; +import com.wabestway.commons.enums.DataValidEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.BeanUtils; +import com.wabestway.ins.utils.UUIDUtil; +import com.wabestway.recall.trace.entity.RecallOrderEntity; +import com.wabestway.recall.trace.dto.RecallOrderDTO; +import com.wabestway.recall.trace.vo.RecallOrderVO; +import com.wabestway.recall.trace.service.RecallOrderApiService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.wabestway.recall.trace.util.HeaderDataUtil; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Service +public class RecallOrderApiServiceImpl implements RecallOrderApiService { + @Autowired + private RecallOrderService recallOrderService; + + @Override + public ResObj> list(RecallOrderDTO paramReq) { + IPage resultPage = recallOrderService.queryRecallOrderByCondition(paramReq.getPage(), paramReq.getPageSize(), paramReq); + + Paging paging = new Paging(resultPage.getRecords(), paramReq.getPage(), resultPage.getSize(), resultPage.getTotal()); + return ResObj.ok(paging); + } + + @Override + public ResObj getRecallOrder(String id) { + RecallOrderVO recallOrderVO = recallOrderService.queryRecallOrderById(id); + + return ResObj.ok(recallOrderVO); + } + + @Transactional + @Override + public ResObj saveRecallOrder(RecallOrderDTO paramReq) { + RecallOrderEntity recallOrder = new RecallOrderEntity(); + BeanUtils.copyProperties(paramReq, recallOrder); + + recallOrder.setId(UUIDUtil.generate());//赋值id + recallOrder.setStatus(DataValidEnum.VALID.getCode()); + recallOrder.setCreateBy(HeaderDataUtil.getUserId());//创建人 + recallOrder.setCreateTime(System.currentTimeMillis());//创建时间 + recallOrder.setUpdateBy(HeaderDataUtil.getUserId());//更新人 + recallOrder.setUpdateTime(System.currentTimeMillis());//更新时间 + + recallOrderService.save(recallOrder); + return ResObj.ok(); + } + + @Transactional + @Override + public ResObj updateRecallOrder(RecallOrderDTO paramReq) { + RecallOrderEntity recallOrder = new RecallOrderEntity(); + BeanUtils.copyProperties(paramReq, recallOrder); + recallOrder.setUpdateBy(HeaderDataUtil.getUserId());//更新人 + recallOrder.setUpdateTime(System.currentTimeMillis());//更新时间 + recallOrderService.updateById(recallOrder); + return ResObj.ok(); + } + + @Transactional + @Override + public ResObj changeStatus(String id, String status) { + RecallOrderEntity recallOrder = new RecallOrderEntity(); + recallOrder.setId(id); + recallOrder.setStatus(status); + recallOrder.setUpdateBy(HeaderDataUtil.getUserId()); + recallOrder.setUpdateTime(System.currentTimeMillis()); + recallOrderService.updateRecallOrderById(recallOrder); + + return ResObj.ok(); + } +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java new file mode 100644 index 0000000..56308e2 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java @@ -0,0 +1,85 @@ +package com.wabestway.recall.trace.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; +import com.wabestway.commons.enums.DataValidEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.BeanUtils; +import com.wabestway.ins.utils.UUIDUtil; +import com.wabestway.recall.trace.entity.RecallRecordEntity; +import com.wabestway.recall.trace.dto.RecallRecordDTO; +import com.wabestway.recall.trace.vo.RecallRecordVO; +import com.wabestway.recall.trace.service.RecallRecordApiService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.wabestway.recall.trace.util.HeaderDataUtil; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Service +public class RecallRecordApiServiceImpl implements RecallRecordApiService { + @Autowired + private RecallRecordService recallRecordService; + + @Override + public ResObj> list(RecallRecordDTO paramReq) { + IPage resultPage = recallRecordService.queryRecallRecordByCondition(paramReq.getPage(), paramReq.getPageSize(), paramReq); + + Paging paging = new Paging(resultPage.getRecords(), paramReq.getPage(), resultPage.getSize(), resultPage.getTotal()); + return ResObj.ok(paging); + } + + @Override + public ResObj getRecallRecord(String id) { + RecallRecordVO recallRecordVO = recallRecordService.queryRecallRecordById(id); + + return ResObj.ok(recallRecordVO); + } + + @Transactional + @Override + public ResObj saveRecallRecord(RecallRecordDTO paramReq) { + RecallRecordEntity recallRecord = new RecallRecordEntity(); + BeanUtils.copyProperties(paramReq, recallRecord); + + recallRecord.setId(UUIDUtil.generate());//赋值id + recallRecord.setStatus(DataValidEnum.VALID.getCode()); + recallRecord.setCreateBy(HeaderDataUtil.getUserId());//创建人 + recallRecord.setCreateTime(System.currentTimeMillis());//创建时间 + recallRecord.setUpdateBy(HeaderDataUtil.getUserId());//更新人 + recallRecord.setUpdateTime(System.currentTimeMillis());//更新时间 + + recallRecordService.save(recallRecord); + return ResObj.ok(); + } + + @Transactional + @Override + public ResObj updateRecallRecord(RecallRecordDTO paramReq) { + RecallRecordEntity recallRecord = new RecallRecordEntity(); + BeanUtils.copyProperties(paramReq, recallRecord); + recallRecord.setUpdateBy(HeaderDataUtil.getUserId());//更新人 + recallRecord.setUpdateTime(System.currentTimeMillis());//更新时间 + recallRecordService.updateById(recallRecord); + return ResObj.ok(); + } + + @Transactional + @Override + public ResObj changeStatus(String id, String status) { + RecallRecordEntity recallRecord = new RecallRecordEntity(); + recallRecord.setId(id); + recallRecord.setStatus(status); + recallRecord.setUpdateBy(HeaderDataUtil.getUserId()); + recallRecord.setUpdateTime(System.currentTimeMillis()); + recallRecordService.updateRecallRecordById(recallRecord); + + return ResObj.ok(); + } +} diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/afis-recall-web/src/main/java/com/wabestway/recall/web/OrderController.java similarity index 100% rename from src/main/java/com/wabestway/recall/web/OrderController.java rename to afis-recall-web/src/main/java/com/wabestway/recall/web/OrderController.java diff --git a/src/main/java/com/wabestway/recall/web/RecallController.java b/afis-recall-web/src/main/java/com/wabestway/recall/web/RecallController.java similarity index 100% rename from src/main/java/com/wabestway/recall/web/RecallController.java rename to afis-recall-web/src/main/java/com/wabestway/recall/web/RecallController.java diff --git a/pom.xml b/pom.xml index cd35c4c..545ab26 100644 --- a/pom.xml +++ b/pom.xml @@ -1,107 +1,56 @@ - + 4.0.0 + + com.wabestway.recall + afis-recall + pom + 1.0-SNAPSHOT + + afis-recall-web + afis-recall-service + + + org.springframework.boot spring-boot-starter-parent - 2.3.12.RELEASE + 2.2.11.RELEASE - com.wabestway.recall - afis-recall - 0.0.1-SNAPSHOT - afis-recall - afis-recall + - 1.8 - Hoxton.SR9 - 2.2.3.RELEASE + 2.0.3 + 2.9.2 + + - org.springframework.cloud - spring-cloud-starter-openfeign + io.springfox + springfox-swagger-ui + ${swagger.version} - com.wabestway.engine - afis-engine-api - 2.5 + io.springfox + springfox-swagger2 + ${swagger.version} - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-config - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-data-mongodb-reactive - - - org.springframework.boot - spring-boot-starter-webflux + com.github.xiaoymin + knife4j-spring-boot-starter + + ${knife4j.version} + + org.projectlombok lombok + 1.18.6 true - - org.springframework.boot - spring-boot-starter-test - test - - - io.projectreactor - reactor-test - test - - - com.alibaba - fastjson - 2.0.17 - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - com.alibaba.cloud - spring-cloud-alibaba-dependencies - ${spring-cloud-alibaba.version} - pom - import - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - org.projectlombok - lombok - - - - - - - - + \ No newline at end of file diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml deleted file mode 100644 index 6b0df99..0000000 --- a/src/main/resources/application-dev.yml +++ /dev/null @@ -1,7 +0,0 @@ -server: - port: 9235 - -spring: - data: - mongodb: - uri: mongodb://localhost:27017/recall \ No newline at end of file diff --git a/src/main/resources/application-native.yml b/src/main/resources/application-native.yml deleted file mode 100644 index 6b0df99..0000000 --- a/src/main/resources/application-native.yml +++ /dev/null @@ -1,7 +0,0 @@ -server: - port: 9235 - -spring: - data: - mongodb: - uri: mongodb://localhost:27017/recall \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties deleted file mode 100644 index 253dcf4..0000000 --- a/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.data.mongodb.uri=mongodb://localhost:27017/recall diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml deleted file mode 100644 index 8b13789..0000000 --- a/src/main/resources/application.yml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/main/resources/bootstrap-dev.yml b/src/main/resources/bootstrap-dev.yml deleted file mode 100644 index a2c0c81..0000000 --- a/src/main/resources/bootstrap-dev.yml +++ /dev/null @@ -1,16 +0,0 @@ - -spring: - application: - name: afis-recall - cloud: - nacos: - config: - file-extension: yaml - server-addr: 192.168.0.141:8848 - namespace: ns-car-dev - discovery: - #Nacos服务注册中心地址 - server-addr: 192.168.0.141:8848 - namespace: ns-car-dev - main: - allow-bean-definition-overriding: true \ No newline at end of file diff --git a/src/main/resources/bootstrap-prod.yml b/src/main/resources/bootstrap-prod.yml deleted file mode 100644 index 90acfa4..0000000 --- a/src/main/resources/bootstrap-prod.yml +++ /dev/null @@ -1,17 +0,0 @@ - -spring: - profiles: prod - application: - name: afis-recall - cloud: - nacos: - config: - file-extension: yaml - server-addr: 192.168.0.249:8848,192.168.0.203:8848 - namespace: yxb-prod - discovery: - #Nacos服务注册中心地址 - server-addr: 192.168.0.249:8848,192.168.0.203:8848 - namespace: yxb-prod - main: - allow-bean-definition-overriding: true diff --git a/src/main/resources/bootstrap-sit.yml b/src/main/resources/bootstrap-sit.yml deleted file mode 100644 index 8565c97..0000000 --- a/src/main/resources/bootstrap-sit.yml +++ /dev/null @@ -1,16 +0,0 @@ -spring: - profiles: sit - application: - name: afis-recall - cloud: - nacos: - config: - file-extension: yaml - server-addr: 10.255.255.177:8848 - namespace: ns-car-sit - discovery: - #Nacos服务注册中心地址 - server-addr: 10.255.255.177:8848 - namespace: ns-car-sit - main: - allow-bean-definition-overriding: true diff --git a/src/main/resources/bootstrap-uat.yml b/src/main/resources/bootstrap-uat.yml deleted file mode 100644 index 0f34476..0000000 --- a/src/main/resources/bootstrap-uat.yml +++ /dev/null @@ -1,16 +0,0 @@ -spring: - profiles: uat - application: - name: afis-recall - cloud: - nacos: - config: - file-extension: yaml - server-addr: 192.168.1.128:9010 - namespace: ns-car-uat - discovery: - #Nacos服务注册中心地址 - server-addr: 192.168.1.128:9010 - namespace: ns-car-uat - main: - allow-bean-definition-overriding: true diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml deleted file mode 100644 index 54d7ddc..0000000 --- a/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,3 +0,0 @@ -spring: - profiles: - active: native diff --git a/src/test/java/com/wabestway/recall/FFmpeg.java b/src/test/java/com/wabestway/recall/FFmpeg.java deleted file mode 100644 index 3945f20..0000000 --- a/src/test/java/com/wabestway/recall/FFmpeg.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.wabestway.recall; - - -import com.alibaba.fastjson.JSONArray; -import org.junit.jupiter.api.Test; - -import javax.script.*; -import java.io.*; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Base64; -import java.util.Comparator; -import java.util.List; -import java.util.zip.GZIPInputStream; - - -public class FFmpeg { - @Test - public void TestMp4() throws IOException { - String jsonData = new String(Files.readAllBytes(Paths.get("C:","Users/Administrator/Desktop","traces.json")), StandardCharsets.UTF_8); - - // 创建临时目录 - Path tempDir = null; - try { - tempDir = Files.createTempDirectory("example"); - } catch (IOException e) { - e.printStackTrace(); - } - System.out.println("Created temporary directory: " + tempDir); - - try { - File tempFile = File.createTempFile("traces", ".json", tempDir.toFile()); - FileWriter fw = new FileWriter(tempFile); - BufferedWriter bw = new BufferedWriter(fw); - bw.write(jsonData); - bw.flush(); - bw.close(); - fw.close(); - String[] command = {"C:\\Users\\Administrator\\AppData\\Roaming\\npm\\ts-node", "E:\\Develop\\trace-transform\\src\\index.ts"}; - ProcessBuilder processBuilder = new ProcessBuilder(command); - processBuilder.directory(tempDir.toFile()); - // 在临时目录下执行命令 - Process process = processBuilder.start(); - // 读取命令输出 - BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - String line; - while ((line = reader.readLine()) != null) { - System.out.println(line); - } - reader.close(); - - // 等待命令执行完成 - int exitCode = process.waitFor(); - System.out.println("Command exited with code " + exitCode); - } catch (IOException | InterruptedException e) { - e.printStackTrace(); - } finally { - // 删除临时目录 - Files.walk(tempDir) - .sorted(Comparator.reverseOrder()) - .map(Path::toFile) - .forEach(File::delete); - } - } - - -} diff --git a/src/test/java/com/wabestway/recall/JSEngine.java b/src/test/java/com/wabestway/recall/JSEngine.java deleted file mode 100644 index 8503276..0000000 --- a/src/test/java/com/wabestway/recall/JSEngine.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.wabestway.recall; - -import org.junit.Test; - -import javax.script.ScriptEngine; -import javax.script.ScriptEngineManager; - -public class JSEngine { - @Test - public void TestEngine(){ - ScriptEngineManager manager = new ScriptEngineManager(); - ScriptEngine engine = manager.getEngineByName("js"); - System.out.printf(engine.toString()); - } -} From bc0e40193c1bcad10cac64e51ca521f807a04dbf Mon Sep 17 00:00:00 2001 From: BrandWang Date: Mon, 8 May 2023 16:06:42 +0800 Subject: [PATCH 20/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构为mysql --- afis-recall-service/pom.xml | 2 +- .../recall/trace/dto/RecallRecordDTO.java | 6 +- .../wabestway/recall/trace/dto/TraceDTO.java | 74 +++++++ .../trace/entity/RecallRecordEntity.java | 4 +- .../trace/service/RecallOrderService.java | 14 ++ .../service/impl/RecallOrderServiceImpl.java | 25 ++- .../recall/trace/vo/RecallRecordVO.java | 4 +- afis-recall-web/pom.xml | 38 +++- .../com/wabestway/recall/model/Order.java | 42 ---- .../com/wabestway/recall/model/OrderList.java | 13 -- .../com/wabestway/recall/model/Record.java | 28 --- .../com/wabestway/recall/model/ResObj.java | 173 ---------------- .../recall/repository/OrderRepository.java | 13 -- .../recall/repository/RecordRepository.java | 11 - .../controller/RecallOrderController.java | 31 +-- .../controller/RecallRecordController.java | 43 +--- .../trace/service/RecallOrderApiService.java | 22 +- .../trace/service/RecallRecordApiService.java | 39 +--- .../impl/RecallOrderApiServiceImpl.java | 170 +++++++++++---- .../impl/RecallRecordApiServiceImpl.java | 116 +++++------ .../wabestway/recall/web/OrderController.java | 196 ------------------ .../recall/web/RecallController.java | 107 ---------- 22 files changed, 362 insertions(+), 809 deletions(-) create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/TraceDTO.java delete mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/model/Order.java delete mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/model/OrderList.java delete mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/model/Record.java delete mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/model/ResObj.java delete mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/repository/OrderRepository.java delete mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/repository/RecordRepository.java delete mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/web/OrderController.java delete mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/web/RecallController.java diff --git a/afis-recall-service/pom.xml b/afis-recall-service/pom.xml index 6bd1a71..2b743f3 100644 --- a/afis-recall-service/pom.xml +++ b/afis-recall-service/pom.xml @@ -6,7 +6,7 @@ com.wabestway.recall afis-recall - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT jar afis-recall-service diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallRecordDTO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallRecordDTO.java index 33de171..7b8d154 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallRecordDTO.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallRecordDTO.java @@ -1,6 +1,8 @@ package com.wabestway.recall.trace.dto; import java.io.Serializable; +import java.util.List; + import lombok.Data; import com.wabestway.commons.http.PageDTO; import io.swagger.annotations.ApiModel; @@ -8,7 +10,7 @@ import io.swagger.annotations.ApiModelProperty; /** - * + * * * @author wangH * @company 北京华焱坤泰科技有限公司 @@ -36,7 +38,7 @@ public class RecallRecordDTO extends PageDTO implements Serializable { private String content; /** 记录事件 */ @ApiModelProperty(value = "记录事件") - private Blob events; + private List events; /** 回溯记录跟踪ID */ @ApiModelProperty(value = "回溯记录跟踪ID") private String traceId; diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/TraceDTO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/TraceDTO.java new file mode 100644 index 0000000..bf7008a --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/TraceDTO.java @@ -0,0 +1,74 @@ +package com.wabestway.recall.trace.dto; + +import com.wabestway.commons.http.PageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + + +/** + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-06 17:37:03 + */ +@Data +@ApiModel +public class TraceDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty(value = "主键") + private String id; + /** + * 产品编码 + */ + @ApiModelProperty(value = "产品编码") + private String productCode; + /** + * 产品名称 + */ + @ApiModelProperty(value = "产品名称") + private String productName; + /** + * 模块 + */ + @ApiModelProperty(value = "模块") + private String module; + /** + * 页面说明 + */ + @ApiModelProperty(value = "页面说明") + private String content; + /** + * 记录事件 + */ + @ApiModelProperty(value = "记录事件") + private List events; + /** + * 回溯记录跟踪ID + */ + @ApiModelProperty(value = "回溯记录跟踪ID") + private String traceId; + /** + * 回溯订单Id + */ + @ApiModelProperty(value = "回溯订单Id") + private String orderId; + /** + * 是否最后提交 + */ + @ApiModelProperty(value = "是否最后提交") + private boolean last; + /** + * 调用接口appKey + */ + @ApiModelProperty(value = "调用接口appKey") + private String appKey; + + +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java index 12e41f2..6ce26f0 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; +import java.util.List; + /** * * @@ -27,7 +29,7 @@ public class RecallRecordEntity { /** 页面说明 */ private String content; /** 记录事件 */ - private Blob events; + private List events; /** 回溯记录跟踪ID */ private String traceId; /** 创建人 */ diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java index 56f4cfa..4f117d2 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java @@ -44,5 +44,19 @@ public interface RecallOrderService extends IService { * @return */ RecallOrderVO queryRecallOrderById(String id); + + /** + * 根据业务订单Id 查询回溯订单 + * @param orderId + * @return + */ + RecallOrderEntity queryRecallOrderByOrderId(String orderId); + + /** + * 根据回溯轨迹ID 查询回溯订单 + * @param traceId + * @return + */ + RecallOrderEntity queryRecallOrderByTraceId(String traceId); } diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java index 5cff9f6..610420a 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java @@ -1,7 +1,9 @@ package com.wabestway.recall.trace.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -10,11 +12,10 @@ import com.wabestway.recall.trace.entity.RecallOrderEntity; import com.wabestway.recall.trace.dto.RecallOrderDTO; import com.wabestway.recall.trace.vo.RecallOrderVO; import com.wabestway.recall.trace.service.RecallOrderService; + import java.util.List; /** - * - * * @author wangH * @company 北京华焱坤泰科技有限公司 * @Time 2023-05-06 17:37:03 @@ -24,7 +25,7 @@ public class RecallOrderServiceImpl extends ServiceImpl queryRecallOrderByCondition(long page, long size, RecallOrderDTO recallOrderDTO) { - Page paramReq = new Page<>(page,size); + Page paramReq = new Page<>(page, size); paramReq.addOrder(new OrderItem().setColumn("create_time").setAsc(false));//创建时间降序排序 IPage iPage = baseMapper.queryRecallOrderByCondition(paramReq, recallOrderDTO); return iPage; @@ -40,7 +41,23 @@ public class RecallOrderServiceImpl extends ServiceImpl orderQuery = Wrappers.lambdaQuery(); + orderQuery.eq(RecallOrderEntity::getOrderId, orderId); + orderQuery.last("limit 1"); + return baseMapper.selectOne(orderQuery); + } + + @Override + public RecallOrderEntity queryRecallOrderByTraceId(String traceId) { + LambdaQueryWrapper orderQuery = Wrappers.lambdaQuery(); + orderQuery.eq(RecallOrderEntity::getOrderId, traceId); + orderQuery.last("limit 1"); + return baseMapper.selectOne(orderQuery); + } } \ No newline at end of file diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallRecordVO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallRecordVO.java index f0748c8..01151ea 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallRecordVO.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallRecordVO.java @@ -1,6 +1,8 @@ package com.wabestway.recall.trace.vo; import java.io.Serializable; +import java.util.List; + import lombok.Data; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -34,7 +36,7 @@ public class RecallRecordVO implements Serializable { private String content; /** 记录事件 */ @ApiModelProperty(value = "记录事件") - private Blob events; + private List events; /** 回溯记录跟踪ID */ @ApiModelProperty(value = "回溯记录跟踪ID") private String traceId; diff --git a/afis-recall-web/pom.xml b/afis-recall-web/pom.xml index 76fa513..b4d6198 100644 --- a/afis-recall-web/pom.xml +++ b/afis-recall-web/pom.xml @@ -6,17 +6,41 @@ com.wabestway.recall afis-recall - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT afis-recall-web jar - 1.8 Hoxton.SR9 - 2.2.3.RELEASE - + 2.2.1.RELEASE + + 1.8 + 1.8 + UTF-8 + UTF-8 + 3.3.2 + 1.1.22 + + + com.wabestway.recall + afis-recall-service + 1.0-SNAPSHOT + + + + com.baomidou + mybatis-plus-boot-starter + ${mybatisplus.version} + + + com.baomidou + mybatis-plus-generator + + + + org.springframework.cloud spring-cloud-starter-openfeign @@ -26,6 +50,12 @@ afis-engine-api 2.5 + + com.wabestway.auth + afis-auth-api + 1.3 + + com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/model/Order.java b/afis-recall-web/src/main/java/com/wabestway/recall/model/Order.java deleted file mode 100644 index c532873..0000000 --- a/afis-recall-web/src/main/java/com/wabestway/recall/model/Order.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.wabestway.recall.model; - -import lombok.Data; -import org.bson.codecs.pojo.annotations.BsonIgnore; -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.index.Indexed; -import org.springframework.data.mongodb.core.mapping.Document; - -import java.util.List; - -@Data -@Document(collection = "orders") -public class Order { - @Id - private String id; - private String appKey; - private String tenantId; - private String productCode; - private String productName; - @BsonIgnore - private List events; - @Indexed(unique = true) - private String traceId; - @Indexed(unique = true) - private String orderId; - private String complete; - private String archived; - private String fileId; - private String fileUrl; - private long createAt; - @BsonIgnore - private int page; - @BsonIgnore - private int pageSize; - - private String startDate; - private String endDate; - private String policyNo; - private String holderName; - private String holderPhone; - private String supplierName; -} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/model/OrderList.java b/afis-recall-web/src/main/java/com/wabestway/recall/model/OrderList.java deleted file mode 100644 index 5d9f624..0000000 --- a/afis-recall-web/src/main/java/com/wabestway/recall/model/OrderList.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.wabestway.recall.model; - -import lombok.Data; - -import java.util.List; - -@Data -public class OrderList { - private int page; - private int pageSize; - private long total; - private List list; -} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/model/Record.java b/afis-recall-web/src/main/java/com/wabestway/recall/model/Record.java deleted file mode 100644 index 5b8d629..0000000 --- a/afis-recall-web/src/main/java/com/wabestway/recall/model/Record.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.wabestway.recall.model; - -import lombok.Data; -import org.bson.codecs.pojo.annotations.BsonIgnore; -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.index.Indexed; -import org.springframework.data.mongodb.core.mapping.Document; - -import java.util.List; - -@Data -@Document(collection = "records") -public class Record { - @Id - private String id; - private List events; - private String traceId; - @BsonIgnore - private String orderId; - private boolean last; - private String productCode; - private String productName; - private long createAt; - @BsonIgnore - private String appKey; - private String module; - private String content; -} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/model/ResObj.java b/afis-recall-web/src/main/java/com/wabestway/recall/model/ResObj.java deleted file mode 100644 index 662d9c3..0000000 --- a/afis-recall-web/src/main/java/com/wabestway/recall/model/ResObj.java +++ /dev/null @@ -1,173 +0,0 @@ -package com.wabestway.recall.model; - -import lombok.Data; - -import java.util.Map; - -@Data -public class ResObj { - private static final String SUCCESS = "success"; - - private static final String FAILURE = "failure"; - - private static final Integer SUCCESS_CODE = 200; - - private static final Integer FAILURE_CODE = 400; - - private Integer code; - - private String message; - - private String _trackId; - - private T data; - - private Map extr; - - private long timestamp; - - private Integer _status; - - private ResObj(Integer code, T data) { - this.code = code; - this.data = data; - this.timestamp = System.currentTimeMillis(); - } - - private ResObj(Integer code, String message, T data) { - this.code = code; - this.data = data; - this.message = message; - this.timestamp = System.currentTimeMillis(); - } - - private ResObj(T data) { - this.data = data; - this.timestamp = System.currentTimeMillis(); - } - - private ResObj(Integer code) { - this.code = code; - this.timestamp = System.currentTimeMillis(); - } - - public boolean isOk() { - return SUCCESS_CODE.equals(this.code); - } - - public T data() { - return (T) this.data; - } - - public Object get(String key) { - if (this.data != null && key != null) { - return ((Map) this.data).get(key); - } - return null; - } - - public ResObj() { - this.timestamp = System.currentTimeMillis(); - } - - public static ResObj ok() { - ResObj o = new ResObj(SUCCESS_CODE); - return o; - } - - public static ResObj ok(Object data) { - ResObj o = new ResObj(SUCCESS_CODE, data); - return o; - } - - public static ResObj fail(String msg) { - ResObj o = new ResObj(FAILURE_CODE, msg, null); - return o; - } - - - public static ResObj fail() { - ResObj o = new ResObj(FAILURE_CODE); - return o; - } - - public static ResObj result(Integer code, Object data) { - ResObj o = new ResObj(code, data); - return o; - } - - public static ResObj result(Integer code, String message, Object data) { - ResObj o = new ResObj(code, message, data); - return o; - } - - public Integer getCode() { - return code; - } - - public void setCode(Integer code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public ResObj setData(T data) { - this.data = data; - return this; - } - - public Long getTimestamp() { - return timestamp; - } - - public ResObj setTimestamp(Long timestamp) { - this.timestamp = timestamp; - return this; - } - - public Map getExtr() { - return extr; - } - - - public Integer get_status() { - return _status; - } - - public void set_status(Integer _status) { - this._status = _status; - } - - public String get_trackId() { - return _trackId; - } - - public void set_trackId(String _trackId) { - this._trackId = _trackId; - } - - public ResObj trackId(String _trackId) { - this._trackId = _trackId; - return this; - } - - @Override - public String toString() { - if (message == null) { - return "ResObj(" + code + ")"; - } - return "ResObj(" + code + "){" + message + "}"; - } - - -} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/repository/OrderRepository.java b/afis-recall-web/src/main/java/com/wabestway/recall/repository/OrderRepository.java deleted file mode 100644 index 4c71441..0000000 --- a/afis-recall-web/src/main/java/com/wabestway/recall/repository/OrderRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.wabestway.recall.repository; - -import com.wabestway.recall.model.Order; -import org.springframework.data.domain.*; -import org.springframework.data.mongodb.repository.ReactiveMongoRepository; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - -public interface OrderRepository extends ReactiveMongoRepository { - Mono findByOrderId(String orderId); - - Mono findByTraceId(String traceId); -} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/repository/RecordRepository.java b/afis-recall-web/src/main/java/com/wabestway/recall/repository/RecordRepository.java deleted file mode 100644 index 43b522c..0000000 --- a/afis-recall-web/src/main/java/com/wabestway/recall/repository/RecordRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.wabestway.recall.repository; - - -import com.wabestway.recall.model.Record; -import org.springframework.data.mongodb.repository.ReactiveMongoRepository; -import reactor.core.publisher.Flux; - - -public interface RecordRepository extends ReactiveMongoRepository { - Flux findAllByTraceIdOrderByCreateAtAsc(String traceId); -} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java index f23c9f6..1187a48 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java @@ -1,5 +1,6 @@ package com.wabestway.recall.trace.controller; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.Api; @@ -10,16 +11,13 @@ import com.wabestway.recall.trace.service.RecallOrderApiService; import com.wabestway.commons.http.Paging; import com.wabestway.commons.http.ResObj; - /** - * - * * @author wangH * @company 北京华焱坤泰科技有限公司 * @Time 2023-05-06 17:37:03 */ @RestController -@RequestMapping("/trace/recallOrder") +@RequestMapping("/order") @Api(tags = {"-接口"}, description = "-接口") public class RecallOrderController { @Autowired @@ -44,26 +42,13 @@ public class RecallOrderController { } /** - * 保存 + * 生成回溯MP4文件 + * + * @return */ - @PostMapping("/save") - @ApiOperation(value = "保存", notes = "保存", httpMethod = "POST") - public ResObj saveRecallOrder(@RequestBody RecallOrderDTO paramRequest) { - return recallOrderApiService.saveRecallOrder(paramRequest); + @GetMapping("/ffmpeg") + public ResObj createMp4() { + return recallOrderApiService.traceVideo(); } - /** - * 修改 - */ - @PostMapping("/update") - @ApiOperation(value = "修改", notes = "修改", httpMethod = "POST") - public ResObj updateRecallOrder(@RequestBody RecallOrderDTO paramRequest) { - return recallOrderApiService.updateRecallOrder(paramRequest); - } - - @PostMapping("/changeStatus") - @ApiOperation(value = "启禁用更新", notes = "启禁用更新", httpMethod = "POST") - public ResObj changeStatus(@RequestBody RecallOrderDTO paramRequest) { - return recallOrderApiService.changeStatus(paramRequest.getId(), paramRequest.getStatus()); - } } diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallRecordController.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallRecordController.java index df72b34..c270f0f 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallRecordController.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallRecordController.java @@ -1,69 +1,34 @@ package com.wabestway.recall.trace.controller; +import com.wabestway.recall.trace.dto.TraceDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import com.wabestway.recall.trace.dto.RecallRecordDTO; -import com.wabestway.recall.trace.vo.RecallRecordVO; import com.wabestway.recall.trace.service.RecallRecordApiService; -import com.wabestway.commons.http.Paging; import com.wabestway.commons.http.ResObj; /** - * - * * @author wangH * @company 北京华焱坤泰科技有限公司 * @Time 2023-05-06 17:37:03 */ @RestController -@RequestMapping("/trace/recallRecord") +@RequestMapping("/track") @Api(tags = {"-接口"}, description = "-接口") public class RecallRecordController { @Autowired private RecallRecordApiService recallRecordApiService; - /** - * 列表 - */ - @PostMapping("/list") - @ApiOperation(value = "分页列表查询", notes = "条件分页查询列表", httpMethod = "POST") - public ResObj> list(@RequestBody RecallRecordDTO paramRequest) { - return recallRecordApiService.list(paramRequest); - } - - /** - * 信息 - */ - @GetMapping("/info/{id}") - @ApiOperation(value = "根据id查详情", notes = "根据id查详情", httpMethod = "GET") - public ResObj info(@PathVariable("id") String id) { - return recallRecordApiService.getRecallRecord(id); - } /** * 保存 */ @PostMapping("/save") @ApiOperation(value = "保存", notes = "保存", httpMethod = "POST") - public ResObj saveRecallRecord(@RequestBody RecallRecordDTO paramRequest) { - return recallRecordApiService.saveRecallRecord(paramRequest); + public ResObj saveRecallRecord(@RequestBody TraceDTO record) { + return recallRecordApiService.save(record); } - /** - * 修改 - */ - @PostMapping("/update") - @ApiOperation(value = "修改", notes = "修改", httpMethod = "POST") - public ResObj updateRecallRecord(@RequestBody RecallRecordDTO paramRequest) { - return recallRecordApiService.updateRecallRecord(paramRequest); - } - - @PostMapping("/changeStatus") - @ApiOperation(value = "启禁用更新", notes = "启禁用更新", httpMethod = "POST") - public ResObj changeStatus(@RequestBody RecallRecordDTO paramRequest) { - return recallRecordApiService.changeStatus(paramRequest.getId(), paramRequest.getStatus()); - } } diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java index 9cd1d5d..85293b3 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java @@ -29,26 +29,10 @@ public interface RecallOrderApiService { * @return */ ResObj getRecallOrder(String id); - + ResObj getRecallOrderByOrderId(String orderId); /** - * 保存 - * @param paramReq + * 根据回溯文件生成MP4视频 * @return */ - ResObj saveRecallOrder(RecallOrderDTO paramReq); - - /** - * 修改 - * @param paramReq - * @return - */ - ResObj updateRecallOrder(RecallOrderDTO paramReq); - - /** - * 启禁用 - * @param id - * @param status - * @return - */ - ResObj changeStatus(String id, String status); + ResObj traceVideo(); } diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java index 991c83a..72c1b65 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java @@ -1,15 +1,15 @@ package com.wabestway.recall.trace.service; import java.util.List; + import com.wabestway.recall.trace.dto.RecallRecordDTO; +import com.wabestway.recall.trace.dto.TraceDTO; import com.wabestway.recall.trace.vo.RecallRecordVO; import com.wabestway.commons.http.Paging; import com.wabestway.commons.http.ResObj; /** - * - * * @author wangH * @company 北京华焱坤泰科技有限公司 * @Time 2023-05-06 17:37:03 @@ -17,38 +17,11 @@ import com.wabestway.commons.http.ResObj; public interface RecallRecordApiService { /** - * 列表 - * @param paramReq + * 回溯数据记录 + * + * @param record * @return */ - ResObj> list(RecallRecordDTO paramReq); + ResObj save(TraceDTO record); - /** - * 查询详情 - * @param id - * @return - */ - ResObj getRecallRecord(String id); - - /** - * 保存 - * @param paramReq - * @return - */ - ResObj saveRecallRecord(RecallRecordDTO paramReq); - - /** - * 修改 - * @param paramReq - * @return - */ - ResObj updateRecallRecord(RecallRecordDTO paramReq); - - /** - * 启禁用 - * @param id - * @param status - * @return - */ - ResObj changeStatus(String id, String status); } diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 5b573e9..566e75b 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -1,31 +1,48 @@ package com.wabestway.recall.trace.service.impl; +import cn.hutool.core.io.FileUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.wabestway.commons.http.Paging; import com.wabestway.commons.http.ResObj; -import com.wabestway.commons.enums.DataValidEnum; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.BeanUtils; -import com.wabestway.ins.utils.UUIDUtil; +import com.wabestway.engine.api.dfs.UploadFileDTO; +import com.wabestway.engine.api.dfs.UploadRespVO; +import com.wabestway.engine.api.feign.DfsStorageFeignClient; import com.wabestway.recall.trace.entity.RecallOrderEntity; +import com.wabestway.recall.trace.entity.RecallRecordEntity; +import com.wabestway.recall.trace.service.RecallOrderService; +import com.wabestway.recall.trace.service.RecallRecordService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import com.wabestway.recall.trace.dto.RecallOrderDTO; import com.wabestway.recall.trace.vo.RecallOrderVO; import com.wabestway.recall.trace.service.RecallOrderApiService; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import com.wabestway.recall.trace.util.HeaderDataUtil; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; /** - * - * * @author wangH * @company 北京华焱坤泰科技有限公司 * @Time 2023-05-06 17:37:03 */ +@Slf4j @Service public class RecallOrderApiServiceImpl implements RecallOrderApiService { @Autowired private RecallOrderService recallOrderService; + @Autowired + private DfsStorageFeignClient storageFeignClient; + @Autowired + private RecallRecordService recallRecordService; @Override public ResObj> list(RecallOrderDTO paramReq) { @@ -38,48 +55,119 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { @Override public ResObj getRecallOrder(String id) { RecallOrderVO recallOrderVO = recallOrderService.queryRecallOrderById(id); - return ResObj.ok(recallOrderVO); } - @Transactional @Override - public ResObj saveRecallOrder(RecallOrderDTO paramReq) { - RecallOrderEntity recallOrder = new RecallOrderEntity(); - BeanUtils.copyProperties(paramReq, recallOrder); + public ResObj getRecallOrderByOrderId(String orderId) { + return null; + } - recallOrder.setId(UUIDUtil.generate());//赋值id - recallOrder.setStatus(DataValidEnum.VALID.getCode()); - recallOrder.setCreateBy(HeaderDataUtil.getUserId());//创建人 - recallOrder.setCreateTime(System.currentTimeMillis());//创建时间 - recallOrder.setUpdateBy(HeaderDataUtil.getUserId());//更新人 - recallOrder.setUpdateTime(System.currentTimeMillis());//更新时间 + @Override + public ResObj traceVideo() { + LambdaQueryWrapper orderQuery = Wrappers.lambdaQuery(); + orderQuery.eq(RecallOrderEntity::getComplete, "1"); + orderQuery.isNull(RecallOrderEntity::getFileId); + orderQuery.orderByDesc(RecallOrderEntity::getCompleteDate); + List orderList = recallOrderService.getBaseMapper().selectList(orderQuery); + orderList.forEach(order -> { + LambdaQueryWrapper recordQuery = Wrappers.lambdaQuery(); + recordQuery.eq(RecallRecordEntity::getTraceId, order.getTraceId()); + recordQuery.orderByAsc(RecallRecordEntity::getCreateTime); + List recordList = recallRecordService.getBaseMapper().selectList(recordQuery); - recallOrderService.save(recallOrder); + List events = recordList.stream() + .flatMap(entity -> entity.getEvents().stream()) + .collect(Collectors.toList()); + JSONArray array = JSONArray.parseArray(JSON.toJSONString(events)); + try { + createVideo(order, array.toJSONString()); + } catch (IOException ex) { + ex.printStackTrace(); + } + }); return ResObj.ok(); } - @Transactional - @Override - public ResObj updateRecallOrder(RecallOrderDTO paramReq) { - RecallOrderEntity recallOrder = new RecallOrderEntity(); - BeanUtils.copyProperties(paramReq, recallOrder); - recallOrder.setUpdateBy(HeaderDataUtil.getUserId());//更新人 - recallOrder.setUpdateTime(System.currentTimeMillis());//更新时间 - recallOrderService.updateById(recallOrder); - return ResObj.ok(); + void createVideo(RecallOrderEntity fo, String jsonData) throws IOException { + + // 创建临时目录 + Path tempDir = null; + try { + tempDir = Files.createTempDirectory("ts"); + } catch (IOException e) { + e.printStackTrace(); + } + System.out.println("Created temporary directory: " + tempDir); + + try { + File tempFile = new File(tempDir.toFile(), "traces.json"); + FileWriter fw = new FileWriter(tempFile); + BufferedWriter bw = new BufferedWriter(fw); + bw.write(jsonData); + bw.flush(); + bw.close(); + fw.close(); + String[] command = {"ts-node", "/opt/trace-transform/src/index.ts"}; + ProcessBuilder processBuilder = new ProcessBuilder(command); + processBuilder.directory(tempDir.toFile()); + // 在临时目录下执行命令 + Process process = processBuilder.start(); + + Thread processThread = new Thread(() -> { + try { + // 读取命令输出 + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + reader.close(); + // 等待命令执行完成 + int exitCode = process.waitFor(); + + System.out.println("Command exited with code " + exitCode); + } catch (InterruptedException | IOException e) { + e.printStackTrace(); + } + }); + processThread.start(); + + // Continue with other tasks here... + + try { + processThread.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + File file = new File(tempDir.toFile(), "video.mp4"); + if (file.exists()) { + log.info(String.valueOf(file.length())); + //byte[] fileBytes = Files.readAllBytes(file.toPath()); + byte[] fileBytes = FileUtil.readBytes(file); + String titles = fo.getOrderId() + ".mp4"; + UploadFileDTO uploadFileDTO = new UploadFileDTO(fileBytes, "RECALL", titles); + + ResObj uploadResObj = storageFeignClient.uploadBytes(uploadFileDTO); + log.info(JSON.toJSONString(uploadResObj)); + if (uploadResObj.isOk()) { + fo.setFileId(uploadResObj.getData().getFileId()); + fo.setFileUrl(uploadResObj.getData().getFileUrl()); + fo.setUpdateTime(System.currentTimeMillis()); + recallOrderService.updateRecallOrderById(fo); + } + } + } catch (Exception e) { + e.printStackTrace(); + log.error(e.getMessage()); + } finally { + // 删除临时目录 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } } - @Transactional - @Override - public ResObj changeStatus(String id, String status) { - RecallOrderEntity recallOrder = new RecallOrderEntity(); - recallOrder.setId(id); - recallOrder.setStatus(status); - recallOrder.setUpdateBy(HeaderDataUtil.getUserId()); - recallOrder.setUpdateTime(System.currentTimeMillis()); - recallOrderService.updateRecallOrderById(recallOrder); - - return ResObj.ok(); - } } diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java index 56308e2..1a602e7 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java @@ -1,85 +1,85 @@ package com.wabestway.recall.trace.service.impl; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.wabestway.commons.http.Paging; + +import com.alibaba.fastjson.JSON; import com.wabestway.commons.http.ResObj; -import com.wabestway.commons.enums.DataValidEnum; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.BeanUtils; -import com.wabestway.ins.utils.UUIDUtil; +import com.wabestway.recall.trace.dto.TraceDTO; +import com.wabestway.recall.trace.entity.RecallOrderEntity; import com.wabestway.recall.trace.entity.RecallRecordEntity; -import com.wabestway.recall.trace.dto.RecallRecordDTO; -import com.wabestway.recall.trace.vo.RecallRecordVO; +import com.wabestway.recall.trace.service.RecallOrderService; +import com.wabestway.recall.trace.service.RecallRecordService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import com.wabestway.recall.trace.service.RecallRecordApiService; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import com.wabestway.recall.trace.util.HeaderDataUtil; + +import java.util.Optional; +import java.util.UUID; + /** - * - * * @author wangH * @company 北京华焱坤泰科技有限公司 * @Time 2023-05-06 17:37:03 */ @Service +@Slf4j public class RecallRecordApiServiceImpl implements RecallRecordApiService { @Autowired private RecallRecordService recallRecordService; + @Autowired + private RecallOrderService recallOrderService; @Override - public ResObj> list(RecallRecordDTO paramReq) { - IPage resultPage = recallRecordService.queryRecallRecordByCondition(paramReq.getPage(), paramReq.getPageSize(), paramReq); + public ResObj save(TraceDTO record) { + String orderId = record.getOrderId(); + String traceId = Optional.ofNullable(orderId) + .map(recallOrderService::queryRecallOrderByOrderId) + .map(RecallOrderEntity::getTraceId) + .orElse(UUID.randomUUID().toString().replace("-", "")); - Paging paging = new Paging(resultPage.getRecords(), paramReq.getPage(), resultPage.getSize(), resultPage.getTotal()); - return ResObj.ok(paging); - } + boolean isLastEvent = record.isLast(); - @Override - public ResObj getRecallRecord(String id) { - RecallRecordVO recallRecordVO = recallRecordService.queryRecallRecordById(id); + RecallOrderEntity order = Optional.ofNullable(orderId) + .flatMap(id -> Optional.ofNullable(recallOrderService.queryRecallOrderByOrderId(id))) + .orElseGet(() -> { + RecallOrderEntity newOrder = new RecallOrderEntity(); + newOrder.setId(UUID.randomUUID().toString().replace("-", "")); + newOrder.setOrderId(orderId); + newOrder.setTraceId(traceId); + newOrder.setProductCode(record.getProductCode()); + newOrder.setProductName(record.getProductName()); + newOrder.setCreateTime(System.currentTimeMillis()); + newOrder.setUpdateTime(System.currentTimeMillis()); + newOrder.setAppKey(record.getAppKey()); + newOrder.setArchived("0"); + newOrder.setComplete(isLastEvent ? "1" : "0"); + if (isLastEvent) { + newOrder.setCompleteDate(System.currentTimeMillis()); + } + recallOrderService.save(newOrder); - return ResObj.ok(recallRecordVO); - } + record.setTraceId(traceId); + record.setOrderId(orderId); + return newOrder; + }); + + if (isLastEvent) { + order.setComplete("1"); + order.setCompleteDate(System.currentTimeMillis()); + order.setUpdateTime(System.currentTimeMillis()); + recallOrderService.updateRecallOrderById(order); + } - @Transactional - @Override - public ResObj saveRecallRecord(RecallRecordDTO paramReq) { RecallRecordEntity recallRecord = new RecallRecordEntity(); - BeanUtils.copyProperties(paramReq, recallRecord); - - recallRecord.setId(UUIDUtil.generate());//赋值id - recallRecord.setStatus(DataValidEnum.VALID.getCode()); - recallRecord.setCreateBy(HeaderDataUtil.getUserId());//创建人 - recallRecord.setCreateTime(System.currentTimeMillis());//创建时间 - recallRecord.setUpdateBy(HeaderDataUtil.getUserId());//更新人 - recallRecord.setUpdateTime(System.currentTimeMillis());//更新时间 - + BeanUtils.copyProperties(record, recallRecord); + recallRecord.setId(UUID.randomUUID().toString().replace("-", "")); + recallRecord.setCreateTime(System.currentTimeMillis()); recallRecordService.save(recallRecord); - return ResObj.ok(); - } - @Transactional - @Override - public ResObj updateRecallRecord(RecallRecordDTO paramReq) { - RecallRecordEntity recallRecord = new RecallRecordEntity(); - BeanUtils.copyProperties(paramReq, recallRecord); - recallRecord.setUpdateBy(HeaderDataUtil.getUserId());//更新人 - recallRecord.setUpdateTime(System.currentTimeMillis());//更新时间 - recallRecordService.updateById(recallRecord); - return ResObj.ok(); - } - - @Transactional - @Override - public ResObj changeStatus(String id, String status) { - RecallRecordEntity recallRecord = new RecallRecordEntity(); - recallRecord.setId(id); - recallRecord.setStatus(status); - recallRecord.setUpdateBy(HeaderDataUtil.getUserId()); - recallRecord.setUpdateTime(System.currentTimeMillis()); - recallRecordService.updateRecallRecordById(recallRecord); - - return ResObj.ok(); + record.setEvents(null); + log.info("保存数据:{}", JSON.toJSONString(record)); + return ResObj.ok(record); } } diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/web/OrderController.java b/afis-recall-web/src/main/java/com/wabestway/recall/web/OrderController.java deleted file mode 100644 index e703799..0000000 --- a/afis-recall-web/src/main/java/com/wabestway/recall/web/OrderController.java +++ /dev/null @@ -1,196 +0,0 @@ -package com.wabestway.recall.web; - -import cn.hutool.core.io.FileUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.wabestway.commons.http.ResObj; -import com.wabestway.engine.api.dfs.UploadFileDTO; -import com.wabestway.engine.api.dfs.UploadRespVO; -import com.wabestway.engine.api.feign.DfsStorageFeignClient; -import com.wabestway.recall.model.Order; -import com.wabestway.recall.model.OrderList; -import com.wabestway.recall.model.Record; -import com.wabestway.recall.repository.OrderRepository; -import com.wabestway.recall.repository.RecordRepository; -import lombok.extern.slf4j.Slf4j; -import org.springframework.data.domain.*; -import org.springframework.web.bind.annotation.*; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - -import java.io.*; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; - -@Slf4j -@RestController -@RequestMapping("/order") -public class OrderController { - private final RecordRepository recordRepository; - private final OrderRepository orderRepository; - - private final DfsStorageFeignClient storageFeignClient; - - public OrderController(RecordRepository recordRepository, OrderRepository orderRepository, DfsStorageFeignClient storageFeignClient) { - this.recordRepository = recordRepository; - this.orderRepository = orderRepository; - this.storageFeignClient = storageFeignClient; - } - - @GetMapping - public Flux getAllOrders() { - return orderRepository.findAll(); - } - - @PostMapping("/list") - public Mono list(@RequestBody Order order) { - OrderList resList = new OrderList(); - List list = new ArrayList<>(); - Sort s = Sort.by("createAt").descending(); - PageRequest pageRequest = PageRequest.of(order.getPage() - 1, order.getPageSize(), s); - ExampleMatcher matcher = ExampleMatcher.matching() - .withIgnoreNullValues().withIgnorePaths("createAt", "last", "page", "pageSize"); - Example ep = Example.of(order, matcher); - Flux flux = orderRepository.findAll(ep, s); - flux.skip(pageRequest.getOffset()).limitRequest(pageRequest.getPageSize()).subscribe(list::add); - resList.setList(list); - return flux.count().flatMap(count -> { - resList.setTotal(count); - return Mono.just(ResObj.ok(resList)); - }); - } - - @PostMapping("/recallUp") - public Mono recallUp(@RequestBody Order order) { - Mono queryOrder = orderRepository.findByOrderId(order.getOrderId()); - return queryOrder.flatMap(ss -> { - ss.setStartDate(order.getStartDate()); - ss.setEndDate(order.getEndDate()); - ss.setHolderName(order.getHolderName()); - ss.setHolderPhone(order.getHolderPhone()); - ss.setSupplierName(order.getSupplierName()); - orderRepository.save(ss).subscribe(); - return Mono.just(ResObj.ok()); - }).defaultIfEmpty(ResObj.fail("订单不存在")); - } - - @PostMapping("/info/{orderId}") - public Mono findByOrderId(@PathVariable String orderId) { - Mono forder = orderRepository.findByOrderId(orderId); - return forder.flatMap(fo -> { - Flux rs = recordRepository.findAllByTraceIdOrderByCreateAtAsc(fo.getTraceId()); - Mono>> es = rs.map(rr -> rr.getEvents()).collectList(); - Mono> events = es.flatMapIterable(lists -> lists).flatMapIterable(list -> list).collectList(); - return events.flatMap(e -> { - fo.setEvents(e); - return Mono.just(ResObj.ok(fo)); - }); - }).defaultIfEmpty(ResObj.fail("订单不存在")); - } - - @GetMapping("/ffmpeg") - public Mono createMp4() { - Order order = new Order(); - order.setComplete("1"); - ExampleMatcher matcher = ExampleMatcher.matching() - .withIgnoreNullValues().withIgnorePaths("createAt", "last", "page", "pageSize"); - Example ep = Example.of(order, matcher); - Sort s = Sort.by("createAt"); - Flux flux = orderRepository.findAll(ep, s); - flux.filter(fo -> fo.getFileId() == null).subscribe(fo -> { - Mono>> es = recordRepository.findAllByTraceIdOrderByCreateAtAsc(fo.getTraceId()).map(rr -> rr.getEvents()).collectList(); - Mono> events = es.flatMapIterable(lists -> lists).flatMapIterable(list -> list).collectList(); - events.subscribe(e -> { - JSONArray array = JSONArray.parseArray(JSON.toJSONString(e)); - try { - createVideo(fo, array.toJSONString()); - } catch (IOException ex) { - ex.printStackTrace(); - } - }); - }); - return Mono.just(ResObj.ok()); - } - - void createVideo(Order fo, String jsonData) throws IOException { - - // 创建临时目录 - Path tempDir = null; - try { - tempDir = Files.createTempDirectory("ts"); - } catch (IOException e) { - e.printStackTrace(); - } - System.out.println("Created temporary directory: " + tempDir); - - try { - File tempFile = new File(tempDir.toFile(), "traces.json"); - FileWriter fw = new FileWriter(tempFile); - BufferedWriter bw = new BufferedWriter(fw); - bw.write(jsonData); - bw.flush(); - bw.close(); - fw.close(); - String[] command = {"ts-node", "/opt/trace-transform/src/index.ts"}; - ProcessBuilder processBuilder = new ProcessBuilder(command); - processBuilder.directory(tempDir.toFile()); - // 在临时目录下执行命令 - Process process = processBuilder.start(); - - Thread processThread = new Thread(() -> { - try { - // 读取命令输出 - BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - String line; - while ((line = reader.readLine()) != null) { - System.out.println(line); - } - reader.close(); - // 等待命令执行完成 - int exitCode = process.waitFor(); - - System.out.println("Command exited with code " + exitCode); - } catch (InterruptedException | IOException e) { - e.printStackTrace(); - } - }); - processThread.start(); - - // Continue with other tasks here... - - try { - processThread.join(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - File file = new File(tempDir.toFile(), "video.mp4"); - if (file.exists()) { - log.info(String.valueOf(file.length())); - //byte[] fileBytes = Files.readAllBytes(file.toPath()); - byte[] fileBytes = FileUtil.readBytes(file); - String titles = fo.getOrderId() + ".mp4"; - UploadFileDTO uploadFileDTO = new UploadFileDTO(fileBytes, "RECALL", titles); - - ResObj uploadResObj = storageFeignClient.uploadBytes(uploadFileDTO); - log.info(JSON.toJSONString(uploadResObj)); - if (uploadResObj.isOk()) { - fo.setFileId(uploadResObj.getData().getFileId()); - fo.setFileUrl(uploadResObj.getData().getFileUrl()); - orderRepository.save(fo).subscribe(); - } - } - } catch (Exception e) { - e.printStackTrace(); - log.error(e.getMessage()); - } finally { - // 删除临时目录 -// Files.walk(tempDir) -// .sorted(Comparator.reverseOrder()) -// .map(Path::toFile) -// .forEach(File::delete); - } - } -} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/web/RecallController.java b/afis-recall-web/src/main/java/com/wabestway/recall/web/RecallController.java deleted file mode 100644 index ac0c261..0000000 --- a/afis-recall-web/src/main/java/com/wabestway/recall/web/RecallController.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.wabestway.recall.web; - -import com.alibaba.fastjson.JSON; -import com.wabestway.recall.model.Order; -import com.wabestway.recall.model.Record; -import com.wabestway.recall.model.ResObj; -import com.wabestway.recall.repository.OrderRepository; -import com.wabestway.recall.repository.RecordRepository; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.*; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - -import java.util.UUID; - -@Slf4j -@RestController -@RequestMapping("/track") -public class RecallController { - private final RecordRepository recordRepository; - private final OrderRepository orderRepository; - - public RecallController(RecordRepository recordRepository, OrderRepository orderRepository) { - this.recordRepository = recordRepository; - this.orderRepository = orderRepository; - } - - @GetMapping - public Flux getAllUsers() { - return recordRepository.findAll(); - } - - @PostMapping("/save") - public Mono save(@RequestBody Record record) { - if (record.getOrderId() != null && !record.getOrderId().isEmpty()) { - Mono order = orderRepository.findByOrderId(record.getOrderId()); - order.hasElement().subscribe(exit -> { - if (!exit) { - if (record.getTraceId() != null && !record.getTraceId().isEmpty()) { - Mono tcOrder = orderRepository.findByTraceId(record.getTraceId()); - tcOrder.filter(to -> to.getId() != null).flatMap(to -> { - to.setOrderId(record.getOrderId()); - if (record.isLast()) { - to.setComplete("1"); - } - return orderRepository.save(to); - }).subscribe(); - } else { - record.setTraceId(UUID.randomUUID().toString().replace("-", "")); - Order forder = new Order(); - forder.setOrderId(record.getOrderId()); - forder.setTraceId(record.getTraceId()); - forder.setProductCode(record.getProductCode()); - forder.setProductName(record.getProductName()); - forder.setCreateAt(System.currentTimeMillis()); - forder.setAppKey(record.getAppKey()); - forder.setArchived("0"); - forder.setComplete("0"); -// forder.setHolderName("王五"); -// forder.setHolderPhone("18515064530"); -// forder.setSupplierName("阳光保险"); -// forder.setStartDate("2023-01-01"); -// forder.setEndDate("2035-01-01"); - if (record.isLast()) { - forder.setComplete("1"); - } - orderRepository.save(forder).subscribe(); - } - } else { - order.subscribe(to -> { - if (record.isLast()) { - to.setComplete("1"); - orderRepository.save(to).subscribe(); - } - }); - } - }); - } else { - if (record.getTraceId() == null || record.getTraceId().isEmpty()) { - record.setTraceId(UUID.randomUUID().toString().replace("-", "")); - Order order = new Order(); - order.setTraceId(record.getTraceId()); - order.setProductCode(record.getProductCode()); - order.setProductName(record.getProductName()); - order.setCreateAt(System.currentTimeMillis()); - order.setAppKey(record.getAppKey()); - order.setArchived("0"); - order.setComplete("0"); -// order.setHolderName("王五"); -// order.setHolderPhone("18515064530"); -// order.setSupplierName("阳光保险"); -// order.setStartDate("2023-01-01"); -// order.setEndDate("2035-01-01"); - if (record.isLast()) { - order.setComplete("1"); - } - orderRepository.save(order).subscribe(); - } - } - record.setCreateAt(System.currentTimeMillis()); - log.info("保存数据:{}", JSON.toJSONString(record)); - return recordRepository.save(record).flatMap(ss -> { - ss.setEvents(null); - return Mono.just(ResObj.ok(ss)); - }); - } -} From d1a4b55f5d7cc8e8d60571473a8a4b64568ee308 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Mon, 8 May 2023 16:20:39 +0800 Subject: [PATCH 21/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化代码 --- .../com/wabestway/recall/trace/dto/TraceDTO.java | 1 - .../recall/trace/service/RecallOrderService.java | 7 ------- .../trace/service/impl/RecallOrderServiceImpl.java | 3 --- .../trace/controller/RecallOrderController.java | 9 ++++++--- .../recall/trace/service/RecallOrderApiService.java | 12 +++--------- .../recall/trace/service/RecallRecordApiService.java | 4 ---- .../service/impl/RecallOrderApiServiceImpl.java | 8 ++------ 7 files changed, 11 insertions(+), 33 deletions(-) diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/TraceDTO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/TraceDTO.java index bf7008a..606321c 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/TraceDTO.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/TraceDTO.java @@ -1,6 +1,5 @@ package com.wabestway.recall.trace.dto; -import com.wabestway.commons.http.PageDTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java index 4f117d2..95d70da 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java @@ -24,13 +24,6 @@ public interface RecallOrderService extends IService { */ IPage queryRecallOrderByCondition(long page, long size, RecallOrderDTO recallOrderDTO); - /** - * 条件查询,不分页 - * @param recallOrderDTO - * @return - */ - List queryRecallOrderListNoPage(RecallOrderDTO recallOrderDTO); - /** * 根据id更新 * @param recallOrder 对象 diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java index 610420a..a5e9b4c 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java @@ -31,9 +31,6 @@ public class RecallOrderServiceImpl extends ServiceImpl queryRecallOrderListNoPage(RecallOrderDTO recallOrderDTO) { - return baseMapper.queryRecallOrderListNoPage(recallOrderDTO); - } @Override public void updateRecallOrderById(RecallOrderEntity recallOrder) { diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java index 1187a48..04cb16d 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java @@ -20,8 +20,11 @@ import com.wabestway.commons.http.ResObj; @RequestMapping("/order") @Api(tags = {"-接口"}, description = "-接口") public class RecallOrderController { - @Autowired - private RecallOrderApiService recallOrderApiService; + private final RecallOrderApiService recallOrderApiService; + + public RecallOrderController(RecallOrderApiService recallOrderApiService) { + this.recallOrderApiService = recallOrderApiService; + } /** * 列表 @@ -38,7 +41,7 @@ public class RecallOrderController { @GetMapping("/info/{id}") @ApiOperation(value = "根据id查详情", notes = "根据id查详情", httpMethod = "GET") public ResObj info(@PathVariable("id") String id) { - return recallOrderApiService.getRecallOrder(id); + return recallOrderApiService.getRecallOrderByOrderId(id); } /** diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java index 85293b3..f42848b 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallOrderApiService.java @@ -1,6 +1,5 @@ package com.wabestway.recall.trace.service; -import java.util.List; import com.wabestway.recall.trace.dto.RecallOrderDTO; import com.wabestway.recall.trace.vo.RecallOrderVO; import com.wabestway.commons.http.Paging; @@ -8,8 +7,6 @@ import com.wabestway.commons.http.ResObj; /** - * - * * @author wangH * @company 北京华焱坤泰科技有限公司 * @Time 2023-05-06 17:37:03 @@ -18,20 +15,17 @@ public interface RecallOrderApiService { /** * 列表 + * * @param paramReq * @return */ ResObj> list(RecallOrderDTO paramReq); - /** - * 查询详情 - * @param id - * @return - */ - ResObj getRecallOrder(String id); ResObj getRecallOrderByOrderId(String orderId); + /** * 根据回溯文件生成MP4视频 + * * @return */ ResObj traceVideo(); diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java index 72c1b65..bdb15c4 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallRecordApiService.java @@ -1,11 +1,7 @@ package com.wabestway.recall.trace.service; -import java.util.List; -import com.wabestway.recall.trace.dto.RecallRecordDTO; import com.wabestway.recall.trace.dto.TraceDTO; -import com.wabestway.recall.trace.vo.RecallRecordVO; -import com.wabestway.commons.http.Paging; import com.wabestway.commons.http.ResObj; diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 566e75b..042c74c 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -52,15 +52,11 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { return ResObj.ok(paging); } - @Override - public ResObj getRecallOrder(String id) { - RecallOrderVO recallOrderVO = recallOrderService.queryRecallOrderById(id); - return ResObj.ok(recallOrderVO); - } @Override public ResObj getRecallOrderByOrderId(String orderId) { - return null; + RecallOrderVO recallOrderVO = recallOrderService.queryRecallOrderById(orderId); + return ResObj.ok(recallOrderVO); } @Override From dbaab0484bfed855c6be65bb0f6452cadb99ae73 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Mon, 8 May 2023 19:24:38 +0800 Subject: [PATCH 22/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加feign --- afis-recall-api/.gitignore | 38 +++++ afis-recall-api/pom.xml | 100 +++++++++++++ .../main/java/com/wabestway/recall/Main.java | 7 + .../wabestway/recall/api/dto/TraceUpDTO.java | 34 +++++ .../fallback/TraceFeignClientFallback.java | 19 +++ .../recall/api/feign/TraceFeignClient.java | 14 ++ .../trace/entity/RecallRecordEntity.java | 3 + .../recall/trace/handler/ListTypeHandler.java | 42 ++++++ .../recall/trace/vo/RecallOrderVO.java | 7 + afis-recall-web/pom.xml | 16 ++- .../impl/RecallOrderApiServiceImpl.java | 11 ++ .../impl/RecallRecordApiServiceImpl.java | 3 +- .../src/main/resources/application-dev.yml | 1 + .../src/main/resources/application-native.yml | 2 + .../src/main/resources/application.yml | 16 +++ .../src/main/resources/bootstrap-dev.yml | 17 +++ .../src/main/resources/bootstrap-native.yml | 51 +++++++ .../src/main/resources/bootstrap-prod.yml | 17 +++ .../src/main/resources/bootstrap-uat.yml | 16 +++ .../src/main/resources/bootstrap.yml | 3 + .../src/main/resources/logback-spring.xml | 135 ++++++++++++++++++ pom.xml | 1 + 22 files changed, 549 insertions(+), 4 deletions(-) create mode 100644 afis-recall-api/.gitignore create mode 100644 afis-recall-api/pom.xml create mode 100644 afis-recall-api/src/main/java/com/wabestway/recall/Main.java create mode 100644 afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java create mode 100644 afis-recall-api/src/main/java/com/wabestway/recall/api/fallback/TraceFeignClientFallback.java create mode 100644 afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java create mode 100644 afis-recall-web/src/main/resources/application-dev.yml create mode 100644 afis-recall-web/src/main/resources/application-native.yml create mode 100644 afis-recall-web/src/main/resources/application.yml create mode 100644 afis-recall-web/src/main/resources/bootstrap-dev.yml create mode 100644 afis-recall-web/src/main/resources/bootstrap-native.yml create mode 100644 afis-recall-web/src/main/resources/bootstrap-prod.yml create mode 100644 afis-recall-web/src/main/resources/bootstrap-uat.yml create mode 100644 afis-recall-web/src/main/resources/bootstrap.yml create mode 100644 afis-recall-web/src/main/resources/logback-spring.xml diff --git a/afis-recall-api/.gitignore b/afis-recall-api/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/afis-recall-api/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/afis-recall-api/pom.xml b/afis-recall-api/pom.xml new file mode 100644 index 0000000..0c64c36 --- /dev/null +++ b/afis-recall-api/pom.xml @@ -0,0 +1,100 @@ + + + 4.0.0 + + com.wabestway.recall + afis-recall-api + 1.0-SNAPSHOT + + + + 1.8 + 1.8 + UTF-8 + UTF-8 + + + + + com.wabestway.common + afis-web-common + 1.0 + + + org.springframework.cloud + spring-cloud-starter-openfeign + 2.2.3.RELEASE + provided + + + + com.google.code.gson + gson + 2.8.6 + + + + io.springfox + springfox-swagger2 + 3.0.0 + + + io.swagger + swagger-models + + + provided + + + + io.swagger + swagger-models + 1.5.22 + provided + + + + org.projectlombok + lombok + 1.18.6 + true + + + org.springframework.cloud + spring-cloud-openfeign-core + 2.2.3.RELEASE + compile + + + + + + release + Nexus Release Repository + http://dev.wabestway.com/nexus/repository/maven-releases/ + + + + snapshot + Nexus Snapshot Repository + http://dev.wabestway.com/nexus/repository/maven-snapshots/ + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + none + + + + + + + \ No newline at end of file diff --git a/afis-recall-api/src/main/java/com/wabestway/recall/Main.java b/afis-recall-api/src/main/java/com/wabestway/recall/Main.java new file mode 100644 index 0000000..f7b6cb1 --- /dev/null +++ b/afis-recall-api/src/main/java/com/wabestway/recall/Main.java @@ -0,0 +1,7 @@ +package com.wabestway.recall; + +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file diff --git a/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java b/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java new file mode 100644 index 0000000..5156a34 --- /dev/null +++ b/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java @@ -0,0 +1,34 @@ +package com.wabestway.recall.api.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class TraceUpDTO { + private String batchId; + private long batchTime; + List records; +} + +@Data +class TraceRecord { + /** 业务订单ID */ + private String orderId; + /** 产品编码 */ + private String supplierProductCode; + /** 产品名称 */ + private String supplierProductName; + /** 保单号 */ + private String policyNo; + /** 投保人名称 */ + private String holderName; + /** 投保人手机号 */ + private String holderPhone; + /** 保险公司名称 */ + private String supplierName; + /** 保单起始日期 */ + private String startDate; + /** 保单结束日期 */ + private String endDate; +} diff --git a/afis-recall-api/src/main/java/com/wabestway/recall/api/fallback/TraceFeignClientFallback.java b/afis-recall-api/src/main/java/com/wabestway/recall/api/fallback/TraceFeignClientFallback.java new file mode 100644 index 0000000..6497d16 --- /dev/null +++ b/afis-recall-api/src/main/java/com/wabestway/recall/api/fallback/TraceFeignClientFallback.java @@ -0,0 +1,19 @@ +package com.wabestway.recall.api.fallback; + +import com.alibaba.fastjson.JSON; +import com.wabestway.commons.http.ResObj; +import com.wabestway.recall.api.dto.TraceUpDTO; +import com.wabestway.recall.api.feign.TraceFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class TraceFeignClientFallback implements TraceFeignClient { + + @Override + public ResObj batchTraceUp(TraceUpDTO traceUpDTO) { + log.error("回溯业务数据更新:{}", JSON.toJSONString(traceUpDTO)); + return ResObj.fail("服务不可用"); + } +} diff --git a/afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java b/afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java new file mode 100644 index 0000000..fcc0a0b --- /dev/null +++ b/afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java @@ -0,0 +1,14 @@ +package com.wabestway.recall.api.feign; + +import com.wabestway.commons.http.ResObj; +import com.wabestway.recall.api.dto.TraceUpDTO; +import com.wabestway.recall.api.fallback.TraceFeignClientFallback; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +@FeignClient(value = "afis-recall", fallback = TraceFeignClientFallback.class) +public interface TraceFeignClient { + @PostMapping("/api/traceUp") + ResObj batchTraceUp(@RequestBody TraceUpDTO traceUpDTO); +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java index 6ce26f0..6c630c0 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallRecordEntity.java @@ -1,8 +1,10 @@ package com.wabestway.recall.trace.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableId; +import com.wabestway.recall.trace.handler.ListTypeHandler; import lombok.Data; import java.util.List; @@ -29,6 +31,7 @@ public class RecallRecordEntity { /** 页面说明 */ private String content; /** 记录事件 */ + @TableField(typeHandler = ListTypeHandler.class) private List events; /** 回溯记录跟踪ID */ private String traceId; diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java new file mode 100644 index 0000000..f18d010 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java @@ -0,0 +1,42 @@ +package com.wabestway.recall.trace.handler; + + +import com.wabestway.recall.trace.vo.RecallRecordVO; +import org.apache.ibatis.type.JdbcType; +import org.apache.ibatis.type.MappedJdbcTypes; +import org.apache.ibatis.type.MappedTypes; +import org.apache.ibatis.type.TypeHandler; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.List; + +@MappedTypes(value = {RecallRecordVO.class}) +@MappedJdbcTypes(value = {JdbcType.LONGNVARCHAR}) +public class ListTypeHandler implements TypeHandler> { + @Override + public void setParameter(PreparedStatement ps, int i, List strings, JdbcType jdbcType) throws SQLException { + ps.setString(i, String.join(",", strings)); + } + + @Override + public List getResult(ResultSet rs, String s) throws SQLException { + String str = rs.getString(s); + return Arrays.asList(str.split(",")); + } + + @Override + public List getResult(ResultSet rs, int i) throws SQLException { + String str = rs.getString(i); + return Arrays.asList(str.split(",")); + } + + @Override + public List getResult(CallableStatement cs, int i) throws SQLException { + String str = cs.getString(i); + return Arrays.asList(str.split(",")); + } +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java index bda9bf9..06de931 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java @@ -1,6 +1,10 @@ package com.wabestway.recall.trace.vo; import java.io.Serializable; +import java.util.List; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -76,6 +80,7 @@ public class RecallOrderVO implements Serializable { private String createBy; /** 创建时间 */ @ApiModelProperty(value = "创建时间") + @JsonProperty(value = "createAt") private Long createTime; /** 更新人 */ @ApiModelProperty(value = "更新人") @@ -84,4 +89,6 @@ public class RecallOrderVO implements Serializable { @ApiModelProperty(value = "更新时间") private Long updateTime; + private List events; + } diff --git a/afis-recall-web/pom.xml b/afis-recall-web/pom.xml index b4d6198..be628d3 100644 --- a/afis-recall-web/pom.xml +++ b/afis-recall-web/pom.xml @@ -20,7 +20,8 @@ UTF-8 UTF-8 3.3.2 - 1.1.22 + 1.1.22 + @@ -40,7 +41,16 @@ - + + mysql + mysql-connector-java + runtime + + + com.alibaba + druid-spring-boot-starter + ${alibaba.boot.druid} + org.springframework.cloud spring-cloud-starter-openfeign @@ -74,7 +84,7 @@ org.springframework.boot - spring-boot-starter-webflux + spring-boot-starter-web org.projectlombok diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 042c74c..c4cd0a7 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -56,6 +56,17 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { @Override public ResObj getRecallOrderByOrderId(String orderId) { RecallOrderVO recallOrderVO = recallOrderService.queryRecallOrderById(orderId); + if (recallOrderVO != null) { + LambdaQueryWrapper recordQuery = Wrappers.lambdaQuery(); + recordQuery.eq(RecallRecordEntity::getTraceId, recallOrderVO.getTraceId()); + recordQuery.orderByAsc(RecallRecordEntity::getCreateTime); + List recordList = recallRecordService.getBaseMapper().selectList(recordQuery); + + List events = recordList.stream() + .flatMap(entity -> entity.getEvents().stream()) + .collect(Collectors.toList()); + recallOrderVO.setEvents(events); + } return ResObj.ok(recallOrderVO); } diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java index 1a602e7..0d7ed1a 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java @@ -38,7 +38,8 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService { .map(recallOrderService::queryRecallOrderByOrderId) .map(RecallOrderEntity::getTraceId) .orElse(UUID.randomUUID().toString().replace("-", "")); - + log.info(traceId); + record.setTraceId(traceId); boolean isLastEvent = record.isLast(); RecallOrderEntity order = Optional.ofNullable(orderId) diff --git a/afis-recall-web/src/main/resources/application-dev.yml b/afis-recall-web/src/main/resources/application-dev.yml new file mode 100644 index 0000000..ec8bad2 --- /dev/null +++ b/afis-recall-web/src/main/resources/application-dev.yml @@ -0,0 +1 @@ +# nacos \ No newline at end of file diff --git a/afis-recall-web/src/main/resources/application-native.yml b/afis-recall-web/src/main/resources/application-native.yml new file mode 100644 index 0000000..c222560 --- /dev/null +++ b/afis-recall-web/src/main/resources/application-native.yml @@ -0,0 +1,2 @@ +server: + port: 9235 diff --git a/afis-recall-web/src/main/resources/application.yml b/afis-recall-web/src/main/resources/application.yml new file mode 100644 index 0000000..59170e0 --- /dev/null +++ b/afis-recall-web/src/main/resources/application.yml @@ -0,0 +1,16 @@ + +#spring: +# jackson: +# date-format: yyyy-MM-dd HH:mm:ss +# time-zone: GMT+8 + +mybatis-plus: + #MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名 + configuration: + # 打印控制台 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +spring: + freemarker: + settings: + classic_compatible: true \ No newline at end of file diff --git a/afis-recall-web/src/main/resources/bootstrap-dev.yml b/afis-recall-web/src/main/resources/bootstrap-dev.yml new file mode 100644 index 0000000..4f674fa --- /dev/null +++ b/afis-recall-web/src/main/resources/bootstrap-dev.yml @@ -0,0 +1,17 @@ +spring: + profiles: dev + application: + name: afis-recall + cloud: + nacos: + config: + file-extension: yaml + server-addr: 192.168.0.141:8848 + namespace: ns-car-dev + discovery: + #Nacos服务注册中心地址 + server-addr: 192.168.0.141:8848 + namespace: ns-car-dev + + main: + allow-bean-definition-overriding: true diff --git a/afis-recall-web/src/main/resources/bootstrap-native.yml b/afis-recall-web/src/main/resources/bootstrap-native.yml new file mode 100644 index 0000000..7d7e351 --- /dev/null +++ b/afis-recall-web/src/main/resources/bootstrap-native.yml @@ -0,0 +1,51 @@ +spring: + profiles: native + application: + name: afis-recall + cloud: + nacos: + config: + file-extension: yaml + server-addr: 49.7.225.107:8848 + namespace: native-test + discovery: + #Nacos服务注册中心地址 + server-addr: 49.7.225.107:8848 + namespace: native-test + main: + allow-bean-definition-overriding: true + + datasource: + type: com.alibaba.druid.pool.DruidDataSource + url: jdbc:mysql://123.56.82.16:3306/afis-agency?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai + username: rocar + password: rocar + driver-class-name: com.mysql.cj.jdbc.Driver + platform: mysql + druid: + initial-size: 2 + max-active: 100 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 300000 + validation-query: SELECT 1 FROM DUAL + test-while-idle: true + test-on-borrow: false + test-on-return: false + pool-prepared-statements: true + max-pool-prepared-statement-per-connection-size: 5 + filter: + stat: + log-slow-sql: true + slow-sql-millis: 2000 + enabled: true + config: + enabled: true + wall: + enabled: true + encoding: + enabled: true + stat-view-servlet: + enabled: true + url-pattern: /druid/* + login-username: admin + login-password: admin \ No newline at end of file diff --git a/afis-recall-web/src/main/resources/bootstrap-prod.yml b/afis-recall-web/src/main/resources/bootstrap-prod.yml new file mode 100644 index 0000000..53aaff9 --- /dev/null +++ b/afis-recall-web/src/main/resources/bootstrap-prod.yml @@ -0,0 +1,17 @@ + +spring: + profiles: prod + application: + name: afis-recall + cloud: + nacos: + config: + file-extension: yaml + server-addr: 192.168.208.47:18848,192.168.208.48:18848 + namespace: cs-prd + discovery: + #Nacos服务注册中心地址 + server-addr: 192.168.208.47:18848,192.168.208.48:18848 + namespace: cs-prd + main: + allow-bean-definition-overriding: true diff --git a/afis-recall-web/src/main/resources/bootstrap-uat.yml b/afis-recall-web/src/main/resources/bootstrap-uat.yml new file mode 100644 index 0000000..4222ea2 --- /dev/null +++ b/afis-recall-web/src/main/resources/bootstrap-uat.yml @@ -0,0 +1,16 @@ +spring: + profiles: uat + application: + name: afis-recall + cloud: + nacos: + config: + file-extension: yaml + server-addr: 192.168.220.31:8848 + namespace: tfs-cs-uat + discovery: + #Nacos服务注册中心地址 + server-addr: 192.168.220.31:8848 + namespace: tfs-cs-uat + main: + allow-bean-definition-overriding: true diff --git a/afis-recall-web/src/main/resources/bootstrap.yml b/afis-recall-web/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..54d7ddc --- /dev/null +++ b/afis-recall-web/src/main/resources/bootstrap.yml @@ -0,0 +1,3 @@ +spring: + profiles: + active: native diff --git a/afis-recall-web/src/main/resources/logback-spring.xml b/afis-recall-web/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..8060e20 --- /dev/null +++ b/afis-recall-web/src/main/resources/logback-spring.xml @@ -0,0 +1,135 @@ + + + + + + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{trace_id}] %-5level %logger{36} - %msg%n + + + + + + + ${LOG_HOME}/${SERVICE_NAME}/${SERVICE_NAME}.log.%d{yyyy-MM-dd}.log + + 181 + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} ${PID} %X{trace_id} [%thread] %-5level %logger{50} - %msg%n + + + + 10MB + + + + + + + ${LOG_HOME}/${SERVICE_NAME}/${SERVICE_NAME}.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} ${PID} %X{trace_id} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + + ${LOG_HOME}/${SERVICE_NAME}/${SERVICE_NAME}-info-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 181 + + + + info + ACCEPT + DENY + + + + + + + ${LOG_HOME}/${SERVICE_NAME}/${SERVICE_NAME}-warn.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} ${PID} %X{trace_id} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${LOG_HOME}/${SERVICE_NAME}/${SERVICE_NAME}-warn-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 181 + + + + warn + ACCEPT + DENY + + + + + + + ${LOG_HOME}/${SERVICE_NAME}/${SERVICE_NAME}-error.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} ${PID} %X{trace_id} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${LOG_HOME}/${SERVICE_NAME}/${SERVICE_NAME}-error-%d{yyyy-MM-dd}.%i.log + + 100MB + + + 181 + + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 545ab26..b4c8dd5 100644 --- a/pom.xml +++ b/pom.xml @@ -11,6 +11,7 @@ afis-recall-web afis-recall-service + afis-recall-api From 875a14f2b739c5b1d11e46755a591923740bfb0e Mon Sep 17 00:00:00 2001 From: BrandWang Date: Tue, 9 May 2023 11:03:31 +0800 Subject: [PATCH 23/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 处理类型映射 --- .../main/java/com/wabestway/recall/Main.java | 7 --- .../wabestway/recall/api/dto/TraceRecord.java | 43 +++++++++++++++++ .../wabestway/recall/api/dto/TraceUpDTO.java | 21 --------- .../recall/trace/dao/RecallRecordDao.java | 2 + .../recall/trace/handler/ListTypeHandler.java | 46 ++++++++++++++++--- .../trace/service/RecallRecordService.java | 7 +++ .../service/impl/RecallOrderServiceImpl.java | 2 +- .../service/impl/RecallRecordServiceImpl.java | 5 ++ .../mapper/trace/RecallRecordDao.xml | 32 +++++++++---- .../impl/RecallOrderApiServiceImpl.java | 14 +++--- .../impl/RecallRecordApiServiceImpl.java | 32 ++++++------- 11 files changed, 142 insertions(+), 69 deletions(-) delete mode 100644 afis-recall-api/src/main/java/com/wabestway/recall/Main.java create mode 100644 afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceRecord.java diff --git a/afis-recall-api/src/main/java/com/wabestway/recall/Main.java b/afis-recall-api/src/main/java/com/wabestway/recall/Main.java deleted file mode 100644 index f7b6cb1..0000000 --- a/afis-recall-api/src/main/java/com/wabestway/recall/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.wabestway.recall; - -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file diff --git a/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceRecord.java b/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceRecord.java new file mode 100644 index 0000000..67a88df --- /dev/null +++ b/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceRecord.java @@ -0,0 +1,43 @@ +package com.wabestway.recall.api.dto; + +import lombok.Data; + +@Data +public class TraceRecord { + /** + * 业务订单ID + */ + private String orderId; + /** + * 产品编码 + */ + private String supplierProductCode; + /** + * 产品名称 + */ + private String supplierProductName; + /** + * 保单号 + */ + private String policyNo; + /** + * 投保人名称 + */ + private String holderName; + /** + * 投保人手机号 + */ + private String holderPhone; + /** + * 保险公司名称 + */ + private String supplierName; + /** + * 保单起始日期 + */ + private String startDate; + /** + * 保单结束日期 + */ + private String endDate; +} diff --git a/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java b/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java index 5156a34..64e0f81 100644 --- a/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java +++ b/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java @@ -11,24 +11,3 @@ public class TraceUpDTO { List records; } -@Data -class TraceRecord { - /** 业务订单ID */ - private String orderId; - /** 产品编码 */ - private String supplierProductCode; - /** 产品名称 */ - private String supplierProductName; - /** 保单号 */ - private String policyNo; - /** 投保人名称 */ - private String holderName; - /** 投保人手机号 */ - private String holderPhone; - /** 保险公司名称 */ - private String supplierName; - /** 保单起始日期 */ - private String startDate; - /** 保单结束日期 */ - private String endDate; -} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallRecordDao.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallRecordDao.java index 7e295f8..09391ce 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallRecordDao.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallRecordDao.java @@ -48,4 +48,6 @@ public interface RecallRecordDao extends BaseMapper { * @return */ RecallRecordVO queryRecallRecordById(@Param("id") String id); + + List queryTraceRecords(@Param("traceId") String traceId); } diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java index f18d010..9100d6f 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java @@ -1,6 +1,10 @@ package com.wabestway.recall.trace.handler; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.wabestway.recall.trace.entity.RecallRecordEntity; import com.wabestway.recall.trace.vo.RecallRecordVO; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.MappedJdbcTypes; @@ -11,32 +15,62 @@ import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; -@MappedTypes(value = {RecallRecordVO.class}) -@MappedJdbcTypes(value = {JdbcType.LONGNVARCHAR}) +@MappedTypes(value = {List.class}) +@MappedJdbcTypes(value = {JdbcType.BLOB}) public class ListTypeHandler implements TypeHandler> { + private ObjectMapper objectMapper = new ObjectMapper(); + @Override public void setParameter(PreparedStatement ps, int i, List strings, JdbcType jdbcType) throws SQLException { - ps.setString(i, String.join(",", strings)); + String jsonStr = null; + try { + jsonStr = objectMapper.writeValueAsString(strings); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + ps.setString(i, jsonStr); } @Override public List getResult(ResultSet rs, String s) throws SQLException { String str = rs.getString(s); - return Arrays.asList(str.split(",")); + List newList = new ArrayList<>(); + try { + newList = objectMapper.readValue(str, new TypeReference>() { + }); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + return newList; } @Override public List getResult(ResultSet rs, int i) throws SQLException { String str = rs.getString(i); - return Arrays.asList(str.split(",")); + List newList = new ArrayList<>(); + try { + newList = objectMapper.readValue(str, new TypeReference>() { + }); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + return newList; } @Override public List getResult(CallableStatement cs, int i) throws SQLException { String str = cs.getString(i); - return Arrays.asList(str.split(",")); + List newList = new ArrayList<>(); + try { + newList = objectMapper.readValue(str, new TypeReference>() { + }); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + return newList; } } diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallRecordService.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallRecordService.java index 7c9b966..c0f8644 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallRecordService.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallRecordService.java @@ -44,5 +44,12 @@ public interface RecallRecordService extends IService { * @return */ RecallRecordVO queryRecallRecordById(String id); + + /** + * 根据traceId 查询列表 + * @param traceId + * @return + */ + List queryTraceRecords(String traceId); } diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java index a5e9b4c..76dca8d 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java @@ -53,7 +53,7 @@ public class RecallOrderServiceImpl extends ServiceImpl orderQuery = Wrappers.lambdaQuery(); - orderQuery.eq(RecallOrderEntity::getOrderId, traceId); + orderQuery.eq(RecallOrderEntity::getTraceId, traceId); orderQuery.last("limit 1"); return baseMapper.selectOne(orderQuery); } diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordServiceImpl.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordServiceImpl.java index f5f2bf0..8ce5cd8 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordServiceImpl.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordServiceImpl.java @@ -43,4 +43,9 @@ public class RecallRecordServiceImpl extends ServiceImpl queryTraceRecords(String traceId) { + return baseMapper.queryTraceRecords(traceId); + } } \ No newline at end of file diff --git a/afis-recall-service/src/main/resources/mapper/trace/RecallRecordDao.xml b/afis-recall-service/src/main/resources/mapper/trace/RecallRecordDao.xml index 19067eb..6e00ba3 100644 --- a/afis-recall-service/src/main/resources/mapper/trace/RecallRecordDao.xml +++ b/afis-recall-service/src/main/resources/mapper/trace/RecallRecordDao.xml @@ -2,7 +2,10 @@ - + + + t.id id, t.product_code productCode, @@ -18,11 +21,11 @@ - select + select - from recall_record t - where 1 = 1 + from recall_record t + where 1 = 1 and t.id = #{recallRecordDTO.id} @@ -79,10 +82,10 @@ @@ -114,4 +117,13 @@ where t.id= #{recallRecord.id} + + + \ No newline at end of file diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index c4cd0a7..f147b59 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -15,7 +15,9 @@ import com.wabestway.recall.trace.entity.RecallOrderEntity; import com.wabestway.recall.trace.entity.RecallRecordEntity; import com.wabestway.recall.trace.service.RecallOrderService; import com.wabestway.recall.trace.service.RecallRecordService; +import com.wabestway.recall.trace.vo.RecallRecordVO; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import com.wabestway.recall.trace.dto.RecallOrderDTO; import com.wabestway.recall.trace.vo.RecallOrderVO; @@ -55,13 +57,13 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { @Override public ResObj getRecallOrderByOrderId(String orderId) { - RecallOrderVO recallOrderVO = recallOrderService.queryRecallOrderById(orderId); - if (recallOrderVO != null) { - LambdaQueryWrapper recordQuery = Wrappers.lambdaQuery(); - recordQuery.eq(RecallRecordEntity::getTraceId, recallOrderVO.getTraceId()); - recordQuery.orderByAsc(RecallRecordEntity::getCreateTime); - List recordList = recallRecordService.getBaseMapper().selectList(recordQuery); + RecallOrderVO recallOrderVO = new RecallOrderVO(); + RecallOrderEntity recallOrderEntity = recallOrderService.queryRecallOrderByOrderId(orderId); + if (recallOrderEntity != null) { + BeanUtils.copyProperties(recallOrderEntity, recallOrderVO); + List recordList = recallRecordService.queryTraceRecords(recallOrderEntity.getTraceId()); + log.info(JSON.toJSONString(recordList)); List events = recordList.stream() .flatMap(entity -> entity.getEvents().stream()) .collect(Collectors.toList()); diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java index 0d7ed1a..4013ab8 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java @@ -2,6 +2,7 @@ package com.wabestway.recall.trace.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.wabestway.commons.http.ResObj; import com.wabestway.recall.trace.dto.TraceDTO; import com.wabestway.recall.trace.entity.RecallOrderEntity; @@ -14,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import com.wabestway.recall.trace.service.RecallRecordApiService; import org.springframework.stereotype.Service; +import java.util.Objects; import java.util.Optional; import java.util.UUID; @@ -33,18 +35,15 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService { @Override public ResObj save(TraceDTO record) { - String orderId = record.getOrderId(); - String traceId = Optional.ofNullable(orderId) - .map(recallOrderService::queryRecallOrderByOrderId) - .map(RecallOrderEntity::getTraceId) - .orElse(UUID.randomUUID().toString().replace("-", "")); - log.info(traceId); - record.setTraceId(traceId); - boolean isLastEvent = record.isLast(); + Objects.requireNonNull(record); - RecallOrderEntity order = Optional.ofNullable(orderId) - .flatMap(id -> Optional.ofNullable(recallOrderService.queryRecallOrderByOrderId(id))) - .orElseGet(() -> { + String orderId = StringUtils.isBlank(record.getOrderId()) ? UUID.randomUUID().toString().replace("-", "") : record.getOrderId(); + + String traceId = StringUtils.isBlank(record.getTraceId()) ? UUID.randomUUID().toString().replace("-", "") : record.getTraceId(); + + boolean isLastEvent = record.isLast(); + RecallOrderEntity order = Optional.ofNullable(recallOrderService.queryRecallOrderByOrderId(orderId)) + .orElseGet(() -> Optional.ofNullable(recallOrderService.queryRecallOrderByTraceId(traceId)).orElseGet(() -> { RecallOrderEntity newOrder = new RecallOrderEntity(); newOrder.setId(UUID.randomUUID().toString().replace("-", "")); newOrder.setOrderId(orderId); @@ -60,19 +59,16 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService { newOrder.setCompleteDate(System.currentTimeMillis()); } recallOrderService.save(newOrder); - - record.setTraceId(traceId); - record.setOrderId(orderId); return newOrder; - }); - - if (isLastEvent) { + })); + if (isLastEvent && !"1".equals(order.getComplete())) { order.setComplete("1"); order.setCompleteDate(System.currentTimeMillis()); order.setUpdateTime(System.currentTimeMillis()); recallOrderService.updateRecallOrderById(order); } - + record.setTraceId(traceId); + record.setOrderId(orderId); RecallRecordEntity recallRecord = new RecallRecordEntity(); BeanUtils.copyProperties(record, recallRecord); recallRecord.setId(UUID.randomUUID().toString().replace("-", "")); From 1b1f2392d725c617221f51dab0d43c3af25cb187 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Tue, 9 May 2023 11:17:23 +0800 Subject: [PATCH 24/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加feign实现 --- .../recall/trace/handler/ListTypeHandler.java | 2 - afis-recall-web/pom.xml | 12 +++++- .../recall/feign/TraceFeignClientImpl.java | 37 +++++++++++++++++++ .../controller/RecallOrderController.java | 1 - 4 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/feign/TraceFeignClientImpl.java diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java index 9100d6f..e3dfa71 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java @@ -4,8 +4,6 @@ package com.wabestway.recall.trace.handler; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import com.wabestway.recall.trace.entity.RecallRecordEntity; -import com.wabestway.recall.trace.vo.RecallRecordVO; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.MappedJdbcTypes; import org.apache.ibatis.type.MappedTypes; diff --git a/afis-recall-web/pom.xml b/afis-recall-web/pom.xml index be628d3..83a26cc 100644 --- a/afis-recall-web/pom.xml +++ b/afis-recall-web/pom.xml @@ -23,7 +23,11 @@ 1.1.22 - + + com.wabestway.recall + afis-recall-api + 1.0-SNAPSHOT + com.wabestway.recall afis-recall-service @@ -106,6 +110,12 @@ fastjson 2.0.17 + + com.wabestway.recall + afis-recall-api + 1.0-SNAPSHOT + compile + diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/feign/TraceFeignClientImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/feign/TraceFeignClientImpl.java new file mode 100644 index 0000000..fbdda8a --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/feign/TraceFeignClientImpl.java @@ -0,0 +1,37 @@ +package com.wabestway.recall.feign; + +import com.alibaba.fastjson.JSON; +import com.wabestway.commons.http.ResObj; +import com.wabestway.recall.api.dto.TraceUpDTO; +import com.wabestway.recall.api.feign.TraceFeignClient; +import com.wabestway.recall.trace.entity.RecallOrderEntity; +import com.wabestway.recall.trace.service.RecallOrderService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Slf4j +public class TraceFeignClientImpl implements TraceFeignClient { + @Autowired + private RecallOrderService recallOrderService; + + @Override + public ResObj batchTraceUp(TraceUpDTO traceUpDTO) { + log.info("同步请求数据:{}", JSON.toJSONString(traceUpDTO)); + traceUpDTO.getRecords().forEach(order -> { + RecallOrderEntity recallOrderEntity = recallOrderService.queryRecallOrderByOrderId(order.getOrderId()); + if (recallOrderEntity != null) { + recallOrderEntity.setPolicyNo(order.getPolicyNo()); + recallOrderEntity.setHolderName(order.getHolderName()); + recallOrderEntity.setHolderPhone(order.getHolderPhone()); + recallOrderEntity.setStartDate(order.getStartDate()); + recallOrderEntity.setEndDate(order.getEndDate()); + recallOrderEntity.setSupplierName(order.getSupplierName()); + recallOrderEntity.setUpdateTime(System.currentTimeMillis()); + recallOrderService.updateRecallOrderById(recallOrderEntity); + } + }); + return ResObj.ok(); + } +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java index 04cb16d..335b947 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java @@ -1,7 +1,6 @@ package com.wabestway.recall.trace.controller; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; From 4ca021bf2a60ffe8b1d913dffc24bf287bbf4a8c Mon Sep 17 00:00:00 2001 From: BrandWang Date: Tue, 9 May 2023 11:37:10 +0800 Subject: [PATCH 25/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改接口请求方式 --- .../recall/trace/controller/RecallOrderController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java index 335b947..21d0a63 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java @@ -37,7 +37,7 @@ public class RecallOrderController { /** * 信息 */ - @GetMapping("/info/{id}") + @PostMapping("/info/{id}") @ApiOperation(value = "根据id查详情", notes = "根据id查详情", httpMethod = "GET") public ResObj info(@PathVariable("id") String id) { return recallOrderApiService.getRecallOrderByOrderId(id); From bf19ecdea68cc6bc87a364892b0782bceeaf4cdc Mon Sep 17 00:00:00 2001 From: BrandWang Date: Tue, 9 May 2023 16:53:49 +0800 Subject: [PATCH 26/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整视频生成逻辑 --- .../recall/trace/handler/ListTypeHandler.java | 1 - .../trace/service/RecallOrderService.java | 1 - .../service/impl/RecallOrderServiceImpl.java | 2 - .../recall/trace/vo/RecallOrderVO.java | 138 +++++++++++------- .../impl/RecallOrderApiServiceImpl.java | 39 ++++- .../src/main/resources/bootstrap-native.yml | 6 +- 6 files changed, 123 insertions(+), 64 deletions(-) diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java index e3dfa71..d7eeebd 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/handler/ListTypeHandler.java @@ -14,7 +14,6 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; @MappedTypes(value = {List.class}) diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java index 95d70da..2803958 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallOrderService.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.wabestway.recall.trace.entity.RecallOrderEntity; import com.wabestway.recall.trace.dto.RecallOrderDTO; import com.wabestway.recall.trace.vo.RecallOrderVO; -import java.util.List; /** * diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java index 76dca8d..fc886c8 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderServiceImpl.java @@ -13,8 +13,6 @@ import com.wabestway.recall.trace.dto.RecallOrderDTO; import com.wabestway.recall.trace.vo.RecallOrderVO; import com.wabestway.recall.trace.service.RecallOrderService; -import java.util.List; - /** * @author wangH * @company 北京华焱坤泰科技有限公司 diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java index 06de931..f5d7822 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallOrderVO.java @@ -2,16 +2,12 @@ package com.wabestway.recall.trace.vo; import java.io.Serializable; import java.util.List; - -import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; /** - * - * * @author wangH * @company 北京华焱坤泰科技有限公司 * @Time 2023-05-06 17:37:03 @@ -19,75 +15,119 @@ import io.swagger.annotations.ApiModelProperty; @Data @ApiModel public class RecallOrderVO implements Serializable { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - /** 主键 */ + /** + * 主键 + */ @ApiModelProperty(value = "主键") - private String id; - /** 产品编码 */ + private String id; + /** + * 产品编码 + */ @ApiModelProperty(value = "产品编码") - private String productCode; - /** 产品名称 */ + private String productCode; + /** + * 产品名称 + */ @ApiModelProperty(value = "产品名称") - private String productName; - /** 保单号 */ + private String productName; + /** + * 保单号 + */ @ApiModelProperty(value = "保单号") - private String policyNo; - /** 投保人名称 */ + private String policyNo; + /** + * 投保人名称 + */ @ApiModelProperty(value = "投保人名称") - private String holderName; - /** 投保人手机号 */ + private String holderName; + /** + * 投保人手机号 + */ @ApiModelProperty(value = "投保人手机号") - private String holderPhone; - /** 保险公司名称 */ + private String holderPhone; + /** + * 保险公司名称 + */ @ApiModelProperty(value = "保险公司名称") - private String supplierName; - /** 是否记录完整0-否1-是 */ + private String supplierName; + /** + * 是否记录完整0-否1-是 + */ @ApiModelProperty(value = "是否记录完整0-否1-是") - private String complete; - /** 是否已归档 0-否1-是 */ + private String complete; + /** + * 是否已归档 0-否1-是 + */ @ApiModelProperty(value = "是否已归档 0-否1-是 ") - private String archived; - /** 完成日期 */ + private String archived; + /** + * 完成日期 + */ @ApiModelProperty(value = "完成日期") - private Long completeDate; - /** 归档日期 */ + private Long completeDate; + /** + * 归档日期 + */ @ApiModelProperty(value = "归档日期") - private Long archivedDate; - /** 保单起始日期 */ + private Long archivedDate; + /** + * 保单起始日期 + */ @ApiModelProperty(value = "保单起始日期") - private String startDate; - /** 保单结束日期 */ + private String startDate; + /** + * 保单结束日期 + */ @ApiModelProperty(value = "保单结束日期") - private String endDate; - /** 生成视频文件ID */ + private String endDate; + /** + * 生成视频文件ID + */ @ApiModelProperty(value = "生成视频文件ID") - private String fileId; - /** 生成视频文件地址 */ + private String fileId; + /** + * 生成视频文件地址 + */ @ApiModelProperty(value = "生成视频文件地址") - private String fileUrl; - /** 业务订单ID */ + private String fileUrl; + /** + * 业务订单ID + */ @ApiModelProperty(value = "业务订单ID") - private String orderId; - /** 回溯记录跟踪ID */ + private String orderId; + /** + * 回溯记录跟踪ID + */ @ApiModelProperty(value = "回溯记录跟踪ID") - private String traceId; - /** 可回溯记录appKey */ + private String traceId; + /** + * 可回溯记录appKey + */ @ApiModelProperty(value = "可回溯记录appKey") - private String appKey; - /** 创建人 */ + private String appKey; + /** + * 创建人 + */ @ApiModelProperty(value = "创建人") - private String createBy; - /** 创建时间 */ + private String createBy; + /** + * 创建时间 + */ @ApiModelProperty(value = "创建时间") @JsonProperty(value = "createAt") - private Long createTime; - /** 更新人 */ + private Long createTime; + /** + * 更新人 + */ @ApiModelProperty(value = "更新人") - private String updateBy; - /** 更新时间 */ + private String updateBy; + /** + * 更新时间 + */ @ApiModelProperty(value = "更新时间") - private Long updateTime; + private Long updateTime; private List events; diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index f147b59..692529b 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -80,11 +80,8 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { orderQuery.orderByDesc(RecallOrderEntity::getCompleteDate); List orderList = recallOrderService.getBaseMapper().selectList(orderQuery); orderList.forEach(order -> { - LambdaQueryWrapper recordQuery = Wrappers.lambdaQuery(); - recordQuery.eq(RecallRecordEntity::getTraceId, order.getTraceId()); - recordQuery.orderByAsc(RecallRecordEntity::getCreateTime); - List recordList = recallRecordService.getBaseMapper().selectList(recordQuery); + List recordList = recallRecordService.queryTraceRecords(order.getTraceId()); List events = recordList.stream() .flatMap(entity -> entity.getEvents().stream()) .collect(Collectors.toList()); @@ -117,23 +114,23 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { bw.flush(); bw.close(); fw.close(); - String[] command = {"ts-node", "/opt/trace-transform/src/index.ts"}; + String[] command = {"ts-node", "/opt/review/index.ts"}; ProcessBuilder processBuilder = new ProcessBuilder(command); processBuilder.directory(tempDir.toFile()); // 在临时目录下执行命令 - Process process = processBuilder.start(); + Process p1 = processBuilder.start(); Thread processThread = new Thread(() -> { try { // 读取命令输出 - BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + BufferedReader reader = new BufferedReader(new InputStreamReader(p1.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); // 等待命令执行完成 - int exitCode = process.waitFor(); + int exitCode = p1.waitFor(); System.out.println("Command exited with code " + exitCode); } catch (InterruptedException | IOException e) { @@ -144,12 +141,38 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { // Continue with other tasks here... + try { processThread.join(); } catch (InterruptedException e) { e.printStackTrace(); } + String[] video = {"rrvideo", "--input", "unpack.json", "--config", "/opt/review/config.json", "--output", "video.mp4"}; + ProcessBuilder videoBuilder = new ProcessBuilder(video); + videoBuilder.directory(tempDir.toFile()); + Process p2 = videoBuilder.start(); + + + Thread processThread2 = new Thread(() -> { + try { + // 读取命令输出 + BufferedReader reader = new BufferedReader(new InputStreamReader(p2.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + reader.close(); + // 等待命令执行完成 + int exitCode = p2.waitFor(); + + System.out.println("Command exited with code " + exitCode); + } catch (InterruptedException | IOException e) { + e.printStackTrace(); + } + }); + processThread2.start(); + File file = new File(tempDir.toFile(), "video.mp4"); if (file.exists()) { log.info(String.valueOf(file.length())); diff --git a/afis-recall-web/src/main/resources/bootstrap-native.yml b/afis-recall-web/src/main/resources/bootstrap-native.yml index 7d7e351..0f9ae01 100644 --- a/afis-recall-web/src/main/resources/bootstrap-native.yml +++ b/afis-recall-web/src/main/resources/bootstrap-native.yml @@ -17,9 +17,9 @@ spring: datasource: type: com.alibaba.druid.pool.DruidDataSource - url: jdbc:mysql://123.56.82.16:3306/afis-agency?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai - username: rocar - password: rocar + url: jdbc:mysql://203.189.0.250:13049/afis-agency?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai + username: yxb-dev + password: yxbDev!902 driver-class-name: com.mysql.cj.jdbc.Driver platform: mysql druid: From 636a5522ae4520b22d42fa0eaf71dcb922398534 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Tue, 9 May 2023 17:40:47 +0800 Subject: [PATCH 27/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加mybatis-plus配置文件 --- afis-recall-web/pom.xml | 10 ------- .../recall/config/MybatisPlusConfig.java | 27 +++++++++++++++++++ 2 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/config/MybatisPlusConfig.java diff --git a/afis-recall-web/pom.xml b/afis-recall-web/pom.xml index 83a26cc..336f336 100644 --- a/afis-recall-web/pom.xml +++ b/afis-recall-web/pom.xml @@ -82,10 +82,6 @@ org.springframework.boot spring-boot-starter-actuator - - org.springframework.boot - spring-boot-starter-data-mongodb-reactive - org.springframework.boot spring-boot-starter-web @@ -110,12 +106,6 @@ fastjson 2.0.17 - - com.wabestway.recall - afis-recall-api - 1.0-SNAPSHOT - compile - diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/config/MybatisPlusConfig.java b/afis-recall-web/src/main/java/com/wabestway/recall/config/MybatisPlusConfig.java new file mode 100644 index 0000000..d2b2707 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/config/MybatisPlusConfig.java @@ -0,0 +1,27 @@ +package com.wabestway.recall.config; + +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.sql.DataSource; + +/** + * Created by king on 2021/5/9. + */ +@Configuration +@ConditionalOnClass(value = {PaginationInterceptor.class}) +public class MybatisPlusConfig { + + @Autowired + private DataSource dataSource; + + @Bean + public PaginationInterceptor paginationInterceptor() { + PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); + return paginationInterceptor; + } + +} From 1046a86a03d17df3f7203d161d6418a82187c093 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 10 May 2023 09:54:13 +0800 Subject: [PATCH 28/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 解决feign接收参数问题 --- .../recall/api/feign/TraceFeignClient.java | 2 +- .../recall/feign/TraceFeignClientImpl.java | 28 ++++++++++--------- .../impl/RecallOrderApiServiceImpl.java | 2 +- pom.xml | 4 --- 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java b/afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java index fcc0a0b..15ca021 100644 --- a/afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java +++ b/afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java @@ -3,9 +3,9 @@ package com.wabestway.recall.api.feign; import com.wabestway.commons.http.ResObj; import com.wabestway.recall.api.dto.TraceUpDTO; import com.wabestway.recall.api.fallback.TraceFeignClientFallback; -import io.swagger.v3.oas.annotations.parameters.RequestBody; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; @FeignClient(value = "afis-recall", fallback = TraceFeignClientFallback.class) public interface TraceFeignClient { diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/feign/TraceFeignClientImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/feign/TraceFeignClientImpl.java index fbdda8a..b323b3b 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/feign/TraceFeignClientImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/feign/TraceFeignClientImpl.java @@ -19,19 +19,21 @@ public class TraceFeignClientImpl implements TraceFeignClient { @Override public ResObj batchTraceUp(TraceUpDTO traceUpDTO) { log.info("同步请求数据:{}", JSON.toJSONString(traceUpDTO)); - traceUpDTO.getRecords().forEach(order -> { - RecallOrderEntity recallOrderEntity = recallOrderService.queryRecallOrderByOrderId(order.getOrderId()); - if (recallOrderEntity != null) { - recallOrderEntity.setPolicyNo(order.getPolicyNo()); - recallOrderEntity.setHolderName(order.getHolderName()); - recallOrderEntity.setHolderPhone(order.getHolderPhone()); - recallOrderEntity.setStartDate(order.getStartDate()); - recallOrderEntity.setEndDate(order.getEndDate()); - recallOrderEntity.setSupplierName(order.getSupplierName()); - recallOrderEntity.setUpdateTime(System.currentTimeMillis()); - recallOrderService.updateRecallOrderById(recallOrderEntity); - } - }); + if (traceUpDTO != null && traceUpDTO.getRecords() != null) { + traceUpDTO.getRecords().forEach(order -> { + RecallOrderEntity recallOrderEntity = recallOrderService.queryRecallOrderByOrderId(order.getOrderId()); + if (recallOrderEntity != null) { + recallOrderEntity.setPolicyNo(order.getPolicyNo()); + recallOrderEntity.setHolderName(order.getHolderName()); + recallOrderEntity.setHolderPhone(order.getHolderPhone()); + recallOrderEntity.setStartDate(order.getStartDate()); + recallOrderEntity.setEndDate(order.getEndDate()); + recallOrderEntity.setSupplierName(order.getSupplierName()); + recallOrderEntity.setUpdateTime(System.currentTimeMillis()); + recallOrderService.updateRecallOrderById(recallOrderEntity); + } + }); + } return ResObj.ok(); } } diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 692529b..6c23175 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -148,7 +148,7 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { e.printStackTrace(); } - String[] video = {"rrvideo", "--input", "unpack.json", "--config", "/opt/review/config.json", "--output", "video.mp4"}; + String[] video = {"rrvideo", "--input unpack.json --config /opt/review/config.json --output video.mp4"}; ProcessBuilder videoBuilder = new ProcessBuilder(video); videoBuilder.directory(tempDir.toFile()); Process p2 = videoBuilder.start(); diff --git a/pom.xml b/pom.xml index b4c8dd5..09b25a0 100644 --- a/pom.xml +++ b/pom.xml @@ -11,10 +11,7 @@ afis-recall-web afis-recall-service - afis-recall-api - - org.springframework.boot spring-boot-starter-parent @@ -28,7 +25,6 @@ - io.springfox springfox-swagger-ui From 46b554f4c00488f47fe6ddd119409234946b6173 Mon Sep 17 00:00:00 2001 From: xu <12345678> Date: Wed, 10 May 2023 10:18:32 +0800 Subject: [PATCH 29/54] =?UTF-8?q?=E8=B0=83=E6=95=B4feign=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=AF=B7=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/wabestway/recall/api/feign/TraceFeignClient.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java b/afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java index 15ca021..41afef1 100644 --- a/afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java +++ b/afis-recall-api/src/main/java/com/wabestway/recall/api/feign/TraceFeignClient.java @@ -4,11 +4,12 @@ import com.wabestway.commons.http.ResObj; import com.wabestway.recall.api.dto.TraceUpDTO; import com.wabestway.recall.api.fallback.TraceFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; @FeignClient(value = "afis-recall", fallback = TraceFeignClientFallback.class) public interface TraceFeignClient { - @PostMapping("/api/traceUp") + @RequestMapping(method = RequestMethod.POST, value ="/api/traceUp") ResObj batchTraceUp(@RequestBody TraceUpDTO traceUpDTO); } From 2a33bdcfaf8ff8d038619ba7aa989530e1db4b57 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 10 May 2023 10:25:55 +0800 Subject: [PATCH 30/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 解决feign接收参数问题 --- .../src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java b/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java index 64e0f81..8034aa0 100644 --- a/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java +++ b/afis-recall-api/src/main/java/com/wabestway/recall/api/dto/TraceUpDTO.java @@ -7,7 +7,7 @@ import java.util.List; @Data public class TraceUpDTO { private String batchId; - private long batchTime; + private Long batchTime; List records; } From 6312fb607023319c28325744ee798a09a6d3efbf Mon Sep 17 00:00:00 2001 From: BrandWang Date: Fri, 12 May 2023 10:20:40 +0800 Subject: [PATCH 31/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改配置文件nacos --- .../trace/service/impl/RecallOrderApiServiceImpl.java | 1 - afis-recall-web/src/main/resources/bootstrap-prod.yml | 4 ++-- afis-recall-web/src/main/resources/bootstrap-uat.yml | 8 ++++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 6c23175..d188456 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -12,7 +12,6 @@ import com.wabestway.engine.api.dfs.UploadFileDTO; import com.wabestway.engine.api.dfs.UploadRespVO; import com.wabestway.engine.api.feign.DfsStorageFeignClient; import com.wabestway.recall.trace.entity.RecallOrderEntity; -import com.wabestway.recall.trace.entity.RecallRecordEntity; import com.wabestway.recall.trace.service.RecallOrderService; import com.wabestway.recall.trace.service.RecallRecordService; import com.wabestway.recall.trace.vo.RecallRecordVO; diff --git a/afis-recall-web/src/main/resources/bootstrap-prod.yml b/afis-recall-web/src/main/resources/bootstrap-prod.yml index 53aaff9..b211039 100644 --- a/afis-recall-web/src/main/resources/bootstrap-prod.yml +++ b/afis-recall-web/src/main/resources/bootstrap-prod.yml @@ -8,10 +8,10 @@ spring: config: file-extension: yaml server-addr: 192.168.208.47:18848,192.168.208.48:18848 - namespace: cs-prd + namespace: yxb-prod discovery: #Nacos服务注册中心地址 server-addr: 192.168.208.47:18848,192.168.208.48:18848 - namespace: cs-prd + namespace: yxb-prod main: allow-bean-definition-overriding: true diff --git a/afis-recall-web/src/main/resources/bootstrap-uat.yml b/afis-recall-web/src/main/resources/bootstrap-uat.yml index 4222ea2..0f34476 100644 --- a/afis-recall-web/src/main/resources/bootstrap-uat.yml +++ b/afis-recall-web/src/main/resources/bootstrap-uat.yml @@ -6,11 +6,11 @@ spring: nacos: config: file-extension: yaml - server-addr: 192.168.220.31:8848 - namespace: tfs-cs-uat + server-addr: 192.168.1.128:9010 + namespace: ns-car-uat discovery: #Nacos服务注册中心地址 - server-addr: 192.168.220.31:8848 - namespace: tfs-cs-uat + server-addr: 192.168.1.128:9010 + namespace: ns-car-uat main: allow-bean-definition-overriding: true From db4fffcda2e0cea32350a5db5f6a37ed739128ba Mon Sep 17 00:00:00 2001 From: BrandWang Date: Mon, 15 May 2023 10:26:11 +0800 Subject: [PATCH 32/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=A4=9A=E7=A7=9F=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加从配置取租户ID逻辑 --- .../recall/trace/dao/RecallApiDao.java | 51 +++++++ .../recall/trace/dao/RecallProductDao.java | 51 +++++++ .../recall/trace/dto/RecallApiDTO.java | 35 +++++ .../recall/trace/dto/RecallProductDTO.java | 44 ++++++ .../recall/trace/entity/RecallApiEntity.java | 38 ++++++ .../trace/entity/RecallProductEntity.java | 44 ++++++ .../trace/service/RecallApiService.java | 55 ++++++++ .../trace/service/RecallProductService.java | 48 +++++++ .../service/impl/RecallApiServiceImpl.java | 59 ++++++++ .../impl/RecallProductServiceImpl.java | 46 +++++++ .../recall/trace/vo/RecallApiVO.java | 45 +++++++ .../recall/trace/vo/RecallProductVO.java | 54 ++++++++ .../resources/mapper/trace/RecallApiDao.xml | 96 +++++++++++++ .../mapper/trace/RecallProductDao.xml | 126 ++++++++++++++++++ .../trace/controller/RecallApiController.java | 63 +++++++++ .../controller/RecallProductController.java | 64 +++++++++ .../trace/service/RecallApiApiService.java | 47 +++++++ .../service/RecallProductApiService.java | 46 +++++++ .../service/impl/RecallApiApiServiceImpl.java | 71 ++++++++++ .../impl/RecallProductApiServiceImpl.java | 73 ++++++++++ .../impl/RecallRecordApiServiceImpl.java | 7 + .../wabestway/recall/util/HeaderDataUtil.java | 111 +++++++++++++++ 22 files changed, 1274 insertions(+) create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallApiDao.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallProductDao.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallApiDTO.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallProductDTO.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallApiEntity.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallProductEntity.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallApiService.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallProductService.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiServiceImpl.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallProductServiceImpl.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallApiVO.java create mode 100644 afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallProductVO.java create mode 100644 afis-recall-service/src/main/resources/mapper/trace/RecallApiDao.xml create mode 100644 afis-recall-service/src/main/resources/mapper/trace/RecallProductDao.xml create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallApiController.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallProductController.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallApiApiService.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallProductApiService.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiApiServiceImpl.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallProductApiServiceImpl.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/util/HeaderDataUtil.java diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallApiDao.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallApiDao.java new file mode 100644 index 0000000..f3cb63c --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallApiDao.java @@ -0,0 +1,51 @@ +package com.wabestway.recall.trace.dao; + +import com.wabestway.recall.trace.entity.RecallApiEntity; +import com.wabestway.recall.trace.dto.RecallApiDTO; +import com.wabestway.recall.trace.vo.RecallApiVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Mapper +public interface RecallApiDao extends BaseMapper { + + /** + * 分页查询 + * @param page 分页对象 + * @param recallApiDTO + * @return + */ + IPage queryRecallApiByCondition(Page page, @Param("recallApiDTO")RecallApiDTO recallApiDTO); + + /** + * 条件查询,不分页 + * @param recallApiDTO + * @return + */ + List queryRecallApiListNoPage(@Param("recallApiDTO")RecallApiDTO recallApiDTO); + + /** + * 根据id更新 + * @param recallApi 对象 + * @return + */ + void updateRecallApiById(@Param("recallApi")RecallApiEntity recallApi); + + /** + * 根据id查询详情 + * @param id + * @return + */ + RecallApiVO queryRecallApiById(@Param("id") String id); +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallProductDao.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallProductDao.java new file mode 100644 index 0000000..ec286b1 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dao/RecallProductDao.java @@ -0,0 +1,51 @@ +package com.wabestway.recall.trace.dao; + +import com.wabestway.recall.trace.entity.RecallProductEntity; +import com.wabestway.recall.trace.dto.RecallProductDTO; +import com.wabestway.recall.trace.vo.RecallProductVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Mapper +public interface RecallProductDao extends BaseMapper { + + /** + * 分页查询 + * @param page 分页对象 + * @param recallProductDTO + * @return + */ + IPage queryRecallProductByCondition(Page page, @Param("recallProductDTO")RecallProductDTO recallProductDTO); + + /** + * 条件查询,不分页 + * @param recallProductDTO + * @return + */ + List queryRecallProductListNoPage(@Param("recallProductDTO")RecallProductDTO recallProductDTO); + + /** + * 根据id更新 + * @param recallProduct 对象 + * @return + */ + void updateRecallProductById(@Param("recallProduct")RecallProductEntity recallProduct); + + /** + * 根据id查询详情 + * @param id + * @return + */ + RecallProductVO queryRecallProductById(@Param("id") String id); +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallApiDTO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallApiDTO.java new file mode 100644 index 0000000..ecd1646 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallApiDTO.java @@ -0,0 +1,35 @@ +package com.wabestway.recall.trace.dto; + +import java.io.Serializable; +import lombok.Data; +import com.wabestway.commons.http.PageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Data +@ApiModel +public class RecallApiDTO extends PageDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** */ + @ApiModelProperty(value = "") + private String id; + /** 可回溯调用appKey */ + @ApiModelProperty(value = "可回溯调用appKey") + private String appKey; + /** 调用方名称 */ + @ApiModelProperty(value = "调用方名称") + private String name; + /** 备注 */ + @ApiModelProperty(value = "备注") + private String remark; + +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallProductDTO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallProductDTO.java new file mode 100644 index 0000000..c3a4e0e --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallProductDTO.java @@ -0,0 +1,44 @@ +package com.wabestway.recall.trace.dto; + +import java.io.Serializable; +import lombok.Data; +import com.wabestway.commons.http.PageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Data +@ApiModel +public class RecallProductDTO extends PageDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** */ + @ApiModelProperty(value = "") + private String id; + /** 产品编码 */ + @ApiModelProperty(value = "产品编码") + private String productCode; + /** 产品名称 */ + @ApiModelProperty(value = "产品名称") + private String productName; + /** 保险公司编码 */ + @ApiModelProperty(value = "保险公司编码") + private String supplierCode; + /** 保险公司名称 */ + @ApiModelProperty(value = "保险公司名称") + private String supplierName; + /** 是否归档 0-否1-是 */ + @ApiModelProperty(value = "是否归档 0-否1-是 ") + private String archived; + /** 是否记录轨迹 0-否1-是 */ + @ApiModelProperty(value = "是否记录轨迹 0-否1-是 ") + private String tracked; + +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallApiEntity.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallApiEntity.java new file mode 100644 index 0000000..7cd1d9f --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallApiEntity.java @@ -0,0 +1,38 @@ +package com.wabestway.recall.trace.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableId; + +import lombok.Data; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Data +@TableName(value = "recall_api") +public class RecallApiEntity { + /** */ + @TableId + private String id; + /** 可回溯调用appKey */ + private String appKey; + /** 调用方名称 */ + private String name; + /** 租户Id */ + private String tenantId; + /** 备注 */ + private String remark; + /** 创建人 */ + private String createBy; + /** 创建时间 */ + private Long createTime; + /** 更新人 */ + private String updateBy; + /** 更新时间 */ + private Long updateTime; + +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallProductEntity.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallProductEntity.java new file mode 100644 index 0000000..ba1feab --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/entity/RecallProductEntity.java @@ -0,0 +1,44 @@ +package com.wabestway.recall.trace.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableId; + +import lombok.Data; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Data +@TableName(value = "recall_product") +public class RecallProductEntity { + /** */ + @TableId + private String id; + /** 产品编码 */ + private String productCode; + /** 产品名称 */ + private String productName; + /** 保险公司编码 */ + private String supplierCode; + /** 保险公司名称 */ + private String supplierName; + /** 是否归档 0-否1-是 */ + private String archived; + /** 是否记录轨迹 0-否1-是 */ + private String tracked; + /** 租户Id */ + private String tenantId; + /** 创建人 */ + private String createBy; + /** 创建时间 */ + private Long createTime; + /** 更新人 */ + private String updateBy; + /** 更新时间 */ + private Long updateTime; + +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallApiService.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallApiService.java new file mode 100644 index 0000000..df52d26 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallApiService.java @@ -0,0 +1,55 @@ +package com.wabestway.recall.trace.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.wabestway.recall.trace.entity.RecallApiEntity; +import com.wabestway.recall.trace.dto.RecallApiDTO; +import com.wabestway.recall.trace.vo.RecallApiVO; +import java.util.List; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +public interface RecallApiService extends IService { + + /** + * 分页查询 + * @param page 分页对象 + * @param recallApiDTO + * @return + */ + IPage queryRecallApiByCondition(long page, long size, RecallApiDTO recallApiDTO); + + /** + * 条件查询,不分页 + * @param recallApiDTO + * @return + */ + List queryRecallApiListNoPage(RecallApiDTO recallApiDTO); + + /** + * 根据id更新 + * @param recallApi 对象 + * @return + */ + void updateRecallApiById(RecallApiEntity recallApi); + + /** + * 根据id查询详情 + * @param id + * @return + */ + RecallApiVO queryRecallApiById(String id); + + /** + * 查询调用app归属租户 + * @param appKey + * @return + */ + String queryApiTenant(String appKey); +} + diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallProductService.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallProductService.java new file mode 100644 index 0000000..c43311c --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/RecallProductService.java @@ -0,0 +1,48 @@ +package com.wabestway.recall.trace.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.wabestway.recall.trace.entity.RecallProductEntity; +import com.wabestway.recall.trace.dto.RecallProductDTO; +import com.wabestway.recall.trace.vo.RecallProductVO; +import java.util.List; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +public interface RecallProductService extends IService { + + /** + * 分页查询 + * @param page 分页对象 + * @param recallProductDTO + * @return + */ + IPage queryRecallProductByCondition(long page, long size, RecallProductDTO recallProductDTO); + + /** + * 条件查询,不分页 + * @param recallProductDTO + * @return + */ + List queryRecallProductListNoPage(RecallProductDTO recallProductDTO); + + /** + * 根据id更新 + * @param recallProduct 对象 + * @return + */ + void updateRecallProductById(RecallProductEntity recallProduct); + + /** + * 根据id查询详情 + * @param id + * @return + */ + RecallProductVO queryRecallProductById(String id); +} + diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiServiceImpl.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiServiceImpl.java new file mode 100644 index 0000000..af37122 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiServiceImpl.java @@ -0,0 +1,59 @@ +package com.wabestway.recall.trace.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wabestway.recall.trace.dao.RecallApiDao; +import com.wabestway.recall.trace.entity.RecallApiEntity; +import com.wabestway.recall.trace.dto.RecallApiDTO; +import com.wabestway.recall.trace.vo.RecallApiVO; +import com.wabestway.recall.trace.service.RecallApiService; + +import java.util.List; + +/** + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Service +public class RecallApiServiceImpl extends ServiceImpl implements RecallApiService { + + @Override + public IPage queryRecallApiByCondition(long page, long size, RecallApiDTO recallApiDTO) { + Page paramReq = new Page<>(page, size); + paramReq.addOrder(new OrderItem().setColumn("create_time").setAsc(false));//创建时间降序排序 + IPage iPage = baseMapper.queryRecallApiByCondition(paramReq, recallApiDTO); + return iPage; + } + + public List queryRecallApiListNoPage(RecallApiDTO recallApiDTO) { + return baseMapper.queryRecallApiListNoPage(recallApiDTO); + } + + @Override + public void updateRecallApiById(RecallApiEntity recallApi) { + baseMapper.updateRecallApiById(recallApi); + } + + @Override + public RecallApiVO queryRecallApiById(String id) { + return baseMapper.queryRecallApiById(id); + } + + @Override + public String queryApiTenant(String appKey) { + LambdaQueryWrapper query = Wrappers.lambdaQuery(); + query.eq(RecallApiEntity::getAppKey, appKey); + query.last("limit 1"); + RecallApiEntity recallApi = baseMapper.selectOne(query); + if (recallApi != null) { + return recallApi.getTenantId(); + } + return null; + } +} \ No newline at end of file diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallProductServiceImpl.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallProductServiceImpl.java new file mode 100644 index 0000000..68bdc96 --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/service/impl/RecallProductServiceImpl.java @@ -0,0 +1,46 @@ +package com.wabestway.recall.trace.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wabestway.recall.trace.dao.RecallProductDao; +import com.wabestway.recall.trace.entity.RecallProductEntity; +import com.wabestway.recall.trace.dto.RecallProductDTO; +import com.wabestway.recall.trace.vo.RecallProductVO; +import com.wabestway.recall.trace.service.RecallProductService; +import java.util.List; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Service +public class RecallProductServiceImpl extends ServiceImpl implements RecallProductService { + + @Override + public IPage queryRecallProductByCondition(long page, long size, RecallProductDTO recallProductDTO) { + Page paramReq = new Page<>(page,size); + paramReq.addOrder(new OrderItem().setColumn("create_time").setAsc(false));//创建时间降序排序 + IPage iPage = baseMapper.queryRecallProductByCondition(paramReq, recallProductDTO); + return iPage; + } + + public List queryRecallProductListNoPage(RecallProductDTO recallProductDTO) { + return baseMapper.queryRecallProductListNoPage(recallProductDTO); + } + + @Override + public void updateRecallProductById(RecallProductEntity recallProduct) { + baseMapper.updateRecallProductById(recallProduct); + } + + @Override + public RecallProductVO queryRecallProductById(String id ) { + return baseMapper.queryRecallProductById(id); + } +} \ No newline at end of file diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallApiVO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallApiVO.java new file mode 100644 index 0000000..8e3a47e --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallApiVO.java @@ -0,0 +1,45 @@ +package com.wabestway.recall.trace.vo; + +import java.io.Serializable; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Data +@ApiModel +public class RecallApiVO implements Serializable { + private static final long serialVersionUID = 1L; + + /** */ + @ApiModelProperty(value = "") + private String id; + /** 可回溯调用appKey */ + @ApiModelProperty(value = "可回溯调用appKey") + private String appKey; + /** 调用方名称 */ + @ApiModelProperty(value = "调用方名称") + private String name; + /** 备注 */ + @ApiModelProperty(value = "备注") + private String remark; + /** 创建人 */ + @ApiModelProperty(value = "创建人") + private String createBy; + /** 创建时间 */ + @ApiModelProperty(value = "创建时间") + private Long createTime; + /** 更新人 */ + @ApiModelProperty(value = "更新人") + private String updateBy; + /** 更新时间 */ + @ApiModelProperty(value = "更新时间") + private Long updateTime; + +} diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallProductVO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallProductVO.java new file mode 100644 index 0000000..c7aa5bb --- /dev/null +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/vo/RecallProductVO.java @@ -0,0 +1,54 @@ +package com.wabestway.recall.trace.vo; + +import java.io.Serializable; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Data +@ApiModel +public class RecallProductVO implements Serializable { + private static final long serialVersionUID = 1L; + + /** */ + @ApiModelProperty(value = "") + private String id; + /** 产品编码 */ + @ApiModelProperty(value = "产品编码") + private String productCode; + /** 产品名称 */ + @ApiModelProperty(value = "产品名称") + private String productName; + /** 保险公司编码 */ + @ApiModelProperty(value = "保险公司编码") + private String supplierCode; + /** 保险公司名称 */ + @ApiModelProperty(value = "保险公司名称") + private String supplierName; + /** 是否归档 0-否1-是 */ + @ApiModelProperty(value = "是否归档 0-否1-是 ") + private String archived; + /** 是否记录轨迹 0-否1-是 */ + @ApiModelProperty(value = "是否记录轨迹 0-否1-是 ") + private String tracked; + /** 创建人 */ + @ApiModelProperty(value = "创建人") + private String createBy; + /** 创建时间 */ + @ApiModelProperty(value = "创建时间") + private Long createTime; + /** 更新人 */ + @ApiModelProperty(value = "更新人") + private String updateBy; + /** 更新时间 */ + @ApiModelProperty(value = "更新时间") + private Long updateTime; + +} diff --git a/afis-recall-service/src/main/resources/mapper/trace/RecallApiDao.xml b/afis-recall-service/src/main/resources/mapper/trace/RecallApiDao.xml new file mode 100644 index 0000000..c2bc6aa --- /dev/null +++ b/afis-recall-service/src/main/resources/mapper/trace/RecallApiDao.xml @@ -0,0 +1,96 @@ + + + + + + + t.id id, + t.app_key appKey, + t.name name, + t.tenant_id tenantId, + t.remark remark, + t.create_by createBy, + t.create_time createTime, + t.update_by updateBy, + t.update_time updateTime + + + + + + + + + + update recall_api t + + + + t.id = #{recallApi.id}, + + + t.app_key = #{recallApi.appKey}, + + + t.name = #{recallApi.name}, + + + t.remark = #{recallApi.remark}, + + + t.update_by = #{recallApi.updateBy}, + + + t.update_time = #{recallApi.updateTime}, + + + where t.id= #{recallApi.id} + + + \ No newline at end of file diff --git a/afis-recall-service/src/main/resources/mapper/trace/RecallProductDao.xml b/afis-recall-service/src/main/resources/mapper/trace/RecallProductDao.xml new file mode 100644 index 0000000..8481b66 --- /dev/null +++ b/afis-recall-service/src/main/resources/mapper/trace/RecallProductDao.xml @@ -0,0 +1,126 @@ + + + + + + + t.id id, + t.product_code productCode, + t.product_name productName, + t.supplier_code supplierCode, + t.supplier_name supplierName, + t.archived archived, + t.tracked tracked, + t.tenant_id tenantId, + t.create_by createBy, + t.create_time createTime, + t.update_by updateBy, + t.update_time updateTime + + + + + + + + + + update recall_product t + + + + t.id = #{recallProduct.id}, + + + t.product_code = #{recallProduct.productCode}, + + + t.product_name = #{recallProduct.productName}, + + + t.supplier_code = #{recallProduct.supplierCode}, + + + t.supplier_name = #{recallProduct.supplierName}, + + + t.archived = #{recallProduct.archived}, + + + t.tracked = #{recallProduct.tracked}, + + + t.update_by = #{recallProduct.updateBy}, + + + t.update_time = #{recallProduct.updateTime}, + + + where t.id= #{recallProduct.id} + + + \ No newline at end of file diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallApiController.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallApiController.java new file mode 100644 index 0000000..da65ec9 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallApiController.java @@ -0,0 +1,63 @@ +package com.wabestway.recall.trace.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.wabestway.recall.trace.dto.RecallApiDTO; +import com.wabestway.recall.trace.vo.RecallApiVO; +import com.wabestway.recall.trace.service.RecallApiApiService; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@RestController +@RequestMapping("/trace/recallApi") +@Api(tags = {"-接口"}, description = "-接口") +public class RecallApiController { + @Autowired + private RecallApiApiService recallApiApiService; + + /** + * 列表 + */ + @PostMapping("/list") + @ApiOperation(value = "分页列表查询", notes = "条件分页查询列表", httpMethod = "POST") + public ResObj> list(@RequestBody RecallApiDTO paramRequest) { + return recallApiApiService.list(paramRequest); + } + + /** + * 信息 + */ + @GetMapping("/info/{id}") + @ApiOperation(value = "根据id查详情", notes = "根据id查详情", httpMethod = "GET") + public ResObj info(@PathVariable("id") String id) { + return recallApiApiService.getRecallApi(id); + } + + /** + * 保存 + */ + @PostMapping("/save") + @ApiOperation(value = "保存", notes = "保存", httpMethod = "POST") + public ResObj saveRecallApi(@RequestBody RecallApiDTO paramRequest) { + return recallApiApiService.saveRecallApi(paramRequest); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperation(value = "修改", notes = "修改", httpMethod = "POST") + public ResObj updateRecallApi(@RequestBody RecallApiDTO paramRequest) { + return recallApiApiService.updateRecallApi(paramRequest); + } +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallProductController.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallProductController.java new file mode 100644 index 0000000..b985314 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallProductController.java @@ -0,0 +1,64 @@ +package com.wabestway.recall.trace.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.wabestway.recall.trace.dto.RecallProductDTO; +import com.wabestway.recall.trace.vo.RecallProductVO; +import com.wabestway.recall.trace.service.RecallProductApiService; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@RestController +@RequestMapping("/trace/recallProduct") +@Api(tags = {"-接口"}, description = "-接口") +public class RecallProductController { + @Autowired + private RecallProductApiService recallProductApiService; + + /** + * 列表 + */ + @PostMapping("/list") + @ApiOperation(value = "分页列表查询", notes = "条件分页查询列表", httpMethod = "POST") + public ResObj> list(@RequestBody RecallProductDTO paramRequest) { + return recallProductApiService.list(paramRequest); + } + + /** + * 信息 + */ + @GetMapping("/info/{id}") + @ApiOperation(value = "根据id查详情", notes = "根据id查详情", httpMethod = "GET") + public ResObj info(@PathVariable("id") String id) { + return recallProductApiService.getRecallProduct(id); + } + + /** + * 保存 + */ + @PostMapping("/save") + @ApiOperation(value = "保存", notes = "保存", httpMethod = "POST") + public ResObj saveRecallProduct(@RequestBody RecallProductDTO paramRequest) { + return recallProductApiService.saveRecallProduct(paramRequest); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperation(value = "修改", notes = "修改", httpMethod = "POST") + public ResObj updateRecallProduct(@RequestBody RecallProductDTO paramRequest) { + return recallProductApiService.updateRecallProduct(paramRequest); + } + +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallApiApiService.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallApiApiService.java new file mode 100644 index 0000000..55cfa0f --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallApiApiService.java @@ -0,0 +1,47 @@ +package com.wabestway.recall.trace.service; + + +import com.wabestway.recall.trace.dto.RecallApiDTO; +import com.wabestway.recall.trace.vo.RecallApiVO; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +public interface RecallApiApiService { + + /** + * 列表 + * @param paramReq + * @return + */ + ResObj> list(RecallApiDTO paramReq); + + /** + * 查询详情 + * @param id + * @return + */ + ResObj getRecallApi(String id); + + /** + * 保存 + * @param paramReq + * @return + */ + ResObj saveRecallApi(RecallApiDTO paramReq); + + /** + * 修改 + * @param paramReq + * @return + */ + ResObj updateRecallApi(RecallApiDTO paramReq); + +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallProductApiService.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallProductApiService.java new file mode 100644 index 0000000..2654d83 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/RecallProductApiService.java @@ -0,0 +1,46 @@ +package com.wabestway.recall.trace.service; + +import java.util.List; +import com.wabestway.recall.trace.dto.RecallProductDTO; +import com.wabestway.recall.trace.vo.RecallProductVO; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; + + +/** + * + * + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +public interface RecallProductApiService { + + /** + * 列表 + * @param paramReq + * @return + */ + ResObj> list(RecallProductDTO paramReq); + + /** + * 查询详情 + * @param id + * @return + */ + ResObj getRecallProduct(String id); + + /** + * 保存 + * @param paramReq + * @return + */ + ResObj saveRecallProduct(RecallProductDTO paramReq); + + /** + * 修改 + * @param paramReq + * @return + */ + ResObj updateRecallProduct(RecallProductDTO paramReq); +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiApiServiceImpl.java new file mode 100644 index 0000000..0344171 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiApiServiceImpl.java @@ -0,0 +1,71 @@ +package com.wabestway.recall.trace.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; +import com.wabestway.recall.util.HeaderDataUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.BeanUtils; +import com.wabestway.ins.utils.UUIDUtil; +import com.wabestway.recall.trace.entity.RecallApiEntity; +import com.wabestway.recall.trace.dto.RecallApiDTO; +import com.wabestway.recall.trace.vo.RecallApiVO; +import com.wabestway.recall.trace.service.RecallApiApiService; +import com.wabestway.recall.trace.service.RecallApiService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Service +public class RecallApiApiServiceImpl implements RecallApiApiService { + @Autowired + private RecallApiService recallApiService; + + @Override + public ResObj> list(RecallApiDTO paramReq) { + IPage resultPage = recallApiService.queryRecallApiByCondition(paramReq.getPage(), paramReq.getPageSize(), paramReq); + + Paging paging = new Paging(resultPage.getRecords(), paramReq.getPage(), resultPage.getSize(), resultPage.getTotal()); + return ResObj.ok(paging); + } + + @Override + public ResObj getRecallApi(String id) { + RecallApiVO recallApiVO = recallApiService.queryRecallApiById(id); + + return ResObj.ok(recallApiVO); + } + + @Transactional + @Override + public ResObj saveRecallApi(RecallApiDTO paramReq) { + RecallApiEntity recallApi = new RecallApiEntity(); + BeanUtils.copyProperties(paramReq, recallApi); + + recallApi.setId(UUIDUtil.generate());//赋值id + recallApi.setTenantId(HeaderDataUtil.getTenantId()); + recallApi.setCreateBy(HeaderDataUtil.getUserId());//创建人 + recallApi.setCreateTime(System.currentTimeMillis());//创建时间 + recallApi.setUpdateBy(HeaderDataUtil.getUserId());//更新人 + recallApi.setUpdateTime(System.currentTimeMillis());//更新时间 + + recallApiService.save(recallApi); + return ResObj.ok(); + } + + @Transactional + @Override + public ResObj updateRecallApi(RecallApiDTO paramReq) { + RecallApiEntity recallApi = new RecallApiEntity(); + BeanUtils.copyProperties(paramReq, recallApi); + recallApi.setUpdateBy(HeaderDataUtil.getUserId());//更新人 + recallApi.setUpdateTime(System.currentTimeMillis());//更新时间 + recallApiService.updateById(recallApi); + return ResObj.ok(); + } + +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallProductApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallProductApiServiceImpl.java new file mode 100644 index 0000000..1d023f3 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallProductApiServiceImpl.java @@ -0,0 +1,73 @@ +package com.wabestway.recall.trace.service.impl; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.wabestway.commons.http.Paging; +import com.wabestway.commons.http.ResObj; +import com.wabestway.commons.enums.DataValidEnum; +import com.wabestway.recall.util.HeaderDataUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.BeanUtils; +import com.wabestway.ins.utils.UUIDUtil; +import com.wabestway.recall.trace.entity.RecallProductEntity; +import com.wabestway.recall.trace.dto.RecallProductDTO; +import com.wabestway.recall.trace.vo.RecallProductVO; +import com.wabestway.recall.trace.service.RecallProductApiService; +import com.wabestway.recall.trace.service.RecallProductService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + + +/** + * @author wangH + * @company 北京华焱坤泰科技有限公司 + * @Time 2023-05-15 09:59:12 + */ +@Service +public class RecallProductApiServiceImpl implements RecallProductApiService { + @Autowired + private RecallProductService recallProductService; + + @Override + public ResObj> list(RecallProductDTO paramReq) { + IPage resultPage = recallProductService.queryRecallProductByCondition(paramReq.getPage(), paramReq.getPageSize(), paramReq); + + Paging paging = new Paging(resultPage.getRecords(), paramReq.getPage(), resultPage.getSize(), resultPage.getTotal()); + return ResObj.ok(paging); + } + + @Override + public ResObj getRecallProduct(String id) { + RecallProductVO recallProductVO = recallProductService.queryRecallProductById(id); + + return ResObj.ok(recallProductVO); + } + + @Transactional + @Override + public ResObj saveRecallProduct(RecallProductDTO paramReq) { + RecallProductEntity recallProduct = new RecallProductEntity(); + BeanUtils.copyProperties(paramReq, recallProduct); + + recallProduct.setId(UUIDUtil.generate());//赋值id + recallProduct.setCreateBy(HeaderDataUtil.getUserId());//创建人 + recallProduct.setCreateTime(System.currentTimeMillis());//创建时间 + recallProduct.setUpdateBy(HeaderDataUtil.getUserId());//更新人 + recallProduct.setUpdateTime(System.currentTimeMillis());//更新时间 + + recallProductService.save(recallProduct); + return ResObj.ok(); + } + + @Transactional + @Override + public ResObj updateRecallProduct(RecallProductDTO paramReq) { + RecallProductEntity recallProduct = new RecallProductEntity(); + BeanUtils.copyProperties(paramReq, recallProduct); + recallProduct.setUpdateBy(HeaderDataUtil.getUserId());//更新人 + recallProduct.setUpdateTime(System.currentTimeMillis());//更新时间 + recallProductService.updateById(recallProduct); + return ResObj.ok(); + } + +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java index 4013ab8..c6e5f94 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java @@ -7,6 +7,7 @@ import com.wabestway.commons.http.ResObj; import com.wabestway.recall.trace.dto.TraceDTO; import com.wabestway.recall.trace.entity.RecallOrderEntity; import com.wabestway.recall.trace.entity.RecallRecordEntity; +import com.wabestway.recall.trace.service.RecallApiService; import com.wabestway.recall.trace.service.RecallOrderService; import com.wabestway.recall.trace.service.RecallRecordService; import lombok.extern.slf4j.Slf4j; @@ -32,6 +33,8 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService { private RecallRecordService recallRecordService; @Autowired private RecallOrderService recallOrderService; + @Autowired + private RecallApiService recallApiService; @Override public ResObj save(TraceDTO record) { @@ -55,6 +58,10 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService { newOrder.setAppKey(record.getAppKey()); newOrder.setArchived("0"); newOrder.setComplete(isLastEvent ? "1" : "0"); + String tenantId = recallApiService.queryApiTenant(record.getAppKey()); + if (tenantId != null) { + newOrder.setTenantId(tenantId); + } if (isLastEvent) { newOrder.setCompleteDate(System.currentTimeMillis()); } diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/util/HeaderDataUtil.java b/afis-recall-web/src/main/java/com/wabestway/recall/util/HeaderDataUtil.java new file mode 100644 index 0000000..3b8fbaa --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/util/HeaderDataUtil.java @@ -0,0 +1,111 @@ +package com.wabestway.recall.util; + +import com.google.gson.Gson; +import com.wabestway.auth.api.user.ReqOrgInfo; +import com.wabestway.auth.api.user.ReqTenantInfo; +import com.wabestway.auth.api.user.ReqUser; +import com.wabestway.auth.api.user.TokenObj; +import com.wabestway.commons.exception.AlertException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.net.URLDecoder; + +public class HeaderDataUtil { + private static Logger logger = LoggerFactory.getLogger(HeaderDataUtil.class); + + public HeaderDataUtil() { + } + + public static ReqUser getUserData() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) + .getRequest(); + ReqUser reqUser = null; + try { + String header = request.getHeader(TokenObj._USER); + if (header != null) { + String str = URLDecoder.decode(header, "UTF-8"); + logger.info("用户信息:{}", str); + reqUser = new Gson().fromJson(str, ReqUser.class); + } + } catch (Exception e) { + logger.error("用户信息转化异常", e); + throw new AlertException("未获取到header用户信息!"); + } + + return reqUser; + } + + public static ReqOrgInfo getOrgInfoData() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) + .getRequest(); + ReqOrgInfo orgInfo = null; + try { + String header = request.getHeader(TokenObj._ORG); + if (header != null) { + String str = URLDecoder.decode(header, "UTF-8"); + logger.info("机构信息:{}", str); + orgInfo = new Gson().fromJson(str, ReqOrgInfo.class); + } + } catch (Exception e) { + logger.error("机构信息转化异常", e); + throw new AlertException("未获取到header机构信息!"); + } + + return orgInfo; + } + + public static ReqTenantInfo getTenantData() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) + .getRequest(); + ReqTenantInfo tenant = null; + try { + String header = request.getHeader(TokenObj._TENANT); + if (header != null) { + String str = URLDecoder.decode(header, "UTF-8"); + logger.info("机构信息:{}", str); + tenant = new Gson().fromJson(str, ReqTenantInfo.class); + } + } catch (Exception e) { + logger.error("租户信息转化异常", e); + } + + return tenant; + } + + public static String getUserId() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) + .getRequest(); + String userId = null; + try { + String header = request.getHeader(TokenObj._USERID); + if (header != null) { + userId = URLDecoder.decode(header, "UTF-8"); + } + } catch (Exception e) { + logger.error("用户ID信息转化异常", e); + } + + return userId; + } + + public static String getTenantId() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) + .getRequest(); + String tenantId = null; + + try { + String header = request.getHeader(TokenObj._TENANTID); + if (header != null) { + tenantId = URLDecoder.decode(header, "UTF-8"); + } + } catch (Exception e) { + logger.error("租户id信息转化异常", e); + } + + return tenantId; + } +} \ No newline at end of file From fb2997aa2bf4db57381142cf02ff3d8c32796c5b Mon Sep 17 00:00:00 2001 From: BrandWang Date: Mon, 15 May 2023 10:35:55 +0800 Subject: [PATCH 33/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=A4=9A=E7=A7=9F=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加租户查询列表服务 --- .../wabestway/recall/trace/dto/RecallOrderDTO.java | 2 ++ .../main/resources/mapper/trace/RecallOrderDao.xml | 3 +++ .../trace/controller/RecallOrderController.java | 11 +++++++++++ 3 files changed, 16 insertions(+) diff --git a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallOrderDTO.java b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallOrderDTO.java index 12edece..712c29c 100644 --- a/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallOrderDTO.java +++ b/afis-recall-service/src/main/java/com/wabestway/recall/trace/dto/RecallOrderDTO.java @@ -22,6 +22,8 @@ public class RecallOrderDTO extends PageDTO implements Serializable { /** 主键 */ @ApiModelProperty(value = "主键") private String id; + @ApiModelProperty(value = "租户ID") + private String tenantId; /** 产品编码 */ @ApiModelProperty(value = "产品编码") private String productCode; diff --git a/afis-recall-service/src/main/resources/mapper/trace/RecallOrderDao.xml b/afis-recall-service/src/main/resources/mapper/trace/RecallOrderDao.xml index c0253a2..cd47806 100644 --- a/afis-recall-service/src/main/resources/mapper/trace/RecallOrderDao.xml +++ b/afis-recall-service/src/main/resources/mapper/trace/RecallOrderDao.xml @@ -41,6 +41,9 @@ and t.id = #{recallOrderDTO.id} + + and t.tenant_id = #{recallOrderDTO.tenantId} + and t.product_code = #{recallOrderDTO.productCode} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java index 21d0a63..1f6fdeb 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/controller/RecallOrderController.java @@ -1,6 +1,7 @@ package com.wabestway.recall.trace.controller; +import com.wabestway.recall.util.HeaderDataUtil; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -31,9 +32,19 @@ public class RecallOrderController { @PostMapping("/list") @ApiOperation(value = "分页列表查询", notes = "条件分页查询列表", httpMethod = "POST") public ResObj> list(@RequestBody RecallOrderDTO paramRequest) { + paramRequest.setTenantId(null); return recallOrderApiService.list(paramRequest); } + + @PostMapping("/tenant/list") + @ApiOperation(value = "租户分页列表查询", notes = "条件分页查询列表", httpMethod = "POST") + public ResObj> tenantList(@RequestBody RecallOrderDTO paramRequest) { + paramRequest.setTenantId(HeaderDataUtil.getTenantId()); + return recallOrderApiService.list(paramRequest); + } + + /** * 信息 */ From 48517f89537ed23a54213e1f7dd1e0d4439ad10d Mon Sep 17 00:00:00 2001 From: BrandWang Date: Mon, 15 May 2023 11:02:35 +0800 Subject: [PATCH 34/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改生成命令 --- .../impl/RecallOrderApiServiceImpl.java | 36 +------------------ 1 file changed, 1 insertion(+), 35 deletions(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index d188456..0f464ef 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -113,7 +113,7 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { bw.flush(); bw.close(); fw.close(); - String[] command = {"ts-node", "/opt/review/index.ts"}; + String[] command = {"ts-node", "/opt/rrvideo/src/cli.ts", "--input traces.json --output video.mp4"}; ProcessBuilder processBuilder = new ProcessBuilder(command); processBuilder.directory(tempDir.toFile()); // 在临时目录下执行命令 @@ -138,40 +138,6 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { }); processThread.start(); - // Continue with other tasks here... - - - try { - processThread.join(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - String[] video = {"rrvideo", "--input unpack.json --config /opt/review/config.json --output video.mp4"}; - ProcessBuilder videoBuilder = new ProcessBuilder(video); - videoBuilder.directory(tempDir.toFile()); - Process p2 = videoBuilder.start(); - - - Thread processThread2 = new Thread(() -> { - try { - // 读取命令输出 - BufferedReader reader = new BufferedReader(new InputStreamReader(p2.getInputStream())); - String line; - while ((line = reader.readLine()) != null) { - System.out.println(line); - } - reader.close(); - // 等待命令执行完成 - int exitCode = p2.waitFor(); - - System.out.println("Command exited with code " + exitCode); - } catch (InterruptedException | IOException e) { - e.printStackTrace(); - } - }); - processThread2.start(); - File file = new File(tempDir.toFile(), "video.mp4"); if (file.exists()) { log.info(String.valueOf(file.length())); From 721d53e36971745e92f6ffbb2d2f273abf8a85dc Mon Sep 17 00:00:00 2001 From: BrandWang Date: Mon, 15 May 2023 16:08:52 +0800 Subject: [PATCH 35/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改生成命令 --- .../recall/trace/service/impl/RecallOrderApiServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 0f464ef..f0c2efb 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -113,7 +113,7 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { bw.flush(); bw.close(); fw.close(); - String[] command = {"ts-node", "/opt/rrvideo/src/cli.ts", "--input traces.json --output video.mp4"}; + String[] command = {"ts-node", "/opt/rrvideo/src/cli.ts --input traces.json --output video.mp4"}; ProcessBuilder processBuilder = new ProcessBuilder(command); processBuilder.directory(tempDir.toFile()); // 在临时目录下执行命令 From b225ed592ef0bc72f8978710440708fc8a5be859 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 17 May 2023 14:28:28 +0800 Subject: [PATCH 36/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改生成命令 --- .../trace/service/impl/RecallOrderApiServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index f0c2efb..a95e987 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -113,7 +113,7 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { bw.flush(); bw.close(); fw.close(); - String[] command = {"ts-node", "/opt/rrvideo/src/cli.ts --input traces.json --output video.mp4"}; + String[] command = {"ts-node", "/opt/rrvideo/src/cli.ts" ,"--input traces.json"}; ProcessBuilder processBuilder = new ProcessBuilder(command); processBuilder.directory(tempDir.toFile()); // 在临时目录下执行命令 @@ -160,10 +160,10 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { log.error(e.getMessage()); } finally { // 删除临时目录 - Files.walk(tempDir) - .sorted(Comparator.reverseOrder()) - .map(Path::toFile) - .forEach(File::delete); +// Files.walk(tempDir) +// .sorted(Comparator.reverseOrder()) +// .map(Path::toFile) +// .forEach(File::delete); } } From 38c11416dba44bf084755538be62fa0434d0380b Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 17 May 2023 14:42:29 +0800 Subject: [PATCH 37/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改生成命令 --- .../recall/trace/service/impl/RecallOrderApiServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index a95e987..091bd2e 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -113,7 +113,7 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { bw.flush(); bw.close(); fw.close(); - String[] command = {"ts-node", "/opt/rrvideo/src/cli.ts" ,"--input traces.json"}; + String[] command = {"ts-node", " /opt/rrvideo/src/cli.ts --input traces.json"}; ProcessBuilder processBuilder = new ProcessBuilder(command); processBuilder.directory(tempDir.toFile()); // 在临时目录下执行命令 From 342a027afb4d2e92bf56a3d83687b62cc80763b7 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 17 May 2023 14:57:25 +0800 Subject: [PATCH 38/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改命令执行方式 --- .../impl/RecallOrderApiServiceImpl.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 091bd2e..cfbcb15 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -113,7 +113,7 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { bw.flush(); bw.close(); fw.close(); - String[] command = {"ts-node", " /opt/rrvideo/src/cli.ts --input traces.json"}; + /*String[] command = {"ts-node", " /opt/rrvideo/src/cli.ts --input traces.json"}; ProcessBuilder processBuilder = new ProcessBuilder(command); processBuilder.directory(tempDir.toFile()); // 在临时目录下执行命令 @@ -136,8 +136,24 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { e.printStackTrace(); } }); - processThread.start(); + processThread.start();*/ + try { + String[] cmd = {"ts-node", "/opt/rrvideo/src/cli.ts", "--input traces.json"}; + Process process = Runtime.getRuntime().exec(cmd); + // 捕获输出 + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + + // 等待进程结束 + int exitCode = process.waitFor(); + System.out.println("Command exited with code " + exitCode); + } catch (Exception e) { + e.printStackTrace(); + } File file = new File(tempDir.toFile(), "video.mp4"); if (file.exists()) { log.info(String.valueOf(file.length())); From 12449a6354fca5d493a24465fe427141ccafa918 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 17 May 2023 15:04:27 +0800 Subject: [PATCH 39/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改命令执行方式 --- .../recall/trace/service/impl/RecallOrderApiServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index cfbcb15..4175b38 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -138,7 +138,7 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { }); processThread.start();*/ try { - String[] cmd = {"ts-node", "/opt/rrvideo/src/cli.ts", "--input traces.json"}; + String[] cmd = {"ts-node", "/opt/rrvideo/src/cli.ts"}; Process process = Runtime.getRuntime().exec(cmd); // 捕获输出 From 570f3f9ad27d0a1147f50e217bd980461d18c6fe Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 17 May 2023 15:15:03 +0800 Subject: [PATCH 40/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20rrvi?= =?UTF-8?q?deo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改命令执行方式 --- .../recall/trace/service/impl/RecallOrderApiServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 4175b38..a991abc 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -77,6 +77,7 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { orderQuery.eq(RecallOrderEntity::getComplete, "1"); orderQuery.isNull(RecallOrderEntity::getFileId); orderQuery.orderByDesc(RecallOrderEntity::getCompleteDate); + orderQuery.last("limit 1"); List orderList = recallOrderService.getBaseMapper().selectList(orderQuery); orderList.forEach(order -> { From b824bfde4c7c512215c7723fc9669e4c7820b84d Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 17 May 2023 15:28:58 +0800 Subject: [PATCH 41/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20rrvi?= =?UTF-8?q?deo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改命令执行方式 --- .../recall/trace/service/impl/RecallOrderApiServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index a991abc..7ae2f29 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -140,7 +140,9 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { processThread.start();*/ try { String[] cmd = {"ts-node", "/opt/rrvideo/src/cli.ts"}; - Process process = Runtime.getRuntime().exec(cmd); + ProcessBuilder processBuilder = new ProcessBuilder(cmd); + processBuilder.directory(tempDir.toFile()); + Process process = processBuilder.start(); // 捕获输出 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); From 79e980eabeefd49df2b44e0c9ebc76a875a4b213 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 17 May 2023 15:36:56 +0800 Subject: [PATCH 42/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20rrvi?= =?UTF-8?q?deo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改命令执行方式 --- .../trace/service/impl/RecallOrderApiServiceImpl.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 7ae2f29..8c3beac 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -77,7 +77,7 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { orderQuery.eq(RecallOrderEntity::getComplete, "1"); orderQuery.isNull(RecallOrderEntity::getFileId); orderQuery.orderByDesc(RecallOrderEntity::getCompleteDate); - orderQuery.last("limit 1"); + //orderQuery.last("limit 1"); List orderList = recallOrderService.getBaseMapper().selectList(orderQuery); orderList.forEach(order -> { @@ -179,10 +179,11 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { log.error(e.getMessage()); } finally { // 删除临时目录 -// Files.walk(tempDir) -// .sorted(Comparator.reverseOrder()) -// .map(Path::toFile) -// .forEach(File::delete); + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + Files.delete(tempDir); } } From 2888581b7e1318f9791c497f12453dd8f76c84a3 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 18 May 2023 10:38:56 +0800 Subject: [PATCH 43/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=9B=9E=E6=BA=AF=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整逻辑 --- .../recall/trace/service/impl/RecallRecordApiServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java index c6e5f94..3ecc511 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java @@ -49,7 +49,7 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService { .orElseGet(() -> Optional.ofNullable(recallOrderService.queryRecallOrderByTraceId(traceId)).orElseGet(() -> { RecallOrderEntity newOrder = new RecallOrderEntity(); newOrder.setId(UUID.randomUUID().toString().replace("-", "")); - newOrder.setOrderId(orderId); + newOrder.setOrderId(record.getOrderId()); newOrder.setTraceId(traceId); newOrder.setProductCode(record.getProductCode()); newOrder.setProductName(record.getProductName()); @@ -75,7 +75,7 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService { recallOrderService.updateRecallOrderById(order); } record.setTraceId(traceId); - record.setOrderId(orderId); + record.setOrderId(record.getOrderId()); RecallRecordEntity recallRecord = new RecallRecordEntity(); BeanUtils.copyProperties(record, recallRecord); recallRecord.setId(UUID.randomUUID().toString().replace("-", "")); From 9a698124ac331efc0245626712c279864f64d8a8 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 18 May 2023 10:51:54 +0800 Subject: [PATCH 44/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=9B=9E=E6=BA=AF=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整逻辑 --- .../service/impl/RecallRecordApiServiceImpl.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java index 3ecc511..97c9082 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java @@ -40,16 +40,17 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService { public ResObj save(TraceDTO record) { Objects.requireNonNull(record); - String orderId = StringUtils.isBlank(record.getOrderId()) ? UUID.randomUUID().toString().replace("-", "") : record.getOrderId(); - String traceId = StringUtils.isBlank(record.getTraceId()) ? UUID.randomUUID().toString().replace("-", "") : record.getTraceId(); boolean isLastEvent = record.isLast(); - RecallOrderEntity order = Optional.ofNullable(recallOrderService.queryRecallOrderByOrderId(orderId)) + RecallOrderEntity order = Optional.ofNullable(Optional.ofNullable(record.getOrderId()) + .map(recallOrderService::queryRecallOrderByOrderId) + .orElse(null)) .orElseGet(() -> Optional.ofNullable(recallOrderService.queryRecallOrderByTraceId(traceId)).orElseGet(() -> { RecallOrderEntity newOrder = new RecallOrderEntity(); newOrder.setId(UUID.randomUUID().toString().replace("-", "")); - newOrder.setOrderId(record.getOrderId()); + Optional.ofNullable(record.getOrderId()) + .ifPresent(newOrder::setOrderId); newOrder.setTraceId(traceId); newOrder.setProductCode(record.getProductCode()); newOrder.setProductName(record.getProductName()); @@ -75,7 +76,8 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService { recallOrderService.updateRecallOrderById(order); } record.setTraceId(traceId); - record.setOrderId(record.getOrderId()); + Optional.ofNullable(record.getOrderId()) + .ifPresent(record::setOrderId); RecallRecordEntity recallRecord = new RecallRecordEntity(); BeanUtils.copyProperties(record, recallRecord); recallRecord.setId(UUID.randomUUID().toString().replace("-", "")); From bc4036adaeda3879b0446d6acc72a65963552211 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 18 May 2023 10:55:44 +0800 Subject: [PATCH 45/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=9B=9E=E6=BA=AF=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整逻辑 --- .../trace/service/impl/RecallRecordApiServiceImpl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java index 97c9082..9d949ea 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java @@ -60,9 +60,8 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService { newOrder.setArchived("0"); newOrder.setComplete(isLastEvent ? "1" : "0"); String tenantId = recallApiService.queryApiTenant(record.getAppKey()); - if (tenantId != null) { - newOrder.setTenantId(tenantId); - } + Optional.ofNullable(tenantId) + .ifPresent(newOrder::setTenantId); if (isLastEvent) { newOrder.setCompleteDate(System.currentTimeMillis()); } From 57e1415de3bd41366cb8daa0fc5d2b81c7cba865 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 18 May 2023 11:30:39 +0800 Subject: [PATCH 46/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=9B=9E=E6=BA=AF=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改业务订单更新逻辑 --- .../recall/trace/service/impl/RecallRecordApiServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java index 9d949ea..7c70f20 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallRecordApiServiceImpl.java @@ -70,13 +70,13 @@ public class RecallRecordApiServiceImpl implements RecallRecordApiService { })); if (isLastEvent && !"1".equals(order.getComplete())) { order.setComplete("1"); + Optional.ofNullable(record.getOrderId()) + .ifPresent(order::setOrderId); order.setCompleteDate(System.currentTimeMillis()); order.setUpdateTime(System.currentTimeMillis()); recallOrderService.updateRecallOrderById(order); } record.setTraceId(traceId); - Optional.ofNullable(record.getOrderId()) - .ifPresent(record::setOrderId); RecallRecordEntity recallRecord = new RecallRecordEntity(); BeanUtils.copyProperties(record, recallRecord); recallRecord.setId(UUID.randomUUID().toString().replace("-", "")); From 96e66bb8a03ea1032ba5ff01506aa412e885288f Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 18 May 2023 11:41:15 +0800 Subject: [PATCH 47/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=9B=9E=E6=BA=AF=E8=A7=86=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整文件删除 --- .../recall/trace/service/impl/RecallOrderApiServiceImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 8c3beac..f503052 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -183,7 +183,6 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { .sorted(Comparator.reverseOrder()) .map(Path::toFile) .forEach(File::delete); - Files.delete(tempDir); } } From 19527f62b75306cbad406a4f0fc5547f1d49bb0c Mon Sep 17 00:00:00 2001 From: BrandWang Date: Mon, 22 May 2023 16:58:24 +0800 Subject: [PATCH 48/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=9B=9E=E6=BA=AF=E8=A7=86=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改执行命令 --- .../recall/trace/service/impl/RecallOrderApiServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index f503052..2d04ddf 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -139,7 +139,7 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { }); processThread.start();*/ try { - String[] cmd = {"ts-node", "/opt/rrvideo/src/cli.ts"}; + String[] cmd = {"rrvideo", "--input traces.json "}; ProcessBuilder processBuilder = new ProcessBuilder(cmd); processBuilder.directory(tempDir.toFile()); Process process = processBuilder.start(); From 921d64e0bfeb26bc92d3720dd1ee2cc83a9e5387 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Tue, 23 May 2023 10:41:38 +0800 Subject: [PATCH 49/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=9B=9E=E6=BA=AF=E8=A7=86=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改执行命令 --- .../recall/trace/service/impl/RecallOrderApiServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 2d04ddf..8794caa 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -139,9 +139,10 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { }); processThread.start();*/ try { - String[] cmd = {"rrvideo", "--input traces.json "}; + String[] cmd = {"rrvideo", " --input traces.json"}; ProcessBuilder processBuilder = new ProcessBuilder(cmd); processBuilder.directory(tempDir.toFile()); + System.out.printf(processBuilder.command().toString()); Process process = processBuilder.start(); // 捕获输出 From 5e5d80b1484a7a3f1825da9ea2588a160fdbcae5 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Tue, 23 May 2023 11:10:31 +0800 Subject: [PATCH 50/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=9B=9E=E6=BA=AF=E8=A7=86=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改执行命令 --- .../recall/trace/service/impl/RecallOrderApiServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java index 8794caa..e6af316 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallOrderApiServiceImpl.java @@ -139,7 +139,7 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService { }); processThread.start();*/ try { - String[] cmd = {"rrvideo", " --input traces.json"}; + String[] cmd = {"rrvideo", "--input", "traces.json"}; ProcessBuilder processBuilder = new ProcessBuilder(cmd); processBuilder.directory(tempDir.toFile()); System.out.printf(processBuilder.command().toString()); From 1d293a063ce9602c3764867e9f33054486685fb3 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Tue, 23 May 2023 16:12:01 +0800 Subject: [PATCH 51/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=9B=9E=E6=BA=AF=E8=A7=86=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加appKey生成 --- .../service/impl/RecallApiApiServiceImpl.java | 3 ++ .../recall/util/ShortAppKeyGenerator.java | 43 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/util/ShortAppKeyGenerator.java diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiApiServiceImpl.java b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiApiServiceImpl.java index 0344171..4f1c229 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiApiServiceImpl.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/trace/service/impl/RecallApiApiServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.wabestway.commons.http.Paging; import com.wabestway.commons.http.ResObj; import com.wabestway.recall.util.HeaderDataUtil; +import com.wabestway.recall.util.ShortAppKeyGenerator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.BeanUtils; import com.wabestway.ins.utils.UUIDUtil; @@ -47,6 +48,7 @@ public class RecallApiApiServiceImpl implements RecallApiApiService { BeanUtils.copyProperties(paramReq, recallApi); recallApi.setId(UUIDUtil.generate());//赋值id + recallApi.setAppKey(ShortAppKeyGenerator.generate()); recallApi.setTenantId(HeaderDataUtil.getTenantId()); recallApi.setCreateBy(HeaderDataUtil.getUserId());//创建人 recallApi.setCreateTime(System.currentTimeMillis());//创建时间 @@ -61,6 +63,7 @@ public class RecallApiApiServiceImpl implements RecallApiApiService { @Override public ResObj updateRecallApi(RecallApiDTO paramReq) { RecallApiEntity recallApi = new RecallApiEntity(); + paramReq.setAppKey(null); BeanUtils.copyProperties(paramReq, recallApi); recallApi.setUpdateBy(HeaderDataUtil.getUserId());//更新人 recallApi.setUpdateTime(System.currentTimeMillis());//更新时间 diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/util/ShortAppKeyGenerator.java b/afis-recall-web/src/main/java/com/wabestway/recall/util/ShortAppKeyGenerator.java new file mode 100644 index 0000000..bde7ba2 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/util/ShortAppKeyGenerator.java @@ -0,0 +1,43 @@ +package com.wabestway.recall.util; + +import java.util.UUID; + +public class ShortAppKeyGenerator { + private static final char[] BASE62_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray(); + + public static String generate() { + UUID uuid = UUID.randomUUID(); + long mostSigBits = uuid.getMostSignificantBits(); + long leastSigBits = uuid.getLeastSignificantBits(); + byte[] bytes = new byte[16]; + for (int i = 0; i < 8; i++) { + bytes[i] = (byte) (mostSigBits >>> (8 * (7 - i))); + bytes[i + 8] = (byte) (leastSigBits >>> (8 * (7 - i))); + } + return toBase62(bytes); + } + + private static String toBase62(byte[] bytes) { + StringBuilder sb = new StringBuilder(); + long num = toLong(bytes); + while (num > 0) { + int remainder = (int) (num % 62); + sb.append(BASE62_CHARS[remainder]); + num /= 62; + } + return sb.toString(); + } + + private static long toLong(byte[] bytes) { + long result = 0; + for (int i = 0; i < 8; i++) { + result <<= 8; + result |= (bytes[i] & 0xFF); + } + for (int i = 8; i < 16; i++) { + result <<= 8; + result |= (bytes[i] & 0xFF); + } + return result; + } +} From 70b628b4465ca71bdd6c84abae79ed1e605538f9 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 24 May 2023 17:55:23 +0800 Subject: [PATCH 52/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=94=9F=E6=88=90=E8=A7=86=E9=A2=91=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加xxljobp配置 --- afis-recall-web/pom.xml | 7 +++ .../recall/jobtask/GenVideoJobHandler.java | 23 +++++++++ .../recall/jobtask/XXLJobConfig.java | 47 +++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/jobtask/GenVideoJobHandler.java create mode 100644 afis-recall-web/src/main/java/com/wabestway/recall/jobtask/XXLJobConfig.java diff --git a/afis-recall-web/pom.xml b/afis-recall-web/pom.xml index 336f336..f51bb4c 100644 --- a/afis-recall-web/pom.xml +++ b/afis-recall-web/pom.xml @@ -23,6 +23,13 @@ 1.1.22 + + + com.xuxueli + xxl-job-core + 2.3.0 + + com.wabestway.recall afis-recall-api diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/GenVideoJobHandler.java b/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/GenVideoJobHandler.java new file mode 100644 index 0000000..b229a24 --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/GenVideoJobHandler.java @@ -0,0 +1,23 @@ +package com.wabestway.recall.jobtask; + +import com.wabestway.recall.trace.service.RecallOrderApiService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class GenVideoJobHandler { + @Autowired + private RecallOrderApiService recallOrderApiService; + + @XxlJob("VideoGenJobHandler") + public ReturnT genRecallVideo() { + log.info("[定时器:回溯视频]-开始执行"); + recallOrderApiService.traceVideo(); + log.info("[定时器:回溯视频]-执行完成"); + return ReturnT.SUCCESS; + } +} diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/XXLJobConfig.java b/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/XXLJobConfig.java new file mode 100644 index 0000000..9a65e8a --- /dev/null +++ b/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/XXLJobConfig.java @@ -0,0 +1,47 @@ +package com.wabestway.recall.jobtask; + +import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class XXLJobConfig { + + private Logger logger = LoggerFactory.getLogger(XXLJobConfig.class); + + @Value("${xxl.job.admin.addresses}") + private String adminAddresses; + + @Value("${xxl.job.accessToken}") + private String accessToken; + + @Value("${xxl.job.executor.appname}") + private String appname; + + @Value("${xxl.job.executor.port:-1}") + private int port; + + @Value("${xxl.job.executor.logpath}") + private String logPath; + + @Value("${xxl.job.executor.logretentiondays}") + private int logRetentionDays; + + @Bean + public XxlJobSpringExecutor xxlJobExecutor() { + logger.info(">>>>>>>>>>> xxl-job config init."); + XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); + xxlJobSpringExecutor.setAdminAddresses(adminAddresses); + xxlJobSpringExecutor.setAppname(appname); + xxlJobSpringExecutor.setPort(port); + xxlJobSpringExecutor.setAccessToken(accessToken); + xxlJobSpringExecutor.setLogPath(logPath); + xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); + + return xxlJobSpringExecutor; + } + +} \ No newline at end of file From 825b010843768f724908715b28e13810470bab5e Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 25 May 2023 15:14:08 +0800 Subject: [PATCH 53/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20appK?= =?UTF-8?q?ey=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改appKey生成方式 --- .../recall/util/ShortAppKeyGenerator.java | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/util/ShortAppKeyGenerator.java b/afis-recall-web/src/main/java/com/wabestway/recall/util/ShortAppKeyGenerator.java index bde7ba2..2510f08 100644 --- a/afis-recall-web/src/main/java/com/wabestway/recall/util/ShortAppKeyGenerator.java +++ b/afis-recall-web/src/main/java/com/wabestway/recall/util/ShortAppKeyGenerator.java @@ -1,19 +1,24 @@ package com.wabestway.recall.util; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.util.Arrays; import java.util.UUID; public class ShortAppKeyGenerator { private static final char[] BASE62_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray(); public static String generate() { - UUID uuid = UUID.randomUUID(); - long mostSigBits = uuid.getMostSignificantBits(); - long leastSigBits = uuid.getLeastSignificantBits(); - byte[] bytes = new byte[16]; - for (int i = 0; i < 8; i++) { - bytes[i] = (byte) (mostSigBits >>> (8 * (7 - i))); - bytes[i + 8] = (byte) (leastSigBits >>> (8 * (7 - i))); + String input = System.currentTimeMillis() + ""; + MessageDigest md = null; + try { + md = MessageDigest.getInstance("MD5"); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); } + byte[] bytes = md.digest(input.getBytes()); return toBase62(bytes); } @@ -32,12 +37,13 @@ public class ShortAppKeyGenerator { long result = 0; for (int i = 0; i < 8; i++) { result <<= 8; - result |= (bytes[i] & 0xFF); - } - for (int i = 8; i < 16; i++) { - result <<= 8; - result |= (bytes[i] & 0xFF); + result |= ((long) (bytes[i] & 0xFF)); } return result; } + + public static void main(String[] args) { + String appKey = generate(); + System.out.println(appKey); // 输出:pT8bnL3ZTYqdBlUo + } } From 11e4d4f3f9eb7f30858466482f20253b20023ef2 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Thu, 25 May 2023 15:17:04 +0800 Subject: [PATCH 54/54] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20?= =?UTF-8?q?=E5=8F=91=E5=B8=83apijar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 发布版本 --- afis-recall-api/pom.xml | 2 +- afis-recall-web/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/afis-recall-api/pom.xml b/afis-recall-api/pom.xml index 0c64c36..4a2a087 100644 --- a/afis-recall-api/pom.xml +++ b/afis-recall-api/pom.xml @@ -6,7 +6,7 @@ com.wabestway.recall afis-recall-api - 1.0-SNAPSHOT + 1.0.0 diff --git a/afis-recall-web/pom.xml b/afis-recall-web/pom.xml index f51bb4c..3bf9ef3 100644 --- a/afis-recall-web/pom.xml +++ b/afis-recall-web/pom.xml @@ -33,7 +33,7 @@ com.wabestway.recall afis-recall-api - 1.0-SNAPSHOT + 1.0.0 com.wabestway.recall