Jelajahi Sumber

Merge branch 'test' of http://39.106.184.70:3000/ctop/adsp-boot into test

xuzuoyun 5 tahun lalu
induk
melakukan
f7ec0703ae
66 mengubah file dengan 526 tambahan dan 3146 penghapusan
  1. 0 12
      jeecg-boot-module-system/pom.xml
  2. 3 8
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/CrawlerController.java
  3. 18 16
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialImageInfoController.java
  4. 5 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialInfoController.java
  5. 87 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestController.java
  6. 1 45
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestMqController.java
  7. 0 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/ICrawlerService.java
  8. 0 93
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/CrawlerServiceImpl.java
  9. 2 9
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/fileupload/controller/FileController.java
  10. 0 6
      module-common/src/main/java/cn/com/ctop/common/module/entity/MaterialImageInfo.java
  11. 3 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/MaterialImageInfoMapper.java
  12. 3 1
      module-common/src/main/java/cn/com/ctop/common/module/mapper/MaterialInfoMapper.java
  13. 44 43
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialImageInfoMapper.xml
  14. 10 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialInfoMapper.xml
  15. 5 1
      module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialImageInfoService.java
  16. 100 28
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialImageInfoServiceImpl.java
  17. 13 12
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java
  18. 2 2
      module-common/src/main/java/cn/com/ctop/common/module/utils/LoadFileUtil.java
  19. 2 2
      module-common/src/main/java/cn/com/ctop/common/module/utils/RandomUtil.java
  20. 0 249
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumDeviceController.java
  21. 0 265
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumJobBindTaskInfoController.java
  22. 0 247
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumJobController.java
  23. 0 258
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumTaskController.java
  24. 0 247
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumTaskItemController.java
  25. 0 164
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumTaskLogController.java
  26. 0 62
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumDevice.java
  27. 0 57
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumJob.java
  28. 0 63
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumJobBindTaskInfo.java
  29. 0 66
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumTask.java
  30. 0 152
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumTaskItem.java
  31. 0 83
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumTaskLog.java
  32. 0 17
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumDeviceMapper.java
  33. 0 15
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumJobBindTaskInfoMapper.java
  34. 0 21
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumJobMapper.java
  35. 0 18
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumTaskItemMapper.java
  36. 0 18
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumTaskLogMapper.java
  37. 0 17
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumTaskMapper.java
  38. 0 5
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumDeviceMapper.xml
  39. 0 5
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumJobBindTaskInfoMapper.xml
  40. 0 11
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumJobMapper.xml
  41. 0 22
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumTaskItemMapper.xml
  42. 0 5
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumTaskLogMapper.xml
  43. 0 5
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumTaskMapper.xml
  44. 0 15
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumDeviceService.java
  45. 0 15
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumJobBindTaskInfoService.java
  46. 0 26
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumJobService.java
  47. 0 23
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumTaskItemService.java
  48. 0 15
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumTaskLogService.java
  49. 0 22
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumTaskService.java
  50. 0 26
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumDeviceServiceImpl.java
  51. 0 19
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumJobBindTaskInfoServiceImpl.java
  52. 0 259
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumJobServiceImpl.java
  53. 0 41
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumTaskItemServiceImpl.java
  54. 0 20
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumTaskLogServiceImpl.java
  55. 0 90
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumTaskServiceImpl.java
  56. 0 181
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/core/util/AppiumUtil.java
  57. 1 0
      module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/IMaterialUploadService.java
  58. 3 1
      module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/impl/MaterialUploadServiceImpl.java
  59. 14 6
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/BatchController.java
  60. 2 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaiShouImageGetMapper.java
  61. 7 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouImageGetMapper.xml
  62. 2 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaiShouImageGetService.java
  63. 176 13
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/BatchServiceImpl.java
  64. 5 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouImageGetServiceImpl.java
  65. 11 9
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouInterfaceServiceImpl.java
  66. 7 4
      module-report/src/main/java/cn/com/ctop/bytedance/service/impl/ByteDanceHourlyAccountWarningServiceImpl.java

+ 0 - 12
jeecg-boot-module-system/pom.xml

@@ -168,18 +168,6 @@
             <artifactId>ureport2-core</artifactId>
             <version>2.2.9</version>
         </dependency>
-        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
-       <!-- <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi-ooxml</artifactId>
-            <version>3.17</version>
-        </dependency>-->
-        <!--<dependency>
-            <groupId>com.test</groupId>
-            <artifactId>opencv</artifactId>
-            <scope>system</scope>
-            <systemPath>${basedir}/docs/opencv-420.jar</systemPath>
-        </dependency>-->
         <dependency>
             <groupId>cn.com.ctop</groupId>
             <artifactId>opencv</artifactId>

+ 3 - 8
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/CrawlerController.java

@@ -1,9 +1,10 @@
 package org.jeecg.modules.ctop.controller;
 
 import org.jeecg.modules.ctop.service.ICrawlerService;
-import org.jeecg.modules.ctop.vo.KuaishouAppiumJobVO;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Map;
 
