Преглед на файлове

添加视频水印模板

jiequan.bi преди 4 години
родител
ревизия
3d43b87239
променени са 32 файла, в които са добавени 870 реда и са изтрити 8 реда
  1. 6 0
      jeecg-boot-base-common/pom.xml
  2. 6 0
      jeecg-boot-module-system/pom.xml
  3. 2 1
      jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java
  4. 6 6
      jeecg-boot-module-system/src/main/resources/application-test.yml
  5. 43 0
      module-check/pom.xml
  6. 13 0
      module-check/src/main/java/cn/com/ctop/ModuleCheckApplication.java
  7. 20 0
      module-check/src/main/java/cn/com/ctop/check/TestGroovy.groovy
  8. 37 0
      module-check/src/main/java/cn/com/ctop/check/component/basic/AbstractScript.java
  9. 9 0
      module-check/src/main/java/cn/com/ctop/check/component/basic/BaseScript.java
  10. 114 0
      module-check/src/main/java/cn/com/ctop/check/component/execute/GroovyScriptExecutor.java
  11. 111 0
      module-check/src/main/java/cn/com/ctop/check/controller/CtopCheckTaskExecuteLogController.java
  12. 115 0
      module-check/src/main/java/cn/com/ctop/check/controller/CtopCheckTaskListController.java
  13. 47 0
      module-check/src/main/java/cn/com/ctop/check/entity/CtopCheckTaskExecuteLog.java
  14. 83 0
      module-check/src/main/java/cn/com/ctop/check/entity/CtopCheckTaskList.java
  15. 11 0
      module-check/src/main/java/cn/com/ctop/check/mapper/CtopCheckTaskExecuteLogMapper.java
  16. 19 0
      module-check/src/main/java/cn/com/ctop/check/mapper/CtopCheckTaskListMapper.java
  17. 5 0
      module-check/src/main/java/cn/com/ctop/check/mapper/xml/CtopCheckTaskExecuteLogMapper.xml
  18. 27 0
      module-check/src/main/java/cn/com/ctop/check/mapper/xml/CtopCheckTaskListMapper.xml
  19. 18 0
      module-check/src/main/java/cn/com/ctop/check/script/CheckTokenExecuteStateScript.groovy
  20. 26 0
      module-check/src/main/java/cn/com/ctop/check/script/TestGroovyScript.java
  21. 11 0
      module-check/src/main/java/cn/com/ctop/check/service/ICtopCheckTaskExecuteLogService.java
  22. 16 0
      module-check/src/main/java/cn/com/ctop/check/service/ICtopCheckTaskListService.java
  23. 15 0
      module-check/src/main/java/cn/com/ctop/check/service/impl/CtopCheckTaskExecuteLogServiceImpl.java
  24. 30 0
      module-check/src/main/java/cn/com/ctop/check/service/impl/CtopCheckTaskListServiceImpl.java
  25. 30 0
      module-check/src/main/java/cn/com/ctop/notice/handle/SendWeChatHandle.java
  26. 13 0
      module-check/src/test/java/cn/com/ctop/ModuleCheckApplicationTests.java
  27. 2 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/MailLogMapper.java
  28. 8 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MailLogMapper.xml
  29. 0 1
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/MailLogServiceImpl.java
  30. 6 0
      module-job-bytedance/pom.xml
  31. 1 0
      module-job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/ByteDanceRefreshTokenJob.java
  32. 20 0
      pom.xml

+ 6 - 0
jeecg-boot-base-common/pom.xml

@@ -4,6 +4,12 @@
     <modelVersion>4.0.0</modelVersion>
     <artifactId>jeecg-boot-base-common</artifactId>
     <version>2.0.2</version>
+    <dependencies>
+        <dependency>
+            <groupId>org.codehaus.groovy</groupId>
+            <artifactId>groovy</artifactId>
+        </dependency>
+    </dependencies>
     <parent>
         <groupId>org.jeecgframework.boot</groupId>
         <artifactId>jeecg-boot-parent</artifactId>

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

@@ -205,6 +205,12 @@
             <artifactId>kie-spring</artifactId>
             <version>7.6.0.Final</version>
         </dependency>
+        <dependency>
+            <groupId>com.ctop</groupId>
+            <artifactId>module-check</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
     <dependencyManagement>

+ 2 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java

