Explorar o código

Merge branch 'test'

syh %!s(int64=4) %!d(string=hai) anos
pai
achega
38434740af
Modificáronse 71 ficheiros con 1000 adicións e 189 borrados
  1. 0 6
      jeecg-boot-module-system/pom.xml
  2. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java
  3. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/config/StaticConfig.java
  4. 26 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/UReportFileBindUserController.java
  5. 1 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/UReportFileController.java
  6. 4 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/UReportFileBindUserServiceImpl.java
  7. 4 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/UReportFileServiceImpl.java
  8. 0 6
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/ISendMsgHandle.java
  9. 0 37
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/impl/EmailSendMsgHandle.java
  10. 0 15
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/impl/SmsSendMsgHandle.java
  11. 0 16
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/impl/WxSendMsgHandle.java
  12. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java
  13. 3 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
  14. 11 10
      jeecg-boot-module-system/src/main/resources/application-dev.yml
  15. 4 3
      jeecg-boot-module-system/src/main/resources/application-prod.yml
  16. 4 3
      jeecg-boot-module-system/src/main/resources/application-prod2.yml
  17. 5 4
      jeecg-boot-module-system/src/main/resources/application-test.yml
  18. 60 3
      jeecg-boot-module-system/src/test/java/org/jeecg/SampleTest.java
  19. 4 0
      module-check/src/main/java/cn/com/ctop/check/controller/CtopCheckTaskExecutorCtrl.java
  20. 6 1
      module-check/src/main/java/cn/com/ctop/check/script/TestGroovyScript.java
  21. 2 0
      module-check/src/main/java/cn/com/ctop/notice/handler/SendWeChatHandle.java
  22. 14 0
      module-common/src/main/java/cn/com/ctop/common/module/entity/UReportSubscriber.java
  23. 2 2
      module-common/src/main/java/cn/com/ctop/common/module/mapper/CtopCorpWexinUserMapper.java
  24. 15 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/UReportMapper.java
  25. 8 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/CtopCorpWexinUserMapper.xml
  26. 4 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/SysUserMapper.xml
  27. 27 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/UReportMapper.xml
  28. 3 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/controller/SysMessageController.java
  29. 5 5
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/controller/SysMessageTemplateController.java
  30. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/entity/MsgParams.java
  31. 13 11
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/entity/SysMessage.java
  32. 6 6
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/entity/SysMessageTemplate.java
  33. 10 0
      module-common/src/main/java/cn/com/ctop/common/module/message/handle/ISendMsgHandle.java
  34. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/enums/SendMsgStatusEnum.java
  35. 4 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/enums/SendMsgTypeEnum.java
  36. 59 0
      module-common/src/main/java/cn/com/ctop/common/module/message/handle/impl/EmailSendMsgHandle.java
  37. 24 0
      module-common/src/main/java/cn/com/ctop/common/module/message/handle/impl/SmsSendMsgHandle.java
  38. 25 0
      module-common/src/main/java/cn/com/ctop/common/module/message/handle/impl/WxSendMsgHandle.java
  39. 6 6
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/job/SendMsgJob.java
  40. 2 5
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/mapper/SysMessageMapper.java
  41. 2 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/mapper/SysMessageTemplateMapper.java
  42. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/mapper/xml/SysMessageMapper.xml
  43. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/mapper/xml/SysMessageTemplateMapper.xml
  44. 2 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/ISysMessageService.java
  45. 2 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/ISysMessageTemplateService.java
  46. 4 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/impl/SysMessageServiceImpl.java
  47. 4 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/impl/SysMessageTemplateServiceImpl.java
  48. 6 6
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/util/PushMsgUtil.java
  49. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/websocket/TestSocketController.java
  50. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/websocket/WebSocket.java
  51. 1 0
      module-common/src/main/java/cn/com/ctop/common/module/service/ICtopCorpWexinUserService.java
  52. 6 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IUReportExportService.java
  53. 15 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IUReportService.java
  54. 8 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/CtopCorpWexinUserServiceImpl.java
  55. 53 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/UReportExportRest.java
  56. 56 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/UReportExportServiceImpl.java
  57. 27 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/UReportService.java
  58. 58 0
      module-job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/SendDailyUReportJob.java
  59. 20 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/constants/CreateProjectUrlConstant.java
  60. 17 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/constants/GetProjectUrlConstant.java
  61. 19 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/constants/PlanAnalyzeReport.java
  62. 11 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/constants/UpdateProjectUrlConstant.java
  63. 23 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/ICreateProjectService.java
  64. 19 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/IGetProjectService.java
  65. 4 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/IPlanAnalyzeReportService.java
  66. 14 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/IUpdateProjectService.java
  67. 149 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/impl/CreateProjectServiceImpl.java
  68. 52 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/impl/GetProjectServiceImpl.java
  69. 6 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/impl/PlanAnalyzeReportServiceImpl.java
  70. 46 0
      module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/impl/UpdateProjectServiceImpl.java
  71. 6 0
      pom.xml

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

@@ -139,12 +139,6 @@
         </dependency>
 
         <dependency>
-            <groupId>com.bstek.ureport</groupId>
-            <artifactId>ureport2-console</artifactId>
-            <version>2.2.9</version>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.poi</groupId>
             <artifactId>poi</artifactId>
             <version>3.17</version>

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

@@ -168,7 +168,7 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/ureport/**", "anon");
         filterChainDefinitionMap.put("/job/test/*", "anon");
         filterChainDefinitionMap.put("/third/*", "anon");
-        //filterChainDefinitionMap.put("/kuaishou/**", "anon");
+        filterChainDefinitionMap.put("/ctop/kuaishou/dailyPage/**", "anon");
         filterChainDefinitionMap.put("/rest/script/*", "anon");
         filterChainDefinitionMap.put("/ctop/checkTaskList/*", "anon");
 

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

@@ -1,7 +1,7 @@
 package org.jeecg.config;
 
 import org.jeecg.common.util.DySmsHelper;
-import org.jeecg.modules.message.handle.impl.EmailSendMsgHandle;
+import cn.com.ctop.common.module.message.handle.impl.EmailSendMsgHandle;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;

+ 26 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/UReportFileBindUserController.java

@@ -15,6 +15,7 @@ import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.ctop.entity.UReportFile;
 import org.jeecg.modules.ctop.entity.UReportFileBindUser;
 import org.jeecg.modules.ctop.service.IUReportFileBindUserService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -207,4 +209,28 @@ public class UReportFileBindUserController {
         }
         return result;
     }
+
+
+    /**
+     *  订阅按钮
+     */
+    @PostMapping(value = "/subscribe")
+    public Result subscribe(@RequestParam(name = "fileId") String fileId) {
+        Result<UReportFile> result = new Result<>();
+        QueryWrapper<UReportFileBindUser> queryWrapper=new QueryWrapper();
+        queryWrapper.eq("file_id",fileId);
+        queryWrapper.ne("user_id","e9ca23d68d884d4ebb19d07889727dae");
+        List<UReportFileBindUser> uReportFileBindUser = uReportFileBindUserService.list(queryWrapper);
+        if (uReportFileBindUser.isEmpty()) {
+            result.error500("请绑定用户后订阅");
+        } else {
+            uReportFileBindUser.forEach(it->it.setIsSubscribe(true));
+            boolean ok = uReportFileBindUserService.updateBatchById(uReportFileBindUser);
+            if (ok) {
+                result.success("订阅成功!");
+            }
+        }
+        return result;
+    }
+
 }

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

@@ -5,21 +5,18 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.bstek.ureport.export.ExportManager;
 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.system.query.QueryGenerator;
 import org.jeecg.modules.ctop.entity.UReportFile;
-import org.jeecg.modules.ctop.entity.UReportFileBindUser;
 import org.jeecg.modules.ctop.service.IUReportFileService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Arrays;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -193,4 +190,5 @@ public class UReportFileController {
         }
         return result;
     }
+
 }

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

@@ -1,13 +1,13 @@
 package org.jeecg.modules.ctop.service.impl;
 
-import cn.com.ctop.common.module.utils.ResultMapUtils;
-import cn.com.ctop.common.module.utils.StatusCode;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.modules.ctop.entity.UReportFileBindUser;
 import org.jeecg.modules.ctop.mapper.UReportFileBindUserMapper;
 import org.jeecg.modules.ctop.service.IUReportFileBindUserService;