@@ -12,12 +13,6 @@ import java.util.Map;
 public class CrawlerController {
     @Autowired
     private ICrawlerService crawlerService;
-
-    @PostMapping("startJob")
-    public Map<String, Object> runTask(@RequestBody KuaishouAppiumJobVO jobVO) {
-        return crawlerService.startJob(jobVO);
-    }
-
     @GetMapping("loadInspiration")
     public Map<String, Object> loadInspiration() {
         return crawlerService.loadInspiration();

+ 18 - 16
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialImageInfoController.java

@@ -80,24 +80,10 @@ public class MaterialImageInfoController {
         materialImageInfo.setCreateTime(null);
         if (!Check.isNull(materialImageInfo.getUserId())) {
             String roleCode = materialInfoService.getRoleCodeByUserId(materialImageInfo.getUserId());
-            if ("admin".equals(roleCode) || "operator".equals(roleCode) || "kuaishouOperationManager".equals(roleCode) || "operationAssistant".equals(roleCode) || "touTiaoOperationManager".equals(roleCode) || "sale".equals(roleCode) || "saleDirector".equals(roleCode)) {
+            if ("designTeamLeader".equals(roleCode) || "planeLeader".equals(roleCode) || "admin".equals(roleCode) || "operator".equals(roleCode) || "kuaishouOperationManager".equals(roleCode) || "operationAssistant".equals(roleCode) || "touTiaoOperationManager".equals(roleCode) || "sale".equals(roleCode) || "saleDirector".equals(roleCode)) {
                 materialImageInfo.setUserId(null);
                 queryWrapper = QueryGenerator.initQueryWrapper(materialImageInfo, req.getParameterMap());
-            } else if ("designTeamLeader".equals(roleCode) || "planeLeader".equals(roleCode) || "plane".equals(roleCode) || "plan".equals(roleCode) || "shot".equals(roleCode)) {
-                String userId = materialImageInfo.getUserId();
-                materialImageInfo.setUserId(null);
-                queryWrapper = QueryGenerator.initQueryWrapper(materialImageInfo, req.getParameterMap());
-                if (Check.isNull(materialImageInfo.getProjectId())) {
-                    List<Long> projects = memberService.selectProjectsByUserId(userId);
-                    if (!Check.isNull(projects)) {
-                        queryWrapper.in("project_id", projects);
-                    } else {
-                        result.setSuccess(true);
-                        result.setResult(null);
-                        return result;
-                    }
-                }
-            } else {
+            } else if ("plane".equals(roleCode) || "plan".equals(roleCode) || "shot".equals(roleCode)) {
                 queryWrapper = QueryGenerator.initQueryWrapper(materialImageInfo, req.getParameterMap());
             }
             if (!Check.isNull(createTime)) {
@@ -143,6 +129,22 @@ public class MaterialImageInfoController {
     }
 
 
+
+
+
+    @GetMapping(value = "/getImageList")
+    public Result<List<MaterialImageInfo>> getImageList(MaterialImageInfo MaterialImageInfo,
+                                                         HttpServletRequest req) {
+        Result<List<MaterialImageInfo>> result = new Result<>();
+        QueryWrapper<MaterialImageInfo> queryWrapper = QueryGenerator.initQueryWrapper(MaterialImageInfo, req.getParameterMap());
+        List<MaterialImageInfo> list = MaterialImageInfoService.list(queryWrapper);
+        result.setSuccess(true);
+        result.setResult(list);
+        return result;
+    }
+
+
+
     @GetMapping(value = "/getDetail")
     public Result<MaterialImageInfo> getDetail(String id) {
         Result<MaterialImageInfo> result = new Result<>();

+ 5 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialInfoController.java

@@ -45,7 +45,10 @@ import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.text.ParseException;
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 素材信息
@@ -248,7 +251,7 @@ public class MaterialInfoController {
 
 
                 QueryWrapper<MaterialImageInfo> imageInfoQueryWrapper = new QueryWrapper<>();
-                imageInfoQueryWrapper.eq("video_id", material.getId());
+                imageInfoQueryWrapper.eq("video_id", material.getCode());
                 imageInfoQueryWrapper.eq("status", 0);
                 List<MaterialImageInfo> imageInfoList = iMaterialImageInfoService.list(imageInfoQueryWrapper);
                 if (Check.isNull(imageInfoList)) {
@@ -538,5 +541,4 @@ public class MaterialInfoController {
     }
 
 
-
 }

+ 87 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestController.java

@@ -4,11 +4,9 @@ import cn.com.ctop.bytedance.entity.BytedancePlanDailyReport;
 import cn.com.ctop.bytedance.service.IBytedancePlanDailyReportService;
 import cn.com.ctop.bytedance.service.IBytedancePlanHourlyReportService;
 import cn.com.ctop.bytedance.service.IReportService;
-import cn.com.ctop.common.module.entity.CtopOauthToken;
-import cn.com.ctop.common.module.entity.UserAllocation;
+import cn.com.ctop.common.module.entity.*;
 import cn.com.ctop.common.module.mapper.CtopOauthTokenMapper;
-import cn.com.ctop.common.module.service.ICtopOauthTokenService;
-import cn.com.ctop.common.module.service.IUserAllocationService;
+import cn.com.ctop.common.module.service.*;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.CtopAdConstant;
 import cn.com.ctop.common.module.utils.ResultMapUtils;
@@ -54,6 +52,16 @@ public class TestController {
     private CtopOauthTokenMapper oauthTokenMapper;
     @Autowired
     private IKuaiShouHistoryReportTaskService historyReportTaskService;
+    @Autowired
+    private IMaterialInfoService materialInfoService;
+    @Autowired
+    private IMaterialParameterService parameterService;
+    @Autowired
+    private IMaterialAscriptionService ascriptionService;
+    @Autowired
+    private IMaterialTagService tagService;
+    @Autowired
+    private IMaterialImageInfoService iMaterialImageInfoService;
 
     @PostMapping(value = "/create")
     public Map<String, Object> authorization(@RequestBody JSONObject jsonObject) {
@@ -86,6 +94,81 @@ public class TestController {
     private IKuaishouInterfaceService kuaishouInterfaceService;
 
 
+    @GetMapping(value = "/updateCode")
+    public String updateCode() {
+
+        List<MaterialInfo> list = materialInfoService.list();
+        for (MaterialInfo info : list) {
+
+
+
+            QueryWrapper<MaterialImageInfo> imageInfoQueryWrapper = new QueryWrapper<>();
+            imageInfoQueryWrapper.eq("video_id", String.valueOf(info.getId()));
+            MaterialImageInfo updateMaterialImageInfo = new MaterialImageInfo();
+            updateMaterialImageInfo.setVideoId(info.getCode());
+            iMaterialImageInfoService.update(updateMaterialImageInfo, imageInfoQueryWrapper);
+
+
+            QueryWrapper<MaterialTag> tagQueryWrapper = new QueryWrapper<>();
+            tagQueryWrapper.eq("material_id", String.valueOf(info.getId()));
+            MaterialTag updateTag = new MaterialTag();
+            updateTag.setMaterialId(info.getCode());
+            tagService.update(updateTag, tagQueryWrapper);
+
+            QueryWrapper<MaterialAscription> materialAscriptionQuery = new QueryWrapper<>();
+            materialAscriptionQuery.eq("material_id", String.valueOf(info.getId()));
+            MaterialAscription updateMaterialAscription = new MaterialAscription();
+            updateMaterialAscription.setMaterialId(info.getCode());
+            ascriptionService.update(updateMaterialAscription, materialAscriptionQuery);
+
+
+            QueryWrapper<MaterialParameter> parameterQueryWrapper = new QueryWrapper<>();
+            parameterQueryWrapper.eq("material_id", String.valueOf(info.getId()));
+            MaterialParameter updateMaterialParameter = new MaterialParameter();
+            updateMaterialParameter.setMaterialId(info.getCode());
+            parameterService.update(updateMaterialParameter, parameterQueryWrapper);
+
+
+
+
+        }
+        List<MaterialImageInfo> list1 = iMaterialImageInfoService.list();
+        for (MaterialImageInfo imageInfo : list1) {
+            QueryWrapper<MaterialParameter> parameterQueryWrapper = new QueryWrapper<>();
+            parameterQueryWrapper.eq("material_id", String.valueOf(imageInfo.getId()));
+            MaterialParameter updateMaterialParameter = new MaterialParameter();
+            updateMaterialParameter.setMaterialId(imageInfo.getCode());
+            parameterService.update(updateMaterialParameter, parameterQueryWrapper);
+        }
+
+
+        List<String> codeList = iMaterialImageInfoService.getCodeList();
+        if (!Check.isNull(codeList)) {
+            for (int i = 0; i < codeList.size(); i++) {
+                String code = codeList.get(i);
+                QueryWrapper<MaterialImageInfo> materialImageInfoQueryWrapper = new QueryWrapper<>();
+                materialImageInfoQueryWrapper.eq("code", code);
+
+                List<MaterialImageInfo> list2 = iMaterialImageInfoService.list(materialImageInfoQueryWrapper);
+                if (list2.size() > 1) {
+                    for (int j = 0; j < list2.size(); j++) {
+                        if (j == 0) {
+                            continue;
+                        }
+                        MaterialImageInfo materialImageInfo = list2.get(j);
+                        iMaterialImageInfoService.removeById(String.valueOf(materialImageInfo.getId()));
+                    }
+
+                }
+            }
+
+        }
+
+        return "SUCCESS";
+
+    }
+
+
     @GetMapping(value = "/createTask")
     public String createTask(Long accountId) {
         Result<String> result = new Result<String>();

+ 1 - 45
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestMqController.java

@@ -2,21 +2,12 @@ package org.jeecg.modules.ctop.controller;
 
 import cn.com.ctop.common.module.utils.ResultMapUtils;
 import cn.com.ctop.common.module.utils.StatusCode;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumDevice;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumDeviceService;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumJobService;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumTaskService;
 import org.jeecg.modules.mq.Sender;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import javax.servlet.http.HttpServletResponse;
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.OutputStream;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -28,13 +19,8 @@ import java.util.Map;
 @RequestMapping("mq")
 public class TestMqController {
     @Autowired
-    private IAppiumDeviceService deviceService;
-    @Autowired
     private Sender sender;
-    @Autowired
-    private IAppiumJobService jobService;
-    @Autowired
-    private IAppiumTaskService appiumTaskService;
+
 
     @GetMapping("hello")
     public Map<String, Object> sayHello() {
@@ -43,34 +29,4 @@ public class TestMqController {
         ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
         return result;
     }
-
-    @GetMapping("task1")
-    public Map<String, Object> task1() {
-        Map<String, Object> result = new HashMap<>();
-        AppiumDevice device = deviceService.getById(1);
-        jobService.loginTask(2L, device);
-        ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
-        return result;
-    }
-
-    @GetMapping("task33")
-    public void task1(HttpServletResponse response) throws Exception {
-        File f = new File("C:\\Users\\宋英豪\\Desktop\\OKR\\2.png");
-        if (!f.exists()) {
-            return;
-        }
-        BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
-        byte[] buf = new byte[1024];
-        int len = 0;
-        response.reset(); // 非常重要
-        // 纯下载方式
-        response.setContentType("application/x-msdownload");
-        response.setHeader("Content-Disposition", "attachment; filename=" + f.getName());
-        OutputStream out = response.getOutputStream();
-        while ((len = br.read(buf)) > 0) {
-            out.write(buf, 0, len);
-        }
-        br.close();
-        out.close();
-    }
 }

+ 0 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/ICrawlerService.java

@@ -1,11 +1,7 @@
 package org.jeecg.modules.ctop.service;
 
-import org.jeecg.modules.ctop.vo.KuaishouAppiumJobVO;
-
 import java.util.Map;
 
 public interface ICrawlerService {
-    Map<String, Object> startJob(KuaishouAppiumJobVO jobVO);
-
     Map<String, Object> loadInspiration();
 }

+ 0 - 93
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/CrawlerServiceImpl.java

@@ -1,16 +1,7 @@
 package org.jeecg.modules.ctop.service.impl;
 
-import cn.com.ctop.common.module.entity.BindAccountLogin;
 import cn.com.ctop.common.module.service.IBindAccountLoginService;
 import cn.com.ctop.common.module.utils.HttpUtils;
-import cn.com.ctop.common.module.utils.ResultMapUtils;
-import cn.com.ctop.common.module.utils.StatusCode;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumDevice;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskLog;
-import cn.com.ctop.crawler.modules.appium.mapper.AppiumTaskLogMapper;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumDeviceService;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumJobService;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumTaskService;
 import cn.com.ctop.crawler.modules.kuaishoucce.entity.KuaishouEffectAdInfo;
 import cn.com.ctop.crawler.modules.kuaishoucce.entity.KuaishouHotPhotoInfo;
 import cn.com.ctop.crawler.modules.kuaishoucce.entity.KuaishouInspiredAd;
@@ -21,7 +12,6 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.modules.ctop.service.ICrawlerService;
-import org.jeecg.modules.ctop.vo.KuaishouAppiumJobVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -30,7 +20,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
 
 @Service
 @Slf4j
@@ -38,88 +27,6 @@ public class CrawlerServiceImpl implements ICrawlerService {
     static ExecutorService executorService = null;
     @Autowired
     private IBindAccountLoginService bindAccountLoginService;
-    @Autowired
-    private IAppiumJobService jobService;
-    @Autowired
-    private IAppiumTaskService taskService;
-    @Autowired
-    private IAppiumDeviceService deviceService;
-    @Autowired
-    private AppiumTaskLogMapper taskLogMapper;
-
-    @Override
-    public Map<String, Object> startJob(KuaishouAppiumJobVO jobVO) {
-        Map<String, Object> result = new HashMap<>();
-        //1:根据id查询快手账号信息
-        BindAccountLogin accountLogin = bindAccountLoginService.getById(jobVO.getAccountId());
-        if (null == accountLogin) {
-            ResultMapUtils.setResultMap(result, StatusCode.COMMON_PARAM_ERROR.getCode());
-            return result;
-        }
-        if (jobVO.getJobId() == null || jobVO.getJobId() == 0 || jobVO.getNum() == null || jobVO.getNum() == 0 || jobVO.getCreativeName() == null || "".equals(jobVO.getCreativeName()) || jobVO.getPublishName() == null || "".equals(jobVO.getPublishName().trim())) {
-            ResultMapUtils.setResultMap(result, StatusCode.COMMON_PARAM_ERROR.getCode());
-            return result;
-        }
-        Long num = jobVO.getNum();
-        //获取手机设备信息
-        AppiumDevice device = deviceService.getEnabled();
-        if (null == device || device.getStatus() != 1) {
-            ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_CRAWLER_APP_NO_ENABLED_DEVICE.getCode());
-            return result;
-        }
-        executorService = Executors.newFixedThreadPool(2);
-        executorService.submit(new Runnable() {
-            @Override
-            public void run() {
-                int i = 0;
-                while (i < num) {
-                    if (i > num) {
-                        break;
-                    }
-                    deviceService.updateById(device);
-                    AppiumTaskLog log = new AppiumTaskLog();
-                    log.setDeviceId(device.getId());
-                    log.setDeviceIp(device.getIp());
-                    log.setDevicePort(device.getPort());
-                    log.setStatus(1 + "");
-                    log.setTaskId(jobVO.getJobId());
-                    log.setTaskName("快手刷量任务");
-                    taskLogMapper.insert(log);
-                    log.setId(log.getId());
-                    try {
-                        //一键新机
-                        boolean success = jobService.refreshWebPhone();
-                        if (!success) {
-                            jobService.updateStatus(device, log, -4, 1);
-                            continue;
-                        }
-                        Thread.sleep(10000L);
-                        String ksId = jobService.loginTask(2L, device);
-                        if (null == ksId) {
-                            i++;
-                            jobService.updateStatus(device, log, -1, 1);
-                            continue;
-                        }
-                        boolean isBind = jobService.bindCreative(accountLogin.getAccountName(), accountLogin.getPassword(), jobVO.getPublishName(), ksId);
-                        if (!isBind) {
-                            i++;
-                            jobService.updateStatus(device, log, -2, 1);
-                            continue;
-                        }
-                        taskService.runTask(1L, device.getId(), jobVO.getPublishName());
-                        jobService.updateStatus(device, log, 2, 1);
-                        i++;
-                    } catch (Exception e) {
-                        jobService.updateStatus(device, log, -3, 1);
-                        i++;
-                        continue;
-                    }
-                }
-            }
-        });
-        ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_CRAWLER_APP_JOB_StART.getCode());
-        return result;
-    }
 
     @Override
     public Map<String, Object> loadInspiration() {

+ 2 - 9
jeecg-boot-module-system/src/main/java/org/jeecg/modules/fileupload/controller/FileController.java

@@ -37,14 +37,12 @@ public class FileController {
     }
 
 
-
     @RequestMapping("file/imageCheck")
-    public Map<String, Object> imageCheck(String code, Long projectId) {
-        return materialImageInfoService.checkMaterialInfo(code, projectId);
+    public Map<String, Object> imageCheck(String code, String videoId) {
+        return materialImageInfoService.checkMaterialInfo(code, videoId);
     }
 
 
-
     @PostMapping("/insertV2")
     public Map<String, Object> insertV2(@RequestBody JSONObject json) {
         LoginUser user = (LoginUser) SecurityUtils.getSubject()
@@ -55,8 +53,6 @@ public class FileController {
     }
 
 
-
-
     @PostMapping("/insertImage")
     public Map<String, Object> insertImage(@RequestBody JSONObject json) {
         LoginUser user = (LoginUser) SecurityUtils.getSubject()
@@ -67,9 +63,6 @@ public class FileController {
     }
 
 
-
-
-
     @PostMapping("file/insert")
     public Map<String, Object> insertFile(@RequestBody JSONObject json) {
         LoginUser user = (LoginUser) SecurityUtils.getSubject()

+ 0 - 6
module-common/src/main/java/cn/com/ctop/common/module/entity/MaterialImageInfo.java

@@ -82,12 +82,6 @@ public class MaterialImageInfo {
     @ApiModelProperty(value = "素材描述")
     private Object materialDescribe;
     /**
-     * 项目id
-     */
-    @Excel(name = "项目id", width = 15)
-    @ApiModelProperty(value = "项目id")
-    private Long projectId;
-    /**
      * 拒绝原因
      */
     @Excel(name = "拒绝原因", width = 15)

+ 3 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/MaterialImageInfoMapper.java

@@ -3,6 +3,8 @@ package cn.com.ctop.common.module.mapper;
 import cn.com.ctop.common.module.entity.MaterialImageInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * 素材
  *
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 public interface MaterialImageInfoMapper extends BaseMapper<MaterialImageInfo> {
     void insertSelective(MaterialImageInfo materialImageInfo);
 
+    List<String> getCodeList();
 }

+ 3 - 1
module-common/src/main/java/cn/com/ctop/common/module/mapper/MaterialInfoMapper.java

@@ -31,5 +31,7 @@ public interface MaterialInfoMapper extends BaseMapper<MaterialInfo> {
 
     List<String> getEffiSignature();
 
-    MaterialInfo getMaterialInfoByCode(@Param("code")String code);
+    MaterialInfo getMaterialInfoByCode(@Param("code") String code);
+
+    Long getProjectIdByAccountId(@Param("accountId") Long accountId);
 }

+ 44 - 43
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialImageInfoMapper.xml

@@ -2,121 +2,122 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.com.ctop.common.module.mapper.MaterialImageInfoMapper">
 
-    <insert id="insertSelective" parameterType="cn.com.ctop.common.module.entity.MaterialImageInfo" >
+    <insert id="insertSelective" parameterType="cn.com.ctop.common.module.entity.MaterialImageInfo">
         replace into ctop_material_image_info
-        <trim prefix="(" suffix=")" suffixOverrides="," >
-            <if test="id != null" >
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
                 id,
             </if>
-            <if test="code != null" >
+            <if test="code != null">
                 code,
             </if>
-            <if test="videoId != null" >
+            <if test="videoId != null">
                 video_id,
             </if>
-            <if test="materialName != null" >
+            <if test="materialName != null">
                 material_name,
             </if>
-            <if test="userId != null" >
+            <if test="userId != null">
                 user_id,
             </if>
-            <if test="auditorId != null" >
+            <if test="auditorId != null">
                 auditor_id,
             </if>
-            <if test="status != null" >
+            <if test="status != null">
                 status,
             </if>
-            <if test="projectId != null" >
-                project_id,
-            </if>
-            <if test="width != null" >
+
+            <if test="width != null">
                 width,
             </if>
-            <if test="type != null" >
+            <if test="type != null">
                 type,
             </if>
-            <if test="height != null" >
+            <if test="height != null">
                 height,
             </if>
-            <if test="size != null" >
+            <if test="size != null">
                 size,
             </if>
-            <if test="createTime != null" >
+            <if test="createTime != null">
                 create_time,
             </if>
-            <if test="updateTime != null" >
+            <if test="updateTime != null">
                 update_time,
             </if>
-            <if test="url != null" >
+            <if test="url != null">
                 url,
             </if>
-            <if test="materialDescribe != null" >
+            <if test="materialDescribe != null">
                 material_describe,
             </if>
-            <if test="refuseReason != null" >
+            <if test="refuseReason != null">
                 refuse_reason,
             </if>
-            <if test="refuseFile != null" >
+            <if test="refuseFile != null">
                 refuse_file,
             </if>
         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides="," >
-            <if test="id != null" >
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
                 #{id,jdbcType=VARCHAR},
             </if>
-            <if test="code != null" >
+            <if test="code != null">
                 #{code,jdbcType=VARCHAR},
             </if>
-            <if test="videoId != null" >
+            <if test="videoId != null">
                 #{videoId,jdbcType=VARCHAR},
             </if>
-            <if test="materialName != null" >
+            <if test="materialName != null">
                 #{materialName,jdbcType=VARCHAR},
             </if>
-            <if test="userId != null" >
+            <if test="userId != null">
                 #{userId,jdbcType=VARCHAR},
             </if>
-            <if test="auditorId != null" >
+            <if test="auditorId != null">
                 #{auditorId,jdbcType=VARCHAR},
             </if>
-            <if test="status != null" >
+            <if test="status != null">
                 #{status,jdbcType=INTEGER},
             </if>
-            <if test="projectId != null" >
-                #{projectId,jdbcType=BIGINT},
-            </if>
-            <if test="width != null" >
+
+            <if test="width != null">
                 #{width,jdbcType=VARCHAR},
             </if>
-            <if test="type != null" >
+            <if test="type != null">
                 #{type,jdbcType=VARCHAR},
             </if>
-            <if test="height != null" >
+            <if test="height != null">
                 #{height,jdbcType=VARCHAR},
             </if>
-            <if test="size != null" >
+            <if test="size != null">
                 #{size,jdbcType=VARCHAR},
             </if>
-            <if test="createTime != null" >
+            <if test="createTime != null">
                 #{createTime,jdbcType=TIMESTAMP},
             </if>
-            <if test="updateTime != null" >
+            <if test="updateTime != null">
                 #{updateTime,jdbcType=TIMESTAMP},
             </if>
-            <if test="url != null" >
+            <if test="url != null">
                 #{url},
             </if>
-            <if test="materialDescribe != null" >
+            <if test="materialDescribe != null">
                 #{materialDescribe},
             </if>
-            <if test="refuseReason != null" >
+            <if test="refuseReason != null">
                 #{refuseReason},
             </if>
-            <if test="refuseFile != null" >
+            <if test="refuseFile != null">
                 #{refuseFile},
             </if>
         </trim>
     </insert>
 
 
+    <select id="getCodeList" resultType="java.lang.String">
+
+     SELECT DISTINCT(code)  from  ctop_material_image_info
+    </select>
+
 </mapper>

+ 10 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialInfoMapper.xml

@@ -2,6 +2,16 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.com.ctop.common.module.mapper.MaterialInfoMapper">
 
+
+    <select id="getProjectIdByAccountId" resultType="java.lang.Long">
+
+       select
+       project_id
+       from ctop_user_allocation
+       where  account_id = #{accountId}
+
+    </select>
+
     <select id="selectUserNameById" resultType="java.lang.String">
    select realname from  sys_user where  id = #{auditorId}
     </select>

+ 5 - 1
module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialImageInfoService.java

@@ -4,6 +4,7 @@ import cn.com.ctop.common.module.entity.MaterialImageInfo;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -20,7 +21,10 @@ public interface IMaterialImageInfoService extends IService<MaterialImageInfo> {
      */
     void insertImage(JSONObject imageJson);
 
-    Map<String, Object> checkMaterialInfo(String code, Long projectId);
+    Map<String, Object> checkMaterialInfo(String code, String videoId);
 
 
+    List<String> getCodeList();
+
+    void getImageFile(String url, Long id);
 }

+ 100 - 28
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialImageInfoServiceImpl.java

@@ -4,18 +4,26 @@ import cn.com.ctop.common.module.entity.MaterialImageInfo;
 import cn.com.ctop.common.module.mapper.MaterialImageInfoMapper;
 import cn.com.ctop.common.module.service.IMaterialImageInfoService;
 import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.common.module.utils.LoadFileUtil;
 import cn.com.ctop.common.module.utils.ResultMapUtils;
 import cn.com.ctop.common.module.utils.StatusCode;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import it.sauronsoftware.jave.Encoder;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.nio.channels.FileChannel;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -31,6 +39,11 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
 
     @Value("${oss.replace.download}")
     private String downloadUrl;
+    @Value("${oss.replace.replace-value}")
+    private String replaceValue;
+    @Value("${oss.replace.replace-old-value}")
+    private String replaceOldValue;
+
 
     @Autowired
     private MaterialImageInfoMapper materialImageInfoMapper;
@@ -38,48 +51,62 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
 
     @Override
     public void insertImage(JSONObject imageJson) {
-        String videoId = imageJson.getString("videoId");
-        if (Check.isNull(videoId)) {
-            log.error("视频id不能为空");
+        try {
 
-        }
-        String userId = imageJson.getString("userId");
-        Long projectId = imageJson.getLong("projectId");
-        JSONArray imageArr = imageJson.getJSONArray("imageArr");
-        for (int i = 0; i < imageArr.size(); i++) {
-            JSONObject json = imageArr.getJSONObject(i);
-            if (!Check.isNull(json)) {
-                MaterialImageInfo materialImageInfo = new MaterialImageInfo();
-                materialImageInfo.setVideoId(videoId);
-                materialImageInfo.setCode(json.getString("code"));
-                materialImageInfo.setMaterialDescribe(json.getString("materialDescribe"));
-                materialImageInfo.setType("IMAGE");
-                materialImageInfo.setHeight(json.getString("height"));
-                materialImageInfo.setWidth(json.getString("width"));
-
-
-                materialImageInfo.setSize(String.valueOf(json.getLong("size") / 1024));
-                materialImageInfo.setUrl("https:" + json.getString("url"));
-                materialImageInfo.setMaterialName(json.getString("materialName"));
-                materialImageInfo.setStatus(0);
-                materialImageInfo.setProjectId(projectId);
-                materialImageInfo.setUserId(userId);
-                materialImageInfoMapper.insertSelective(materialImageInfo);
+            String videoId = imageJson.getString("videoId");
+            if (Check.isNull(videoId)) {
+                log.error("视频id不能为空");
 
             }
+            String userId = imageJson.getString("userId");
+            JSONArray imageArr = imageJson.getJSONArray("imageArr");
+            for (int i = 0; i < imageArr.size(); i++) {
+                JSONObject json = imageArr.getJSONObject(i);
+                if (!Check.isNull(json)) {
+                    MaterialImageInfo materialImageInfo = new MaterialImageInfo();
+                    materialImageInfo.setVideoId(videoId);
+                    materialImageInfo.setCode(json.getString("code"));
+                    materialImageInfo.setMaterialDescribe(json.getString("materialDescribe"));
+                    materialImageInfo.setType("IMAGE");
+                    String url = "https:" + json.getString("url");
+                    materialImageInfo.setUrl(url);
+                    materialImageInfo.setMaterialName(json.getString("materialName"));
+                    materialImageInfo.setStatus(0);
+                    materialImageInfo.setUserId(userId);
+                    String replaceUrl = url.replace(replaceOldValue, replaceValue);
+                    log.info("图片replaceUrl:{}", url);
+                    String localUrl = LoadFileUtil.downLoadFromUrl(replaceUrl, downloadUrl);
+                    File file = new File(localUrl);
+                    it.sauronsoftware.jave.Encoder encoder = new Encoder();
+                    it.sauronsoftware.jave.MultimediaInfo m = encoder.getInfo(file);
+                    String width = String.valueOf((m.getVideo().getSize().getWidth()));
+                    String height = String.valueOf(m.getVideo().getSize().getHeight());
+                    FileInputStream fis = new FileInputStream(file);
+                    FileChannel fc = fis.getChannel();
+                    BigDecimal fileSize = new BigDecimal(fc.size());
+                    String size = String.valueOf(fileSize.divide(new BigDecimal(1024), 2, RoundingMode.HALF_UP));
+                    materialImageInfo.setSize(size);
+                    materialImageInfo.setWidth(width);
+                    materialImageInfo.setHeight(height);
+                    materialImageInfoMapper.insertSelective(materialImageInfo);
+                    LoadFileUtil.delFile(localUrl);
+                }
 
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
         }
 
     }
 
     @Override
-    public Map<String, Object> checkMaterialInfo(String code, Long projectId) {
+    public Map<String, Object> checkMaterialInfo(String code, String videoId) {
 
 
         Map<String, Object> result = new HashMap<>();
         QueryWrapper<MaterialImageInfo> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("code", code);
-        queryWrapper.eq("project_id", projectId);
+        queryWrapper.eq("video_id", videoId);
         queryWrapper.last("limit 1");
         MaterialImageInfo info = this.getOne(queryWrapper);
         if (null != info) {
@@ -96,4 +123,49 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
     }
 
 
+    @Override
+    public void getImageFile(String url, Long id) {
+
+        try {
+            if (!Check.isNull(url)) {
+                long l = System.currentTimeMillis();
+                String replaceUrl = url.replace(replaceOldValue, replaceValue);
+                log.info("图片replaceUrl:{}", url);
+                String localUrl = LoadFileUtil.downLoadFromUrl(replaceUrl, downloadUrl);
+                File file = new File(localUrl);
+                it.sauronsoftware.jave.Encoder encoder = new Encoder();
+                try {
+                    it.sauronsoftware.jave.MultimediaInfo m = encoder.getInfo(file);
+                    MaterialImageInfo imageInfo = new MaterialImageInfo();
+                    imageInfo.setId(id);
+                    String width = String.valueOf((m.getVideo().getSize().getWidth()));
+                    String height = String.valueOf(m.getVideo().getSize().getHeight());
+                    FileInputStream fis = new FileInputStream(file);
+                    FileChannel fc = fis.getChannel();
+                    BigDecimal fileSize = new BigDecimal(fc.size());
+                    String size = String.valueOf(fileSize.divide(new BigDecimal(1024), 2, RoundingMode.HALF_UP));
+                    imageInfo.setSize(size);
+                    imageInfo.setWidth(width);
+                    imageInfo.setHeight(height);
+                    this.updateById(imageInfo);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                } finally {
+                    file.delete();
+                }
+            }
+        } catch (
+                Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
+    @Override
+    public List<String> getCodeList() {
+        return materialImageInfoMapper.getCodeList();
+    }
+
+
 }

+ 13 - 12
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java

@@ -196,7 +196,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
         info.setType(type);
         this.save(info);
         Map<String, Object> deleteMap = new HashMap<>();
-        deleteMap.put("material_id", info.getId());
+        deleteMap.put("material_id", info.getCode());
         JSONObject ascription = jsonObject.getJSONObject("ascription");
         if (!Check.isNull(ascription)) {
             MaterialAscription materialAscription = new MaterialAscription();
@@ -245,8 +245,6 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
 
     //@Autowired
     //private MaterialInfoMapper materialInfoMapper;
-
-
     @Override
     public JSONObject getDetail(String materialId) {
         JSONObject json = new JSONObject();
@@ -346,7 +344,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
                             long duration = m.getDuration();
                             long secondDuration = duration / 1000;
                             MaterialParameter materialParameter = new MaterialParameter();
-                            materialParameter.setMaterialId(materialInfo.getId());
+                            materialParameter.setMaterialId(materialInfo.getCode());
                             // 视频秒数
                             materialParameter.setSecond(secondDuration);
                             // 视频格式
@@ -474,7 +472,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
             JSONArray imageArr = json.getJSONArray("imageArr");
             if (!Check.isNull(imageArr)) {
                 JSONObject imageJson = new JSONObject();
-                imageJson.put("videoId", info.getId());
+                imageJson.put("videoId", info.getCode());
                 imageJson.put("userId", userId);
                 imageJson.put("projectId", projectId);
                 imageJson.put("imageArr", imageArr);
@@ -482,11 +480,11 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
             }
 
             Map<String, Object> deleteMap = new HashMap<>();
-            deleteMap.put("material_id", info.getId());
+            deleteMap.put("material_id", info.getCode());
             JSONObject ascription = json.getJSONObject("ascription");
             if (!Check.isNull(ascription)) {
                 MaterialAscription materialAscription = new MaterialAscription();
-                materialAscription.setMaterialId(info.getId());
+                materialAscription.setMaterialId(info.getCode());
                 // 剪辑人
                 materialAscription.setClipId(ascription.getString("clipId"));
                 // 拍摄人id
@@ -510,7 +508,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
                     String tagStr = tag.getString(i);
                     if (!Check.isNull(tagStr)) {
                         MaterialTag materialTag = new MaterialTag();
-                        materialTag.setMaterialId(info.getId());
+                        materialTag.setMaterialId(info.getCode());
                         materialTag.setTag(tagStr);
                         materialTagMapper.insert(materialTag);
                     }
@@ -546,17 +544,17 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
         return resultMap;
     }
 
-    public List<String> getEffiCode(){
+    public List<String> getEffiCode() {
         return materialInfoMapper.getEffiSignature();
     }
 
-    public List<MaterialInfo> effiMaterialInfo(){
+    public List<MaterialInfo> effiMaterialInfo() {
         List<MaterialInfo> materialInfoList = new ArrayList<>();
         List<String> effiSignatureList = materialInfoMapper.getEffiSignature();
-        for(String code:effiSignatureList){
+        for (String code : effiSignatureList) {
             MaterialInfo materialInfo = materialInfoMapper.getMaterialInfoByCode(code);
 
-            if (materialInfo == null){
+            if (materialInfo == null) {
                 continue;
             }
             //判断是否已经同步到快手平台
@@ -580,4 +578,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
     }
 
 
+
+
+
 }

+ 2 - 2
module-common/src/main/java/cn/com/ctop/common/module/utils/LoadFileUtil.java

@@ -38,7 +38,7 @@ public class LoadFileUtil {
         }
         String localPath = saveDir + File.separator + fileName;
         File file = new File(localPath);
-        if (!file.exists()){
+        if (!file.exists()) {
             file.getParentFile().mkdirs();
         }
         FileOutputStream fos = new FileOutputStream(file);
@@ -76,7 +76,7 @@ public class LoadFileUtil {
         boolean flag = false;
         File file = new File(path);
         if (!file.exists()) {
-            return flag;
+            return false;
         }
         try {
             flag = file.delete();

+ 2 - 2
module-common/src/main/java/cn/com/ctop/common/module/utils/RandomUtil.java

@@ -9,8 +9,8 @@ public class RandomUtil {
         char[] c = charArray();//获取包含26个字母大小写和数字的字符数组
 
         Random rd = new Random();
-        String code = "_";
-        for (int k = 0; k <= 4; k++) {
+        String code = "#";
+        for (int k = 0; k < 4; k++) {
             int index = rd.nextInt(c.length);//随机获取数组长度作为索引
             code += c[index];//循环添加到字符串后面
         }

+ 0 - 249
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumDeviceController.java

@@ -1,249 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.controller;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.common.util.oConvertUtils;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumDevice;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumDeviceService;
-import java.util.Date;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-
-/**
- * 手机设备表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-@Slf4j
-@Api(tags = "手机设备表")
-@RestController
-@RequestMapping("/appium/appiumDevice")
-public class AppiumDeviceController {
-    @Autowired
-    private IAppiumDeviceService appiumDeviceService;
-
-    /**
-     * 分页列表查询
-     *
-     * @param appiumDevice
-     * @param pageNo
-     * @param pageSize
-     * @param req
-     * @return
-     */
-    @AutoLog(value = "手机设备表-分页列表查询")
-    @ApiOperation(value = "手机设备表-分页列表查询", notes = "手机设备表-分页列表查询")
-    @GetMapping(value = "/list")
-    public Result<IPage<AppiumDevice>> queryPageList(AppiumDevice appiumDevice,
-                                                     @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                                     @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                                     HttpServletRequest req) {
-        Result<IPage<AppiumDevice>> result = new Result<IPage<AppiumDevice>>();
-        QueryWrapper<AppiumDevice> queryWrapper = QueryGenerator.initQueryWrapper(appiumDevice, req.getParameterMap());
-        Page<AppiumDevice> page = new Page<AppiumDevice>(pageNo, pageSize);
-        IPage<AppiumDevice> pageList = appiumDeviceService.page(page, queryWrapper);
-        result.setSuccess(true);
-        result.setResult(pageList);
-        return result;
-    }
-
-    /**
-     * 添加
-     *
-     * @param appiumDevice
-     * @return
-     */
-    @AutoLog(value = "手机设备表-添加")
-    @ApiOperation(value = "手机设备表-添加", notes = "手机设备表-添加")
-    @PostMapping(value = "/add")
-    public Result<AppiumDevice> add(@RequestBody AppiumDevice appiumDevice) {
-        Result<AppiumDevice> result = new Result<AppiumDevice>();
-        try {
-            appiumDeviceService.save(appiumDevice);
-            result.success("添加成功!");
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            result.error500("操作失败");
-        }
-        return result;
-    }
-
-    /**
-     * 编辑
-     *
-     * @param appiumDevice
-     * @return
-     */
-    @AutoLog(value = "手机设备表-编辑")
-    @ApiOperation(value = "手机设备表-编辑", notes = "手机设备表-编辑")
-    @PutMapping(value = "/edit")
-    public Result<AppiumDevice> edit(@RequestBody AppiumDevice appiumDevice) {
-        Result<AppiumDevice> result = new Result<AppiumDevice>();
-        AppiumDevice appiumDeviceEntity = appiumDeviceService.getById(appiumDevice.getId());
-        if (appiumDeviceEntity == null) {
-            result.error500("未找到对应实体");
-        } else {
-            boolean ok = appiumDeviceService.updateById(appiumDevice);
-            if (ok) {
-                result.success("修改成功!");
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * 通过id删除
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "手机设备表-通过id删除")
-    @ApiOperation(value = "手机设备表-通过id删除", notes = "手机设备表-通过id删除")
-    @DeleteMapping(value = "/delete")
-    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
-        try {
-            appiumDeviceService.removeById(id);
-        } catch (Exception e) {
-            log.error("删除失败", e.getMessage());
-            return Result.error("删除失败!");
-        }
-        return Result.ok("删除成功!");
-    }
-
-    /**
-     * 批量删除
-     *
-     * @param ids
-     * @return
-     */
-    @AutoLog(value = "手机设备表-批量删除")
-    @ApiOperation(value = "手机设备表-批量删除", notes = "手机设备表-批量删除")
-    @DeleteMapping(value = "/deleteBatch")
-    public Result<AppiumDevice> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
-        Result<AppiumDevice> result = new Result<AppiumDevice>();
-        if (ids == null || "".equals(ids.trim())) {
-            result.error500("参数不识别!");
-        } else {
-            this.appiumDeviceService.removeByIds(Arrays.asList(ids.split(",")));
-            result.success("删除成功!");
-        }
-        return result;
-    }
-
-    /**
-     * 通过id查询
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "手机设备表-通过id查询")
-    @ApiOperation(value = "手机设备表-通过id查询", notes = "手机设备表-通过id查询")
-    @GetMapping(value = "/queryById")
-    public Result<AppiumDevice> queryById(@RequestParam(name = "id", required = true) String id) {
-        Result<AppiumDevice> result = new Result<AppiumDevice>();
-        AppiumDevice appiumDevice = appiumDeviceService.getById(id);
-        if (appiumDevice == null) {
-            result.error500("未找到对应实体");
-        } else {
-            result.setResult(appiumDevice);
-            result.setSuccess(true);
-        }
-        return result;
-    }
-
-    /**
-     * 导出excel
-     *
-     * @param request
-     * @param response
-     */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
-        // Step.1 组装查询条件
-        QueryWrapper<AppiumDevice> queryWrapper = null;
-        try {
-            String paramsStr = request.getParameter("paramsStr");
-            if (oConvertUtils.isNotEmpty(paramsStr)) {
-                String deString = URLDecoder.decode(paramsStr, "UTF-8");
-                AppiumDevice appiumDevice = JSON.parseObject(deString, AppiumDevice.class);
-                queryWrapper = QueryGenerator.initQueryWrapper(appiumDevice, request.getParameterMap());
-            }
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-        }
-
-        //Step.2 AutoPoi 导出Excel
-        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-        List<AppiumDevice> pageList = appiumDeviceService.list(queryWrapper);
-        //导出文件名称
-        mv.addObject(NormalExcelConstants.FILE_NAME, "手机设备表列表");
-        mv.addObject(NormalExcelConstants.CLASS, AppiumDevice.class);
-        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("手机设备表列表数据", "导出人:Jeecg", "导出信息"));
-        mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
-        return mv;
-    }
-
-    /**
-     * 通过excel导入数据
-     *
-     * @param request
-     * @param response
-     * @return
-     */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-            MultipartFile file = entity.getValue();
-            ImportParams params = new ImportParams();
-            params.setTitleRows(2);
-            params.setHeadRows(1);
-            params.setNeedSave(true);
-            try {
-                List<AppiumDevice> listAppiumDevices = ExcelImportUtil.importExcel(file.getInputStream(), AppiumDevice.class, params);
-                appiumDeviceService.saveBatch(listAppiumDevices);
-                return Result.ok("文件导入成功!数据行数:" + listAppiumDevices.size());
-            } catch (Exception e) {
-                log.error(e.getMessage(), e);
-                return Result.error("文件导入失败:" + e.getMessage());
-            } finally {
-                try {
-                    file.getInputStream().close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-        return Result.ok("文件导入失败!");
-    }
-
-}

+ 0 - 265
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumJobBindTaskInfoController.java

@@ -1,265 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.controller;
-
-import cn.com.ctop.common.module.utils.ResultMapUtils;
-import cn.com.ctop.common.module.utils.StatusCode;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumJobBindTaskInfo;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumJobBindTaskInfoService;
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.*;
-
-/**
- * 爬虫调度任务绑定信息
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-14
- */
-@Slf4j
-@Api(tags = "爬虫调度任务绑定信息")
-@RestController
-@RequestMapping("/ctop/appiumJobBindTaskInfo")
-public class AppiumJobBindTaskInfoController {
-    @Autowired
-    private IAppiumJobBindTaskInfoService appiumJobBindTaskInfoService;
-
-    /**
-     * 分页列表查询
-     *
-     * @param appiumJobBindTaskInfo
-     * @param pageNo
-     * @param pageSize
-     * @param req
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务绑定信息-分页列表查询")
-    @ApiOperation(value = "爬虫调度任务绑定信息-分页列表查询", notes = "爬虫调度任务绑定信息-分页列表查询")
-    @GetMapping(value = "/list")
-    public Result<IPage<AppiumJobBindTaskInfo>> queryPageList(AppiumJobBindTaskInfo appiumJobBindTaskInfo,
-                                                              @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                                              @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                                              HttpServletRequest req) {
-        Result<IPage<AppiumJobBindTaskInfo>> result = new Result<>();
-        QueryWrapper<AppiumJobBindTaskInfo> queryWrapper = QueryGenerator.initQueryWrapper(appiumJobBindTaskInfo, req.getParameterMap());
-        Page<AppiumJobBindTaskInfo> page = new Page<>(pageNo, pageSize);
-        IPage<AppiumJobBindTaskInfo> pageList = appiumJobBindTaskInfoService.page(page, queryWrapper);
-        result.setSuccess(true);
-        result.setResult(pageList);
-        return result;
-    }
-
-    /**
-     * 添加
-     *
-     * @param appiumJobBindTaskInfo
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务绑定信息-添加")
-    @ApiOperation(value = "爬虫调度任务绑定信息-添加", notes = "爬虫调度任务绑定信息-添加")
-    @PostMapping(value = "/add")
-    public Result<AppiumJobBindTaskInfo> add(@RequestBody AppiumJobBindTaskInfo appiumJobBindTaskInfo) {
-        Result<AppiumJobBindTaskInfo> result = new Result<>();
-        try {
-            appiumJobBindTaskInfoService.save(appiumJobBindTaskInfo);
-            result.success("添加成功!");
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            result.error500("操作失败");
-        }
-        return result;
-    }
-
-    /**
-     * 编辑
-     *
-     * @param appiumJobBindTaskInfo
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务绑定信息-编辑")
-    @ApiOperation(value = "爬虫调度任务绑定信息-编辑", notes = "爬虫调度任务绑定信息-编辑")
-    @PutMapping(value = "/edit")
-    public Result<AppiumJobBindTaskInfo> edit(@RequestBody AppiumJobBindTaskInfo appiumJobBindTaskInfo) {
-        Result<AppiumJobBindTaskInfo> result = new Result<>();
-        AppiumJobBindTaskInfo appiumJobBindTaskInfoEntity = appiumJobBindTaskInfoService.getById(appiumJobBindTaskInfo.getId());
-        if (appiumJobBindTaskInfoEntity == null) {
-            result.error500("未找到对应实体");
-        } else {
-            boolean ok = appiumJobBindTaskInfoService.updateById(appiumJobBindTaskInfo);
-            if (ok) {
-                result.success("修改成功!");
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * 通过id删除
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务绑定信息-通过id删除")
-    @ApiOperation(value = "爬虫调度任务绑定信息-通过id删除", notes = "爬虫调度任务绑定信息-通过id删除")
-    @DeleteMapping(value = "/delete")
-    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
-        try {
-            appiumJobBindTaskInfoService.removeById(id);
-        } catch (Exception e) {
-            log.error("删除失败", e.getMessage());
-            return Result.error("删除失败!");
-        }
-        return Result.ok("删除成功!");
-    }
-
-    /**
-     * 批量删除
-     *
-     * @param ids
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务绑定信息-批量删除")
-    @ApiOperation(value = "爬虫调度任务绑定信息-批量删除", notes = "爬虫调度任务绑定信息-批量删除")
-    @DeleteMapping(value = "/deleteBatch")
-    public Result<AppiumJobBindTaskInfo> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
-        Result<AppiumJobBindTaskInfo> result = new Result<>();
-        if (ids == null || "".equals(ids.trim())) {
-            result.error500("参数不识别!");
-        } else {
-            this.appiumJobBindTaskInfoService.removeByIds(Arrays.asList(ids.split(",")));
-            result.success("删除成功!");
-        }
-        return result;
-    }
-
-    /**
-     * 通过id查询
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务绑定信息-通过id查询")
-    @ApiOperation(value = "爬虫调度任务绑定信息-通过id查询", notes = "爬虫调度任务绑定信息-通过id查询")
-    @GetMapping(value = "/queryById")
-    public Result<AppiumJobBindTaskInfo> queryById(@RequestParam(name = "id", required = true) String id) {
-        Result<AppiumJobBindTaskInfo> result = new Result<>();
-        AppiumJobBindTaskInfo appiumJobBindTaskInfo = appiumJobBindTaskInfoService.getById(id);
-        if (appiumJobBindTaskInfo == null) {
-            result.error500("未找到对应实体");
-        } else {
-            result.setResult(appiumJobBindTaskInfo);
-            result.setSuccess(true);
-        }
-        return result;
-    }
-
-    /**
-     * 导出excel
-     *
-     * @param request
-     * @param response
-     */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
-        // Step.1 组装查询条件
-        QueryWrapper<AppiumJobBindTaskInfo> queryWrapper = null;
-        try {
-            String paramsStr = request.getParameter("paramsStr");
-            if (oConvertUtils.isNotEmpty(paramsStr)) {
-                String deString = URLDecoder.decode(paramsStr, "UTF-8");
-                AppiumJobBindTaskInfo appiumJobBindTaskInfo = JSON.parseObject(deString, AppiumJobBindTaskInfo.class);
-                queryWrapper = QueryGenerator.initQueryWrapper(appiumJobBindTaskInfo, request.getParameterMap());
-            }
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-        }
-
-        //Step.2 AutoPoi 导出Excel
-        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-        List<AppiumJobBindTaskInfo> pageList = appiumJobBindTaskInfoService.list(queryWrapper);
-        //导出文件名称
-        mv.addObject(NormalExcelConstants.FILE_NAME, "爬虫调度任务绑定信息列表");
-        mv.addObject(NormalExcelConstants.CLASS, AppiumJobBindTaskInfo.class);
-        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("爬虫调度任务绑定信息列表数据", "导出人:Jeecg", "导出信息"));
-        mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
-        return mv;
-    }
-
-    /**
-     * 通过excel导入数据
-     *
-     * @param request
-     * @param response
-     * @return
-     */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-            MultipartFile file = entity.getValue();
-            ImportParams params = new ImportParams();
-            params.setTitleRows(2);
-            params.setHeadRows(1);
-            params.setNeedSave(true);
-            try {
-                List<AppiumJobBindTaskInfo> listAppiumJobBindTaskInfos = ExcelImportUtil.importExcel(file.getInputStream(), AppiumJobBindTaskInfo.class, params);
-                appiumJobBindTaskInfoService.saveBatch(listAppiumJobBindTaskInfos);
-                return Result.ok("文件导入成功!数据行数:" + listAppiumJobBindTaskInfos.size());
-            } catch (Exception e) {
-                log.error(e.getMessage(), e);
-                return Result.error("文件导入失败:" + e.getMessage());
-            } finally {
-                try {
-                    file.getInputStream().close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-        return Result.ok("文件导入失败!");
-    }
-
-    @PostMapping("bindInfo")
-    public Map<String, Object> bindInfo(Long jobId, Long taskId) {
-        Map<String, Object> result = new HashMap<>();
-        if (null == jobId || jobId == 0 || null == taskId || taskId == 0) {
-            ResultMapUtils.setResultMap(result, StatusCode.COMMON_PARAM_ERROR.getCode());
-            return result;
-        }
-        AppiumJobBindTaskInfo taskInfo = new AppiumJobBindTaskInfo();
-        taskInfo.setJobId(jobId);
-        taskInfo.setTaskId(taskId);
-        taskInfo.setStatus(1);
-        Date now = new Date();
-        taskInfo.setCreateTime(now);
-        taskInfo.setUpdateTime(now);
-        appiumJobBindTaskInfoService.save(taskInfo);
-        return result;
-    }
-}

+ 0 - 247
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumJobController.java

@@ -1,247 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.controller;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumJob;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumJobService;
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 爬虫调度任务
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-14
- */
-@Slf4j
-@Api(tags = "爬虫调度任务")
-@RestController
-@RequestMapping("/ctop/appiumJob")
-public class AppiumJobController {
-    @Autowired
-    private IAppiumJobService appiumJobService;
-
-    /**
-     * 分页列表查询
-     *
-     * @param appiumJob
-     * @param pageNo
-     * @param pageSize
-     * @param req
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务-分页列表查询")
-    @ApiOperation(value = "爬虫调度任务-分页列表查询", notes = "爬虫调度任务-分页列表查询")
-    @GetMapping(value = "/list")
-    public Result<IPage<AppiumJob>> queryPageList(AppiumJob appiumJob,
-                                                  @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                                  @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                                  HttpServletRequest req) {
-        Result<IPage<AppiumJob>> result = new Result<>();
-        QueryWrapper<AppiumJob> queryWrapper = QueryGenerator.initQueryWrapper(appiumJob, req.getParameterMap());
-        Page<AppiumJob> page = new Page<>(pageNo, pageSize);
-        IPage<AppiumJob> pageList = appiumJobService.page(page, queryWrapper);
-        result.setSuccess(true);
-        result.setResult(pageList);
-        return result;
-    }
-
-    /**
-     * 添加
-     *
-     * @param appiumJob
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务-添加")
-    @ApiOperation(value = "爬虫调度任务-添加", notes = "爬虫调度任务-添加")
-    @PostMapping(value = "/add")
-    public Result<AppiumJob> add(@RequestBody AppiumJob appiumJob) {
-        Result<AppiumJob> result = new Result<>();
-        try {
-            appiumJobService.save(appiumJob);
-            result.success("添加成功!");
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            result.error500("操作失败");
-        }
-        return result;
-    }
-
-    /**
-     * 编辑
-     *
-     * @param appiumJob
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务-编辑")
-    @ApiOperation(value = "爬虫调度任务-编辑", notes = "爬虫调度任务-编辑")
-    @PutMapping(value = "/edit")
-    public Result<AppiumJob> edit(@RequestBody AppiumJob appiumJob) {
-        Result<AppiumJob> result = new Result<>();
-        AppiumJob appiumJobEntity = appiumJobService.getById(appiumJob.getId());
-        if (appiumJobEntity == null) {
-            result.error500("未找到对应实体");
-        } else {
-            boolean ok = appiumJobService.updateById(appiumJob);
-            if (ok) {
-                result.success("修改成功!");
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * 通过id删除
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务-通过id删除")
-    @ApiOperation(value = "爬虫调度任务-通过id删除", notes = "爬虫调度任务-通过id删除")
-    @DeleteMapping(value = "/delete")
-    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
-        try {
-            appiumJobService.removeById(id);
-        } catch (Exception e) {
-            log.error("删除失败", e.getMessage());
-            return Result.error("删除失败!");
-        }
-        return Result.ok("删除成功!");
-    }
-
-    /**
-     * 批量删除
-     *
-     * @param ids
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务-批量删除")
-    @ApiOperation(value = "爬虫调度任务-批量删除", notes = "爬虫调度任务-批量删除")
-    @DeleteMapping(value = "/deleteBatch")
-    public Result<AppiumJob> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
-        Result<AppiumJob> result = new Result<>();
-        if (ids == null || "".equals(ids.trim())) {
-            result.error500("参数不识别!");
-        } else {
-            this.appiumJobService.removeByIds(Arrays.asList(ids.split(",")));
-            result.success("删除成功!");
-        }
-        return result;
-    }
-
-    /**
-     * 通过id查询
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "爬虫调度任务-通过id查询")
-    @ApiOperation(value = "爬虫调度任务-通过id查询", notes = "爬虫调度任务-通过id查询")
-    @GetMapping(value = "/queryById")
-    public Result<AppiumJob> queryById(@RequestParam(name = "id", required = true) String id) {
-        Result<AppiumJob> result = new Result<>();
-        AppiumJob appiumJob = appiumJobService.getById(id);
-        if (appiumJob == null) {
-            result.error500("未找到对应实体");
-        } else {
-            result.setResult(appiumJob);
-            result.setSuccess(true);
-        }
-        return result;
-    }
-
-    /**
-     * 导出excel
-     *
-     * @param request
-     * @param response
-     */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
-        // Step.1 组装查询条件
-        QueryWrapper<AppiumJob> queryWrapper = null;
-        try {
-            String paramsStr = request.getParameter("paramsStr");
-            if (oConvertUtils.isNotEmpty(paramsStr)) {
-                String deString = URLDecoder.decode(paramsStr, "UTF-8");
-                AppiumJob appiumJob = JSON.parseObject(deString, AppiumJob.class);
-                queryWrapper = QueryGenerator.initQueryWrapper(appiumJob, request.getParameterMap());
-            }
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-        }
-
-        //Step.2 AutoPoi 导出Excel
-        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-        List<AppiumJob> pageList = appiumJobService.list(queryWrapper);
-        //导出文件名称
-        mv.addObject(NormalExcelConstants.FILE_NAME, "爬虫调度任务列表");
-        mv.addObject(NormalExcelConstants.CLASS, AppiumJob.class);
-        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("爬虫调度任务列表数据", "导出人:Jeecg", "导出信息"));
-        mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
-        return mv;
-    }
-
-    /**
-     * 通过excel导入数据
-     *
-     * @param request
-     * @param response
-     * @return
-     */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-            MultipartFile file = entity.getValue();
-            ImportParams params = new ImportParams();
-            params.setTitleRows(2);
-            params.setHeadRows(1);
-            params.setNeedSave(true);
-            try {
-                List<AppiumJob> listAppiumJobs = ExcelImportUtil.importExcel(file.getInputStream(), AppiumJob.class, params);
-                appiumJobService.saveBatch(listAppiumJobs);
-                return Result.ok("文件导入成功!数据行数:" + listAppiumJobs.size());
-            } catch (Exception e) {
-                log.error(e.getMessage(), e);
-                return Result.error("文件导入失败:" + e.getMessage());
-            } finally {
-                try {
-                    file.getInputStream().close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-        return Result.ok("文件导入失败!");
-    }
-}

+ 0 - 258
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumTaskController.java

@@ -1,258 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.controller;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTask;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumTaskService;
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 任务表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-@Slf4j
-@Api(tags = "任务表")
-@RestController
-@RequestMapping("/appium/appiumTask")
-public class AppiumTaskController {
-    @Autowired
-    private IAppiumTaskService appiumTaskService;
-
-    /**
-     * 分页列表查询
-     *
-     * @param appiumTask
-     * @param pageNo
-     * @param pageSize
-     * @param req
-     * @return
-     */
-    @AutoLog(value = "任务表-分页列表查询")
-    @ApiOperation(value = "任务表-分页列表查询", notes = "任务表-分页列表查询")
-    @GetMapping(value = "/list")
-    public Result<IPage<AppiumTask>> queryPageList(AppiumTask appiumTask,
-                                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                                   HttpServletRequest req) {
-        Result<IPage<AppiumTask>> result = new Result<IPage<AppiumTask>>();
-        QueryWrapper<AppiumTask> queryWrapper = QueryGenerator.initQueryWrapper(appiumTask, req.getParameterMap());
-        Page<AppiumTask> page = new Page<AppiumTask>(pageNo, pageSize);
-        IPage<AppiumTask> pageList = appiumTaskService.page(page, queryWrapper);
-        result.setSuccess(true);
-        result.setResult(pageList);
-        return result;
-    }
-
-    /**
-     * 添加
-     *
-     * @param appiumTask
-     * @return
-     */
-    @AutoLog(value = "任务表-添加")
-    @ApiOperation(value = "任务表-添加", notes = "任务表-添加")
-    @PostMapping(value = "/add")
-    public Result<AppiumTask> add(@RequestBody AppiumTask appiumTask) {
-        Result<AppiumTask> result = new Result<AppiumTask>();
-        try {
-            appiumTaskService.save(appiumTask);
-            result.success("添加成功!");
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            result.error500("操作失败");
-        }
-        return result;
-    }
-
-    /**
-     * 编辑
-     *
-     * @param appiumTask
-     * @return
-     */
-    @AutoLog(value = "任务表-编辑")
-    @ApiOperation(value = "任务表-编辑", notes = "任务表-编辑")
-    @PutMapping(value = "/edit")
-    public Result<AppiumTask> edit(@RequestBody AppiumTask appiumTask) {
-        Result<AppiumTask> result = new Result<AppiumTask>();
-        AppiumTask appiumTaskEntity = appiumTaskService.getById(appiumTask.getId());
-        if (appiumTaskEntity == null) {
-            result.error500("未找到对应实体");
-        } else {
-            boolean ok = appiumTaskService.updateById(appiumTask);
-            if (ok) {
-                result.success("修改成功!");
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * 通过id删除
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "任务表-通过id删除")
-    @ApiOperation(value = "任务表-通过id删除", notes = "任务表-通过id删除")
-    @DeleteMapping(value = "/delete")
-    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
-        try {
-            appiumTaskService.removeById(id);
-        } catch (Exception e) {
-            log.error("删除失败", e.getMessage());
-            return Result.error("删除失败!");
-        }
-        return Result.ok("删除成功!");
-    }
-
-    /**
-     * 批量删除
-     *
-     * @param ids
-     * @return
-     */
-    @AutoLog(value = "任务表-批量删除")
-    @ApiOperation(value = "任务表-批量删除", notes = "任务表-批量删除")
-    @DeleteMapping(value = "/deleteBatch")
-    public Result<AppiumTask> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
-        Result<AppiumTask> result = new Result<AppiumTask>();
-        if (ids == null || "".equals(ids.trim())) {
-            result.error500("参数不识别!");
-        } else {
-            this.appiumTaskService.removeByIds(Arrays.asList(ids.split(",")));
-            result.success("删除成功!");
-        }
-        return result;
-    }
-
-    /**
-     * 通过id查询
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "任务表-通过id查询")
-    @ApiOperation(value = "任务表-通过id查询", notes = "任务表-通过id查询")
-    @GetMapping(value = "/queryById")
-    public Result<AppiumTask> queryById(@RequestParam(name = "id", required = true) String id) {
-        Result<AppiumTask> result = new Result<AppiumTask>();
-        AppiumTask appiumTask = appiumTaskService.getById(id);
-        if (appiumTask == null) {
-            result.error500("未找到对应实体");
-        } else {
-            result.setResult(appiumTask);
-            result.setSuccess(true);
-        }
-        return result;
-    }
-
-    /**
-     * 导出excel
-     *
-     * @param request
-     * @param response
-     */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
-        // Step.1 组装查询条件
-        QueryWrapper<AppiumTask> queryWrapper = null;
-        try {
-            String paramsStr = request.getParameter("paramsStr");
-            if (oConvertUtils.isNotEmpty(paramsStr)) {
-                String deString = URLDecoder.decode(paramsStr, "UTF-8");
-                AppiumTask appiumTask = JSON.parseObject(deString, AppiumTask.class);
-                queryWrapper = QueryGenerator.initQueryWrapper(appiumTask, request.getParameterMap());
-            }
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-        }
-
-        //Step.2 AutoPoi 导出Excel
-        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-        List<AppiumTask> pageList = appiumTaskService.list(queryWrapper);
-        //导出文件名称
-        mv.addObject(NormalExcelConstants.FILE_NAME, "任务表列表");
-        mv.addObject(NormalExcelConstants.CLASS, AppiumTask.class);
-        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("任务表列表数据", "导出人:Jeecg", "导出信息"));
-        mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
-        return mv;
-    }
-
-    @RequestMapping(value = "/run/login", method = RequestMethod.POST)
-    public Result<?> runLogin(HttpServletRequest request, HttpServletResponse response, Integer taskId, Integer deviceId) {
-        Thread thread = new Thread() {
-            @Override
-            public void run() {
-                appiumTaskService.runKuaishouLoginTask();
-            }
-        };
-        thread.start();
-        return Result.ok("任务已启动");
-    }
-    /**
-     * 通过excel导入数据
-     *
-     * @param request
-     * @param response
-     * @return
-     */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-            MultipartFile file = entity.getValue();
-            ImportParams params = new ImportParams();
-            params.setTitleRows(2);
-            params.setHeadRows(1);
-            params.setNeedSave(true);
-            try {
-                List<AppiumTask> listAppiumTasks = ExcelImportUtil.importExcel(file.getInputStream(), AppiumTask.class, params);
-                appiumTaskService.saveBatch(listAppiumTasks);
-                return Result.ok("文件导入成功!数据行数:" + listAppiumTasks.size());
-            } catch (Exception e) {
-                log.error(e.getMessage(), e);
-                return Result.error("文件导入失败:" + e.getMessage());
-            } finally {
-                try {
-                    file.getInputStream().close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-        return Result.ok("文件导入失败!");
-    }
-
-}

+ 0 - 247
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumTaskItemController.java

@@ -1,247 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.controller;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskItem;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumTaskItemService;
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 任务内容表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-@Slf4j
-@Api(tags = "任务内容表")
-@RestController
-@RequestMapping("/appium/appiumTaskItem")
-public class AppiumTaskItemController {
-    @Autowired
-    private IAppiumTaskItemService appiumTaskItemService;
-
-    /**
-     * 分页列表查询
-     *
-     * @param appiumTaskItem
-     * @param pageNo
-     * @param pageSize
-     * @param req
-     * @return
-     */
-    @AutoLog(value = "任务内容表-分页列表查询")
-    @ApiOperation(value = "任务内容表-分页列表查询", notes = "任务内容表-分页列表查询")
-    @GetMapping(value = "/list")
-    public Result<IPage<AppiumTaskItem>> queryPageList(AppiumTaskItem appiumTaskItem,
-                                                       @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                                       @RequestParam(name = "pageSize", defaultValue = "100") Integer pageSize,
-                                                       HttpServletRequest req) {
-        Result<IPage<AppiumTaskItem>> result = new Result<IPage<AppiumTaskItem>>();
-        QueryWrapper<AppiumTaskItem> queryWrapper = QueryGenerator.initQueryWrapper(appiumTaskItem, req.getParameterMap());
-        Page<AppiumTaskItem> page = new Page<AppiumTaskItem>(pageNo, pageSize);
-        IPage<AppiumTaskItem> pageList = appiumTaskItemService.page(page, queryWrapper);
-        result.setSuccess(true);
-        result.setResult(pageList);
-        return result;
-    }
-
-    /**
-     * 添加
-     *
-     * @param appiumTaskItem
-     * @return
-     */
-    @AutoLog(value = "任务内容表-添加")
-    @ApiOperation(value = "任务内容表-添加", notes = "任务内容表-添加")
-    @PostMapping(value = "/add")
-    public Result<AppiumTaskItem> add(@RequestBody AppiumTaskItem appiumTaskItem) {
-        Result<AppiumTaskItem> result = new Result<AppiumTaskItem>();
-        try {
-            appiumTaskItemService.save(appiumTaskItem);
-            result.success("添加成功!");
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            result.error500("操作失败");
-        }
-        return result;
-    }
-
-    /**
-     * 编辑
-     *
-     * @param appiumTaskItem
-     * @return
-     */
-    @AutoLog(value = "任务内容表-编辑")
-    @ApiOperation(value = "任务内容表-编辑", notes = "任务内容表-编辑")
-    @PutMapping(value = "/edit")
-    public Result<AppiumTaskItem> edit(@RequestBody AppiumTaskItem appiumTaskItem) {
-        Result<AppiumTaskItem> result = new Result<AppiumTaskItem>();
-        AppiumTaskItem appiumTaskItemEntity = appiumTaskItemService.getById(appiumTaskItem.getId());
-        if (appiumTaskItemEntity == null) {
-            result.error500("未找到对应实体");
-        } else {
-            boolean ok = appiumTaskItemService.updateById(appiumTaskItem);
-            if (ok) {
-                result.success("修改成功!");
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * 通过id删除
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "任务内容表-通过id删除")
-    @ApiOperation(value = "任务内容表-通过id删除", notes = "任务内容表-通过id删除")
-    @DeleteMapping(value = "/delete")
-    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
-        try {
-            appiumTaskItemService.removeById(id);
-        } catch (Exception e) {
-            log.error("删除失败", e.getMessage());
-            return Result.error("删除失败!");
-        }
-        return Result.ok("删除成功!");
-    }
-
-    /**
-     * 批量删除
-     *
-     * @param ids
-     * @return
-     */
-    @AutoLog(value = "任务内容表-批量删除")
-    @ApiOperation(value = "任务内容表-批量删除", notes = "任务内容表-批量删除")
-    @DeleteMapping(value = "/deleteBatch")
-    public Result<AppiumTaskItem> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
-        Result<AppiumTaskItem> result = new Result<AppiumTaskItem>();
-        if (ids == null || "".equals(ids.trim())) {
-            result.error500("参数不识别!");
-        } else {
-            this.appiumTaskItemService.removeByIds(Arrays.asList(ids.split(",")));
-            result.success("删除成功!");
-        }
-        return result;
-    }
-
-    /**
-     * 通过id查询
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "任务内容表-通过id查询")
-    @ApiOperation(value = "任务内容表-通过id查询", notes = "任务内容表-通过id查询")
-    @GetMapping(value = "/queryById")
-    public Result<AppiumTaskItem> queryById(@RequestParam(name = "id", required = true) String id) {
-        Result<AppiumTaskItem> result = new Result<AppiumTaskItem>();
-        AppiumTaskItem appiumTaskItem = appiumTaskItemService.getById(id);
-        if (appiumTaskItem == null) {
-            result.error500("未找到对应实体");
-        } else {
-            result.setResult(appiumTaskItem);
-            result.setSuccess(true);
-        }
-        return result;
-    }
-
-    /**
-     * 导出excel
-     *
-     * @param request
-     * @param response
-     */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
-        // Step.1 组装查询条件
-        QueryWrapper<AppiumTaskItem> queryWrapper = null;
-        try {
-            String paramsStr = request.getParameter("paramsStr");
-            if (oConvertUtils.isNotEmpty(paramsStr)) {
-                String deString = URLDecoder.decode(paramsStr, "UTF-8");
-                AppiumTaskItem appiumTaskItem = JSON.parseObject(deString, AppiumTaskItem.class);
-                queryWrapper = QueryGenerator.initQueryWrapper(appiumTaskItem, request.getParameterMap());
-            }
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-        }
-
-        //Step.2 AutoPoi 导出Excel
-        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-        List<AppiumTaskItem> pageList = appiumTaskItemService.list(queryWrapper);
-        //导出文件名称
-        mv.addObject(NormalExcelConstants.FILE_NAME, "任务内容表列表");
-        mv.addObject(NormalExcelConstants.CLASS, AppiumTaskItem.class);
-        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("任务内容表列表数据", "导出人:Jeecg", "导出信息"));
-        mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
-        return mv;
-    }
-
-    /**
-     * 通过excel导入数据
-     *
-     * @param request
-     * @param response
-     * @return
-     */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-            MultipartFile file = entity.getValue();
-            ImportParams params = new ImportParams();
-            params.setTitleRows(2);
-            params.setHeadRows(1);
-            params.setNeedSave(true);
-            try {
-                List<AppiumTaskItem> listAppiumTaskItems = ExcelImportUtil.importExcel(file.getInputStream(), AppiumTaskItem.class, params);
-                appiumTaskItemService.saveBatch(listAppiumTaskItems);
-                return Result.ok("文件导入成功!数据行数:" + listAppiumTaskItems.size());
-            } catch (Exception e) {
-                log.error(e.getMessage(), e);
-                return Result.error("文件导入失败:" + e.getMessage());
-            } finally {
-                try {
-                    file.getInputStream().close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-        return Result.ok("文件导入失败!");
-    }
-
-}

+ 0 - 164
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/controller/AppiumTaskLogController.java

@@ -1,164 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.controller;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskLog;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumTaskLogService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Arrays;
-
-/**
- * 任务日志表
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-01
- */
-@Slf4j
-@Api(tags = "任务日志表")
-@RestController
-@RequestMapping("/appium/appiumTaskLog")
-public class AppiumTaskLogController {
-    @Autowired
-    private IAppiumTaskLogService appiumTaskLogService;
-
-    /**
-     * 分页列表查询
-     *
-     * @param appiumTaskLog
-     * @param pageNo
-     * @param pageSize
-     * @param req
-     * @return
-     */
-    @AutoLog(value = "任务日志表-分页列表查询")
-    @ApiOperation(value = "任务日志表-分页列表查询", notes = "任务日志表-分页列表查询")
-    @GetMapping(value = "/list")
-    public Result<IPage<AppiumTaskLog>> queryPageList(AppiumTaskLog appiumTaskLog,
-                                                      @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                                      @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                                      HttpServletRequest req) {
-        Result<IPage<AppiumTaskLog>> result = new Result<>();
-        QueryWrapper<AppiumTaskLog> queryWrapper = QueryGenerator.initQueryWrapper(appiumTaskLog, req.getParameterMap());
-        Page<AppiumTaskLog> page = new Page<>(pageNo, pageSize);
-        IPage<AppiumTaskLog> pageList = appiumTaskLogService.page(page, queryWrapper);
-        result.setSuccess(true);
-        result.setResult(pageList);
-        return result;
-    }
-
-    /**
-     * 添加
-     *
-     * @param appiumTaskLog
-     * @return
-     */
-    @AutoLog(value = "任务日志表-添加")
-    @ApiOperation(value = "任务日志表-添加", notes = "任务日志表-添加")
-    @PostMapping(value = "/add")
-    public Result<AppiumTaskLog> add(@RequestBody AppiumTaskLog appiumTaskLog) {
-        Result<AppiumTaskLog> result = new Result<>();
-        try {
-            appiumTaskLogService.save(appiumTaskLog);
-            result.success("添加成功!");
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            result.error500("操作失败");
-        }
-        return result;
-    }
-
-    /**
-     * 编辑
-     *
-     * @param appiumTaskLog
-     * @return
-     */
-    @AutoLog(value = "任务日志表-编辑")
-    @ApiOperation(value = "任务日志表-编辑", notes = "任务日志表-编辑")
-    @PutMapping(value = "/edit")
-    public Result<AppiumTaskLog> edit(@RequestBody AppiumTaskLog appiumTaskLog) {
-        Result<AppiumTaskLog> result = new Result<>();
-        AppiumTaskLog appiumTaskLogEntity = appiumTaskLogService.getById(appiumTaskLog.getId());
-        if (appiumTaskLogEntity == null) {
-            result.error500("未找到对应实体");
-        } else {
-            boolean ok = appiumTaskLogService.updateById(appiumTaskLog);
-            if (ok) {
-                result.success("修改成功!");
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * 通过id删除
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "任务日志表-通过id删除")
-    @ApiOperation(value = "任务日志表-通过id删除", notes = "任务日志表-通过id删除")
-    @DeleteMapping(value = "/delete")
-    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
-        try {
-            appiumTaskLogService.removeById(id);
-        } catch (Exception e) {
-            log.error("删除失败", e.getMessage());
-            return Result.error("删除失败!");
-        }
-        return Result.ok("删除成功!");
-    }
-
-    /**
-     * 批量删除
-     *
-     * @param ids
-     * @return
-     */
-    @AutoLog(value = "任务日志表-批量删除")
-    @ApiOperation(value = "任务日志表-批量删除", notes = "任务日志表-批量删除")
-    @DeleteMapping(value = "/deleteBatch")
-    public Result<AppiumTaskLog> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
-        Result<AppiumTaskLog> result = new Result<>();
-        if (ids == null || "".equals(ids.trim())) {
-            result.error500("参数不识别!");
-        } else {
-            this.appiumTaskLogService.removeByIds(Arrays.asList(ids.split(",")));
-            result.success("删除成功!");
-        }
-        return result;
-    }
-
-    /**
-     * 通过id查询
-     *
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "任务日志表-通过id查询")
-    @ApiOperation(value = "任务日志表-通过id查询", notes = "任务日志表-通过id查询")
-    @GetMapping(value = "/queryById")
-    public Result<AppiumTaskLog> queryById(@RequestParam(name = "id", required = true) String id) {
-        Result<AppiumTaskLog> result = new Result<>();
-        AppiumTaskLog appiumTaskLog = appiumTaskLogService.getById(id);
-        if (appiumTaskLog == null) {
-            result.error500("未找到对应实体");
-        } else {
-            result.setResult(appiumTaskLog);
-            result.setSuccess(true);
-        }
-        return result;
-    }
-}

+ 0 - 62
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumDevice.java

@@ -1,62 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.jeecgframework.poi.excel.annotation.Excel;
-
-import java.util.Date;
-
-/**
- * 手机设备表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-@Data
-@TableName("ctop_appium_device")
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@ApiModel(value = "ctop_appium_device对象", description = "手机设备表")
-public class AppiumDevice {
-
-    /**
-     * 主键
-     */
-    @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "主键")
-    private Integer id;
-    /**
-     * IP
-     */
-    @Excel(name = "IP", width = 15)
-    @ApiModelProperty(value = "IP")
-    private String ip;
-    /**
-     * 端口号
-     */
-    @Excel(name = "端口号", width = 15)
-    @ApiModelProperty(value = "端口号")
-    private String port;
-    /**
-     * 状态
-     */
-    @Excel(name = "状态", width = 15)
-    @ApiModelProperty(value = "状态")
-    private Integer status;
-    /**
-     * createTime
-     */
-    @ApiModelProperty(value = "createTime")
-    private Date createTime;
-    /**
-     * updateTime
-     */
-    @ApiModelProperty(value = "updateTime")
-    private Date updateTime;
-}

+ 0 - 57
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumJob.java

@@ -1,57 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.jeecgframework.poi.excel.annotation.Excel;
-
-import java.util.Date;
-
-/**
- * 爬虫调度任务
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-14
- */
-@Data
-@TableName("ctop_appium_job")
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@ApiModel(value = "ctop_appium_job对象", description = "爬虫调度任务")
-public class AppiumJob {
-
-    /**
-     * id
-     */
-    @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "id")
-    private Long id;
-    /**
-     * 调度任务名称
-     */
-    @Excel(name = "调度任务名称", width = 15)
-    @ApiModelProperty(value = "调度任务名称")
-    private String jobName;
-    /**
-     * status
-     */
-    @Excel(name = "status", width = 15)
-    @ApiModelProperty(value = "status")
-    private Integer status;
-    /**
-     * createTime
-     */
-    @ApiModelProperty(value = "createTime")
-    private Date createTime;
-    /**
-     * updateTime
-     */
-    @ApiModelProperty(value = "updateTime")
-    private Date updateTime;
-}

+ 0 - 63
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumJobBindTaskInfo.java

@@ -1,63 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.jeecgframework.poi.excel.annotation.Excel;
-
-import java.util.Date;
-
-/**
- * 爬虫调度任务绑定信息
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-14
- */
-@Data
-@TableName("ctop_appium_job_bind_task_info")
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@ApiModel(value = "ctop_appium_job_bind_task_info对象", description = "爬虫调度任务绑定信息")
-public class AppiumJobBindTaskInfo {
-
-    /**
-     * id
-     */
-    @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "id")
-    private Long id;
-    /**
-     * 任务号
-     */
-    @Excel(name = "任务号", width = 15)
-    @ApiModelProperty(value = "任务号")
-    private Long jobId;
-    /**
-     * 执行任务id
-     */
-    @Excel(name = "执行任务id", width = 15)
-    @ApiModelProperty(value = "执行任务id")
-    private Long taskId;
-    /**
-     * 任务绑定状态
-     */
-    @Excel(name = "任务绑定状态", width = 15)
-    @ApiModelProperty(value = "任务绑定状态")
-    private Integer status;
-    /**
-     * createTime
-     */
-    @ApiModelProperty(value = "createTime")
-    private Date createTime;
-    /**
-     * updateTime
-     */
-    @ApiModelProperty(value = "updateTime")
-    private Date updateTime;
-}

+ 0 - 66
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumTask.java

@@ -1,66 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.jeecgframework.poi.excel.annotation.Excel;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * 任务表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-@Data
-@TableName("ctop_appium_task")
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@ApiModel(value = "ctop_appium_task对象", description = "任务表")
-public class AppiumTask {
-
-    /**
-     * 主键
-     */
-    @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "主键")
-    private Integer id;
-    /**
-     * 任务名称
-     */
-    @Excel(name = "任务名称", width = 15)
-    @ApiModelProperty(value = "任务名称")
-    private String taskName;
-    /**
-     * APP包名
-     */
-    @Excel(name = "APP包名", width = 15)
-    @ApiModelProperty(value = "APP包名")
-    private String appPackage;
-    /**
-     * APP界面名
-     */
-    @Excel(name = "APP界面名", width = 15)
-    @ApiModelProperty(value = "APP界面名")
-    private String appActivity;
-    /**
-     * createTime
-     */
-    @ApiModelProperty(value = "createTime")
-    private Date createTime;
-    /**
-     * updateTime
-     */
-    @ApiModelProperty(value = "updateTime")
-    private Date updateTime;
-    @TableField(exist = false)
-    private List<AppiumTask> subList;
-}

+ 0 - 152
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumTaskItem.java

@@ -1,152 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.jeecgframework.poi.excel.annotation.Excel;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * 任务内容表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-@Data
-@TableName("ctop_appium_task_item")
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@ApiModel(value = "ctop_appium_task_item对象", description = "任务内容表")
-public class AppiumTaskItem {
-
-	/**
-	 * 主键
-	 */
-	@TableId(type = IdType.AUTO)
-	@ApiModelProperty(value = "主键")
-	private Integer id;
-	/**
-	 * 任务ID
-	 */
-	@Excel(name = "任务ID", width = 15)
-	@ApiModelProperty(value = "任务ID")
-	private Long taskId;
-	/**
-	 * 父ID
-	 */
-	@Excel(name = "父ID", width = 15)
-	@ApiModelProperty(value = "父ID")
-	private Integer parentId;
-	/**
-	 * 顺序
-	 */
-	@Excel(name = "顺序", width = 15)
-	@ApiModelProperty(value = "顺序")
-	private Integer seq;
-	/**
-	 * 查找类型
-	 */
-	@Excel(name = "查找类型", width = 15)
-	@ApiModelProperty(value = "查找类型")
-	private String findType;
-
-    @Excel(name = "名称", width = 15)
-    @ApiModelProperty(value = "名称")
-    private String name;
-	/**
-	 * 查找关键字
-	 */
-	@Excel(name = "查找关键字", width = 15)
-	@ApiModelProperty(value = "查找关键字")
-	private String findKey;
-	/**
-	 * 点击类型
-	 */
-	@Excel(name = "点击类型", width = 15)
-	@ApiModelProperty(value = "点击类型")
-	private String clickType;
-	/**
-	 * 偏移量X
-	 */
-	@Excel(name = "偏移量X", width = 15)
-	@ApiModelProperty(value = "偏移量X")
-	private Integer offsiteX;
-	/**
-	 * 偏移量Y
-	 */
-	@Excel(name = "偏移量Y", width = 15)
-	@ApiModelProperty(value = "偏移量Y")
-	private Integer offsiteY;
-	/**
-	 * 循环间隔
-	 */
-	@Excel(name = "循环间隔", width = 15)
-	@ApiModelProperty(value = "循环间隔")
-	private Integer loopRate;
-	/**
-	 * 循环类型
-	 */
-	@Excel(name = "循环类型", width = 15)
-	@ApiModelProperty(value = "循环类型")
-	private String loopType;
-	/**
-	 * 是否必经执行
-	 */
-	@Excel(name = "是否必经执行", width = 15)
-	@ApiModelProperty(value = "是否必经执行")
-	private Integer isMust;
-	/**
-	 * 文本查找类型
-	 */
-	@Excel(name = "文本查找类型", width = 15)
-	@ApiModelProperty(value = "文本查找类型")
-	private String textEqualType;
-	/**
-	 * 文本查找关键字
-	 */
-	@Excel(name = "文本查找关键字", width = 15)
-	@ApiModelProperty(value = "文本查找关键字")
-	private String textEqualKey;
-	/**
-	 * 滑动类型
-	 */
-	@Excel(name = "滑动类型", width = 15)
-	@ApiModelProperty(value = "滑动类型")
-	private String swapType;
-	/**
-	 * 延迟时长
-	 */
-	@Excel(name = "延迟时长", width = 15)
-	@ApiModelProperty(value = "延迟时长")
-	private Integer waitTime;
-	/**
-	 * 是否执行完关闭
-	 */
-	@Excel(name = "是否执行完关闭", width = 15)
-	@ApiModelProperty(value = "是否执行完关闭")
-	private Integer isClose;
-	/**
-	 * createTime
-	 */
-    @ApiModelProperty(value = "createTime")
-	private Date createTime;
-	/**updateTime*/
-    @ApiModelProperty(value = "updateTime")
-	private Date updateTime;
-
-    @ApiModelProperty(value = "appPackage")
-    private String appPackage;
-    @ApiModelProperty(value = "appActivity")
-    private String appActivity;
-
-    @TableField(exist = false)
-    private List<AppiumTaskItem> subList;
-}

+ 0 - 83
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/entity/AppiumTaskLog.java

@@ -1,83 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.jeecg.common.aspect.annotation.Dict;
-import org.jeecgframework.poi.excel.annotation.Excel;
-
-import java.util.Date;
-
-/**
- * 任务日志表
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-01
- */
-@Data
-@TableName("ctop_appium_task_log")
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@ApiModel(value = "ctop_appium_task_log对象", description = "任务日志表")
-public class AppiumTaskLog {
-
-    /**
-     * 主键
-     */
-    @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "主键")
-    private Long id;
-    /**
-     * 任务ID
-     */
-    @Excel(name = "任务ID", width = 15)
-    @ApiModelProperty(value = "任务ID")
-    private Long taskId;
-    /**
-     * 设备ID
-     */
-    @Excel(name = "设备ID", width = 15)
-    @ApiModelProperty(value = "设备ID")
-    private Integer deviceId;
-    /**
-     * 任务名称
-     */
-    @Excel(name = "任务名称", width = 15)
-    @ApiModelProperty(value = "任务名称")
-    private String taskName;
-    /**
-     * 设备IP
-     */
-    @Excel(name = "设备IP", width = 15)
-    @ApiModelProperty(value = "设备IP")
-    private String deviceIp;
-    /**
-     * 设备端口
-     */
-    @Excel(name = "设备端口", width = 15)
-    @ApiModelProperty(value = "设备端口")
-    private String devicePort;
-    /**
-     * 状态
-     */
-    @Excel(name = "状态", width = 15)
-    @Dict(dicCode = "appium_ks_log_status")
-    @ApiModelProperty(value = "状态")
-    private String status;
-    /**
-     * 创建时间
-     */
-    @ApiModelProperty(value = "创建时间")
-    private Date createTime;
-    /**
-     * 修改时间
-     */
-    @ApiModelProperty(value = "修改时间")
-    private Date updateTime;
-}

+ 0 - 17
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumDeviceMapper.java

@@ -1,17 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.mapper;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumDevice;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * 手机设备表
- * @author: jeecg-boot
- * @date: 2019-10-31
- * @cersion: V1.0
- */
-public interface AppiumDeviceMapper extends BaseMapper<AppiumDevice> {
-
-}

+ 0 - 15
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumJobBindTaskInfoMapper.java

@@ -1,15 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.mapper;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumJobBindTaskInfo;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * 爬虫调度任务绑定信息
- *
- * @author: jeecg-boot
- * @date: 2019-11-14
- * @cersion: V1.0
- */
-public interface AppiumJobBindTaskInfoMapper extends BaseMapper<AppiumJobBindTaskInfo> {
-
-}

+ 0 - 21
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumJobMapper.java

@@ -1,21 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.mapper;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumJob;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTask;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * 爬虫调度任务
- *
- * @author: jeecg-boot
- * @date: 2019-11-14
- * @cersion: V1.0
- */
-public interface AppiumJobMapper extends BaseMapper<AppiumJob> {
-
-    List<AppiumTask> getTaskByJobId(@Param(value = "jobId") Long jobId);
-
-}

+ 0 - 18
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumTaskItemMapper.java

@@ -1,18 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.mapper;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskItem;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * 任务内容表
- * @author: jeecg-boot
- * @date: 2019-10-31
- * @cersion: V1.0
- */
-public interface AppiumTaskItemMapper extends BaseMapper<AppiumTaskItem> {
-
-    List<AppiumTaskItem> selectByParams(@Param(value = "package") String packageName, @Param(value = "activity") String activityName, @Param(value = "taskId") Long taskId);
-}

+ 0 - 18
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumTaskLogMapper.java

@@ -1,18 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.mapper;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskLog;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * 任务日志表
- *
- * @author: jeecg-boot
- * @date: 2019-11-01
- * @cersion: V1.0
- */
-public interface AppiumTaskLogMapper extends BaseMapper<AppiumTaskLog> {
-
-}

+ 0 - 17
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/AppiumTaskMapper.java

@@ -1,17 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.mapper;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTask;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * 任务表
- * @author: jeecg-boot
- * @date: 2019-10-31
- * @cersion: V1.0
- */
-public interface AppiumTaskMapper extends BaseMapper<AppiumTask> {
-
-}

+ 0 - 5
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumDeviceMapper.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.com.ctop.crawler.modules.appium.mapper.AppiumDeviceMapper">
-
-</mapper>

+ 0 - 5
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumJobBindTaskInfoMapper.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.com.ctop.crawler.modules.appium.mapper.AppiumJobBindTaskInfoMapper">
-
-</mapper>

+ 0 - 11
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumJobMapper.xml

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.com.ctop.crawler.modules.appium.mapper.AppiumJobMapper">
-    <select id="getTaskByJobId" resultType="cn.com.ctop.crawler.modules.appium.entity.AppiumTask">
-        select
-            *
-        from
-         ctop_appium_task task
-        left join ctop_appium_job_bind_task_info bindinfo on task.job_id = bindinfo.job_id
-    </select>
-</mapper>

+ 0 - 22
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumTaskItemMapper.xml

@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.com.ctop.crawler.modules.appium.mapper.AppiumTaskItemMapper">
-    <select id="selectByParams" resultType="cn.com.ctop.crawler.modules.appium.entity.AppiumTaskItem">
-        select
-        *
-        from
-        ctop_appium_task_item
-        where
-        1=1
-        <if test="null!=package">
-            and app_package = #{package}
-        </if>
-        <if test="null!=activity">
-            and app_activity = #{activity}
-        </if>
-        <if test="null!=taskId">
-            and task_id = #{taskId}
-        </if>
-        order by id desc
-    </select>
-</mapper>

+ 0 - 5
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumTaskLogMapper.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.com.ctop.crawler.modules.appium.mapper.AppiumTaskLogMapper">
-
-</mapper>

+ 0 - 5
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/mapper/xml/AppiumTaskMapper.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.com.ctop.crawler.modules.appium.mapper.AppiumTaskMapper">
-
-</mapper>

+ 0 - 15
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumDeviceService.java

@@ -1,15 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumDevice;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * 手机设备表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-public interface IAppiumDeviceService extends IService<AppiumDevice> {
-
-    AppiumDevice getEnabled();
-}

+ 0 - 15
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumJobBindTaskInfoService.java

@@ -1,15 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumJobBindTaskInfo;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * 爬虫调度任务绑定信息
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-14
- */
-public interface IAppiumJobBindTaskInfoService extends IService<AppiumJobBindTaskInfo> {
-
-}

+ 0 - 26
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumJobService.java

@@ -1,26 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumDevice;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumJob;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskLog;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * 爬虫调度任务
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-14
- */
-public interface IAppiumJobService extends IService<AppiumJob> {
-
-    String loginTask(Long taskId, AppiumDevice device);
-
-    boolean bindCreative(String account, String password, String creativeName, String ksId);
-
-    void loadTantanData();
-
-    boolean refreshWebPhone();
-
-    void updateStatus(AppiumDevice appiumDevice, AppiumTaskLog log, Integer logStatus, Integer deviceStatus);
-}

+ 0 - 23
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumTaskItemService.java

@@ -1,23 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskItem;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-import java.util.List;
-
-/**
- * 任务内容表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-public interface IAppiumTaskItemService extends IService<AppiumTaskItem> {
-    /**
-     * 查询任务列表
-     *
-     * @param taskId
-     * @param parentId
-     * @return
-     */
-    List<AppiumTaskItem> initTaskItemList(Long taskId, Integer parentId);
-}

+ 0 - 15
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumTaskLogService.java

@@ -1,15 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskLog;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * 任务日志表
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-01
- */
-public interface IAppiumTaskLogService extends IService<AppiumTaskLog> {
-
-}

+ 0 - 22
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/IAppiumTaskService.java

@@ -1,22 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTask;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * 任务表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-public interface IAppiumTaskService extends IService<AppiumTask> {
-    /**
-     * 执行任务
-     *
-     * @param taskId
-     * @param deviceId
-     */
-    public void runTask(Long taskId, Integer deviceId, String publishName);
-
-    public void runKuaishouLoginTask();
-}

+ 0 - 26
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumDeviceServiceImpl.java

@@ -1,26 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service.impl;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumDevice;
-import cn.com.ctop.crawler.modules.appium.mapper.AppiumDeviceMapper;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumDeviceService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import org.springframework.stereotype.Service;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * 手机设备表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-@Service
-public class AppiumDeviceServiceImpl extends ServiceImpl<AppiumDeviceMapper, AppiumDevice> implements IAppiumDeviceService {
-
-    @Override
-    public AppiumDevice getEnabled() {
-        QueryWrapper<AppiumDevice> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("status", 1).orderByDesc("id").last("limit 1");
-        return getOne(queryWrapper);
-    }
-}

+ 0 - 19
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumJobBindTaskInfoServiceImpl.java

@@ -1,19 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service.impl;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumJobBindTaskInfo;
-import cn.com.ctop.crawler.modules.appium.mapper.AppiumJobBindTaskInfoMapper;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumJobBindTaskInfoService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * 爬虫调度任务绑定信息
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-14
- */
-@Service
-public class AppiumJobBindTaskInfoServiceImpl extends ServiceImpl<AppiumJobBindTaskInfoMapper, AppiumJobBindTaskInfo> implements IAppiumJobBindTaskInfoService {
-
-}

+ 0 - 259
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumJobServiceImpl.java

@@ -1,259 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service.impl;
-
-import cn.com.ctop.common.module.utils.HttpUtils2;
-import cn.com.ctop.common.module.utils.ResultMapUtils;
-import cn.com.ctop.common.module.utils.StatusCode;
-import cn.com.ctop.crawler.modules.appium.entity.*;
-import cn.com.ctop.crawler.modules.appium.mapper.AppiumJobMapper;
-import cn.com.ctop.crawler.modules.appium.mapper.AppiumTaskItemMapper;
-import cn.com.ctop.crawler.modules.appium.mapper.AppiumTaskLogMapper;
-import cn.com.ctop.crawler.modules.appium.mapper.AppiumTaskMapper;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumDeviceService;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumJobService;
-import cn.com.ctop.crawler.modules.core.util.AppiumUtil;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import io.appium.java_client.android.AndroidDriver;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.http.impl.client.BasicCookieStore;
-import org.jeecg.common.util.DateUtils;
-import org.openqa.selenium.By;
-import org.openqa.selenium.WebDriver;
-import org.openqa.selenium.WebElement;
-import org.openqa.selenium.chrome.ChromeDriver;
-import org.openqa.selenium.chrome.ChromeOptions;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 爬虫调度任务
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-14
- */
-@Slf4j
-@Service
-public class AppiumJobServiceImpl extends ServiceImpl<AppiumJobMapper, AppiumJob> implements IAppiumJobService {
-    @Autowired
-    private AppiumTaskMapper taskMapper;
-    @Autowired
-    private AppiumTaskItemMapper taskItemMapper;
-    @Value("${jeecg.path.chrome-driver}")
-    private String chromeDriver;
-    @Autowired
-    private IAppiumDeviceService appiumDeviceService;
-    @Autowired
-    private AppiumTaskLogMapper appiumTaskLogMapper;
-
-    @Override
-    public String loginTask(Long taskId, AppiumDevice device) {
-        String kuaishouId = null;
-        try {
-            AppiumTask task = taskMapper.selectById(taskId);
-            AppiumUtil appiumUtil = new AppiumUtil();
-            AndroidDriver androidDriver = appiumUtil.initAndroidDriver("http://39.106.184.70:4723/wd/hub", device.getIp() + ":" + device.getPort(), task.getAppPackage(), task.getAppActivity());
-            Map<String, Object> result = new HashMap<>();
-            ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_CRAWLER_APP_SUCCESS.getCode());
-            boolean loop = true;
-            while (loop) {
-                Integer code = (Integer) result.get("code");
-                if (null != code && code != StatusCode.KUAISHOU_CRAWLER_APP_SUCCESS.getCode()) {
-                    kuaishouId = (String) result.get("kuaishouId");
-                    androidDriver.quit();
-                    break;
-                }
-                Thread.sleep(3000L);
-                String packageName = androidDriver.getCurrentPackage();
-                String activityName = androidDriver.currentActivity();
-                List<AppiumTaskItem> taskItems = taskItemMapper.selectByParams(packageName, activityName, taskId);
-                if (null != taskItems || taskItems.size() > 0) {
-                    for (AppiumTaskItem item : taskItems) {
-                        result = appiumUtil.runLoginTask(androidDriver, item, result);
-                    }
-                }
-                result = appiumUtil.checkMethod(androidDriver, activityName, result);
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return kuaishouId;
-    }
-
-    @Override
-    public boolean bindCreative(String account, String password, String creativeName, String ksId) {
-        boolean isBind = false;
-        String url = "https://ad.e.kuaishou.com/#/welcome?redirectUrl=https%3A%2F%2Fad.e.kuaishou.com%2F%23%2Findex";
-        System.getProperties().setProperty("webdriver.chrome.driver", chromeDriver);
-        ChromeOptions chromeOptions = new ChromeOptions();
-        chromeOptions.addArguments("--headless");
-        chromeOptions.addArguments("--incognito");
-        chromeOptions.addArguments("--disable-gpu");
-//        chromeOptions.addArguments("--no-sandbox");
-        chromeOptions.addArguments("--window-size=1920,1080");
-        chromeOptions.addArguments("--user-agent=" + HttpUtils2.USER_AGENT);
-        chromeOptions.setAcceptInsecureCerts(true);
-        WebDriver webDriver = new ChromeDriver(chromeOptions);
-        try {
-            Thread.sleep(3000L);
-            HttpUtils2.cookieStore = new BasicCookieStore();
-            webDriver.manage().deleteAllCookies();
-            //获取登录页面
-            webDriver.get(url);
-            Thread.sleep(3000L);
-            WebElement accountElement = webDriver.findElement(By.xpath("//div[@class='phone ']/input[@type='text']"));
-            accountElement.sendKeys(account);
-            Thread.sleep(3000L);
-            WebElement passwordElement = webDriver.findElement(By.xpath("//div[@class='password ']/input[@type='password']"));
-            passwordElement.sendKeys(password);
-            WebElement loginElement = webDriver.findElement(By.xpath("//div[@class='foot']"));
-            Thread.sleep(3000L);
-            //点击登录
-            loginElement.click();
-            Thread.sleep(3000L);
-            //获取推广按钮
-            WebElement spreadElement = webDriver.findElement(By.linkText("推广"));
-            spreadElement.click();
-            Thread.sleep(3000L);
-            //选择广告创意
-            WebElement creativeElement = webDriver.findElement(By.xpath("//div[text()='广告创意']"));
-            creativeElement.click();
-            Thread.sleep(3000L);
-            //输入创意名称,点击搜索
-            WebElement searchElement = webDriver.findElement(By.xpath("//input[@type='text']"));
-            searchElement.sendKeys(creativeName);
-            Thread.sleep(3000L);
-            WebElement searchButton = webDriver.findElement(By.xpath("//button[@class='ant-btn ant-input-search-button ant-btn-primary']"));
-            searchButton.click();
-            Thread.sleep(3000L);
-            WebElement tiyanElement = webDriver.findElement(By.linkText("体验"));
-            tiyanElement.click();
-            Thread.sleep(2000L);
-            WebElement inputKsIdElement = webDriver.findElement(By.xpath("//textarea[@placeholder='请输入快手账号…']"));
-            inputKsIdElement.sendKeys(ksId);
-            Thread.sleep(2000L);
-            WebElement chufaElement = webDriver.findElement(By.xpath("//button[@class='creative-experience-btn-enable']"));
-            chufaElement.click();
-            isBind = true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            log.error("绑定体验快手账号失败");
-            isBind = false;
-        } finally {
-            webDriver.manage().deleteAllCookies();
-            webDriver.close();
-        }
-        return isBind;
-    }
-
-    public static final String GET_AGENT_DATA_URL = "https://marketing.tantanapp.com/platform/ad_statistic/channel_report/table?level=agent&interval=hour&";
-
-    @Override
-    public void loadTantanData() {
-        String url = "https://marketing.tantanapp.com/login";
-        System.getProperties().setProperty("webdriver.chrome.driver", chromeDriver);
-        ChromeOptions chromeOptions = new ChromeOptions();
-//        chromeOptions.addArguments("--headless");
-        chromeOptions.addArguments("--incognito");
-        chromeOptions.addArguments("--disable-gpu");
-        chromeOptions.addArguments("--no-sandbox");
-        chromeOptions.addArguments("--window-size=1920,1080");
-        chromeOptions.addArguments("--user-agent=" + HttpUtils2.USER_AGENT);
-        chromeOptions.setAcceptInsecureCerts(true);
-        WebDriver webDriver = new ChromeDriver(chromeOptions);
-        try {
-            HttpUtils2.cookieStore = new BasicCookieStore();
-            webDriver.manage().deleteAllCookies();
-            //获取登录页面
-            webDriver.get(url);
-            Thread.sleep(1000L);
-            WebElement accountElement = webDriver.findElement(By.xpath("//input[@class='form-control user_name']"));
-            accountElement.sendKeys("huichuang");
-            Thread.sleep(1000L);
-            WebElement passwordElement = webDriver.findElement(By.xpath("//input[@class='form-control user_password']"));
-            passwordElement.sendKeys("2PitTUSFG7AgBWVfbnIC");
-            WebElement loginElement = webDriver.findElement(By.xpath("//button[@class='btn btn-primary block full-width m-b user_button']"));
-            Thread.sleep(2000L);
-            //点击登录
-            loginElement.click();
-            Thread.sleep(2000L);
-            String nowDate = DateUtils.formatDate(new Date());
-            String stDate = nowDate + " 00:00:00";
-            String etDate = nowDate + " 23:59:59";
-            webDriver.get(GET_AGENT_DATA_URL + "st=" + stDate + "&et=" + etDate);
-            Thread.sleep(1000L);
-            String getData = webDriver.findElement(By.xpath("//pre[@style='word-wrap: break-word; white-space: pre-wrap;']")).getText();
-        } catch (Exception e) {
-            e.printStackTrace();
-            log.error("爬取代理商数据异常");
-        } finally {
-            webDriver.manage().deleteAllCookies();
-            webDriver.close();
-        }
-    }
-
-    @Override
-    public boolean refreshWebPhone() {
-        boolean success = false;
-        String url = "https://lcloud.longene.com.cn/";
-        System.getProperties().setProperty("webdriver.chrome.driver", chromeDriver);
-        ChromeOptions chromeOptions = new ChromeOptions();
-        chromeOptions.addArguments("--headless");
-        chromeOptions.addArguments("--incognito");
-        chromeOptions.addArguments("--disable-gpu");
-//        chromeOptions.addArguments("--no-sandbox");
-        chromeOptions.addArguments("--window-size=1920,1080");
-        chromeOptions.addArguments("--user-agent=" + HttpUtils2.USER_AGENT);
-        chromeOptions.setAcceptInsecureCerts(true);
-        WebDriver webDriver = new ChromeDriver(chromeOptions);
-        try {
-            Thread.sleep(3000L);
-            HttpUtils2.cookieStore = new BasicCookieStore();
-            webDriver.manage().deleteAllCookies();
-            //获取登录页面
-            webDriver.get(url);
-            Thread.sleep(3000L);
-            WebElement accountElement = webDriver.findElement(By.id("username"));
-            accountElement.sendKeys("18600471989");
-            Thread.sleep(3000L);
-            WebElement passwordElement = webDriver.findElement(By.id("userpwd"));
-            passwordElement.sendKeys("0759125184xu");
-            WebElement loginElement = webDriver.findElement(By.xpath("//input[@class='quc-submit quc-button quc-button-primary quc-button-sign-in']"));
-            Thread.sleep(3000L);
-            //点击登录
-            loginElement.click();
-            Thread.sleep(3000L);
-            //选择华东二站
-            WebElement spreadElement = webDriver.findElement(By.xpath("//a[@href='javascript:gotobranch(2)']"));
-            spreadElement.click();
-            Thread.sleep(3000L);
-            //
-            webDriver.get("https://ecsite.longene.com.cn/userWeb!batchipswitch?ids=4293&groupid=8729&mode=5&ipbind=0&region=0&ipareas=");
-            Thread.sleep(5000L);
-            webDriver.get("https://ecsite.longene.com.cn/userWeb!batchnewphone?groupid=8729&pkgnames=com.smile.gifmaker&ids=4293");
-            Thread.sleep(5000L);
-            success = true;
-        } catch (Exception e) {
-            success = false;
-            e.printStackTrace();
-            log.error("一键新机操作失败");
-        } finally {
-            webDriver.manage().deleteAllCookies();
-            webDriver.close();
-        }
-        return success;
-    }
-
-    @Override
-    public void updateStatus(AppiumDevice appiumDevice, AppiumTaskLog log, Integer logStatus, Integer deviceStatus) {
-        log.setStatus(logStatus + "");
-        appiumTaskLogMapper.updateById(log);
-        appiumDevice.setStatus(deviceStatus);
-        appiumDeviceService.updateById(appiumDevice);
-    }
-}

+ 0 - 41
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumTaskItemServiceImpl.java

@@ -1,41 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service.impl;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskItem;
-import cn.com.ctop.crawler.modules.appium.mapper.AppiumTaskItemMapper;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumTaskItemService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 任务内容表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-@Service
-public class AppiumTaskItemServiceImpl extends ServiceImpl<AppiumTaskItemMapper, AppiumTaskItem> implements IAppiumTaskItemService {
-    @Override
-    public List<AppiumTaskItem> initTaskItemList(Long taskId, Integer parentId) {
-        QueryWrapper<AppiumTaskItem> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("task_id", taskId);
-        if (parentId == null) {
-            queryWrapper.isNull("parent_id");
-        } else {
-            queryWrapper.eq("parent_id", parentId);
-        }
-
-        queryWrapper.orderByAsc("seq");
-        List<AppiumTaskItem> list = this.list(queryWrapper);
-        if (list != null && list.size() > 0) {
-            for (int i = 0; i < list.size(); i++) {
-                AppiumTaskItem taskItem = list.get(i);
-                taskItem.setSubList(initTaskItemList(taskItem.getTaskId(), taskItem.getId()));
-                list.set(i, taskItem);
-            }
-        }
-        return list;
-    }
-}

+ 0 - 20
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumTaskLogServiceImpl.java

@@ -1,20 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service.impl;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskLog;
-import cn.com.ctop.crawler.modules.appium.mapper.AppiumTaskLogMapper;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumTaskLogService;
-import org.springframework.stereotype.Service;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * 任务日志表
- *
- * @author jeecg-boot
- * @version V1.0
- * @date 2019-11-01
- */
-@Service
-public class AppiumTaskLogServiceImpl extends ServiceImpl<AppiumTaskLogMapper, AppiumTaskLog> implements IAppiumTaskLogService {
-
-}

+ 0 - 90
module-crawler/src/main/java/cn/com/ctop/crawler/modules/appium/service/impl/AppiumTaskServiceImpl.java

@@ -1,90 +0,0 @@
-package cn.com.ctop.crawler.modules.appium.service.impl;
-
-import cn.com.ctop.crawler.modules.appium.entity.AppiumDevice;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTask;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskItem;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskLog;
-import cn.com.ctop.crawler.modules.appium.mapper.AppiumTaskLogMapper;
-import cn.com.ctop.crawler.modules.appium.mapper.AppiumTaskMapper;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumDeviceService;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumTaskItemService;
-import cn.com.ctop.crawler.modules.appium.service.IAppiumTaskService;
-import cn.com.ctop.crawler.modules.core.util.AppiumUtil;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import io.appium.java_client.android.AndroidDriver;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 任务表
- * @author jeecg-boot
- * @date 2019-10-31
- * @version V1.0
- */
-@Service
-public class AppiumTaskServiceImpl extends ServiceImpl<AppiumTaskMapper, AppiumTask> implements IAppiumTaskService {
-    @Value("${kuaishou.group-control.path}")
-    private String groupControlPath;
-    @Value("${kuaishou.group-control.port}")
-    private String groupControlPort;
-    @Autowired
-    private IAppiumTaskItemService iAppiumTaskItemService;
-    @Autowired
-    private IAppiumDeviceService iAppiumDeviceService;
-    @Autowired
-    private AppiumTaskLogMapper appiumTaskLogMapper;
-
-    @Override
-    public void runKuaishouLoginTask() {
-        AppiumUtil appiumUtil = new AppiumUtil();
-        try {
-            AndroidDriver androidDriver = appiumUtil.initAndroidDriver("http://39.106.184.70:4723/wd/hub", "183.131.157.66:10005", "com.smile.gifmaker", "com.yxcorp.gifshow.HomeActivity");
-            appiumUtil.loginTask(androidDriver, null, null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    @Override
-    public void runTask(Long taskId, Integer deviceId, String publishName) {
-        //获取当前需要执行的任务信息
-        AppiumTask task = this.getById(taskId);
-        //获取手机设备信息
-        AppiumDevice appiumDevice = iAppiumDeviceService.getById(deviceId);
-        appiumDevice.setStatus(2);
-        iAppiumDeviceService.updateById(appiumDevice);
-        AppiumTaskLog log = new AppiumTaskLog();
-        log.setDeviceId(deviceId);
-        log.setDeviceIp(appiumDevice.getIp());
-        log.setDevicePort(appiumDevice.getPort());
-        log.setStatus(1 + "");
-        log.setTaskId(taskId);
-        log.setTaskName(task.getTaskName());
-        appiumTaskLogMapper.insert(log);
-        log.setId(log.getId());
-        //查询所需运行的任务列表
-        List<AppiumTaskItem> taskItemList = iAppiumTaskItemService.initTaskItemList(taskId, null);
-        AppiumUtil appiumUtil = new AppiumUtil();
-        try {
-            AndroidDriver androidDriver = appiumUtil.initAndroidDriver(groupControlPath + ":" + groupControlPort + "/wd/hub", appiumDevice.getIp() + ":" + appiumDevice.getPort(), task.getAppPackage(), task.getAppActivity());
-            if (taskItemList != null && taskItemList.size() > 0) {
-                for (AppiumTaskItem appiumTaskItem : taskItemList) {
-                    appiumUtil.runTask(androidDriver, appiumTaskItem, null, publishName);
-                }
-                log.setStatus(2 + "");
-                appiumTaskLogMapper.updateById(log);
-                appiumDevice.setStatus(1);
-                iAppiumDeviceService.updateById(appiumDevice);
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            log.setStatus(3 + "");
-            appiumTaskLogMapper.updateById(log);
-            appiumDevice.setStatus(1);
-            iAppiumDeviceService.updateById(appiumDevice);
-        }
-    }
-}

+ 0 - 181
module-crawler/src/main/java/cn/com/ctop/crawler/modules/core/util/AppiumUtil.java

@@ -2,14 +2,11 @@ package cn.com.ctop.crawler.modules.core.util;
 
 import cn.com.ctop.common.module.utils.ResultMapUtils;
 import cn.com.ctop.common.module.utils.StatusCode;
-import cn.com.ctop.crawler.modules.appium.entity.AppiumTaskItem;
-import com.google.gson.Gson;
 import io.appium.java_client.TouchAction;
 import io.appium.java_client.android.AndroidDriver;
 import io.appium.java_client.touch.WaitOptions;
 import io.appium.java_client.touch.offset.PointOption;
 import lombok.extern.slf4j.Slf4j;
-import org.openqa.selenium.Point;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.remote.DesiredCapabilities;
 
@@ -623,184 +620,6 @@ public class AppiumUtil {
         }
     }
 
-    public Map<String, Object> runLoginTask(AndroidDriver androidDriver, AppiumTaskItem appiumTaskItem, Map<String, Object> result) throws Exception {
-        Integer code = (Integer) result.get("code");
-        if (null != code && code != StatusCode.KUAISHOU_CRAWLER_APP_SUCCESS.getCode()) {
-            return result;
-        }
-        Thread.sleep(1000L);
-        String findKey = appiumTaskItem.getFindKey();
-        if ("exit".equals(findKey)) {
-            androidDriver.quit();
-            ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_CRAWLER_APP_EXIT.getCode());
-            log.error(StatusCode.KUAISHOU_CRAWLER_APP_EXIT.getDesc());
-            return result;
-        }
-        //1:获取元素信息
-        WebElement element = getElementByType(androidDriver, appiumTaskItem.getFindType(), appiumTaskItem.getFindKey());
-        if (null == element) {
-            ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_CRAWLER_APP_ELEMENT_IS_NULL.getCode());
-            log.error("元素获取异常==>activity:{},key:{}", appiumTaskItem.getAppActivity(), "com.smile.gifmaker:id/confirm_btn");
-            return result;
-        }
-        //(1):滑动效果
-        String swipeType = appiumTaskItem.getSwapType();
-        if (null != swipeType && !"".equals(swipeType.trim())) {
-            swipeByType(androidDriver, swipeType);
-            ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_CRAWLER_APP_SUCCESS.getCode());
-            return result;
-        }
-        //点击效果
-        String clickType = appiumTaskItem.getClickType();
-        if (null != clickType && !"".equals(clickType)) {
-            String getText = oprateElementByType(element, clickType, androidDriver, appiumTaskItem);
-            if (null != getText && !"".equals(getText)) {
-                ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_CRAWLER_APP_TASK_END.getCode());
-                result.put("kuaishouId", getText.replace("快手 ID:", ""));
-            } else {
-                ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_CRAWLER_APP_SUCCESS.getCode());
-            }
-            return result;
-        }
-        ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_CRAWLER_APP_SUCCESS.getCode());
-        return result;
-    }
-
-    private String oprateElementByType(WebElement element, String clickType, AndroidDriver androidDriver, AppiumTaskItem taskItem) {
-        String getText = null;
-        if ("element".equals(clickType)) {
-            element.click();
-        } else if ("point".equals(clickType)) {
-            Point point = element.getLocation();
-            Integer x = point.getX();
-            Integer y = point.getY();
-            if (null != taskItem.getOffsiteX()) {
-                x = taskItem.getOffsiteX();
-            }
-            if (null != taskItem.getOffsiteY()) {
-                y = taskItem.getOffsiteY();
-            }
-            tapPoint(androidDriver, x, y);
-        } else if ("send".equals(clickType)) {
-            String text = taskItem.getTextEqualKey();
-            element.sendKeys(text);
-        } else if ("text".equals(clickType)) {
-            getText = element.getText();
-        }
-        return getText;
-    }
-
-    public String runTask(AndroidDriver androidDriver, AppiumTaskItem appiumTaskItem, WebElement loopElement, String publishName) throws Exception {
-        String getText = null;
-        if (appiumTaskItem != null) {
-            if (appiumTaskItem.getWaitTime() != null && appiumTaskItem.getWaitTime() > 0) {
-                Thread.sleep(appiumTaskItem.getWaitTime());
-            }
-            checkActivity(androidDriver);
-            if (appiumTaskItem.getLoopType() != null && "noloop".equals(appiumTaskItem.getLoopType())) {
-                //非循环类型任务
-                if (appiumTaskItem.getFindType() != null) {
-                    WebElement element = null;
-                    if ("loop".equals(appiumTaskItem.getFindType())) {
-                        element = loopElement;
-                    } else {
-                        element = getElementByType(androidDriver, appiumTaskItem.getFindType(), appiumTaskItem.getFindKey());
-                    }
-                    if (element != null) {
-                        if (appiumTaskItem.getTextEqualType() != null) {
-                            if ("eq".equals(appiumTaskItem.getTextEqualType())) {
-                                if (!element.getText().equals(appiumTaskItem.getTextEqualKey())) {
-                                    return getText;
-                                }
-                            } else if ("neq".equals(appiumTaskItem.getTextEqualType())) {
-                                if (element.getText() == null || element.getText().equals(appiumTaskItem.getTextEqualKey())) {
-                                    return getText;
-                                }
-                            } else if ("start".equals(appiumTaskItem.getTextEqualType())) {
-                                boolean check = checkAdvertiser(androidDriver, publishName);
-                                if (!check) {
-                                    return getText;
-                                }
-                            }
-                        }
-                        if (appiumTaskItem.getClickType() != null) {
-                            if ("element".equals(appiumTaskItem.getClickType())) {
-                                element.click();
-                            } else if ("point".equals(appiumTaskItem.getClickType())) {
-                                Point point = element.getLocation();
-                                Integer x = point.getX();
-                                Integer y = point.getY();
-                                if (null != appiumTaskItem.getOffsiteX()) {
-                                    x += appiumTaskItem.getOffsiteX();
-                                }
-                                if (null != appiumTaskItem.getOffsiteY()) {
-                                    y += appiumTaskItem.getOffsiteY();
-                                }
-                                tapPoint(androidDriver, x, y);
-                            } else if ("send".equals(appiumTaskItem.getClickType())) {
-                                String text = appiumTaskItem.getTextEqualKey();
-                                element.sendKeys(text);
-                            } else if ("text".equals(appiumTaskItem.getClickType())) {
-                                getText = element.getText();
-                            }
-                        }
-                        List<AppiumTaskItem> subTask = appiumTaskItem.getSubList();
-                        if (subTask != null && subTask.size() > 0) {
-                            for (AppiumTaskItem task : subTask) {
-                                runTask(androidDriver, task, element, publishName);
-                            }
-                        }
-                    } else {
-                        //必须执行
-                        if (appiumTaskItem.getIsMust() != null && appiumTaskItem.getIsMust() == 1) {
-                            if (appiumTaskItem.getLoopRate() != null && appiumTaskItem.getLoopRate() > 0) {
-                                Thread.sleep(appiumTaskItem.getLoopRate());
-                            }
-                            runTask(androidDriver, appiumTaskItem, element, publishName);
-                        }
-                        //非必须执行情况下
-                        if (appiumTaskItem.getClickType() != null && "point".equals(appiumTaskItem.getClickType())) {
-                            tapPoint(androidDriver, appiumTaskItem.getOffsiteX(), appiumTaskItem.getOffsiteY());
-                        }
-                    }
-                }
-                if (appiumTaskItem.getSwapType() != null) {
-                    swipeByType(androidDriver, appiumTaskItem.getSwapType());
-                }
-            } else if (appiumTaskItem.getLoopType() != null && "loop".equals(appiumTaskItem.getLoopType())) {
-                while (isLoop) {
-                    if (appiumTaskItem.getFindType() != null) {
-                        List<WebElement> list = getElementsByType(androidDriver, appiumTaskItem.getFindType(), appiumTaskItem.getFindKey());
-                        if (list != null && list.size() > 0) {
-                            for (WebElement element : list) {
-                                if (!isLoop) {
-                                    break;
-                                }
-                                if (appiumTaskItem.getLoopRate() != null && appiumTaskItem.getLoopRate() > 0) {
-                                    Thread.sleep(appiumTaskItem.getLoopRate());
-                                }
-                                List<AppiumTaskItem> subTask = appiumTaskItem.getSubList();
-                                if (subTask != null && subTask.size() > 0) {
-                                    for (AppiumTaskItem task : subTask) {
-                                        runTask(androidDriver, task, element, publishName);
-                                    }
-                                }
-                            }
-                        }
-                    }
-                    if (appiumTaskItem.getSwapType() != null) {
-                        swipeByType(androidDriver, appiumTaskItem.getSwapType());
-                    }
-                }
-
-            }
-            if (appiumTaskItem.getIsClose() != null && appiumTaskItem.getIsClose() == 1) {
-                this.isLoop = false;
-            }
-        }
-        return getText;
-    }
-
     public void backToMain(AndroidDriver androidDriver) {
         WebElement element = getElementByType(androidDriver, FIND_ELEMENT_TYPE_ID, "com.smile.gifmaker:id/back_btn");
         if (null != element) {

+ 1 - 0
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/IMaterialUploadService.java

@@ -14,4 +14,5 @@ public interface IMaterialUploadService {
      * @param accountArray
      */
     void uploadAccount(String mediaId, JSONArray materialArray, JSONArray accountArray) throws IOException;
+
 }

+ 3 - 1
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/impl/MaterialUploadServiceImpl.java

@@ -13,6 +13,7 @@ import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.KuaishouInterfaceConstant;
 import cn.com.ctop.common.module.utils.LoadFileUtil;
 import cn.com.ctop.common.module.utils.PropertiesUtils;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouVideoGetService;
@@ -268,7 +269,8 @@ public class MaterialUploadServiceImpl implements IMaterialUploadService {
     @Autowired
     private RestTemplate rest;
 
-    private String exceptInfoForRestTemplate(String url, Map<String, Object> paramMap, Map<String, String> headerMap) throws ParseException {
+    private String exceptInfoForRestTemplate(String
+                                                     url, Map<String, Object> paramMap, Map<String, String> headerMap) throws ParseException {
         try {
             MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
             if (!Check.isNullMap(paramMap)) {

+ 14 - 6
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/BatchController.java

@@ -1040,11 +1040,14 @@ public class BatchController {
      * @return
      */
     @GetMapping(value = "/getCreativeCopywriter")
-    public Result<MaterialInfo> getVideoList(String code) {
+    public Result<MaterialInfo> getVideoList(String code, Long accountId) {
         Result<MaterialInfo> result = new Result<>();
         try {
+
+            Long projectId = materialInfoMapper.getProjectIdByAccountId(accountId);
             QueryWrapper<MaterialInfo> materialInfoQueryWrapper = new QueryWrapper<>();
             materialInfoQueryWrapper.eq("code", code);
+            materialInfoQueryWrapper.eq("project_id", projectId);
             materialInfoQueryWrapper.last("limit 1");
             MaterialInfo materialInfo = materialInfoMapper.selectOne(materialInfoQueryWrapper);
             result.setSuccess(true);
@@ -1601,15 +1604,11 @@ public class BatchController {
             if (Check.isNull(createCount) || createCount == 0) {
                 throw new Exception("请选择迭代次数");
             }
-
             if (createCount == 1) {
                 JSONObject createJson = batchService.createUnit(requestJson);
-
                 if (!Check.isNull(createJson)) {
                     failArr = createJson.getJSONArray("fail");
                 }
-
-
             } else if (createCount > 1) {
                 QueryWrapper<KuaiShouGroup> queryWrapper = new QueryWrapper<>();
                 queryWrapper.eq("account_id", accountId);
@@ -1618,7 +1617,16 @@ public class BatchController {
                 if (Check.isNull(group)) {
                     throw new Exception("未获取到广告组信息");
                 }
-                String unitName = group.getUnitName();
+                String unitNameStr = group.getUnitName();
+                String unitName;
+
+                if (unitNameStr.contains("#")) {
+                    int lastIndexOf = unitNameStr.lastIndexOf("#");
+                    unitName = unitNameStr.substring(0, lastIndexOf);
+                } else {
+                    unitName = unitNameStr;
+                }
+
                 Integer createType = requestJson.getInteger("createType");
                 if (createType == 1) { // 系统生成
                     for (int i = 0; i < createCount; i++) {

+ 2 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaiShouImageGetMapper.java

@@ -15,4 +15,6 @@ import java.util.List;
 public interface KuaiShouImageGetMapper extends BaseMapper<KuaiShouImageGet> {
 
     void replaceBatch(@Param(value = "images")List<KuaiShouImageGet>imagesGets);
+
+    String getUrlByCode(String signature);
 }

+ 7 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouImageGetMapper.xml

@@ -36,4 +36,11 @@
         </foreach>
     </insert>
 
+    <select id="getUrlByCode" resultType="java.lang.String">
+        select url from ctop_material_image_info
+        where  code = #{signature}
+        limit 1
+
+    </select>
+
 </mapper>

+ 2 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaiShouImageGetService.java

@@ -13,4 +13,6 @@ import java.util.List;
  */
 public interface IKuaiShouImageGetService extends IService<KuaiShouImageGet> {
     void replaceBatch(List<KuaiShouImageGet> imageGets);
+
+    String getUrlByCode(String signature);
 }

+ 176 - 13
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/BatchServiceImpl.java

@@ -1,35 +1,56 @@
 package cn.com.ctop.kuaishou.modules.batch.service.impl;
 
 import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.entity.MaterialParameter;
 import cn.com.ctop.common.module.entity.UserAllocation;
+import cn.com.ctop.common.module.enums.MaterialEnum;
 import cn.com.ctop.common.module.mapper.UserAllocationMapper;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
-import cn.com.ctop.common.module.utils.Check;
-import cn.com.ctop.common.module.utils.RandomUtil;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouCampaign;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouCreative;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroup;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroupTarget;
+import cn.com.ctop.common.module.service.IMaterialParameterService;
+import cn.com.ctop.common.module.utils.*;
+import cn.com.ctop.kuaishou.modules.batch.entity.*;
 import cn.com.ctop.kuaishou.modules.batch.mapper.*;
 import cn.com.ctop.kuaishou.modules.batch.service.IBatchService;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouUpdateService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.http.ParseException;
 import org.jeecg.common.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.FileSystemResource;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
 
+import java.io.File;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 @Slf4j
 @Service
 public class BatchServiceImpl implements IBatchService {
+
+    @Value("${oss.replace.replace-value}")
+    private String replaceValue;
+    @Value("${oss.replace.replace-old-value}")
+    private String replaceOldValue;
+    @Value("${oss.replace.download}")
+    private String downloadUrl;
+
     @Autowired
     private BatchMapper batchMapper;
     @Autowired
@@ -718,7 +739,7 @@ public class BatchServiceImpl implements IBatchService {
         QueryWrapper<KuaiShouCreative> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("account_id", accountId);
         queryWrapper.eq("unit_id", copyUnitId);
-     //   queryWrapper.eq("status", 52);
+        queryWrapper.eq("status", 52);
         List<KuaiShouCreative> creativeList = creativeMapper.selectList(queryWrapper);
         if (!Check.isNull(creativeList)) {
             for (KuaiShouCreative creative : creativeList) {
@@ -799,6 +820,10 @@ public class BatchServiceImpl implements IBatchService {
      * @param requestJson
      * @return
      */
+    @Autowired
+    private IKuaiShouImageGetService imageGetService;
+
+
     @Override
     public JSONObject createCreative(JSONObject requestJson) throws Exception {
         if (Check.isNull(requestJson)) {
@@ -845,20 +870,41 @@ public class BatchServiceImpl implements IBatchService {
                 if (!Check.isNull(dataJsons)) {
                     String description = dataJson.getString("description");
                     String photo_id = dataJson.getString("photoId");
-                    JSONArray imageTokens = dataJson.getJSONArray("imageTokens");
-                    if (!Check.isNull(imageTokens)) {
-                        for (int j = 0; j < imageTokens.size(); j++) {
-                            JSONObject imageJson = imageTokens.getJSONObject(j);
+                    JSONArray imageArr = dataJson.getJSONArray("imageArr");
+                    if (!Check.isNull(imageArr)) {
+                        for (int j = 0; j < imageArr.size(); j++) {
+                            JSONObject imageJson = imageArr.getJSONObject(j);
                             if (!Check.isNull(imageJson)) {
-                                String image = imageJson.getString("image");
+
                                 String name = imageJson.getString("name");
                                 creativeJson.put("action_bar_text", action_bar_text);
                                 creativeJson.put("description", description);
-                                creativeJson.put("image_token", image);
+
                                 creativeJson.put("creative_name", name);
                                 creativeJson.put("photo_id", photo_id);
                                 creativeJson.put("click_track_url", click_track_url);
 
+                                String imageToken = null;
+                                String signature = imageJson.getString("signature");
+                                QueryWrapper<KuaiShouImageGet> queryWrapper = new QueryWrapper<>();
+                                queryWrapper.eq("account_id", accountId);
+                                queryWrapper.eq("signature", signature);
+                                queryWrapper.last("limit 1");
+                                KuaiShouImageGet imageGet = imageGetService.getOne(queryWrapper);
+                                if (!Check.isNull(imageGet)) {
+                                    imageToken = imageGet.getImageToken();
+                                } else {
+                                    String url = imageGetService.getUrlByCode(signature);
+                                    imageToken = this.kuauiShouImageUpload(url, signature, accountId, oauthToken.getAccessToken());
+                                }
+                                if (Check.isNull(imageToken)) {
+                                    JSONObject failJson = new JSONObject();
+                                    failJson.put("creativeName", name);
+                                    failJson.put("failMessage", "获取图片文件失败");
+                                    failArr.add(failJson);
+                                    continue;
+                                }
+                                creativeJson.put("image_token", imageToken);
                                 Map<String, Object> returnUnitMap = kuaishouInterfaceService.creativeCreate(oauthToken.getAccessToken(), accountId, creativeJson);
                                 if (!Check.isNullMap(returnUnitMap)) {
                                     Integer code = (Integer) returnUnitMap.get("code");
@@ -1142,6 +1188,9 @@ public class BatchServiceImpl implements IBatchService {
      * @param requestJson
      * @return
      */
+    @Autowired
+    private IKuaiShouImageGetService iKuaiShouImageGetService;
+
     @Override
     public JSONObject updateCreative(JSONObject requestJson) throws Exception {
         if (Check.isNull(requestJson)) {
@@ -1220,6 +1269,120 @@ public class BatchServiceImpl implements IBatchService {
         return returnJson;
     }
 
+    @Autowired
+    private IMaterialParameterService materialParameterService;
+
+    public String kuauiShouImageUpload(String url, String signature, Long accountId, String token) {
+        System.err.println(url);
+        System.err.println(signature);
+        try {
+            // String replaceUrl = url.replace(replaceOldValue, replaceValue);
+            // log.info("replaceUrl:{}", replaceUrl);
+          /*  String localUrl = LoadFileUtil.downLoadFromUrl(url, downloadUrl);
+            FileSystemResource resource = new FileSystemResource(new File(localUrl));*/
+            Map<String, String> headerMap = new HashMap<>();
+            headerMap.put("Content-Type", "multipart/form-data");
+            JSONObject requestJson = new JSONObject();
+            //     requestJson.put("file", resource);
+            requestJson.put("signature", signature);
+            requestJson.put("url", url);
+            requestJson.put("type", 2);
+          /*   QueryWrapper<MaterialParameter> parameterQueryWrapper = new QueryWrapper<>();
+               parameterQueryWrapper.eq("material_id", signature);
+               parameterQueryWrapper.orderByDesc("create_time").last("limit 1");
+              MaterialParameter materialParameter = materialParameterService.getOne(parameterQueryWrapper);
+              if (!Check.isNull(materialParameter)) {
+                Integer type = MaterialEnum.getTypeBySize(Integer.valueOf(materialParameter.getWidth()), Integer.valueOf(materialParameter.getHeight()));
+                if (!Check.isNull(type) && type != 0) {
+                    requestJson.put("type", type);
+                }
+            }*/
+
+            requestJson.put("advertiser_id", accountId);
+            headerMap.put("Access-Token", token);
+            String requestUrl = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.IMAGE_UPLOAD;
+            requestJson.put("upload_type", "2");
+            String result = exceptInfoForRestTemplate(requestUrl, requestJson, headerMap);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            System.err.println(resultJson);
+            if (!Check.isNull(resultJson)) {
+                if (resultJson.getInteger("code") == 0) {
+                    JSONObject dataJson = resultJson.getJSONObject("data");
+                    if (!Check.isNull(dataJson)) {
+                        String image_token = dataJson.getString("image_token");
+                        KuaiShouImageGet imageGet = new KuaiShouImageGet();
+                        imageGet.setId(accountId + image_token);
+                        imageGet.setAccountId(accountId);
+                        imageGet.setUrl(dataJson.getString("url"));
+                        imageGet.setWidth(dataJson.getInteger("width"));
+                        imageGet.setHeight(dataJson.getInteger("height"));
+                        imageGet.setSize(dataJson.getInteger("size"));
+                        imageGet.setFormat(dataJson.getString("format"));
+                        Integer type = MaterialEnum.getTypeBySize(dataJson.getInteger("width"), dataJson.getInteger("height"));
+                        if (!Check.isNull(type)) {
+                            imageGet.setMaterialType(type);
+                        }
+                        imageGet.setSignature(signature);
+                        imageGet.setImageToken(image_token);
+                        iKuaiShouImageGetService.saveOrUpdate(imageGet);
+                        return dataJson.getString("image_token");
+
+
+                    }
+
+
+                } else {
+                    log.error("上传图片失败,accountId:{},code:{},data:{}", accountId, signature, resultJson);
+                }
+
+
+            } else {
+                log.error("上传图片,返回结果为空,accountId:{},code:{},data:{}", accountId, signature, resultJson);
+            }
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+
+        }
+
+        return null;
+    }
+
+
+    @Autowired
+    private RestTemplate rest;
+
+    private String exceptInfoForRestTemplate(String url, Map<String, Object> paramMap, Map<String, String> headerMap) throws ParseException {
+        try {
+            MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
+            if (!Check.isNullMap(paramMap)) {
+                for (String key : paramMap.keySet()) {
+                    param.add(key, paramMap.get(key));
+                }
+                HttpHeaders headers = new HttpHeaders();
+                if (!Check.isNullMap(headerMap)) {
+                    for (String key : headerMap.keySet()) {
+                        headers.add(key, headerMap.get(key));
+                    }
+                }
+                HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(param, headers);
+                ResponseEntity<String> responseEntity = rest.exchange(url, HttpMethod.POST, httpEntity, String.class);
+                return responseEntity.getBody();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    public static void main(String[] args) throws IOException {
+        String localUrl = LoadFileUtil.downLoadFromUrl("https://ctop-media.oss-cn-beijing.aliyuncs.com/image/2020-04-29/uuuuu-1588129352054.jpg", PropertiesUtils.getValue("kuaishou_config", "video_sava_path"));
+        String signature = LoadFileUtil.getMD5(localUrl);
+        System.err.println(signature);
+    }
 
 }
 

+ 5 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouImageGetServiceImpl.java

@@ -27,4 +27,9 @@ public class KuaiShouImageGetServiceImpl extends ServiceImpl<KuaiShouImageGetMap
         imageGetMapper.replaceBatch(imageGets);
     }
 
+    @Override
+    public String getUrlByCode(String signature) {
+        return imageGetMapper.getUrlByCode(signature);
+    }
+
 }

+ 11 - 9
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouInterfaceServiceImpl.java

@@ -16,6 +16,7 @@ import cn.com.ctop.kuaishou.modules.report.entity.*;
 import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouReportDailyAccountMapper;
 import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouReportDailyCampaignMapper;
 import cn.com.ctop.kuaishou.modules.report.service.*;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -995,7 +996,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                             @Override
                             public void run() {
                                 try {
-                                    Thread.sleep(1 * 1000);
+                                    Thread.sleep(500);
                                     getGroup(accessToken, advertiserId, unitId);
                                 } catch (InterruptedException e) {
                                     e.printStackTrace();
@@ -2265,10 +2266,8 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                 returnMap.put("message", "上传图片失败失败");
                 returnMap.put("success", false);
             }
-            boolean trueOrFalse = LoadFileUtil.delFile(localUrl);
-            if (trueOrFalse) {
-                log.info("删除本地文件成功,accountId:{}", advertiserId);
-            }
+            LoadFileUtil.delFile(localUrl);
+
         } catch (Exception e) {
             log.error("上传图片失败,advertiser_id:{}", advertiserId);
             returnMap.put("code", -1);
@@ -2348,10 +2347,8 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                 returnMap.put("desc", "Interface exception");
                 returnMap.put("success", false);
             }
-            boolean trueOrFalse = LoadFileUtil.delFile(localUrl);
-            if (trueOrFalse) {
-                log.info("删除本地文件成功,accountId:{}", advertiserId);
-            }
+            LoadFileUtil.delFile(localUrl);
+
         } catch (Exception e) {
             log.error("创建应用失败,advertiser_id:{}", advertiserId);
             returnMap.put("code", -1);
@@ -2654,8 +2651,13 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             }
             param.put("page_size", 500);
             param.put("page", page);
+            System.err.println("入参:" + param);
+            System.err.println("头:" + JSON.toJSONString(headers));
+            System.err.println("url:" + url);
+
             String result = HttpUtils.httpPostRequest(url, param, headers);
             JSONObject resultJson = JSONObject.parseObject(result);
+            System.err.println(resultJson);
             Integer code = resultJson.getInteger("code");
             String message = resultJson.getString("message");
             if (null == code || code != 0) {

+ 7 - 4
module-report/src/main/java/cn/com/ctop/bytedance/service/impl/ByteDanceHourlyAccountWarningServiceImpl.java

@@ -57,6 +57,10 @@ public class ByteDanceHourlyAccountWarningServiceImpl implements IByteDanceHourl
             BigDecimal warningAmount = userAllocation.getWarningAmount();
             BigDecimal warningProportion = userAllocation.getWarningProportion();
             BigDecimal nowCost = bytedanceAdvertiserHourlyReportMapper.getCost(accountId, maxHour, statDate);
+
+            BigDecimal cost = nowCost.setScale(2, RoundingMode.HALF_UP);
+
+
             if (maxHour != 0) {
                 if (!Check.isNull(nowCost) && nowCost.compareTo(new BigDecimal(0)) != 0) {
                     BigDecimal lastHourCost = bytedanceAdvertiserHourlyReportMapper.getCost(accountId, maxHour - 1, statDate);
@@ -65,7 +69,7 @@ public class ByteDanceHourlyAccountWarningServiceImpl implements IByteDanceHourl
                             BigDecimal subtract = nowCost.subtract(lastHourCost);
                             BigDecimal divide = nowCost.divide(lastHourCost, 2, RoundingMode.HALF_UP);
                             if (subtract.compareTo(warningAmount) > -1 && divide.compareTo(warningProportion) > -1) {
-                                sendMessage(accountId, userAllocation.getAuthName(), maxHour, nowCost, userAllocation.getProjectId(), userAllocation.getProjectName());
+                                sendMessage(accountId, userAllocation.getAuthName(), maxHour, cost, userAllocation.getProjectId(), userAllocation.getProjectName());
                             }
                         }
                     }
@@ -78,7 +82,7 @@ public class ByteDanceHourlyAccountWarningServiceImpl implements IByteDanceHourl
                     BigDecimal subtract = nowCost.subtract(yesterdayHourCost);
                     BigDecimal divide = nowCost.divide(yesterdayHourCost, 2, RoundingMode.HALF_UP);
                     if (subtract.compareTo(warningAmount) > -1 && divide.compareTo(warningProportion) > -1) {
-                        sendYesterdayMessage(accountId, userAllocation.getAuthName(), maxHour, nowCost, userAllocation.getProjectId(), userAllocation.getProjectName());
+                        sendYesterdayMessage(accountId, userAllocation.getAuthName(), maxHour, cost, userAllocation.getProjectId(), userAllocation.getProjectName());
                     }
                 }
             }
@@ -91,7 +95,6 @@ public class ByteDanceHourlyAccountWarningServiceImpl implements IByteDanceHourl
 
 
     private void sendYesterdayMessage(Long accountId, String authName, Integer maxHour, BigDecimal nowCost, Long projectId, String projectName) {
-
         StringBuilder text = new StringBuilder();
         text.append("较昨日同时段消耗预警").append("<br/>")
                 .append("您的项目:" + projectName + "下的,").append("<br/>")
@@ -128,10 +131,10 @@ public class ByteDanceHourlyAccountWarningServiceImpl implements IByteDanceHourl
             CorpWexinUtils.sendMessage(wexinIds, text.toString());
         }
 
-
     }
 
 
+
     private void sendMessage(Long accountId, String authName, Integer hour, BigDecimal amount, Long projectId, String projectName) {
 
         StringBuilder text = new StringBuilder();