@@ -144,7 +144,8 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/ks/web/test", "anon");
         filterChainDefinitionMap.put("/ureport/**", "anon");
         filterChainDefinitionMap.put("/job/test/*", "anon");
-        //filterChainDefinitionMap.put("/kuaishou/**", "anon");
+        filterChainDefinitionMap.put("/rest/script/*", "anon");
+        filterChainDefinitionMap.put("/ctop/checkTaskList/*", "anon");
 
         // 添加自己的过滤器并且取名为jwt
         Map<String, Filter> filterMap = new HashMap<>(1);

+ 6 - 6
jeecg-boot-module-system/src/main/resources/application-test.yml

@@ -91,16 +91,16 @@ spring:
         filters: stat,slf4j
         # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
         connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
-      datasource:
-        master:
-          url: jdbc:mysql://39.106.184.70:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false
-          username: hcst
-          password: test@20190531
 #      datasource:
 #        master:
-#          url: jdbc:mysql://39.97.120.42:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false
+#          url: jdbc:mysql://139.186.27.96:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false
 #          username: hcst
 #          password: test@20190531
+      datasource:
+        master:
+          url: jdbc:mysql://39.106.184.70/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false
+          username: hcst
+          password: test@20190531
           driver-class-name: com.mysql.jdbc.Driver
   #redis 配置
   redis:

+ 43 - 0
module-check/pom.xml

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>jeecg-boot-parent</artifactId>
+        <groupId>org.jeecgframework.boot</groupId>
+        <version>2.0.2</version>
+    </parent>
+    <groupId>com.ctop</groupId>
+    <artifactId>module-check</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>module-check</name>
+    <description>Data Check Jar</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.jeecgframework.boot</groupId>
+            <artifactId>jeecg-boot-base-common</artifactId>
+            <version>2.0.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.com.ctop</groupId>
+            <artifactId>module-common</artifactId>
+            <version>2.0.2</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 13 - 0
module-check/src/main/java/cn/com/ctop/ModuleCheckApplication.java

@@ -0,0 +1,13 @@
+package cn.com.ctop;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class ModuleCheckApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ModuleCheckApplication.class, args);
+    }
+
+}

+ 20 - 0
module-check/src/main/java/cn/com/ctop/check/TestGroovy.groovy

@@ -0,0 +1,20 @@
+package cn.com.ctop.check
+
+import cn.com.ctop.check.component.basic.AbstractScript
+import cn.com.ctop.common.module.service.IRefreshTokenService
+import cn.com.ctop.common.module.service.impl.RefreshTokenServiceImpl
+import org.jeecg.common.api.vo.Result
+
+class TestGroovy extends AbstractScript {
+
+   private IRefreshTokenService refreshTokenService;
+
+    @Override
+    Result<Object> exec() {
+        refreshTokenService=applicationContext.getBean(RefreshTokenServiceImpl.class)
+        println("开始执行Groovy脚本")
+        refreshTokenService.byteDanceRefresh();
+        println("执行完成")
+        return Result.ok("666")
+    }
+}

+ 37 - 0
module-check/src/main/java/cn/com/ctop/check/component/basic/AbstractScript.java

@@ -0,0 +1,37 @@
+package cn.com.ctop.check.component.basic;
+
+import cn.com.ctop.check.entity.CtopCheckTaskList;
+import cn.com.ctop.notice.handle.SendWeChatHandle;
+import org.springframework.context.ApplicationContext;
+
+public abstract class AbstractScript implements BaseScript{
+
+    protected ApplicationContext applicationContext;
+
+    protected CtopCheckTaskList ctopCheckTaskList;
+
+    protected SendWeChatHandle sendWeChatHandle;
+
+
+    public ApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+
+    public void setApplicationContext(ApplicationContext applicationContext) {
+        this.applicationContext = applicationContext;
+    }
+
+    public CtopCheckTaskList getCtopCheckTaskList() { return ctopCheckTaskList; }
+
+    public void setCtopCheckTaskList(CtopCheckTaskList ctopCheckTaskList) {
+        this.ctopCheckTaskList = ctopCheckTaskList;
+    }
+
+    public SendWeChatHandle getSendWeChatHandle() {
+        return sendWeChatHandle;
+    }
+
+    public void setSendWeChatHandle(SendWeChatHandle sendWeChatHandle) {
+        this.sendWeChatHandle = sendWeChatHandle;
+    }
+}

