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