Переглянути джерело

add:findIkoaMovieDownloadLog v2

lvzhiqiang 3 роки тому
батько
коміт
a117458f24

+ 6 - 2
src/main/java/top/lvzhiqiang/controller/CrawlerController.java

@@ -91,8 +91,12 @@ public class CrawlerController {
      */
     @RequestMapping("/findIkoaMovieDownloadLog")
     @ResponseBody
-    public String findIkoaMovieDownloadLog(String page, String sort) throws Exception {
-        return crawlerService.findIkoaMovieDownloadLog(page, sort);
+    public String findIkoaMovieDownloadLog(String keyword, Integer pic, String orderField, String order, String crudT) throws Exception {
+        if (StringUtils.isEmpty(crudT)) {
+            crudT = "1";
+        }
+
+        return crawlerService.findIkoaMovieDownloadLog(keyword, pic, orderField, order, crudT);
     }
 
     /**

+ 2 - 5
src/main/java/top/lvzhiqiang/mapper/CrawlerIkoaDownloadLogMapper.java

@@ -61,11 +61,8 @@ public interface CrawlerIkoaDownloadLogMapper {
 
     @Select({"<script>" +
             "select * from crawler_ikoa_downloadlog WHERE delete_flag = 1" +
-            "<if test=\"title != null and title != ''\">" +
-            "   and resource_title like concat('%',#{title},'%')" +
-            "</if>" +
-            "<if test=\"type != null and type != ''\">" +
-            "   and resource_type = #{type}" +
+            "<if test=\"keyword != null and keyword != ''\">" +
+            "   and cid like concat('%',#{keyword},'%')" +
             "</if>" +
             "<if test=\"order != null and order != ''\">" +
             "   order by ${orderField} ${order}" +

+ 1 - 1
src/main/java/top/lvzhiqiang/service/CrawlerService.java

@@ -42,7 +42,7 @@ public interface CrawlerService {
      * @author lvzhiqiang
      * 2022/9/26 23:22
      */
-    String findIkoaMovieDownloadLog(String page, String sort) throws Exception;
+    String findIkoaMovieDownloadLog(String keyword, Integer pic, String orderField, String order, String crudT) throws Exception;
 
     JSONObject jsoupIkoaMovieDownloadLog(Integer status, Integer isDel, Integer ignoreRetryCount) throws Exception;
 }

+ 32 - 126
src/main/java/top/lvzhiqiang/service/impl/CrawlerServiceImpl.java

@@ -313,7 +313,7 @@ public class CrawlerServiceImpl implements CrawlerService {
             } catch (HttpStatusException hse) {
                 generateIkoaToken(ikoaConstantMap, proxy);
             } catch (Exception e) {
-                log.error("IKOA搜索异常,ikoaConstantMap={},result={}", ikoaConstantMap, result.toString(), e);
+                log.error("IKOA搜索异常,ikoaConstantMap={},result={}", ikoaConstantMap, result, e);
                 if (i == 2) {
                     throw new Exception("IKOA搜索异常!");
                 }
@@ -386,7 +386,7 @@ public class CrawlerServiceImpl implements CrawlerService {
                     generateIkoaToken(ikoaConstantMap, proxy);
                 } catch (Exception e) {
                     if (i == 2) {
-                        log.error("IKOA搜索异常,ikoaConstantMap={},result={}", ikoaConstantMap, result.toString(), e);
+                        log.error("IKOA搜索异常,ikoaConstantMap={},result={}", ikoaConstantMap, result, e);
                     }
                 }
             }
@@ -400,116 +400,24 @@ public class CrawlerServiceImpl implements CrawlerService {
      * 2022/9/26 23:22
      */
     @Override
-    public String findIkoaMovieDownloadLog(String page, String sort) throws Exception {
-        log.warn("findIkoaMovieDownloadLog 开始:page={}", page);
-        // 获取ikoa常量MAP
-        Map<String, String> ikoaConstantMap = dicCodeMapper.findAll().stream()
-                .filter(x -> "ikoa".equals(x.getCodeDesc()) && x.getEnv().contains(env))
-                .collect(Collectors.toMap(DicCode::getCodeKey, DicCode::getCodeValue, (key1, key2) -> key1));
-
-        // 代理及TOKEN设置
-        Proxy proxy;
-        if ("dev".equals(env)) {
-            proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("127.0.0.1", 1080));
-        } else {
-            proxy = Proxy.NO_PROXY;
+    public String findIkoaMovieDownloadLog(String keyword, Integer pic, String orderField, String order, String crudT) throws Exception {
+        if ("2".equals(crudT)) {
+            //更新
+            return "success";
         }
-        if (StringUtils.isEmpty(ikoaToken)) {
-            generateIkoaToken(ikoaConstantMap, proxy);
+        if ("3".equals(crudT)) {
+            //删除
+            return "success";
         }
 
-        Connection.Response response;
-        StringBuffer sb = new StringBuffer();
-        JSONObject result = null;
-
-        // 查全部
-        JSONArray ja = new JSONArray();
-        if (StringUtils.isEmpty(page)) {
-            // 查第一页
-            int totalPage = 0;
-            for (int i = 0; i < 3; i++) {
-                try {
-                    response = Jsoup.connect(ikoaConstantMap.get("download_log_url"))
-                            .header("Authorization", "Token " + ikoaToken)
-                            .timeout(50000)
-                            .proxy(proxy)
-                            .data("page", "1")
-                            .ignoreContentType(true)
-                            .userAgent(getUserAgent())
-                            .header("referer", ikoaConstantMap.get("referer"))
-                            .method(Connection.Method.GET)
-                            .execute();
-                    result = JSONObject.parseObject(response.body());
-                    ja.addAll(result.getJSONArray("data"));
-                    totalPage = result.getInteger("total_page");
-                    break;
-                } catch (HttpStatusException hse) {
-                    generateIkoaToken(ikoaConstantMap, proxy);
-                } catch (Exception e) {
-                    log.error("IKOA DownloadLog异常,ikoaConstantMap={},result={}", ikoaConstantMap, result.toString(), e);
-                    if (i == 2) {
-                        throw new Exception("IKOA DownloadLog异常!");
-                    }
-                }
-            }
-
-            if (totalPage > 1) {
-                for (int j = 2; j <= totalPage; j++) {
-                    for (int k = 0; k < 3; k++) {
-                        try {
-                            response = Jsoup.connect(ikoaConstantMap.get("download_log_url"))
-                                    .header("Authorization", "Token " + ikoaToken)
-                                    .timeout(50000)
-                                    .proxy(proxy)
-                                    .data("page", String.valueOf(j))
-                                    .ignoreContentType(true)
-                                    .userAgent(getUserAgent())
-                                    .header("referer", ikoaConstantMap.get("referer"))
-                                    .method(Connection.Method.GET)
-                                    .execute();
-                            result = JSONObject.parseObject(response.body());
-                            ja.addAll(result.getJSONArray("data"));
-                            break;
-                        } catch (HttpStatusException hse) {
-                            generateIkoaToken(ikoaConstantMap, proxy);
-                        } catch (Exception e) {
-                            log.error("IKOA DownloadLog异常,ikoaConstantMap={},result={}", ikoaConstantMap, result.toString(), e);
-                            if (k == 2) {
-                                throw new Exception("IKOA DownloadLog异常!");
-                            }
-                        }
-                    }
-                }
-            }
-        } else {
-            // 查某页
-            for (int i = 0; i < 3; i++) {
-                try {
-                    response = Jsoup.connect(ikoaConstantMap.get("download_log_url"))
-                            .header("Authorization", "Token " + ikoaToken)
-                            .timeout(50000)
-                            .proxy(proxy)
-                            .data("page", page)
-                            .ignoreContentType(true)
-                            .userAgent(getUserAgent())
-                            .header("referer", ikoaConstantMap.get("referer"))
-                            .method(Connection.Method.GET)
-                            .execute();
-                    result = JSONObject.parseObject(response.body());
-                    ja.addAll(result.getJSONArray("data"));
-                    break;
-                } catch (HttpStatusException hse) {
-                    generateIkoaToken(ikoaConstantMap, proxy);
-                } catch (Exception e) {
-                    log.error("IKOA DownloadLog异常,ikoaConstantMap={},result={}", ikoaConstantMap, result.toString(), e);
-                    if (i == 2) {
-                        throw new Exception("IKOA DownloadLog异常!");
-                    }
-                }
-            }
-        }
+        Map<String, Object> params = new HashMap<>();
+        params.put("keyword", keyword);
+        params.put("orderField", orderField);
+        params.put("order", order);
+        List<CrawlerIkoaDownloadLog> crawlerIkoaDownloadLogList = crawlerIkoaDownloadLogMapper.findIkoaDownloadLog4MultipleParams(params);
 
-        parseIkoaMovieDownloadLog(ja, sb, sort);
+        StringBuffer sb = new StringBuffer();
+        parseIkoaMovieDownloadLog(crawlerIkoaDownloadLogList, pic, sb);
 
         return sb.toString();
     }
@@ -551,7 +459,6 @@ public class CrawlerServiceImpl implements CrawlerService {
         }
 
         Connection.Response response;
-        StringBuffer sb = new StringBuffer();
         JSONObject result = null;
 
         // 查全部
@@ -571,15 +478,13 @@ public class CrawlerServiceImpl implements CrawlerService {
                         .method(Connection.Method.GET)
                         .execute();
                 result = JSONObject.parseObject(response.body());
-                if (isDel == 1) {
-                    ja.addAll(result.getJSONArray("data"));
-                }
+                ja.addAll(result.getJSONArray("data"));
                 totalPage = result.getInteger("total_page");
                 break;
             } catch (HttpStatusException hse) {
                 generateIkoaToken(ikoaConstantMap, proxy);
             } catch (Exception e) {
-                log.error("jsoup IKOA DownloadLog异常,ikoaConstantMap={},result={}", ikoaConstantMap, result.toString(), e);
+                log.error("jsoup IKOA DownloadLog异常,ikoaConstantMap={},result={}", ikoaConstantMap, result, e);
                 if (i == 2) {
                     throw new Exception("jsoup IKOA DownloadLog异常!");
                 }
@@ -588,7 +493,7 @@ public class CrawlerServiceImpl implements CrawlerService {
         // 查后面的
         if (totalPage > 1) {
             outer:
-            for (int j = totalPage; j <= 2; j--) {
+            for (int j = totalPage; j > 1; j--) {
                 for (int k = 0; k < 3; k++) {
                     try {
                         response = Jsoup.connect(ikoaConstantMap.get("download_log_url"))
@@ -613,7 +518,7 @@ public class CrawlerServiceImpl implements CrawlerService {
                     } catch (HttpStatusException hse) {
                         generateIkoaToken(ikoaConstantMap, proxy);
                     } catch (Exception e) {
-                        log.error("jsoup IKOA DownloadLog异常,ikoaConstantMap={},result={}", ikoaConstantMap, result.toString(), e);
+                        log.error("jsoup IKOA DownloadLog异常,ikoaConstantMap={},result={}", ikoaConstantMap, result, e);
                         if (k == 2) {
                             throw new Exception("jsoup IKOA DownloadLog异常!");
                         }
@@ -655,24 +560,25 @@ public class CrawlerServiceImpl implements CrawlerService {
         return jsonObject;
     }
 
-    private void parseIkoaMovieDownloadLog(JSONArray result, StringBuffer sb, String sort) {
+    private void parseIkoaMovieDownloadLog(List<CrawlerIkoaDownloadLog> result, Integer pic, StringBuffer sb) {
         sb.append("total:".concat(String.valueOf(result.size())));
         sb.append("<table border=\"1\" cellspacing=\"0\"><tr><th>序号</th><th>cid</th><th>封面</th><th>User-Agent</th><th>影片当前状态</th><th>下载记录创建时间</th><th>最后一次修改时间</th></tr>");
 
-        if ("desc".equals(sort)) {
-            Collections.reverse(result);
-        }
         for (int i = 0; i < result.size(); i++) {
-            JSONObject jsonObject = result.getJSONObject(i);
+            CrawlerIkoaDownloadLog crawlerIkoaDownloadLog = result.get(i);
             sb.append("<tr>");
 
             sb.append("<td>").append(i + 1).append("</td>");
-            sb.append("<td>").append(jsonObject.getString("product_id")).append("</td>");
-            sb.append("<td>").append("<img src=\"" + jsonObject.getString("package_image") + "\" alt=\"封面\" width=\"147\" height=\"auto\">").append("</td>");
-            sb.append("<td>").append(jsonObject.getString("ua")).append("</td>");
-            sb.append("<td>").append(jsonObject.getInteger("status")).append("</td>");
-            sb.append("<td>").append(jsonObject.getString("created")).append("</td>");
-            sb.append("<td>").append(jsonObject.getString("updated")).append("</td>");
+            sb.append("<td>").append(crawlerIkoaDownloadLog.getCid()).append("</td>");
+            if (1 == pic) {
+                sb.append("<td>").append("--").append("</td>");
+            } else {
+                sb.append("<td>").append("<img src=\"" + crawlerIkoaDownloadLog.getPackageImage() + "\" alt=\"封面\" width=\"147\" height=\"auto\">").append("</td>");
+            }
+            sb.append("<td>").append(crawlerIkoaDownloadLog.getUa()).append("</td>");
+            sb.append("<td>").append(crawlerIkoaDownloadLog.getStatus()).append("</td>");
+            sb.append("<td>").append(crawlerIkoaDownloadLog.getCreateTime()).append("</td>");
+            sb.append("<td>").append(crawlerIkoaDownloadLog.getModifyTime()).append("</td>");
 
             sb.append("</tr>");
         }

+ 20 - 5
src/main/resources/static/crawler.html

@@ -96,12 +96,27 @@
     <div style="margin-right:20px;">
         <span class="font">findIkoaMovieDownloadLog</span>
         <form method="post" action="bg/crawler/findIkoaMovieDownloadLog">
-            <span>页码</span>
-            <input type="text" name="page" placeholder="可为空,默认全部"/>
-            <span>排序</span>
-            <select name="sort" style="height: 21.43px;">
-                <option value="asc">asc</option>
+            <span>title</span>
+            <input type="text" name="keyword" placeholder="关键词,可为空"/>
+            <span>pic</span>
+            <select name="pic" style="height: 21.43px;">
+                <option value="1">不显示</option>
+                <option value="2">显示</option>
+            </select>
+            <span>order</span>
+            <select name="orderField" style="height: 21.43px;">
+                <option value="create_time">created</option>
+                <option value="modify_time">updated</option>
+            </select>
+            <select name="order" style="height: 21.43px;">
                 <option value="desc">desc</option>
+                <option value="asc">asc</option>
+            </select>
+            <span>crudT</span>
+            <select name="crudT" style="height: 21.43px;">
+                <option value="1">查询</option>
+                <option value="2">更新</option>
+                <option value="3">删除</option>
             </select>
             <input type="submit" value="提交">
         </form>