+ 9 - 0
module-check/src/main/java/cn/com/ctop/check/component/basic/BaseScript.java

@@ -0,0 +1,9 @@
+package cn.com.ctop.check.component.basic;
+
+import org.jeecg.common.api.vo.Result;
+
+public interface BaseScript {
+
+    Result<Object> exec();
+
+}

+ 114 - 0
module-check/src/main/java/cn/com/ctop/check/component/execute/GroovyScriptExecutor.java

@@ -0,0 +1,114 @@
+package cn.com.ctop.check.component.execute;
+
+import cn.com.ctop.check.component.basic.AbstractScript;
+import cn.com.ctop.check.entity.CtopCheckTaskList;
+import cn.com.ctop.check.service.ICtopCheckTaskListService;
+import cn.com.ctop.notice.handle.SendWeChatHandle;
+import groovy.lang.GroovyClassLoader;
+import groovy.lang.GroovyCodeSource;
+import lombok.extern.slf4j.Slf4j;
+import org.codehaus.groovy.control.CompilationFailedException;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.UUIDGenerator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+
+/**
+ *  Created by JQ.bi on 2020.08.11
+ */
+@Slf4j
+@Component
+public class GroovyScriptExecutor {
+
+    private final static String ROOT_PATH = System.getProperty("user.dir");
+
+    private final static String SCRIPT_PATH = ROOT_PATH + File.separator + "script";
+
+    private final ApplicationContext applicationContext;
+
+    private final ICtopCheckTaskListService checkTaskListService;
+
+    private final SendWeChatHandle  sendWeChatHandle;
+
+    private final GroovyClassLoader classLoader;
+
+    @Autowired
+    public GroovyScriptExecutor(ApplicationContext applicationContext,ICtopCheckTaskListService checkTaskListService,SendWeChatHandle  sendWeChatHandle) {
+        this.applicationContext=applicationContext;
+        this.checkTaskListService = checkTaskListService;
+        this.sendWeChatHandle=sendWeChatHandle;
+        this.classLoader = new GroovyClassLoader();
+        initClassPath();
+    }
+
+    public Result<Object> execute(CtopCheckTaskList script) {
+        if(script.getIsDelete()||!script.getExeState()){
+            return Result.error(String.format("groovy script is invalid. api_name=%s", script.getApiName()));
+        }else {
+            return executescriptScript(script);
+        }
+    }
+
+    public Result<Object> execute(Integer id, String apiName) {
+        CtopCheckTaskList script = checkTaskListService.queryByIdAndApiName(id,apiName);
+        if (script == null) {
+            return Result.error(String.format("groovy script not found. api_name=%s", apiName));
+        }else {
+            return executescriptScript(script);
+        }
+    }
+
+    private Result<Object> executescriptScript(CtopCheckTaskList taskList){
+        ClearCache();
+        GroovyCodeSource groovyCodeSource = getGroovyCodeSource(taskList);
+        Result<Object> response = null;
+        try {
+            Class scriptClass = this.classLoader.parseClass(groovyCodeSource);
+            Object instance = scriptClass.newInstance();
+            if (instance instanceof AbstractScript) {
+                AbstractScript scriptInstance = (AbstractScript) instance;
+                scriptInstance.setApplicationContext(applicationContext);
+                scriptInstance.setSendWeChatHandle(sendWeChatHandle);
+                scriptInstance.setCtopCheckTaskList(taskList);
+                response = scriptInstance.exec();
+            } else {
+                log.error("script script should extends Abstractscript.");
+                response=Result.error("script script should extends Abstractscript.");
+            }
+        } catch (InstantiationException | IllegalAccessException | CompilationFailedException e) {
+            log.error("Error execute check task script. ", e);
+            response=Result.error("Error execute check task script. "+e.getMessage());
+        }
+        return response;
+    }
+
+    private GroovyCodeSource getGroovyCodeSource(CtopCheckTaskList taskList) {
+        String codeBase = "/script/" + UUIDGenerator.generate();
+        GroovyCodeSource groovyCodeSource = new GroovyCodeSource(taskList.getScript(), taskList.getApiName(), codeBase);
+        groovyCodeSource.setCachable(false);
+        return groovyCodeSource;
+    }
+
+    private void initClassPath() {
+        String libPath = SCRIPT_PATH + File.separator + "lib";
+        File lib = new File(libPath);
+        if (lib.exists()) {
+            File[] files = lib.listFiles(pathname -> pathname.isFile() && pathname.getName().endsWith(".jar"));
+            if (files != null) {
+                for (File file : files) {
+                    String path = file.getPath();
+                    this.classLoader.addClasspath(path);
+                }
+            }
+        }
+    }
+
+    //清除缓存
+    private void ClearCache(){
+        classLoader.clearCache();
+    }
+
+}