+import cn.com.ctop.common.module.utils.ResultMapUtils;
+import cn.com.ctop.common.module.utils.StatusCode;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;

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

@@ -1,16 +1,16 @@
 package org.jeecg.modules.ctop.service.impl;
 
 import cn.com.ctop.common.module.entity.SysUser;
-import cn.com.ctop.common.module.utils.ResultMapUtils;
-import cn.com.ctop.common.module.utils.StatusCode;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.modules.ctop.entity.UReportFile;
 import org.jeecg.modules.ctop.entity.UReportFileBindUser;
 import org.jeecg.modules.ctop.mapper.UReportFileMapper;
 import org.jeecg.modules.ctop.service.IUReportFileBindUserService;
 import org.jeecg.modules.ctop.service.IUReportFileService;
+import cn.com.ctop.common.module.utils.ResultMapUtils;
+import cn.com.ctop.common.module.utils.StatusCode;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.jeecg.modules.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 0 - 6
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/ISendMsgHandle.java

@@ -1,6 +0,0 @@
-package org.jeecg.modules.message.handle;
-
-public interface ISendMsgHandle {
-
-	void SendMsg(String es_receiver, String es_title, String es_content);
-}

+ 0 - 37
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/impl/EmailSendMsgHandle.java

@@ -1,37 +0,0 @@
-package org.jeecg.modules.message.handle.impl;
-
-import org.jeecg.common.util.SpringContextUtils;
-import org.jeecg.modules.message.handle.ISendMsgHandle;
-import org.springframework.mail.SimpleMailMessage;
-import org.springframework.mail.javamail.JavaMailSender;
-import org.springframework.mail.javamail.MimeMessageHelper;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-
-public class EmailSendMsgHandle implements ISendMsgHandle {
-    static String emailFrom;
-
-    public static void setEmailFrom(String emailFrom) {
-        EmailSendMsgHandle.emailFrom = emailFrom;
-    }
-
-    @Override
-    public void SendMsg(String es_receiver, String es_title, String es_content) {
-        JavaMailSender mailSender = (JavaMailSender) SpringContextUtils.getBean("mailSender");
-        MimeMessage message = mailSender.createMimeMessage();
-        MimeMessageHelper helper = null;
-        try {
-            helper = new MimeMessageHelper(message, true);
-            // 设置发送方邮箱地址
-            helper.setFrom(emailFrom);
-            helper.setTo(es_receiver);
-            helper.setSubject(es_title);
-            helper.setText(es_content, true);
-            mailSender.send(message);
-        } catch (MessagingException e) {
-            e.printStackTrace();
-        }
-
-    }
-}

+ 0 - 15
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/impl/SmsSendMsgHandle.java

@@ -1,15 +0,0 @@
-package org.jeecg.modules.message.handle.impl;
-
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.modules.message.handle.ISendMsgHandle;
-
-@Slf4j
-public class SmsSendMsgHandle implements ISendMsgHandle {
-
-	@Override
-	public void SendMsg(String es_receiver, String es_title, String es_content) {
-		// TODO Auto-generated method stub
-		log.info("发短信");
-	}
-
-}

+ 0 - 16
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/impl/WxSendMsgHandle.java

@@ -1,16 +0,0 @@
-package org.jeecg.modules.message.handle.impl;
-
-import org.jeecg.modules.message.handle.ISendMsgHandle;
-
-/**
- * @author jeecg-boot
- * 2019年12月5日19:55:14
- */
-public class WxSendMsgHandle implements ISendMsgHandle {
-
-
-	@Override
-	public void SendMsg(String es_receiver, String es_title, String es_content) {
-
-	}
-}

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java

@@ -16,7 +16,7 @@ import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.util.JwtUtil;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.message.websocket.WebSocket;
+import cn.com.ctop.common.module.message.websocket.WebSocket;
 import org.jeecg.modules.system.entity.SysAnnouncement;
 import org.jeecg.modules.system.entity.SysAnnouncementSend;
 import org.jeecg.modules.system.service.ISysAnnouncementSendService;

+ 3 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java

@@ -23,9 +23,9 @@ import org.jeecg.common.system.api.ISysBaseApi;
 import org.jeecg.common.system.vo.*;
 import org.jeecg.common.util.*;
 import org.jeecg.common.util.oss.OssBootUtil;
-import org.jeecg.modules.message.entity.SysMessageTemplate;
-import org.jeecg.modules.message.service.ISysMessageTemplateService;
-import org.jeecg.modules.message.websocket.WebSocket;
+import cn.com.ctop.common.module.message.entity.SysMessageTemplate;
+import cn.com.ctop.common.module.message.service.ISysMessageTemplateService;
+import cn.com.ctop.common.module.message.websocket.WebSocket;
 import org.jeecg.modules.system.entity.*;
 import org.jeecg.modules.system.mapper.*;
 import org.jeecg.modules.system.service.ISysDataSourceService;

+ 11 - 10
jeecg-boot-module-system/src/main/resources/application-dev.yml

@@ -21,16 +21,17 @@ spring:
         max-file-size: 10MB
         max-request-size: 10MB
   mail:
-    host: smtp.163.com
-    username: jeecgos@163.com
-    password: ??
-    properties:
-      mail:
-        smtp:
-          auth: true
-          starttls:
-            enable: true
-            required: true
+      host: smtp.exmail.qq.com
+      username: notice@c-top.com.cn
+      password: Hcst@2019
+      properties:
+        mail:
+          smtp:
+            ssl.enable: enable
+            auth: true
+            starttls:
+              enable: true
+              required: true
   ## quartz定时任务,采用数据库方式
   quartz:
     job-store-type: jdbc

+ 4 - 3
jeecg-boot-module-system/src/main/resources/application-prod.yml

@@ -17,12 +17,13 @@ spring:
       max-file-size: -1
       max-request-size: -1
   mail:
-    host: smtp.163.com
-    username: jeecgos@163.com
-    password: ??
+    host: smtp.exmail.qq.com
+    username: notice@c-top.com.cn
+    password: Hcst@2019
     properties:
       mail:
         smtp:
+          ssl.enable: enable
           auth: true
           starttls:
             enable: true

+ 4 - 3
jeecg-boot-module-system/src/main/resources/application-prod2.yml

@@ -17,12 +17,13 @@ spring:
       max-file-size: -1
       max-request-size: -1
   mail:
-    host: smtp.163.com
-    username: jeecgos@163.com
-    password: ??
+    host: smtp.exmail.qq.com
+    username: notice@c-top.com.cn
+    password: Hcst@2019
     properties:
       mail:
         smtp:
+          ssl.enable: enable
           auth: true
           starttls:
             enable: true

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

@@ -18,12 +18,13 @@ spring:
       max-file-size: -1
       max-request-size: -1
   mail:
-    host: smtp.163.com
-    username: jeecgos@163.com
-    password: ??
+    host: smtp.exmail.qq.com
+    username: notice@c-top.com.cn
+    password: Hcst@2019
     properties:
       mail:
         smtp:
+          ssl.enable: enable
           auth: true
           starttls:
             enable: true
@@ -93,7 +94,7 @@ spring:
         connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
       datasource:
         master:
-          url: jdbc:mysql://39.106.184.70/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false
+          url: jdbc:mysql://139.186.27.96/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false
           username: hcst
           password: test@20190531
           driver-class-name: com.mysql.jdbc.Driver

+ 60 - 3
jeecg-boot-module-system/src/test/java/org/jeecg/SampleTest.java

@@ -1,16 +1,21 @@
 package org.jeecg;
 
+import cn.com.ctop.check.component.execute.GroovyScriptExecutor;
+import cn.com.ctop.check.entity.CtopCheckTaskList;
+import cn.com.ctop.check.service.ICtopCheckTaskListService;
 import cn.com.ctop.common.module.entity.BindAccountLogin;
 import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.entity.UReportSubscriber;
 import cn.com.ctop.common.module.entity.UserAllocation;
