Selaa lähdekoodia

优化SQL,读取Name,优化数据结构

龚成明 3 vuotta sitten
vanhempi
commit
961b63be64
1 muutettua tiedostoa jossa 41 lisäystä ja 4 poistoa
  1. 41 4
      src/main/java/controller/EthMevController.java

+ 41 - 4
src/main/java/controller/EthMevController.java

@@ -1,5 +1,6 @@
 package controller;
 
+import com.alibaba.fastjson.JSONArray;
 import com.jfinal.aop.Before;
 import com.jfinal.core.Controller;
 import com.alibaba.fastjson.JSONObject;
@@ -146,12 +147,48 @@ public class EthMevController extends Controller {
             ethMevList = EthMev.dao.find(sql, block, hash, dataVague);
         }
 
-        String findLpSql = "select * from t_ethereum_mev_v1 where hash=?";
+        //        dexArray/toArray = (EthMevModel.find_by_block(2))
+        //        tokenArray = (EthMevModel.find_by_block(1))
+        //        lpArray = (EthMevModel.find_by_block(0))
+        /*
+         * 为什么要在服务器进行数据处理:
+         * 服务器内存大,CPU好,而且网站客户少,当然要充分压榨服务器性能了
+         */
+        String findHashSql = "select * from t_ethereum_mev_v1 where block=? and hash=?";
 
+        // 处理对象中的各类地址
         for (EthMev ethMev : ethMevList) {
-            JSONObject dataJson = JSONObject.parseObject(ethMev.getStr("data"));
-
-            ethMev.put("toObj", EthMev.dao.findFirst(findLpSql, dataJson.getString("toAdd")));
+            // dataObj容错
+            try{
+                JSONObject dataObj = JSONObject.parseObject(ethMev.getStr("data"));
+
+                // 处理dataObj
+                ethMev.put("dataObj", dataObj);
+                ethMev.remove("data");
+
+                // 查询lpHash
+                // lpObj容错
+                try {
+                    EthMev toObj = EthMev.dao.findFirst(findHashSql, 2, dataObj.getString("toAdd"));
+                    JSONObject toObjDataObj = JSONObject.parseObject(toObj.getStr("data"));
+                    ethMev.put("toName", toObjDataObj.getString("name"));
+                } catch (Exception ignored) {}
+                // 处理tokenHash
+                JSONArray tradeInfoList = dataObj.getJSONArray("tradeInfo");
+                for (JSONObject tradeInfo : tradeInfoList.toJavaList(JSONObject.class)) {
+                    // tokenObj容错
+                    try {
+                        EthMev tokenObj = EthMev.dao.findFirst(findHashSql, 1, tradeInfo.getString("token"));
+                        JSONObject tokenObjDataObj = JSONObject.parseObject(tokenObj.getStr("data"));
+                        tradeInfo.put("tokenName", tokenObjDataObj.getString("name"));
+                    } catch (Exception ignored) {}
+                }
+            } catch (Exception e) {
+                JSONObject dataObj = JSONObject.parseObject("{}");
+                // 处理dataObj
+                ethMev.put("dataObj", dataObj);
+                ethMev.remove("data");
+            }
         }
 
         renderJson(MyRet.create().setOk().setMsg("查询成功").setData(ethMevList));