+ 111 - 0
module-check/src/main/java/cn/com/ctop/check/controller/CtopCheckTaskExecuteLogController.java

@@ -0,0 +1,111 @@
+package cn.com.ctop.check.controller;
+
+import cn.com.ctop.check.entity.CtopCheckTaskExecuteLog;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import cn.com.ctop.check.service.ICtopCheckTaskExecuteLogService;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+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;
+
+/**
+* 数据检查任务执行日志.
+*/
+@Slf4j
+@RestController
+@RequestMapping("/ctop/checkTaskExecuteLog")
+public class CtopCheckTaskExecuteLogController {
+
+   @Autowired
+   private ICtopCheckTaskExecuteLogService ctopCheckTaskExecuteLogService;
+
+   /**
+    * 分页列表查询
+    */
+   @GetMapping(value = "/list")
+   public Result<IPage<CtopCheckTaskExecuteLog>> queryPageList(CtopCheckTaskExecuteLog ctopCheckTaskExecuteLog,
+                                                               @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                                               @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                                                               HttpServletRequest req) {
+       Result<IPage<CtopCheckTaskExecuteLog>> result = new Result<>();
+       QueryWrapper<CtopCheckTaskExecuteLog> queryWrapper = QueryGenerator.initQueryWrapper(ctopCheckTaskExecuteLog, req.getParameterMap());
+       queryWrapper.orderByDesc("create_time");
+       Page<CtopCheckTaskExecuteLog> page = new Page<>(pageNo, pageSize);
+       IPage<CtopCheckTaskExecuteLog> pageList = ctopCheckTaskExecuteLogService.page(page, queryWrapper);
+       pageList.getRecords().forEach(it->it.setExeTime((int)(it.getEndDate()-it.getStartDate())/1000));
+       result.setSuccess(true);
+       result.setResult(pageList);
+       return result;
+   }
+
+   /**
+    *  添加
+    */
+   @PostMapping(value = "/add")
+   public Result<CtopCheckTaskExecuteLog> add(@RequestBody CtopCheckTaskExecuteLog ctopCheckTaskExecuteLog) {
+       Result<CtopCheckTaskExecuteLog> result = new Result<>();
+       try {
+           ctopCheckTaskExecuteLogService.save(ctopCheckTaskExecuteLog);
+           result.success("添加成功!");
+       } catch (Exception e) {
+           log.error(e.getMessage(),e);
+           result.error500("操作失败");
+       }
+       return result;
+   }
+
+   /**
+    *  编辑
+    */
+   @PostMapping(value = "/edit")
+   public Result<CtopCheckTaskExecuteLog> edit(@RequestBody CtopCheckTaskExecuteLog ctopCheckTaskExecuteLog) {
+       Result<CtopCheckTaskExecuteLog> result = new Result<CtopCheckTaskExecuteLog>();
+       CtopCheckTaskExecuteLog ctopCheckTaskExecuteLogEntity = ctopCheckTaskExecuteLogService.getById(ctopCheckTaskExecuteLog.getId());
+       if(ctopCheckTaskExecuteLogEntity==null) {
+           result.error500("未找到对应实体");
+       }else {
+           boolean ok = ctopCheckTaskExecuteLogService.updateById(ctopCheckTaskExecuteLog);
+           if(ok) {
+               result.success("修改成功!");
+           }
+       }
+       return result;
+   }
+
+   /**
+    *  通过id删除
+    */
+   @PostMapping(value = "/delete")
+   public Result<?> delete(@RequestParam(name="id",required=true) Long id) {
+       try {
+           ctopCheckTaskExecuteLogService.removeById(id);
+       } catch (Exception e) {
+           log.error(e.getMessage());
+           return Result.error("删除失败!");
+       }
+       return Result.ok("删除成功!");
+   }
+
+
+   /**
+    * 通过id查询
+    */
+   @GetMapping(value = "/queryById")
+   public Result<CtopCheckTaskExecuteLog> queryById(@RequestParam(name="id",required=true) String id) {
+       Result<CtopCheckTaskExecuteLog> result = new Result<>();
+       CtopCheckTaskExecuteLog ctopCheckTaskExecuteLog = ctopCheckTaskExecuteLogService.getById(id);
+       if(ctopCheckTaskExecuteLog==null) {
+           result.error500("未找到对应实体");
+       }else {
+           result.setResult(ctopCheckTaskExecuteLog);
+           result.setSuccess(true);
+       }
+       return result;
+   }
+
+}