-import cn.com.ctop.common.module.service.IBindAccountLoginService;
-import cn.com.ctop.common.module.service.ICtopOauthTokenService;
-import cn.com.ctop.common.module.service.IUserAllocationService;
+import cn.com.ctop.common.module.message.handle.impl.EmailSendMsgHandle;
+import cn.com.ctop.common.module.service.*;
+import cn.com.ctop.common.module.service.impl.UReportExportRest;
 import cn.com.ctop.common.module.utils.CtopAdConstant;
 import cn.com.ctop.kuaishou.modules.graphql.service.IKuaishouWebInterfaceService;
 import cn.com.ctop.kuaishou.modules.report.service.IKuaiShouDailyAgentService;
 import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportDailyAgentService;
 import cn.com.ctop.toutiao.modules.report.service.IReportService;
+import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.util.DateUtils;
 import org.junit.Test;
@@ -20,6 +25,7 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.io.File;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -132,4 +138,55 @@ public class SampleTest {
 //        String currentDate = D  ateUtils.formatDate(DateUtils.addDay(new Date(),-1));
 //        kuaishouReportDailyAgentService.getReport(currentDate,DateUtils.getNowDate("yyyy-MM-dd"));
     }
+
+    @Autowired
+    private GroovyScriptExecutor groovyScriptExecutor;
+
+    @Autowired
+    private ICtopCheckTaskListService checkTaskListService;
+    @Test
+    public void checkDataStateJobTest(){
+        //查询需要检查的任务列表
+        List<CtopCheckTaskList> ctopCheckTaskList= checkTaskListService.queryExecuteList("checkDataStateJob");
+        if(ctopCheckTaskList!=null){
+            ctopCheckTaskList.forEach(it-> groovyScriptExecutor.execute(it));
+        }
+    }
+
+    @Test
+    public void loadAccountData() {
+        CtopOauthToken token = oauthTokenService.getTokenByAccountId(1665922219192387L);
+        reportService.getAdvertiserReport(token, DateUtils.parseDate("2020-09-01","yy-MM-dd"),  DateUtils.parseDate("2020-09-01","yy-MM-dd"), CtopAdConstant.BYTEDANCE_REPORT_TYPE_HOURLY);
+    }
+
+    @Autowired
+    IUReportExportService uReportExportService;
+    @Autowired
+    EmailSendMsgHandle emailSendMsgHandle;
+    @Autowired
+    IUReportService uReportService;
+
+    @Test
+    public void sendUReport(){
+        uReportService.uReportList().forEach(uReport->{
+            List<UReportSubscriber> uReportSubscriber = uReportService.getUReportSubscriberByFileId(uReport.getString("id"));
+            if(!uReportSubscriber.isEmpty()){
+                String title=uReport.getString("name").replace(".ureport.xml","");
+                String content="您订阅的日报在附件中请注意查收》》》";
+                //下载文件到本地
+                uReportExportService.exportExcel(uReport.getString("name"));
+                uReportSubscriber.forEach(sender->{
+                    emailSendMsgHandle.SendAttachment("bijiequan@c-top.com.cn",title,content,
+                            new File(System.getProperty("user.dir")+ File.separator + "uReport"+File.separator+uReport.getString("name").replace("ureport.xml","")+"xlsx"));
+                }); }
+        });
+        //发完全部订阅,删除文件
+        File file =new File(System.getProperty("user.dir")+ File.separator + "uReport");
+        File[] files=file.listFiles();
+        if(files!=null&&files.length>0){
+            for (File f: files){
+                f.delete();
+            }
+        }
+    }
 }

+ 4 - 0
module-check/src/main/java/cn/com/ctop/check/controller/CtopCheckTaskExecutorCtrl.java

@@ -0,0 +1,4 @@
+package cn.com.ctop.check.controller;
+
+public class CtopCheckTaskExecutorCtrl {
+}

+ 6 - 1
module-check/src/main/java/cn/com/ctop/check/script/TestGroovyScript.java

@@ -5,6 +5,7 @@ import cn.com.ctop.check.service.ICtopCheckTaskListService;
 import cn.com.ctop.common.module.entity.UserAllocation;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
 import cn.com.ctop.common.module.service.ICustomDataByAccountService;
+import cn.com.ctop.common.module.service.IUReportExportService;
 import cn.com.ctop.common.module.service.IUserAllocationService;
 import cn.com.ctop.common.module.service.impl.CustomDataByAccountImpl;
 import cn.com.ctop.common.module.service.impl.UserAllocationServiceImpl;
@@ -44,11 +45,15 @@ public class TestGroovyScript {
     @Autowired
     ICustomDataByAccountService customDataByAccountService;
 
+    @Autowired
+    IUReportExportService iuReportExportService;
+
     @GetMapping("/test")
     public Result testGroovy(){
         //groovyScriptExecutor.execute(2,"CheckAccountStatusScript");
         //groovyScriptExecutor.execute(13,"CheckKsDataDiffScript");
-        groovyScriptExecutor.execute(14,"CheckByDataDiffScript");
+        //groovyScriptExecutor.execute(14,"CheckByDataDiffScript");
+        iuReportExportService.exportExcel("file:2048球球大作战-日报.ureport.xml ");
         return Result.ok();
     }
 }

+ 2 - 0
module-check/src/main/java/cn/com/ctop/notice/handler/SendWeChatHandle.java

@@ -52,6 +52,8 @@ public class SendWeChatHandle {
                     messageList.add(message.substring((i+1)*1006));
                 }
             }
+        }else {
+            messageList.add(message);
         }
         return messageList;
     }

+ 14 - 0
module-common/src/main/java/cn/com/ctop/common/module/entity/UReportSubscriber.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.common.module.entity;
+
+import lombok.Data;
+
+@Data
+public class UReportSubscriber {
+
+    private String fileId;
+
+    private String fileName;
+
+    private String sender;
+
+}

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

@@ -1,7 +1,5 @@
 package cn.com.ctop.common.module.mapper;
 
-import java.util.List;
-
 import cn.com.ctop.common.module.entity.CtopCorpWexinUser;
 import org.apache.ibatis.annotations.Param;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -15,4 +13,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface CtopCorpWexinUserMapper extends BaseMapper<CtopCorpWexinUser> {
 
+    String queryEmailByUserId(@Param("userId") String userId);
+
 }

+ 15 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/UReportMapper.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.common.module.mapper;
+
+import cn.com.ctop.common.module.entity.UReportSubscriber;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface UReportMapper {
+
+    List<JSONObject> queryUReportBy(@Param("reportType") int reportType);
+
+    List<UReportSubscriber> queryUReportSubscriberByFileId(@Param("fileId") String fileId);
+
+}

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

@@ -2,4 +2,12 @@
 <!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.CtopCorpWexinUserMapper">
 
+    <select id="queryEmailByUserId" resultType="String">
+        SELECT
+            wexin_email
+        FROM
+            ctop_corp_wexin_user
+        WHERE
+            user_id = #{userId}
+    </select>
 </mapper>

+ 4 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/SysUserMapper.xml

@@ -121,6 +121,7 @@ SELECT
     LEFT JOIN sys_user_role t3 on t1.user_id = t3.user_id
     WHERE t1.company_id = #{companyId}
     </select>
+
 	<select id="getAllSale" resultType="cn.com.ctop.common.module.vo.SysUserVo">
        SELECT
 	t2.id userId,
@@ -151,6 +152,7 @@ SELECT
     WHERE t1.company_id = #{companyId}
 	and t4.role_name LIKE '%销售%';
     </select>
+
 	<!-- 根据 orgCode 查询用户,包括子部门下的用户 -->
 	<select id="getUserByOrgCode" resultType="cn.com.ctop.common.module.model.SysUserSysDepartModel">
 		SELECT
@@ -181,6 +183,7 @@ SELECT
 			#{id}
 		</foreach>
 	</update>
+
 	<!-- 批量删除角色的与权限关系-->
 	<update id="deleteBathRolePermissionRelation">
 		delete from sys_role_permission
@@ -232,4 +235,5 @@ SELECT
 			and username != #{username}
 		</if>
 	</select>
+
 </mapper>

