Bläddra i källkod

增加初始化信息接口

JiahengHe 1 år sedan
förälder
incheckning
462359b69a

+ 6 - 0
price_collection/src/main/java/com/liangjiang/price_collection/controller/ApiController.java

@@ -1,5 +1,6 @@
 package com.liangjiang.price_collection.controller;
 
+import com.liangjiang.price_collection.dto.ExchangeCoinDto;
 import com.liangjiang.price_collection.dto.PriceInfoDto;
 import com.liangjiang.price_collection.dto.PriceListDto;
 import com.liangjiang.price_collection.res.R;
@@ -25,6 +26,11 @@ public class ApiController {
     private final JmsTemplate myJmsTemplate;
     private final Queue priceQueue;
 
+    @PostMapping("/init")
+    public R init(@RequestBody ExchangeCoinDto dto){
+        return R.ok(tableService.initExchange(dto));
+    }
+
     @PostMapping("/add")
     public void saveInfo(@RequestBody List<PriceInfoDto> priceInfoDtos){
         // 开启持久化

+ 15 - 0
price_collection/src/main/java/com/liangjiang/price_collection/dto/ExchangeCoinDto.java

@@ -0,0 +1,15 @@
+package com.liangjiang.price_collection.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ExchangeCoinDto {
+    // 交易所
+    private String source;
+    // 合约还是现货 swap spot
+    private String b_type;
+    // 币对
+    private List<String> coin;
+}

+ 4 - 0
price_collection/src/main/java/com/liangjiang/price_collection/service/ITableService.java

@@ -1,5 +1,6 @@
 package com.liangjiang.price_collection.service;
 
+import com.liangjiang.price_collection.dto.ExchangeCoinDto;
 import com.liangjiang.price_collection.dto.PriceDto;
 import com.liangjiang.price_collection.dto.PriceInfoDto;
 
@@ -10,6 +11,9 @@ public interface ITableService {
     // 查询所有表名
     List<String> getTableNames();
 
+    // 初始化交易所币对数据
+    boolean initExchange(ExchangeCoinDto dto);
+
     // 批量写入
     void savePriceBatch(List<PriceInfoDto> dtos);
 

+ 21 - 5
price_collection/src/main/java/com/liangjiang/price_collection/service/impl/TableServiceImpl.java

@@ -2,6 +2,7 @@ package com.liangjiang.price_collection.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.liangjiang.price_collection.dto.BackupsInfo;
+import com.liangjiang.price_collection.dto.ExchangeCoinDto;
 import com.liangjiang.price_collection.dto.PriceDto;
 import com.liangjiang.price_collection.dto.PriceInfoDto;
 import com.liangjiang.price_collection.mapper.TableMapper;
@@ -70,21 +71,36 @@ public class TableServiceImpl implements ITableService {
         return tableMapper.getTableName();
     }
 
+    @Override
+    public boolean initExchange(ExchangeCoinDto dto){
+        if(dto ==null || CollectionUtil.isEmpty(dto.getCoin())){
+            return false;
+        }
+        try {
+            Set<String> tableNames = new HashSet<>();
+            dto.getCoin().forEach(coin -> {
+                String tableName = String.format("%s_%s_%s", coin.replaceAll("_", ""), dto.getSource(), dto.getB_type()).toUpperCase();
+                tableNames.add(tableName);
+            });
+            // 建表
+            this.tableMapper.createTables(tableNames);
+            return true;
+        }catch (Exception ex){
+            log.error("建表初始化失败!", ex);
+            return false;
+        }
+    }
+
     @Override
     public void savePriceBatch(List<PriceInfoDto> dtos){
         if(CollectionUtil.isEmpty(dtos)){
             return;
         }
-        Set<String> tableNames = new HashSet<>();
         List<BackupsInfo> addDtos = new LinkedList<>();
         dtos.forEach(dto -> {
-            String tableName = String.format("%s_%s_%s", dto.getCoin().replaceAll("_", ""), dto.getSource(), dto.getB_type()).toUpperCase();
-            tableNames.add(tableName);
             addDtos.add(dto.convertAdd());
         });
         try {
-            // 建表
-            this.tableMapper.createTables(tableNames);
             // 写入数据
             this.tableMapper.savePrices(addDtos);
         } catch (Exception ex){