+ 115 - 0
module-check/src/main/java/cn/com/ctop/check/controller/CtopCheckTaskListController.java

@@ -0,0 +1,115 @@
+package cn.com.ctop.check.controller;
+
+import cn.com.ctop.check.entity.CtopCheckTaskList;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import cn.com.ctop.check.service.ICtopCheckTaskListService;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+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;
+
+/**
+* 检查数据任务列表
+*/
+@Slf4j
+@RestController
+@RequestMapping("/ctop/checkTaskList")
+public class CtopCheckTaskListController {
+
+    @Autowired
+    private ICtopCheckTaskListService ctopCheckTaskListService;
+
+    /**
+     * 分页列表查询
+     */
+    @GetMapping(value = "/list")
+    public Result<IPage<CtopCheckTaskList>> queryPageList(CtopCheckTaskList ctopCheckTaskList,
+                                                          @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                          @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                          HttpServletRequest req) {
+        Result<IPage<CtopCheckTaskList>> result = new Result<>();
+        //过滤已删除
+        ctopCheckTaskList.setIsDelete(false);
+        QueryWrapper<CtopCheckTaskList> queryWrapper = QueryGenerator.initQueryWrapper(ctopCheckTaskList, req.getParameterMap());
+        queryWrapper.orderByDesc("create_time");
+        Page<CtopCheckTaskList> page = new Page<>(pageNo, pageSize);
+        IPage<CtopCheckTaskList> pageList = ctopCheckTaskListService.page(page, queryWrapper);
+        result.setSuccess(true);
+        result.setResult(pageList);
+        return result;
+    }
+
+    /**
+     * 添加
+     */
+    @PostMapping(value = "/add")
+    public Result<CtopCheckTaskList> add(@RequestBody CtopCheckTaskList ctopCheckTaskList) {
+        Result<CtopCheckTaskList> result = new Result<>();
+        try {
+            ctopCheckTaskListService.save(ctopCheckTaskList);
+            result.success("添加成功!");
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            result.error500("操作失败");
+        }
+        return result;
+    }
+
+    /**
+     * 编辑
+     */
+    @PostMapping(value = "/edit")
+    public Result<CtopCheckTaskList> edit(@RequestBody CtopCheckTaskList ctopCheckTaskList) {
+        Result<CtopCheckTaskList> result = new Result<>();
+        CtopCheckTaskList ctopCheckTaskListEntity = ctopCheckTaskListService.getById(ctopCheckTaskList.getId());
+        if (ctopCheckTaskListEntity == null) {
+            result.error500("未找到对应实体");
+        } else {
+            boolean ok = ctopCheckTaskListService.updateById(ctopCheckTaskList);
+            if (ok) {
+                result.success("修改成功!");
+            }
+        }
+
+        return result;
+    }
+
+    /**
+     * 通过id删除
+     */
+    @PostMapping(value = "/delete")
+    public Result<?> delete(@RequestParam(name = "id", required = true) Integer id) {
+        try {
+            CtopCheckTaskList ctopCheckTaskList=new CtopCheckTaskList();
+            ctopCheckTaskList.setId(id);
+            ctopCheckTaskList.setIsDelete(true);
+            ctopCheckTaskListService.updateById(ctopCheckTaskList);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return Result.error("删除失败!");
+        }
+        return Result.ok("删除成功!");
+    }
+
+    /**
+     * 通过id查询
+     */
+    @GetMapping(value = "/queryById")
+    public Result<CtopCheckTaskList> queryById(@RequestParam(name = "id", required = true) Integer id) {
+        Result<CtopCheckTaskList> result = new Result<>();
+        CtopCheckTaskList ctopCheckTaskList = ctopCheckTaskListService.getById(id);
+        if (ctopCheckTaskList == null) {
+            result.error500("未找到对应实体");
+        } else {
+            result.setResult(ctopCheckTaskList);
+            result.setSuccess(true);
+        }
+        return result;
+    }
+}