+ 27 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/UReportMapper.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.common.module.mapper.UReportMapper">
+
+    <select id="queryUReportBy" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT
+            id,
+            name
+        FROM
+            ureport_file
+        WHERE
+            report_type = #{reportType}
+    </select>
+
+    <select id="queryUReportSubscriberByFileId" resultType="cn.com.ctop.common.module.entity.UReportSubscriber">
+        SELECT
+            file_id,
+            file_name,
+            user_id
+        FROM
+            ureport_file_bind_user
+        WHERE
+            file_id = #{fileId}
+        and is_subscribe=1
+    </select>
+
+</mapper>

+ 3 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/controller/SysMessageController.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.message.controller;
+package cn.com.ctop.common.module.message.controller;
 
 import java.util.Arrays;
 
@@ -8,8 +8,8 @@ import javax.servlet.http.HttpServletResponse;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.modules.message.entity.SysMessage;
-import org.jeecg.modules.message.service.ISysMessageService;
+import cn.com.ctop.common.module.message.entity.SysMessage;
+import cn.com.ctop.common.module.message.service.ISysMessageService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;

+ 5 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/controller/SysMessageTemplateController.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.message.controller;
+package cn.com.ctop.common.module.message.controller;
 
 import java.util.Arrays;
 import java.util.Map;
@@ -9,10 +9,10 @@ import javax.servlet.http.HttpServletResponse;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.modules.message.entity.MsgParams;
-import org.jeecg.modules.message.entity.SysMessageTemplate;
-import org.jeecg.modules.message.service.ISysMessageTemplateService;
-import org.jeecg.modules.message.util.PushMsgUtil;
+import cn.com.ctop.common.module.message.entity.MsgParams;
+import cn.com.ctop.common.module.message.entity.SysMessageTemplate;
+import cn.com.ctop.common.module.message.service.ISysMessageTemplateService;
+import cn.com.ctop.common.module.message.util.PushMsgUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/entity/MsgParams.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.message.entity;
+package cn.com.ctop.common.module.message.entity;
 
 import java.io.Serializable;
 

+ 13 - 11
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/entity/SysMessage.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.message.entity;
+package cn.com.ctop.common.module.message.entity;
 
 import cn.com.ctop.common.module.annotation.Dict;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -10,6 +10,8 @@ import org.jeecg.common.system.base.entity.JeecgEntity;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.util.Date;
+
 /**
  * @Description: 消息
  * @Author: jeecg-boot
@@ -23,36 +25,36 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class SysMessage extends JeecgEntity {
 	/**推送内容*/
 	@Excel(name = "推送内容", width = 15)
-	private java.lang.String esContent;
+	private String esContent;
 	/**推送所需参数Json格式*/
 	@Excel(name = "推送所需参数Json格式", width = 15)
-	private java.lang.String esParam;
+	private String esParam;
 	/**接收人*/
 	@Excel(name = "接收人", width = 15)
-	private java.lang.String esReceiver;
+	private String esReceiver;
 	/**推送失败原因*/
 	@Excel(name = "推送失败原因", width = 15)
-	private java.lang.String esResult;
+	private String esResult;
 	/**发送次数*/
 	@Excel(name = "发送次数", width = 15)
-	private java.lang.Integer esSendNum;
+	private Integer esSendNum;
 	/**推送状态 0未推送 1推送成功 2推送失败*/
 	@Excel(name = "推送状态 0未推送 1推送成功 2推送失败", width = 15)
 	@Dict(dicCode = "msgSendStatus")
-    private java.lang.String esSendStatus;
+    private String esSendStatus;
 	/**推送时间*/
 	@Excel(name = "推送时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-	private java.util.Date esSendTime;
+	private Date esSendTime;
 	/**消息标题*/
 	@Excel(name = "消息标题", width = 15)
-	private java.lang.String esTitle;
+	private String esTitle;
 	/**推送方式:1短信 2邮件 3微信*/
 	@Excel(name = "推送方式:1短信 2邮件 3微信", width = 15)
 	@Dict(dicCode = "msgType")
-    private java.lang.String esType;
+    private String esType;
 	/**备注*/
 	@Excel(name = "备注", width = 15)
-	private java.lang.String remark;
+	private String remark;
 }

+ 6 - 6
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/entity/SysMessageTemplate.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.message.entity;
+package cn.com.ctop.common.module.message.entity;
 
 import org.jeecg.common.system.base.entity.JeecgEntity;
 import org.jeecgframework.poi.excel.annotation.Excel;
@@ -22,17 +22,17 @@ import lombok.experimental.Accessors;
 public class SysMessageTemplate extends JeecgEntity{
 	/**模板CODE*/
 	@Excel(name = "模板CODE", width = 15)
-	private java.lang.String templateCode;
+	private String templateCode;
 	/**模板标题*/
 	@Excel(name = "模板标题", width = 30)
-	private java.lang.String templateName;
+	private String templateName;
 	/**模板内容*/
 	@Excel(name = "模板内容", width = 50)
-	private java.lang.String templateContent;
+	private String templateContent;
 	/**模板测试json*/
 	@Excel(name = "模板测试json", width = 15)
-	private java.lang.String templateTestJson;
+	private String templateTestJson;
 	/**模板类型*/
 	@Excel(name = "模板类型", width = 15)
-	private java.lang.String templateType;
+	private String templateType;
 }

+ 10 - 0
module-common/src/main/java/cn/com/ctop/common/module/message/handle/ISendMsgHandle.java

@@ -0,0 +1,10 @@
+package cn.com.ctop.common.module.message.handle;
+
+import java.io.File;
+
+public interface ISendMsgHandle {
+
+	void SendMsg(String es_receiver, String es_title, String es_content);
+
+	void SendAttachment(String es_receiver, String es_title, String es_content, File attachment);
+}

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/enums/SendMsgStatusEnum.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.message.handle.enums;
+package cn.com.ctop.common.module.message.handle.enums;
 
 /**
  * 推送状态枚举

+ 4 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/enums/SendMsgTypeEnum.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.message.handle.enums;
+package cn.com.ctop.common.module.message.handle.enums;
 
 import org.jeecg.common.util.oConvertUtils;
 
@@ -8,9 +8,9 @@ import org.jeecg.common.util.oConvertUtils;
 public enum SendMsgTypeEnum {
 
     //推送方式:1短信 2邮件 3微信
-    SMS("1", "org.jeecg.modules.message.handle.impl.SmsSendMsgHandle"),
-    EMAIL("2", "org.jeecg.modules.message.handle.impl.EmailSendMsgHandle"),
-    WX("3","org.jeecg.modules.message.handle.impl.WxSendMsgHandle");
+    SMS("1", "cn.com.ctop.common.module.message.handle.impl.SmsSendMsgHandle"),
+    EMAIL("2", "cn.com.ctop.common.module.message.handle.impl.EmailSendMsgHandle"),
+    WX("3","cn.com.ctop.common.module.message.handle.impl.WxSendMsgHandle");
 
     private String type;
 

+ 59 - 0
module-common/src/main/java/cn/com/ctop/common/module/message/handle/impl/EmailSendMsgHandle.java

@@ -0,0 +1,59 @@
+package cn.com.ctop.common.module.message.handle.impl;
+
+import cn.com.ctop.common.module.message.handle.ISendMsgHandle;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.MimeMessageHelper;
+import org.springframework.stereotype.Component;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+import java.io.File;
+
+@Component
+public class EmailSendMsgHandle implements ISendMsgHandle {
+
+    @Autowired
+    JavaMailSender mailSender;
+
+    private static String emailFrom;
+
+    public static void setEmailFrom(String emailFrom) {
+        EmailSendMsgHandle.emailFrom = emailFrom;
+    }
+
+    @Override
+    public void SendMsg(String es_receiver, String es_title, String es_content) {
+        MimeMessage message = mailSender.createMimeMessage();
+        MimeMessageHelper helper = null;
+        try {
+            helper = new MimeMessageHelper(message, true);
+            // 设置发送方邮箱地址
+            helper.setFrom(emailFrom);
+            helper.setTo(es_receiver);
+            helper.setSubject(es_title);
+            helper.setText(es_content, true);
+            mailSender.send(message);
+        } catch (MessagingException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void SendAttachment(String es_receiver, String es_title, String es_content, File attachment) {
+        MimeMessage message = mailSender.createMimeMessage();
+        MimeMessageHelper helper = null;
+        try {
+            helper = new MimeMessageHelper(message, true);
+            // 设置发送方邮箱地址
+            helper.setFrom(emailFrom);
+            helper.setTo(es_receiver);
+            helper.setSubject(es_title);
+            helper.setText(es_content, true);
+            helper.addAttachment(attachment.getName(),attachment);
+            mailSender.send(message);
+        } catch (MessagingException e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 24 - 0
module-common/src/main/java/cn/com/ctop/common/module/message/handle/impl/SmsSendMsgHandle.java

@@ -0,0 +1,24 @@
+package cn.com.ctop.common.module.message.handle.impl;
+
+import lombok.extern.slf4j.Slf4j;
+import cn.com.ctop.common.module.message.handle.ISendMsgHandle;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+
+@Slf4j
+@Component
+public class SmsSendMsgHandle implements ISendMsgHandle {
+
+	@Override
+	public void SendMsg(String es_receiver, String es_title, String es_content) {
+		// TODO Auto-generated method stub
+		log.info("发短信");
+	}
+
+	@Override
+	public void SendAttachment(String es_receiver, String es_title, String es_content, File attachment) {
+
+	}
+
+}

+ 25 - 0
module-common/src/main/java/cn/com/ctop/common/module/message/handle/impl/WxSendMsgHandle.java

@@ -0,0 +1,25 @@
+package cn.com.ctop.common.module.message.handle.impl;
+
+import cn.com.ctop.common.module.message.handle.ISendMsgHandle;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+
+/**
+ * @author jeecg-boot
+ * 2019年12月5日19:55:14
+ */
+@Component
+public class WxSendMsgHandle implements ISendMsgHandle {
+
+
+	@Override
+	public void SendMsg(String es_receiver, String es_title, String es_content) {
+
+	}
+
+	@Override
+	public void SendAttachment(String es_receiver, String es_title, String es_content, File attachment) {
+
+	}
+}

