Ver Fonte

add:watchlist加入赛道分类筛选V1

lvzhiqiang há 2 anos atrás
pai
commit
6889cde520

+ 3 - 0
src/main/java/top/lvzhiqiang/entity/CoinApiConfig.java

@@ -5,6 +5,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * coin-API-配置表
@@ -76,4 +77,6 @@ public class CoinApiConfig implements Serializable {
      * 删除标志{1:正常,2:已删除}
      */
     private Integer deleteFlag;
+
+    private List<String> trackCategoryList;
 }

+ 9 - 0
src/main/java/top/lvzhiqiang/mapper/CoinApiConfigMapper.java

@@ -64,4 +64,13 @@ public interface CoinApiConfigMapper {
             " order by sort desc" +
             "</script>"})
     List<CoinApiConfig> findByParams(String nameCn, String url, Integer type, Integer type2, Integer status);
+
+    @Select("SELECT M.trackCategory " +
+            "FROM (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(cw.track_category, ',', B.HELP_TOPIC_ID + 1), ',', - 1) AS trackCategory " +
+            "      FROM coin_watchlist cw " +
+            "               JOIN MYSQL.HELP_TOPIC B " +
+            "                    ON B.HELP_TOPIC_ID < (LENGTH(cw.track_category) - LENGTH(REPLACE(cw.track_category, ',', '')) + 1)) M " +
+            "GROUP BY M.trackCategory " +
+            "ORDER BY COUNT(M.trackCategory) DESC")
+    List<String> findTrackCategoryList();
 }

+ 3 - 0
src/main/java/top/lvzhiqiang/mapper/CoinMapper.java

@@ -90,6 +90,9 @@ public interface CoinMapper {
             "<if test=\"filterField != null and filterField != ''\">" +
             "   and filter_flag = #{filterField}" +
             "</if>" +
+            "<if test=\"trackCategoryField != null and trackCategoryField != ''\">" +
+            "   and track_category like concat('%',#{trackCategoryField},'%')" +
+            "</if>" +
             " order by ${sortField} ${sort}" +
             "</script>"})
     List<CoinWatchlist> findWatchlistList(Map<String, Object> params);

+ 8 - 1
src/main/java/top/lvzhiqiang/service/impl/CoinApiConfigServiceImpl.java

@@ -55,6 +55,13 @@ public class CoinApiConfigServiceImpl implements CoinApiConfigService {
      */
     @Override
     public List<CoinApiConfig> findByParams(String nameCn, String url, Integer type, Integer type2, Integer status) {
-        return coinApiConfigMapper.findByParams(nameCn, url, type, type2, status);
+        List<CoinApiConfig> coinApiConfigList = coinApiConfigMapper.findByParams(nameCn, url, type, type2, status);
+        for (CoinApiConfig coinApiConfig : coinApiConfigList) {
+            if (coinApiConfig.getNameEn().equals("watchlist")) {
+                coinApiConfig.setTrackCategoryList(coinApiConfigMapper.findTrackCategoryList());
+            }
+        }
+
+        return coinApiConfigList;
     }
 }

+ 3 - 0
src/main/resources/static/coin.html

@@ -146,6 +146,9 @@
                 <option value="2">已过滤</option>
                 <option value="3">哈哈哈</option>
             </select>
+            <select id="apis-quiet-div-watchlist-trackCategoryField" style="height: 24px;">
+                <option value="">--</option>
+            </select>
             <select id="apis-quiet-div-watchlist-sortField" style="height: 24px;">
                 <option value="total_market_value">总市值</option>
                 <option value="total_market_ranking">总市值排名</option>

+ 11 - 1
src/main/resources/static/js/my-coin.js

@@ -102,7 +102,7 @@ function initOther4Select() {
         success: function (data) {
             //请求成功时处理
             if (data != null && $.trim(data) != "" && data.success) {
-                data = data.data
+                data = data.data;
 
                 var quietStr = '';
                 var moveStr = '';
@@ -123,6 +123,15 @@ function initOther4Select() {
                     } else if (obj.type2 === 2) {
                         quietStr += '<option nameEn="' + obj.nameEn + '" url="' + obj.url + '" returnEn="' + obj.returnEn + '" returnCn="' + obj.returnCn + '" value="' + obj.nameEn + '-option">' + obj.nameCn + '</option>';
                     }
+
+                    // watchlist
+                    if (obj.nameEn === 'watchlist'){
+                        var watchlistTrackCategoryStr = '';
+                        $.each(obj.trackCategoryList, function (index2, obj2) {
+                            watchlistTrackCategoryStr += '<option value="' + obj2 + '">' + obj2 + '</option>';
+                        });
+                        $("#apis-quiet-div-watchlist-trackCategoryField").append(watchlistTrackCategoryStr);
+                    }
                 });
 
                 move2Str = '<option nameEn="needCustom" type="9999">' + move2Str.substring(0, move2Str.length - 1) + '</option>';
@@ -272,6 +281,7 @@ function mainSearch(url, nameEn, slideDiv, needCustomFlag) {
         jsonData.sortField = $("#apis-quiet-div-watchlist-sortField").val();
         jsonData.sort = $("#apis-quiet-div-watchlist-sort").val();
         jsonData.filterField = $("#apis-quiet-div-watchlist-filterField").val();
+        jsonData.trackCategoryField = $("#apis-quiet-div-watchlist-trackCategoryField").val();
     }
 
     $.ajax({