+ 47 - 0
module-check/src/main/java/cn/com/ctop/check/entity/CtopCheckTaskExecuteLog.java

@@ -0,0 +1,47 @@
+package cn.com.ctop.check.entity;
+
+import cn.com.ctop.common.module.annotation.Dict;
+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 lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 数据检查任务执行日志
+ */
+@Data
+@TableName("ctop_check_task_execute_log")
+public class CtopCheckTaskExecuteLog {
+    
+	/**
+	 * id
+	 */
+	@TableId(type = IdType.AUTO)
+	private Long id;
+
+	/**checkTaskId*/
+	@Dict(dicCode = "id",dictTable="ctop_check_task_list",dicText="name")
+	private Integer checkTaskId;
+
+	/**startDate*/
+	private Long startDate;
+
+	/**endDate*/
+	private Long endDate;
+
+	//执行时间毫秒
+	@TableField(exist=false)
+	private Integer exeTime;
+
+	/**执行结果*/
+	private Boolean exeResult;
+
+	/**通知状态*/
+	private Boolean notifyState;
+
+	/**createTime*/
+	private Date createTime;
+}

+ 83 - 0
module-check/src/main/java/cn/com/ctop/check/entity/CtopCheckTaskList.java

@@ -0,0 +1,83 @@
+package cn.com.ctop.check.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 检查数据任务列表
+ */
+@Data
+@TableName("ctop_check_task_list")
+public class CtopCheckTaskList {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 任务名称
+     */
+    private String name;
+
+    /**
+     * 描述
+     */
+    private String comment;
+
+    /**
+     * job 名称
+     */
+    private String jobName;
+
+    /**
+     * 包名
+     */
+    private String packageName;
+
+    /**
+     * 类名
+     */
+    private String apiName;
+
+    /**
+     * 脚本
+     *
+     */
+    private String script;
+
+    /**
+     * mail
+     */
+    private String mail;
+
+    /**
+     * 执行状态
+     */
+    private Boolean exeState;
+
+    /**
+     * 媒体类型
+     */
+    private Integer mediaType;
+
+    /**
+     * createTime
+     */
+    private Date createTime;
+
+    /**
+     * updateTime
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除
+     */
+    private Boolean isDelete;
+}

+ 11 - 0
module-check/src/main/java/cn/com/ctop/check/mapper/CtopCheckTaskExecuteLogMapper.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.check.mapper;
+
+import cn.com.ctop.check.entity.CtopCheckTaskExecuteLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 数据检查任务执行日志
+ */
+public interface CtopCheckTaskExecuteLogMapper extends BaseMapper<CtopCheckTaskExecuteLog> {
+
+}

+ 19 - 0
module-check/src/main/java/cn/com/ctop/check/mapper/CtopCheckTaskListMapper.java

@@ -0,0 +1,19 @@
+package cn.com.ctop.check.mapper;
+
+import cn.com.ctop.check.entity.CtopCheckTaskList;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 检查数据任务列表
+ *
+ */
+public interface CtopCheckTaskListMapper extends BaseMapper<CtopCheckTaskList> {
+
+    CtopCheckTaskList queryByIdAndApiName(@Param("id") int id, @Param("apiName") String apiName);
+
+    List<CtopCheckTaskList> queryExecuteList(@Param("jobName") String jobName);
+
+}

+ 5 - 0
module-check/src/main/java/cn/com/ctop/check/mapper/xml/CtopCheckTaskExecuteLogMapper.xml

@@ -0,0 +1,5 @@
+<?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.check.mapper.CtopCheckTaskExecuteLogMapper">
+
+</mapper>

+ 27 - 0
module-check/src/main/java/cn/com/ctop/check/mapper/xml/CtopCheckTaskListMapper.xml

@@ -0,0 +1,27 @@
+<?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.check.mapper.CtopCheckTaskListMapper">
+
+    <select id="queryByIdAndApiName" resultType="cn.com.ctop.check.entity.CtopCheckTaskList">
+        SELECT
+            *
+        FROM
+            ctop_check_task_list
+        WHERE
+            id = #{id}
+          AND api_name = #{apiName}
+          AND is_delete = FALSE
+    </select>
+
+    <select id="queryExecuteList" resultType="cn.com.ctop.check.entity.CtopCheckTaskList">
+        SELECT
+            *
+        FROM
+            ctop_check_task_list
+        WHERE
+            job_name = #{jobName}
+          AND is_delete = FALSE
+          AND exe_state = TRUE
+        ORDER BY media_type
+    </select>
+</mapper>