+ 6 - 6
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/job/SendMsgJob.java

@@ -1,13 +1,13 @@
-package org.jeecg.modules.message.job;
+package cn.com.ctop.common.module.message.job;
 
 import java.util.List;
 
 import org.jeecg.common.util.DateUtils;
-import org.jeecg.modules.message.entity.SysMessage;
-import org.jeecg.modules.message.handle.ISendMsgHandle;
-import org.jeecg.modules.message.handle.enums.SendMsgStatusEnum;
-import org.jeecg.modules.message.handle.enums.SendMsgTypeEnum;
-import org.jeecg.modules.message.service.ISysMessageService;
+import cn.com.ctop.common.module.message.entity.SysMessage;
+import cn.com.ctop.common.module.message.handle.ISendMsgHandle;
+import cn.com.ctop.common.module.message.handle.enums.SendMsgStatusEnum;
+import cn.com.ctop.common.module.message.handle.enums.SendMsgTypeEnum;
+import cn.com.ctop.common.module.message.service.ISysMessageService;
 import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;

+ 2 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/mapper/SysMessageMapper.java

@@ -1,9 +1,6 @@
-package org.jeecg.modules.message.mapper;
+package cn.com.ctop.common.module.message.mapper;
 
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import org.jeecg.modules.message.entity.SysMessage;
+import cn.com.ctop.common.module.message.entity.SysMessage;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/mapper/SysMessageTemplateMapper.java

@@ -1,8 +1,8 @@
-package org.jeecg.modules.message.mapper;
+package cn.com.ctop.common.module.message.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Select;
-import org.jeecg.modules.message.entity.SysMessageTemplate;
+import cn.com.ctop.common.module.message.entity.SysMessageTemplate;
 
 import java.util.List;
 

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/mapper/xml/SysMessageMapper.xml

@@ -1,5 +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="org.jeecg.modules.message.mapper.SysMessageMapper">
+<mapper namespace="cn.com.ctop.common.module.message.mapper.SysMessageMapper">
 
 </mapper>

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/mapper/xml/SysMessageTemplateMapper.xml

@@ -1,5 +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="org.jeecg.modules.message.mapper.SysMessageTemplateMapper">
+<mapper namespace="cn.com.ctop.common.module.message.mapper.SysMessageTemplateMapper">
 
 </mapper>

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/ISysMessageService.java

@@ -1,7 +1,7 @@
-package org.jeecg.modules.message.service;
+package cn.com.ctop.common.module.message.service;
 
 import org.jeecg.common.system.base.service.JeecgService;
-import org.jeecg.modules.message.entity.SysMessage;
+import cn.com.ctop.common.module.message.entity.SysMessage;
 
 /**
  * @Description: 消息

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/ISysMessageTemplateService.java

@@ -1,9 +1,9 @@
-package org.jeecg.modules.message.service;
+package cn.com.ctop.common.module.message.service;
 
 import java.util.List;
 
 import org.jeecg.common.system.base.service.JeecgService;
-import org.jeecg.modules.message.entity.SysMessageTemplate;
+import cn.com.ctop.common.module.message.entity.SysMessageTemplate;
 
 /**
  * @Description: 消息模板

+ 4 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/impl/SysMessageServiceImpl.java

@@ -1,9 +1,9 @@
-package org.jeecg.modules.message.service.impl;
+package cn.com.ctop.common.module.message.service.impl;
 
 import org.jeecg.common.system.base.service.impl.JeecgServiceImpl;
-import org.jeecg.modules.message.entity.SysMessage;
-import org.jeecg.modules.message.mapper.SysMessageMapper;
-import org.jeecg.modules.message.service.ISysMessageService;
+import cn.com.ctop.common.module.message.entity.SysMessage;
+import cn.com.ctop.common.module.message.mapper.SysMessageMapper;
+import cn.com.ctop.common.module.message.service.ISysMessageService;
 import org.springframework.stereotype.Service;
 
 /**

+ 4 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/impl/SysMessageTemplateServiceImpl.java

@@ -1,9 +1,9 @@
-package org.jeecg.modules.message.service.impl;
+package cn.com.ctop.common.module.message.service.impl;
 
 import org.jeecg.common.system.base.service.impl.JeecgServiceImpl;
-import org.jeecg.modules.message.entity.SysMessageTemplate;
-import org.jeecg.modules.message.mapper.SysMessageTemplateMapper;
-import org.jeecg.modules.message.service.ISysMessageTemplateService;
+import cn.com.ctop.common.module.message.entity.SysMessageTemplate;
+import cn.com.ctop.common.module.message.mapper.SysMessageTemplateMapper;
+import cn.com.ctop.common.module.message.service.ISysMessageTemplateService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import java.util.List;

+ 6 - 6
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/util/PushMsgUtil.java

@@ -1,10 +1,10 @@
-package org.jeecg.modules.message.util;
+package cn.com.ctop.common.module.message.util;
 
-import org.jeecg.modules.message.entity.SysMessage;
-import org.jeecg.modules.message.entity.SysMessageTemplate;
-import org.jeecg.modules.message.handle.enums.SendMsgStatusEnum;
-import org.jeecg.modules.message.service.ISysMessageService;
-import org.jeecg.modules.message.service.ISysMessageTemplateService;
+import cn.com.ctop.common.module.message.entity.SysMessage;
+import cn.com.ctop.common.module.message.entity.SysMessageTemplate;
+import cn.com.ctop.common.module.message.handle.enums.SendMsgStatusEnum;
+import cn.com.ctop.common.module.message.service.ISysMessageService;
+import cn.com.ctop.common.module.message.service.ISysMessageTemplateService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/websocket/TestSocketController.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.message.websocket;
+package cn.com.ctop.common.module.message.websocket;
 
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.WebsocketConst;

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/websocket/WebSocket.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.message.websocket;
+package cn.com.ctop.common.module.message.websocket;
 
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;

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

@@ -12,4 +12,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ICtopCorpWexinUserService extends IService<CtopCorpWexinUser> {
 
+    String getEmailByUserId(String userId);
 }

+ 6 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IUReportExportService.java

@@ -0,0 +1,6 @@
+package cn.com.ctop.common.module.service;
+
+public interface IUReportExportService {
+
+    void exportExcel(String fileName);
+}

+ 15 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IUReportService.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.common.module.service;
+
+import cn.com.ctop.common.module.entity.UReportSubscriber;
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.List;
+
+public interface IUReportService {
+
+    //查询被订阅的报表
+    List<JSONObject> uReportList();
+
+    //查询被订阅的报表发送给绑定人
+    List<UReportSubscriber> getUReportSubscriberByFileId(String fileId);
+}

+ 8 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/CtopCorpWexinUserServiceImpl.java

@@ -3,6 +3,7 @@ package cn.com.ctop.common.module.service.impl;
 import cn.com.ctop.common.module.entity.CtopCorpWexinUser;
 import cn.com.ctop.common.module.mapper.CtopCorpWexinUserMapper;
 import cn.com.ctop.common.module.service.ICtopCorpWexinUserService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Service;
 
@@ -19,4 +20,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Primary
 public class CtopCorpWexinUserServiceImpl extends ServiceImpl<CtopCorpWexinUserMapper, CtopCorpWexinUser> implements ICtopCorpWexinUserService {
 
+    @Autowired
+    CtopCorpWexinUserMapper ctopCorpWexinUserMapper;
+
+    @Override
+    public String getEmailByUserId(String userId) {
+        return ctopCorpWexinUserMapper.queryEmailByUserId(userId);
+    }
 }

+ 53 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/UReportExportRest.java

@@ -0,0 +1,53 @@
+package cn.com.ctop.common.module.service.impl;
+
+import cn.com.ctop.common.module.service.IUReportExportService;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.*;
+
+@Service
+@Slf4j
+public class UReportExportRest implements IUReportExportService {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    private static final String  outputDir=System.getProperty("user.dir")+ File.separator + "uReport"+File.separator;
+
+    @Override
+    public void exportExcel(String fileName) {
+
+        String yesterday= DateUtils.addDay(DateUtils.date2Str(),-1);
+        StringBuilder sb=new StringBuilder();
+        sb.append("&startDate=").append(yesterday)
+                .append("&endDate=").append(yesterday)
+                .append("&statDate=").append(yesterday)
+                .append("&date=").append(yesterday)
+                .append("&statDatetime=").append(yesterday);
+        String exportDataUrl = "http://139.186.29.76:8804/jeecg-boot/ureport/excel?_u=mysql:";
+        byte[] result =restTemplate.postForObject(exportDataUrl +fileName+sb.toString(),null,byte[].class);
+        File file=new File(outputDir+fileName.replace("ureport.xml","")+"xlsx");
+        OutputStream outputStream=null;
+        try {
+            if(result!=null){
+                outputStream=new FileOutputStream(file,true);
+                outputStream.write(result);
+                outputStream.flush();
+            }
+        } catch (IOException e) {
+            log.error("定制化报表下载错误>>>UReportExportServiceImpl");
+        } finally {
+            if(outputStream!=null){
+                try {
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+}

+ 56 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/UReportExportServiceImpl.java

@@ -0,0 +1,56 @@
+package cn.com.ctop.common.module.service.impl;
+
+import cn.com.ctop.common.module.service.IUReportExportService;
+import com.bstek.ureport.export.ExportConfigureImpl;
+import com.bstek.ureport.export.ExportManager;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.common.util.SpringContextUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.*;
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+@Slf4j
+public class UReportExportServiceImpl{
+
+    @Autowired
+    RestTemplate restTemplate;
+    private static final String  outputDir=System.getProperty("user.dir")+File.separator + "uReport"+File.separator+"report.xlsx";
+
+    public void exportExcel(String fileName) {
+
+        String yesterday= DateUtils.addDay(DateUtils.date2Str(),-1);
+        Map<String, Object> parameters=new HashMap<>();
+        parameters.put("startDate",yesterday);
+        parameters.put("endDate",yesterday);
+        parameters.put("statDate,",yesterday);
+        parameters.put("date,",yesterday);
+        parameters.put("statDatetime,",yesterday);
+        File file=new File(outputDir);
+        OutputStream outputStream=null;
+        try {
+            outputStream=new FileOutputStream(file,true);
+            ExportConfigureImpl exportConfigure=new ExportConfigureImpl(fileName,parameters,outputStream);
+            getExportManager().exportExcel(exportConfigure);
+        } catch (FileNotFoundException e) {
+            log.error("定制化报表下载错误>>>UReportExportServiceImpl");
+        }finally {
+            if(outputStream!=null){
+                try {
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+    private static ExportManager getExportManager(){
+        return (ExportManager)SpringContextUtils.getBean(ExportManager.BEAN_ID);
+    }
+}
+

+ 27 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/UReportService.java

@@ -0,0 +1,27 @@
+package cn.com.ctop.common.module.service.impl;
+
+import cn.com.ctop.common.module.entity.UReportSubscriber;
+import cn.com.ctop.common.module.mapper.UReportMapper;
+import cn.com.ctop.common.module.service.IUReportService;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class UReportService implements IUReportService {
+
+    @Autowired
+    UReportMapper uReportMapper;
+
+    @Override
+    public List<JSONObject> uReportList() {
+        return uReportMapper.queryUReportBy(1);
+    }
+
+    @Override
+    public List<UReportSubscriber> getUReportSubscriberByFileId(String fileId) {
+        return uReportMapper.queryUReportSubscriberByFileId(fileId);
+    }
+}

+ 58 - 0
module-job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/SendDailyUReportJob.java

@@ -0,0 +1,58 @@
+package cn.com.ctop.job.bytedance.handler;
+
+import cn.com.ctop.common.module.entity.UReportSubscriber;
+import cn.com.ctop.common.module.service.ICtopCorpWexinUserService;
+import cn.com.ctop.common.module.service.IUReportExportService;
+import cn.com.ctop.common.module.service.IUReportService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import cn.com.ctop.common.module.message.handle.impl.EmailSendMsgHandle;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.util.List;
+
+@Component
+public class SendDailyUReportJob {
+
+    @Autowired
+    IUReportExportService uReportExportService;
+    @Autowired
+    EmailSendMsgHandle emailSendMsgHandle;
+    @Autowired
+    IUReportService uReportService;
+    @Autowired
+    ICtopCorpWexinUserService CorpUserService;
+
+    /**
+     * 检查任务执行结果
+     */
+    @XxlJob("sendDailyUReportJob")
+    public ReturnT<String> execute(String param) throws Exception {
+        uReportService.uReportList().forEach(uReport->{
+             List<UReportSubscriber> uReportSubscriber = uReportService.getUReportSubscriberByFileId(uReport.getString("id"));
+             if(!uReportSubscriber.isEmpty()){
+                 String title=uReport.getString("name").replace(".ureport.xml","");
+                 String content="您订阅的日报在附件中请注意查收》》》";
+                 //下载文件到本地
+                 uReportExportService.exportExcel(uReport.getString("name"));
+                 uReportSubscriber.forEach(sender->{
+                     String receiver=CorpUserService.getEmailByUserId(sender.getSender());
+                     emailSendMsgHandle.SendAttachment(receiver,title,content,
+                             new File(System.getProperty("user.dir")+ File.separator + "uReport"+File.separator+uReport.getString("name")
+                                     .replace("ureport.xml","")+"xlsx"));
+                 });
+             }
+        });
+        //发完全部订阅,删除文件
+        File file =new File(System.getProperty("user.dir")+ File.separator + "uReport");
+            File[] files=file.listFiles();
+            if(files!=null&&files.length>0){
+                for (File f: files){
+                    f.delete();
+                }
+            }
+        return ReturnT.SUCCESS;
+    }
+}

+ 20 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/constants/CreateProjectUrlConstant.java

@@ -0,0 +1,20 @@
+package cn.com.ctop.toutiao.modules.adlab.constants;
+
+public class CreateProjectUrlConstant {
+
+    //新建投放管家项目
+    public static final String ADLAB_GROUP_CREATE="https://ad.oceanengine.com/open_api/2/adlab/group/create/";
+
+    //设置项目转化信息
+    public static final String ADLAB_GROUP_CONVERT_UPDATE="https://ad.oceanengine.com/open_api/2/adlab/group_convert/update/";
+
+    //设置项目定向信息
+    public static final String ADLAB_GROUP_AUDIENCE_UPDATE="https://ad.oceanengine.com/open_api/2/adlab/group_audience/update/";
+
+    //设置项目创意信息
+    public static final String ADLAB_GROUP_CREATIVE_UPDATE="https://ad.oceanengine.com/open_api/2/adlab/group_creative/update/";
+
+    //设置项目预算信息
+    public static final String ADLAB_GROUP_BUDGET_UPDATE="https://ad.oceanengine.com/open_api/2/adlab/group_budget/update/";
+
+}