+ 18 - 0
module-check/src/main/java/cn/com/ctop/check/script/CheckTokenExecuteStateScript.groovy

@@ -0,0 +1,18 @@
+package cn.com.ctop.check.script
+
+import cn.com.ctop.check.component.basic.AbstractScript
+import cn.com.ctop.common.module.service.ICtopOauthTokenService
+import cn.com.ctop.common.module.service.impl.CtopOauthTokenServiceImpl
+import org.jeecg.common.api.vo.Result
+
+class CheckTokenExecuteStateScript extends AbstractScript{
+
+    private ICtopOauthTokenService ctopOauthTokenService
+
+    @Override
+    Result<Object> exec() {
+        ctopOauthTokenService=applicationContext.getBean(CtopOauthTokenServiceImpl.class)
+
+        return null
+    }
+}

+ 26 - 0
module-check/src/main/java/cn/com/ctop/check/script/TestGroovyScript.java

@@ -0,0 +1,26 @@
+package cn.com.ctop.check.script;
+
+import cn.com.ctop.check.component.execute.GroovyScriptExecutor;
+import cn.com.ctop.check.service.ICtopCheckTaskListService;
+import org.jeecg.common.api.vo.Result;
+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;
+
+@RestController
+@RequestMapping("/rest/script")
+public class TestGroovyScript {
+
+    @Autowired
+    ICtopCheckTaskListService checkTaskListService;
+
+    @Autowired
+    GroovyScriptExecutor groovyScriptExecutor;
+
+    @GetMapping("/test")
+    public Result testGroovy(){
+        groovyScriptExecutor.execute(1,"TestGroovy");
+        return Result.ok();
+    }
+}

+ 11 - 0
module-check/src/main/java/cn/com/ctop/check/service/ICtopCheckTaskExecuteLogService.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.check.service;
+
+import cn.com.ctop.check.entity.CtopCheckTaskExecuteLog;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 数据检查任务执行日志
+ */
+public interface ICtopCheckTaskExecuteLogService extends IService<CtopCheckTaskExecuteLog> {
+
+}

+ 16 - 0
module-check/src/main/java/cn/com/ctop/check/service/ICtopCheckTaskListService.java

@@ -0,0 +1,16 @@
+package cn.com.ctop.check.service;
+
+import cn.com.ctop.check.entity.CtopCheckTaskList;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * 检查数据任务列表
+ */
+public interface ICtopCheckTaskListService extends IService<CtopCheckTaskList> {
+
+    CtopCheckTaskList queryByIdAndApiName(int id, String apiName);
+
+    List<CtopCheckTaskList> queryExecuteList(String jobName);
+}

+ 15 - 0
module-check/src/main/java/cn/com/ctop/check/service/impl/CtopCheckTaskExecuteLogServiceImpl.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.check.service.impl;
+
+import cn.com.ctop.check.entity.CtopCheckTaskExecuteLog;
+import cn.com.ctop.check.mapper.CtopCheckTaskExecuteLogMapper;
+import cn.com.ctop.check.service.ICtopCheckTaskExecuteLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 数据检查任务执行日志
+ */
+@Service
+public class CtopCheckTaskExecuteLogServiceImpl extends ServiceImpl<CtopCheckTaskExecuteLogMapper, CtopCheckTaskExecuteLog> implements ICtopCheckTaskExecuteLogService {
+
+}

+ 30 - 0
module-check/src/main/java/cn/com/ctop/check/service/impl/CtopCheckTaskListServiceImpl.java

@@ -0,0 +1,30 @@
+package cn.com.ctop.check.service.impl;
+
+import cn.com.ctop.check.entity.CtopCheckTaskList;
+import cn.com.ctop.check.mapper.CtopCheckTaskListMapper;
+import cn.com.ctop.check.service.ICtopCheckTaskListService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 检查数据任务列表
+ */
+@Service
+public class CtopCheckTaskListServiceImpl extends ServiceImpl<CtopCheckTaskListMapper, CtopCheckTaskList> implements ICtopCheckTaskListService {
+
+    @Autowired
+    CtopCheckTaskListMapper ctopCheckTaskListMapper;
+
+    @Override
+    public CtopCheckTaskList queryByIdAndApiName(int id, String apiName) {
+        return ctopCheckTaskListMapper.queryByIdAndApiName(id,apiName);
+    }
+
+    @Override
+    public List<CtopCheckTaskList> queryExecuteList(String jobName) {
+        return ctopCheckTaskListMapper.queryExecuteList(jobName);
+    }
+}