+ 17 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/constants/GetProjectUrlConstant.java

@@ -0,0 +1,17 @@
+package cn.com.ctop.toutiao.modules.adlab.constants;
+
+public class GetProjectUrlConstant {
+
+    //获取项目信息
+    public static final String ADLAB_GROUP_GET="https://ad.oceanengine.com/open_api/2/adlab/group/get/";
+
+    //获取项目素材信息
+    public static final String ADLAB_GROUP_MATERIAL_GET="https://ad.oceanengine.com/open_api/2/adlab/group_material_info/get/";
+
+    //获取项目列表
+    public static final String ADLAB_GROUPS_GET="https://ad.oceanengine.com/open_api/2/adlab/groups/get/";
+
+    //批量查询计划信息
+    public static final String ADLAB_ADS_GET="https://ad.oceanengine.com/open_api/2/adlab/ads/get/";
+
+}

+ 19 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/constants/PlanAnalyzeReport.java

@@ -0,0 +1,19 @@
+package cn.com.ctop.toutiao.modules.adlab.constants;
+
+public class PlanAnalyzeReport {
+
+    //更新计划目标成本
+    public static final String ADLAB_AD_BID_UPDATE="https://ad.oceanengine.com/open_api/2/adlab/ad_bid/update/";
+
+    //追加项目计划预算
+    public static final String ADLAB_AD_BUDGET_UPDATE="https://ad.oceanengine.com/open_api/2/adlab/ads_budget/append/";
+
+    //取消追加计划预算
+    public static final String ADLAB_AD_BUDGET_CANCEL="https://ad.oceanengine.com/open_api/2/adlab/ad_budget/cancel/";
+
+    //获取追加预算信息
+    public static final String ADLAB_BUDGET_GET="https://ad.oceanengine.com/open_api/2/adlab/budget/get/";
+
+    //获取可操作计划列表
+    public static final String ADLAB_GROUP_ADS_GET="https://ad.oceanengine.com/open_api/2/adlab/group_ads/get/";
+}

+ 11 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/constants/UpdateProjectUrlConstant.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.toutiao.modules.adlab.constants;
+
+public class UpdateProjectUrlConstant {
+
+    //更新项目状态
+    public static final String ADLAB_GROUP_STATUS_UPDATE="https://ad.oceanengine.com/open_api/2/adlab/group_status/update/";
+
+    //更新计划状态
+    public static final String ADLAB_AD_STATUS_UPDATE="https://ad.oceanengine.com/open_api/2/adlab/ad_status/update/";
+
+}

+ 23 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/ICreateProjectService.java

@@ -0,0 +1,23 @@
+package cn.com.ctop.toutiao.modules.adlab.service;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import com.alibaba.fastjson.JSONObject;
+
+public interface ICreateProjectService {
+
+    //新建投放管家项目
+    JSONObject createGroup(CtopOauthToken oauthToken,JSONObject requestBody);
+
+    //设置项目转化信息
+    JSONObject updateGroupConvert(CtopOauthToken oauthToken, JSONObject requestBody);
+
+    //设置项目定向信息
+    JSONObject updateGroupAudience(CtopOauthToken oauthToken,JSONObject requestBody);
+
+    //设置项目创意信息
+    JSONObject updateGroupCreative(CtopOauthToken oauthToken,JSONObject requestBody);
+
+    //设置项目预算信息
+    JSONObject updateGroupBudget(CtopOauthToken oauthToken,JSONObject requestBody);
+
+}

+ 19 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/IGetProjectService.java

@@ -0,0 +1,19 @@
+package cn.com.ctop.toutiao.modules.adlab.service;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import com.alibaba.fastjson.JSONObject;
+
+public interface IGetProjectService {
+
+    //获取项目信息
+    JSONObject getGroup(CtopOauthToken oauthToken, JSONObject requestBody);
+
+    //获取项目素材信息
+    JSONObject getMaterial(CtopOauthToken oauthToken, JSONObject requestBody);
+
+    //获取项目列表
+    JSONObject getGroups(CtopOauthToken oauthToken, JSONObject requestBody);
+
+    //批量查询计划信息
+    JSONObject getAds(CtopOauthToken oauthToken, JSONObject requestBody);
+}

+ 4 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/IPlanAnalyzeReportService.java

@@ -0,0 +1,4 @@
+package cn.com.ctop.toutiao.modules.adlab.service;
+
+public interface IPlanAnalyzeReportService {
+}

+ 14 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/IUpdateProjectService.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.toutiao.modules.adlab.service;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import com.alibaba.fastjson.JSONObject;
+
+public interface IUpdateProjectService {
+
+    //更新项目状态
+    JSONObject updateGroupStatus(CtopOauthToken oauthToken, JSONObject requestBody);
+
+    //更新计划状态
+    JSONObject updateADStatus(CtopOauthToken oauthToken, JSONObject requestBody);
+
+}

+ 149 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/impl/CreateProjectServiceImpl.java

@@ -0,0 +1,149 @@
+package cn.com.ctop.toutiao.modules.adlab.service.impl;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.utils.HttpUtils;
+import cn.com.ctop.toutiao.modules.adlab.constants.CreateProjectUrlConstant;
+import cn.com.ctop.toutiao.modules.adlab.service.ICreateProjectService;
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class CreateProjectServiceImpl implements ICreateProjectService {
+
+    @Override
+    public JSONObject createGroup(CtopOauthToken oauthToken, JSONObject requestBody) {
+
+        //请求头**
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", oauthToken.getAccessToken());
+        //请求参数
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", requestBody.getLong("accountId"));
+        params.put("name", requestBody.getString("name"));
+        params.put("scenario", requestBody.getString("scenario"));
+        params.put("ad_target", requestBody.getString("adTarget"));
+        params.put("delivery_range", requestBody.getString("deliveryRange") == null ? "DEFAULT" : requestBody.getString("deliveryRange"));
+        params.put("landing_type", requestBody.getString("landingType"));
+
+        return JSONObject.parseObject(HttpUtils.httpPostRequest(CreateProjectUrlConstant.ADLAB_GROUP_CREATE, params, headers));
+    }
+
+    @Override
+    public JSONObject updateGroupConvert(CtopOauthToken oauthToken, JSONObject requestBody) {
+
+        //请求头**
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", oauthToken.getAccessToken());
+        //请求参数
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", requestBody.getLong("accountId"));
+        params.put("group_id",requestBody.getLong("groupId"));
+        params.put("platform",requestBody.getString("platform"));
+        params.put("url",requestBody.getString("url"));
+        params.put("download_mode",requestBody.getString("download_mode")==null?"DEFAULT":requestBody.getString("download_mode"));
+        params.put("web_url",requestBody.getString("webUrl"));
+        params.put("convert_id",requestBody.getString("convertId"));
+        params.put("open_url",requestBody.getString("openUrl"));
+        params.put("download_type",requestBody.getString("downloadType"));
+        params.put("app_type",requestBody.getString("appType"));
+
+        return JSONObject.parseObject(HttpUtils.httpPostRequest(CreateProjectUrlConstant.ADLAB_GROUP_CONVERT_UPDATE, params, headers));
+
+    }
+
+    @Override
+    public JSONObject updateGroupAudience(CtopOauthToken oauthToken, JSONObject requestBody) {
+
+        //请求头**
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", oauthToken.getAccessToken());
+        //请求参数
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", requestBody.getLong("accountId"));
+        params.put("group_id",requestBody.getLong("groupId"));
+        params.put("inventory_type",requestBody.getJSONArray("inventoryType"));
+        //投放范围为穿山甲时可选 ORIGINAL_VIDEO 表示原生,REWARDED_VIDEO 表示激励视频
+        if(requestBody.getString("deliveryRange").equals("UNION")){
+            params.put("union_video_type",requestBody.getJSONArray("unionVideoType"));
+        }
+        //定向信息
+        JSONObject audience=new JSONObject();
+        audience.put("age",requestBody.getJSONArray("age"));
+        audience.put("city",requestBody.getJSONArray("city"));
+        audience.put("district",requestBody.getString("district"));
+        audience.put("gender",requestBody.getString("gender"));
+        audience.put("retargeting_tags_exclude",requestBody.getString("retargetingTagsExclude"));
+        audience.put("retargeting_tags_include",requestBody.getString("retargetingTagsInclude"));
+        if(requestBody.getString("deliveryRange").equals("UNION")){
+            audience.put("superior_popularity_type",requestBody.getString("superiorPopularityType"));
+            audience.put("exclude_flow_package",requestBody.getJSONArray("excludeFlowPackage"));
+            audience.put("flow_package",requestBody.getJSONArray("flowPackage"));
+        }
+        audience.put("auto_extend_enabled",requestBody.getString("autoExtendEnabled")==null?0:requestBody.getString("autoExtendEnabled"));
+        audience.put("auto_extend_targets",requestBody.getString("autoExtendTargets"));
+        params.put("audience",audience);
+        params.put("inventory_types",requestBody.getJSONArray("inventoryTypes"));
+
+        return JSONObject.parseObject(HttpUtils.httpPostRequest(CreateProjectUrlConstant.ADLAB_GROUP_AUDIENCE_UPDATE, params, headers));
+    }
+
+    @Override
+    public JSONObject updateGroupCreative(CtopOauthToken oauthToken, JSONObject requestBody) {
+
+        //请求头**
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", oauthToken.getAccessToken());
+        //请求参数
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", requestBody.getLong("accountId"));
+        params.put("group_id",requestBody.getLong("groupId"));
+        params.put("image_info",requestBody.get("imageInfo"));
+        params.put("video_info",requestBody.get("videoInfo"));
+        params.put("title", requestBody.getJSONArray("scenario"));
+        params.put("app_name", requestBody.getString("appName"));
+        params.put("source", requestBody.getString("source"));
+        params.put("is_follow_material", requestBody.getString("isFollowMaterial"));
+        params.put("third_industry_id", requestBody.getString("thirdIndustryId"));
+        params.put("ad_keywords", requestBody.getJSONArray("adKeywords"));
+        params.put("playable_url", requestBody.getString("playableUrl"));
+        params.put("action_track_url", requestBody.getString("actionTrackUrl"));
+        params.put("track_url", requestBody.getString("trackUrl"));
+        if(!requestBody.getString("deliveryRange").equals("UNION")){
+            params.put("video_play_track_url", requestBody.getString("videoPlayTrackUrl"));
+            params.put("video_play_done_track_url", requestBody.getString("videoPlayDoneTrackUrl"));
+            params.put("video_play_effective_track_url", requestBody.getString("videoPlayEffectiveTrackUrl"));
+        }
+        params.put("creative_auto_generate_switch",requestBody.getString("creativeAutoGenerateSwitch"));
+
+        return JSONObject.parseObject(HttpUtils.httpPostRequest(CreateProjectUrlConstant.ADLAB_GROUP_CREATIVE_UPDATE, params, headers));
+    }
+
+    @Override
+    public JSONObject updateGroupBudget(CtopOauthToken oauthToken, JSONObject requestBody) {
+
+        //请求头**
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", oauthToken.getAccessToken());
+        //请求参数
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", requestBody.getLong("accountId"));
+        params.put("group_id",requestBody.getLong("groupId"));
+        params.put("bid", requestBody.getFloat("bid"));
+        params.put("budget_mode", requestBody.getString("budgetMode")==null?"DAILY":requestBody.getString("budgetMode"));
+        params.put("budget", requestBody.getString("budget"));
+        params.put("auto_stop", requestBody.getString("autoStop")==null?0:requestBody.getString("autoStop"));
+        params.put("deep_bid", requestBody.getString("deepBid"));
+        params.put("start_time", requestBody.getString("startTime"));
+        params.put("end_time", requestBody.getString("endTime"));
+        params.put("week_time", requestBody.getString("weekTime"));
+
+        return JSONObject.parseObject(HttpUtils.httpPostRequest(CreateProjectUrlConstant.ADLAB_GROUP_BUDGET_UPDATE, params, headers));
+    }
+
+}

+ 52 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/impl/GetProjectServiceImpl.java

@@ -0,0 +1,52 @@
+package cn.com.ctop.toutiao.modules.adlab.service.impl;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.utils.HttpUtils;
+import cn.com.ctop.toutiao.modules.adlab.constants.GetProjectUrlConstant;
+import cn.com.ctop.toutiao.modules.adlab.service.IGetProjectService;
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class GetProjectServiceImpl implements IGetProjectService {
+
+    @Override
+    public JSONObject getGroup(CtopOauthToken oauthToken, JSONObject requestBody) {
+
+        //请求头**
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", oauthToken.getAccessToken());
+        //请求参数
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", requestBody.getLong("accountId"));
+        params.put("group_id", requestBody.getString("groupId"));
+        params.put("campaign_id", requestBody.getString("campaignId"));
+
+        return JSONObject.parseObject(HttpUtils.httpGetRequest(GetProjectUrlConstant.ADLAB_GROUP_GET, headers, params));
+    }
+
+    @Override
+    public JSONObject getMaterial(CtopOauthToken oauthToken, JSONObject requestBody) {
+        //请求头**
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", oauthToken.getAccessToken());
+        //请求参数
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", requestBody.getLong("accountId"));
+        params.put("group_id", requestBody.getString("groupId"));
+        return null;
+    }
+
+    @Override
+    public JSONObject getGroups(CtopOauthToken oauthToken, JSONObject requestBody) {
+        return null;
+    }
+
+    @Override
+    public JSONObject getAds(CtopOauthToken oauthToken, JSONObject requestBody) {
+        return null;
+    }
+}

+ 6 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/impl/PlanAnalyzeReportServiceImpl.java

@@ -0,0 +1,6 @@
+package cn.com.ctop.toutiao.modules.adlab.service.impl;
+
+import cn.com.ctop.toutiao.modules.adlab.service.IPlanAnalyzeReportService;
+
+public class PlanAnalyzeReportServiceImpl implements IPlanAnalyzeReportService {
+}

+ 46 - 0
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/adlab/service/impl/UpdateProjectServiceImpl.java

@@ -0,0 +1,46 @@
+package cn.com.ctop.toutiao.modules.adlab.service.impl;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.utils.HttpUtils;
+import cn.com.ctop.toutiao.modules.adlab.constants.UpdateProjectUrlConstant;
+import cn.com.ctop.toutiao.modules.adlab.service.IUpdateProjectService;
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class UpdateProjectServiceImpl implements IUpdateProjectService {
+
+    @Override
+    public JSONObject updateGroupStatus(CtopOauthToken oauthToken, JSONObject requestBody) {
+
+        //请求头**
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", oauthToken.getAccessToken());
+        //请求参数
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", requestBody.getLong("accountId"));
+        params.put("group_ids", requestBody.getJSONArray("groupIds"));
+
+        return JSONObject.parseObject(HttpUtils.httpPostRequest(UpdateProjectUrlConstant.ADLAB_GROUP_STATUS_UPDATE, params, headers));
+    }
+
+    @Override
+    public JSONObject updateADStatus(CtopOauthToken oauthToken, JSONObject requestBody) {
+
+        //请求头**
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", oauthToken.getAccessToken());
+        //请求参数
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", requestBody.getLong("accountId"));
+        params.put("ad_id", requestBody.getLong("adId"));
+        params.put("ad_bid", requestBody.getLong("adBid"));
+        params.put("group_bid", requestBody.getLong("groupBid"));
+        params.put("opt_status", requestBody.getLong("optStatus"));
+
+        return JSONObject.parseObject(HttpUtils.httpPostRequest(UpdateProjectUrlConstant.ADLAB_AD_STATUS_UPDATE, params, headers));
+    }
+}

+ 6 - 0
pom.xml

@@ -170,6 +170,12 @@
             <artifactId>lombok</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.bstek.ureport</groupId>
+            <artifactId>ureport2-console</artifactId>
+            <version>2.2.9</version>
+        </dependency>
+
         <!-- mybatis-plus -->
         <dependency>
             <groupId>com.baomidou</groupId>