+ 30 - 0
module-check/src/main/java/cn/com/ctop/notice/handle/SendWeChatHandle.java

@@ -0,0 +1,30 @@
+package cn.com.ctop.notice.handle;
+
+import cn.com.ctop.common.module.mapper.MailLogMapper;
+import cn.com.ctop.common.module.service.ISendMessageService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class SendWeChatHandle {
+
+    @Autowired
+    MailLogMapper mailLogMapper;
+    @Autowired
+    ISendMessageService sendMessageService;
+
+    public boolean SendWeChatByMail(String mail,String message){
+        boolean result=true;
+        String weChatId=mailLogMapper.getWeChatByMail(mail);
+        if(weChatId.isEmpty()){
+            log.error("mail's wechat not found. mail =%s", mail);
+            //TODO 通知管理员添加邮箱
+            result=false;
+        }else{
+            sendMessageService.sendMessage(weChatId,message);
+        }
+        return result;
+    }
+}

+ 13 - 0
module-check/src/test/java/cn/com/ctop/ModuleCheckApplicationTests.java

@@ -0,0 +1,13 @@
+package cn.com.ctop;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class ModuleCheckApplicationTests {
+
+    @Test
+    void contextLoads() {
+    }
+
+}

+ 2 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/MailLogMapper.java

@@ -24,4 +24,6 @@ public interface MailLogMapper extends BaseMapper<MailLog> {
     String getWChatIdByUserId(@Param("userId") String responsibleId);
 
     String getUserNameByUserId(@Param("userId") String transferor);
+
+    String getWeChatByMail(@Param("mail") String mail);
 }

+ 8 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MailLogMapper.xml

@@ -58,5 +58,13 @@
     where id = #{userId}
     </select>
 
+    <select id="getWeChatByMail" resultType="java.lang.String">
+        SELECT
+            wexin_id
+        FROM
+            ctop_corp_wexin_user
+        WHERE
+            wexin_email = #{mail}
+    </select>
 
 </mapper>

+ 0 - 1
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MailLogServiceImpl.java

@@ -22,7 +22,6 @@ import org.springframework.stereotype.Service;
  * @date 2019-12-08
  */
 @Service
-@Primary
 public class MailLogServiceImpl extends ServiceImpl<MailLogMapper, MailLog> implements IMailLogService {
     @Autowired
     private MailLogMapper mailLogMapper;

+ 6 - 0
module-job-bytedance/pom.xml

@@ -141,6 +141,12 @@
             <artifactId>xxl-job-core</artifactId>
             <version>2.0.2</version>
         </dependency>
+        <dependency>
+            <groupId>com.ctop</groupId>
+            <artifactId>module-check</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
     <dependencyManagement>

+ 1 - 0
module-job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/ByteDanceRefreshTokenJob.java

@@ -8,6 +8,7 @@ import org.springframework.stereotype.Component;
 
 @Component
 public class ByteDanceRefreshTokenJob {
+
     @Autowired
     private IRefreshTokenService refreshTokenService;
 

+ 20 - 0
pom.xml

@@ -27,6 +27,7 @@
         <module>module-job-bytedance</module>
         <module>module-job-kuaishou</module>
         <module>module-callback</module>
+        <module>module-check</module>
     </modules>
 
     <distributionManagement>
@@ -425,6 +426,25 @@
                 <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
              指定JDK编译版本 -->
+            <plugin> <!--groovy的编译--> <!--https://github.com/groovy/GMavenPlus/wiki/Examples-->
+                <groupId>org.codehaus.gmavenplus</groupId>
+                <artifactId>gmavenplus-plugin</artifactId>
+                <version>1.6.1</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>addSources</goal>
+                            <goal>addTestSources</goal>
+                            <goal>generateStubs</goal>
+                            <goal>generateTestStubs</goal>
+                            <goal>compile</goal>
+                            <goal>compileTests</goal>
+                            <goal>removeStubs</goal>
+                            <goal>removeTestStubs</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>