Jelajahi Sumber

吸怪内广批量逻辑代码

syh 5 tahun lalu
induk
melakukan
8c5d17676e
23 mengubah file dengan 598 tambahan dan 111 penghapusan
  1. 6 6
      jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java
  2. 4 5
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/fileupload/controller/FileController.java
  3. 24 28
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/industry/controller/IndustryController.java
  4. 20 20
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/media/controller/MediaController.java
  5. 1 1
      module-common/src/main/java/cn/com/ctop/common/module/service/IFileInfoService.java
  6. 1 4
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/FileInfoServiceImpl.java
  7. 248 0
      module-ctop/src/main/java/cn/com/ctop/manage/modules/material/controller/MaterialInfoController.java
  8. 63 0
      module-ctop/src/main/java/cn/com/ctop/manage/modules/material/entity/MaterialInfo.java
  9. 15 0
      module-ctop/src/main/java/cn/com/ctop/manage/modules/material/mapper/MaterialInfoMapper.java
  10. 5 0
      module-ctop/src/main/java/cn/com/ctop/manage/modules/material/mapper/xml/MaterialInfoMapper.xml
  11. 21 0
      module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/IMaterialInfoService.java
  12. 62 0
      module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/impl/MaterialInfoServiceImpl.java
  13. 33 8
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaiShouController.java
  14. 33 17
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouInterfaceServiceImpl.java
  15. 4 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyAccount.java
  16. 1 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyCampaign.java
  17. 4 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyCreative.java
  18. 5 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyGroup.java
  19. 4 3
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportHourlyAccount.java
  20. 6 3
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportHourlyCampaign.java
  21. 1 3
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportHourlyCreative.java
  22. 1 3
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportHourlyGroup.java
  23. 36 2
      module-toutiao/src/main/java/cn/com/ctop/toutiao/service/impl/ByteDanceAdvertisePlanServiceImpl.java

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

@@ -1,11 +1,5 @@
 package org.jeecg.config;
 
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import javax.servlet.Filter;
-
 import org.apache.shiro.mgt.DefaultSessionStorageEvaluator;
 import org.apache.shiro.mgt.DefaultSubjectDAO;
 import org.apache.shiro.mgt.SecurityManager;
@@ -20,6 +14,11 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.DependsOn;
 
+import javax.servlet.Filter;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
 /**
  * @author: Scott
  * @date: 2018/2/7
@@ -91,6 +90,7 @@ public class ShiroConfig {
 		filterChainDefinitionMap.put("/webjars/**", "anon");
 		filterChainDefinitionMap.put("/v2/**", "anon");
         filterChainDefinitionMap.put("/kuaishou", "anon");
+        filterChainDefinitionMap.put("/kuaishou/report", "anon");
 		filterChainDefinitionMap.put("/ctop/bindAccount/**", "anon");
 		filterChainDefinitionMap.put("/**/*.mp4", "anon");
         filterChainDefinitionMap.put("/bytedance", "anon");

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

@@ -1,6 +1,6 @@
 package org.jeecg.modules.fileupload.controller;
 
-import cn.com.ctop.common.module.service.IFileInfoService;
+import cn.com.ctop.manage.modules.material.service.IMaterialInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -14,17 +14,16 @@ import java.util.Map;
  */
 @RestController
 public class FileController {
-
     @Autowired
-    private IFileInfoService fileInfoService;
+    private IMaterialInfoService materialInfoService;
 
     @RequestMapping("file/check")
     public Map<String, Object> chenckFile(String code) {
-        return fileInfoService.checkFile(code);
+        return materialInfoService.checkMaterialInfo(code);
     }
 
     @PostMapping("file/insert")
     public Map<String, Object> insertFile(String code, String url) {
-        return fileInfoService.insertFile(code, url);
+        return materialInfoService.insert(code, url);
     }
 }

+ 24 - 28
jeecg-boot-module-system/src/main/java/org/jeecg/modules/industry/controller/IndustryController.java

@@ -1,38 +1,34 @@
 package org.jeecg.modules.industry.controller;
 
-import java.util.*;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.industry.entity.Industry;
 import org.jeecg.modules.industry.model.IndustryTree;
 import org.jeecg.modules.industry.service.IIndustryService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-
-import org.jeecg.modules.system.model.TreeModel;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
 import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.*;
 
  /**
  * @Description: 行业表
@@ -81,9 +77,11 @@ public class IndustryController {
 				 ids.add(industry.getId());
 			 }
 			 getTreeList(treeList,list,null);
-			 Map<String, Object> resMap = new HashMap<String, Object>();
-			 resMap.put("treeList", treeList); // 全部树节点数据
-			 resMap.put("ids", ids);// 全部树ids
+			 Map<String, Object> resMap = new HashMap<>();
+			 // 全部树节点数据
+			 resMap.put("treeList", treeList);
+			 // 全部树ids
+			 resMap.put("ids", ids);
 			 result.setResult(resMap);
 			 result.setSuccess(true);
 		 } catch (Exception e) {
@@ -121,7 +119,7 @@ public class IndustryController {
 	@ApiOperation(value="行业表-添加", notes="行业表-添加")
 	@PostMapping(value = "/add")
 	public Result<Industry> add(@RequestBody Industry industry) {
-		Result<Industry> result = new Result<Industry>();
+		Result<Industry> result = new Result<>();
 		try {
 			industryService.save(industry);
 			result.success("添加成功!");
@@ -141,13 +139,12 @@ public class IndustryController {
 	@ApiOperation(value="行业表-编辑", notes="行业表-编辑")
 	@PutMapping(value = "/edit")
 	public Result<Industry> edit(@RequestBody Industry industry) {
-		Result<Industry> result = new Result<Industry>();
+		Result<Industry> result = new Result<>();
 		Industry industryEntity = industryService.getById(industry.getId());
 		if(industryEntity==null) {
 			result.error500("未找到对应实体");
 		}else {
 			boolean ok = industryService.updateById(industry);
-			//TODO 返回false说明什么?
 			if(ok) {
 				result.success("修改成功!");
 			}
@@ -165,7 +162,7 @@ public class IndustryController {
 	@ApiOperation(value="行业表-通过id删除", notes="行业表-通过id删除")
 	@DeleteMapping(value = "/delete")
 	public Result<Industry> delete(@RequestParam(name="id",required=true) String id) {
-		Result<Industry> result = new Result<Industry>();
+		Result<Industry> result = new Result<>();
 		Industry industry = industryService.getById(id);
 		if(industry==null) {
 			result.error500("未找到对应实体");
@@ -188,7 +185,7 @@ public class IndustryController {
 	@ApiOperation(value="行业表-批量删除", notes="行业表-批量删除")
 	@DeleteMapping(value = "/deleteBatch")
 	public Result<Industry> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		Result<Industry> result = new Result<Industry>();
+		Result<Industry> result = new Result<>();
 		if(ids==null || "".equals(ids.trim())) {
 			result.error500("参数不识别!");
 		}else {
@@ -207,7 +204,7 @@ public class IndustryController {
 	@ApiOperation(value="行业表-通过id查询", notes="行业表-通过id查询")
 	@GetMapping(value = "/queryById")
 	public Result<Industry> queryById(@RequestParam(name="id",required=true) String id) {
-		Result<Industry> result = new Result<Industry>();
+		Result<Industry> result = new Result<>();
 		Industry industry = industryService.getById(id);
 		if(industry==null) {
 			result.error500("未找到对应实体");
@@ -262,7 +259,7 @@ public class IndustryController {
       MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
       Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
       for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-          MultipartFile file = entity.getValue();// 获取上传文件对象
+		  MultipartFile file = entity.getValue();
           ImportParams params = new ImportParams();
           params.setTitleRows(2);
           params.setHeadRows(1);
@@ -286,5 +283,4 @@ public class IndustryController {
       }
       return Result.ok("文件导入失败!");
   }
-
 }

+ 20 - 20
jeecg-boot-module-system/src/main/java/org/jeecg/modules/media/controller/MediaController.java

@@ -46,7 +46,7 @@ import java.util.Map;
 public class MediaController {
 	@Autowired
 	private IMediaService mediaService;
-	
+
 	/**
 	  * 分页列表查询
 	 * @param media
@@ -62,15 +62,15 @@ public class MediaController {
 									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 									  HttpServletRequest req) {
-		Result<IPage<Media>> result = new Result<IPage<Media>>();
+        Result<IPage<Media>> result = new Result<>();
 		QueryWrapper<Media> queryWrapper = QueryGenerator.initQueryWrapper(media, req.getParameterMap());
-		Page<Media> page = new Page<Media>(pageNo, pageSize);
+        Page<Media> page = new Page<>(pageNo, pageSize);
 		IPage<Media> pageList = mediaService.page(page, queryWrapper);
 		result.setSuccess(true);
 		result.setResult(pageList);
 		return result;
 	}
-	
+
 	/**
 	  *   添加
 	 * @param media
@@ -80,7 +80,7 @@ public class MediaController {
 	@ApiOperation(value="媒体表-添加", notes="媒体表-添加")
 	@PostMapping(value = "/add")
 	public Result<Media> add(@RequestBody Media media) {
-		Result<Media> result = new Result<Media>();
+        Result<Media> result = new Result<>();
 		try {
 			mediaService.save(media);
 			result.success("添加成功!");
@@ -90,7 +90,7 @@ public class MediaController {
 		}
 		return result;
 	}
-	
+
 	/**
 	  *  编辑
 	 * @param media
@@ -100,7 +100,7 @@ public class MediaController {
 	@ApiOperation(value="媒体表-编辑", notes="媒体表-编辑")
 	@PutMapping(value = "/edit")
 	public Result<Media> edit(@RequestBody Media media) {
-		Result<Media> result = new Result<Media>();
+        Result<Media> result = new Result<>();
 		Media mediaEntity = mediaService.getById(media.getId());
 		if(mediaEntity==null) {
 			result.error500("未找到对应实体");
@@ -111,11 +111,11 @@ public class MediaController {
 				result.success("修改成功!");
 			}
 		}
-		
-		return result;
+
+        return result;
 	}
-	
-	/**
+
+     /**
 	  *   通过id删除
 	 * @param id
 	 * @return
@@ -124,7 +124,7 @@ public class MediaController {
 	@ApiOperation(value="媒体表-通过id删除", notes="媒体表-通过id删除")
 	@DeleteMapping(value = "/delete")
 	public Result<Media> delete(@RequestParam(name="id",required=true) String id) {
-		Result<Media> result = new Result<Media>();
+        Result<Media> result = new Result<>();
 		Media media = mediaService.getById(id);
 		if(media==null) {
 			result.error500("未找到对应实体");
@@ -134,11 +134,11 @@ public class MediaController {
 				result.success("删除成功!");
 			}
 		}
-		
-		return result;
+
+        return result;
 	}
-	
-	/**
+
+     /**
 	  *  批量删除
 	 * @param ids
 	 * @return
@@ -147,7 +147,7 @@ public class MediaController {
 	@ApiOperation(value="媒体表-批量删除", notes="媒体表-批量删除")
 	@DeleteMapping(value = "/deleteBatch")
 	public Result<Media> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		Result<Media> result = new Result<Media>();
+        Result<Media> result = new Result<>();
 		if(ids==null || "".equals(ids.trim())) {
 			result.error500("参数不识别!");
 		}else {
@@ -156,8 +156,8 @@ public class MediaController {
 		}
 		return result;
 	}
-	
-	/**
+
+     /**
 	  * 通过id查询
 	 * @param id
 	 * @return
@@ -166,7 +166,7 @@ public class MediaController {
 	@ApiOperation(value="媒体表-通过id查询", notes="媒体表-通过id查询")
 	@GetMapping(value = "/queryById")
 	public Result<Media> queryById(@RequestParam(name="id",required=true) String id) {
-		Result<Media> result = new Result<Media>();
+        Result<Media> result = new Result<>();
 		Media media = mediaService.getById(id);
 		if(media==null) {
 			result.error500("未找到对应实体");

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

@@ -24,7 +24,7 @@ public interface IFileInfoService extends IService<FileInfo> {
 
     List<FileInfo> getFileInfoByMd5(String md5);
 
-    Map<String, Object> checkFile(String code);
+    Map<String, Object> checkFileInfo(String code);
 
     Map<String, Object> getCreativeWords(Long accountId);
 

+ 1 - 4
module-common/src/main/java/cn/com/ctop/common/module/service/impl/FileInfoServiceImpl.java

@@ -130,10 +130,7 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
     }
 
     @Override
-    /**
-     * 校验文件唯一性
-     */
-    public Map<String, Object> checkFile(String code) {
+    public Map<String, Object> checkFileInfo(String code) {
         Map<String, Object> result = new HashMap<>();
         QueryWrapper<SourceFile> wrapper = new QueryWrapper<>();
         wrapper.eq("code", code).orderByDesc("id").last("limit 1");

+ 248 - 0
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/controller/MaterialInfoController.java

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

+ 63 - 0
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/entity/MaterialInfo.java

@@ -0,0 +1,63 @@
+package cn.com.ctop.manage.modules.material.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.util.Date;
+
+/**
+ * 素材信息
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2019-10-11
+ */
+@Data
+@TableName("ctop_material_info")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_material_info对象", description = "素材信息")
+public class MaterialInfo {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.UUID)
+    @ApiModelProperty(value = "id")
+    private Integer id;
+    /**
+     * code
+     */
+    @Excel(name = "code", width = 15)
+    @ApiModelProperty(value = "code")
+    private String code;
+    /**
+     * url
+     */
+    @Excel(name = "url", width = 15)
+    @ApiModelProperty(value = "url")
+    private String url;
+    /**
+     * createTime
+     */
+    @ApiModelProperty(value = "createTime")
+    private Date createTime;
+    /**
+     * updateTime
+     */
+    @ApiModelProperty(value = "updateTime")
+    private Date updateTime;
+    /**
+     * status
+     */
+    @Excel(name = "status", width = 15)
+    @ApiModelProperty(value = "status")
+    private Integer status;
+}

+ 15 - 0
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/mapper/MaterialInfoMapper.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.manage.modules.material.mapper;
+
+import cn.com.ctop.manage.modules.material.entity.MaterialInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 素材信息
+ *
+ * @author: jeecg-boot
+ * @date: 2019-10-11
+ * @cersion: V1.0
+ */
+public interface MaterialInfoMapper extends BaseMapper<MaterialInfo> {
+
+}

+ 5 - 0
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/mapper/xml/MaterialInfoMapper.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.manage.modules.material.mapper.MaterialInfoMapper">
+
+</mapper>

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

@@ -0,0 +1,21 @@
+package cn.com.ctop.manage.modules.material.service;
+
+import cn.com.ctop.manage.modules.material.entity.MaterialInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * 素材信息
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2019-10-11
+ */
+public interface IMaterialInfoService extends IService<MaterialInfo> {
+    MaterialInfo getMaterialInfoByCode(String code);
+
+    Map<String, Object> checkMaterialInfo(String code);
+
+    Map<String, Object> insert(String code, String url);
+}

+ 62 - 0
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/impl/MaterialInfoServiceImpl.java

@@ -0,0 +1,62 @@
+package cn.com.ctop.manage.modules.material.service.impl;
+
+import cn.com.ctop.common.module.utils.ResultMapUtils;
+import cn.com.ctop.common.module.utils.StatusCode;
+import cn.com.ctop.manage.modules.material.entity.MaterialInfo;
+import cn.com.ctop.manage.modules.material.mapper.MaterialInfoMapper;
+import cn.com.ctop.manage.modules.material.service.IMaterialInfoService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 素材信息
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2019-10-11
+ */
+@Service
+public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, MaterialInfo> implements IMaterialInfoService {
+
+    @Override
+    public MaterialInfo getMaterialInfoByCode(String code) {
+        QueryWrapper<MaterialInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("code", code).orderByDesc("id").last("limit 1");
+        return this.getOne(queryWrapper);
+    }
+
+    @Override
+    public Map<String, Object> checkMaterialInfo(String code) {
+        Map<String, Object> result = new HashMap<>();
+        MaterialInfo info = this.getMaterialInfoByCode(code);
+        if (null != info) {
+            //文件已存在
+            ResultMapUtils.setResultMap(result, StatusCode.FILE_HAS_UPLOAD.getCode());
+            result.put("url", info.getUrl());
+            return result;
+        } else {
+            //文件尚未上传
+            ResultMapUtils.setResultMap(result, StatusCode.FILE_HAS_NOT_UPLOAD.getCode());
+            return result;
+        }
+    }
+
+    @Override
+    public Map<String, Object> insert(String code, String url) {
+        Map<String, Object> resultMap = new HashMap<>();
+        MaterialInfo info = new MaterialInfo();
+        info.setCode(code);
+        info.setUrl(url);
+        info.setStatus(1);
+        info.setCreateTime(new Date());
+        info.setUpdateTime(new Date());
+        this.save(info);
+        ResultMapUtils.setResultMap(resultMap, StatusCode.COMMON_SUCCESS.getCode());
+        return resultMap;
+    }
+}

+ 33 - 8
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaiShouController.java

@@ -3,8 +3,6 @@ package cn.com.ctop.kuaishou.modules.batch.controller;
 import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
-import cn.com.ctop.kuaishou.modules.material.entity.KuaishouResult;
-import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportDailyCampaign;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -198,13 +196,40 @@ public class KuaiShouController {
     }
 
     @RequestMapping("report")
-    public Map<String, Object> getReport(String accountId) {
-        CtopOauthToken token = tokenService.getOauthTokenByAccountId(accountId);
-        String startDate = "2019-08-14";
-        String endDate = "2019-08-14";
-        KuaishouResult<KuaishouReportDailyCampaign> stringObjectMap = kuaishouInterfaceService.getCampaignDailyReport(token.getAccessToken(), token.getAccountId(), startDate, endDate, 1000, 1);
+    public Map<String, Object> getReport(String accountId, String startDate, String endDate, Integer type, String temporalGranularity) {
         Map<String, Object> result = new HashMap<>();
-        result.put("data", stringObjectMap);
+        CtopOauthToken token = tokenService.getOauthTokenByAccountId(accountId);
+        if (null != type) {
+            if (type == 1) {
+                //广告主
+                if (null != temporalGranularity && temporalGranularity.equals("hourly")) {
+                    result.put("data", kuaishouInterfaceService.getAccountHourlyReport(token.getAccessToken(), token.getAccountId(), startDate, endDate, 500, 1));
+                } else {
+                    result.put("data", kuaishouInterfaceService.getAccountDailyReport(token.getAccessToken(), token.getAccountId(), startDate, endDate, 500, 1));
+                }
+            } else if (type == 2) {
+                //广告组
+                if (null != temporalGranularity && temporalGranularity.equals("hourly")) {
+                    result.put("data", kuaishouInterfaceService.getGroupHourlyReport(token.getAccessToken(), token.getAccountId(), startDate, endDate, 500, 1));
+                } else {
+                    result.put("data", kuaishouInterfaceService.getGroupDailyReport(token.getAccessToken(), token.getAccountId(), startDate, endDate, 500, 1));
+                }
+            } else if (type == 3) {
+                //广告计划
+                if (null != temporalGranularity && temporalGranularity.equals("hourly")) {
+                    result.put("data", kuaishouInterfaceService.getCampaignHourlyReport(token.getAccessToken(), token.getAccountId(), startDate, endDate, 500, 1));
+                } else {
+                    result.put("data", kuaishouInterfaceService.getCampaignDailyReport(token.getAccessToken(), token.getAccountId(), startDate, endDate, 500, 1));
+                }
+            } else {
+                //广告创意
+                if (null != temporalGranularity && temporalGranularity.equals("hourly")) {
+                    result.put("data", kuaishouInterfaceService.getCreativeHourlyReport(token.getAccessToken(), token.getAccountId(), startDate, endDate, 500, 1));
+                } else {
+                    result.put("data", kuaishouInterfaceService.getCreativeDailyReport(token.getAccessToken(), token.getAccountId(), startDate, endDate, 500, 1));
+                }
+            }
+        }
         return result;
     }
 

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

@@ -137,6 +137,8 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             });
             List<KuaishouReportHourlyAccount> hourlyAccounts = kuaishouResult.getData().getDetails();
             hourlyAccounts.forEach((hourlyAccount) -> {
+                hourlyAccount.setAccountId(advertiserId);
+                hourlyAccount.setId("" + hourlyAccount.getAccountId() + hourlyAccount.getStatDate() + hourlyAccount.getStatHour());
                 hourlyAccountService.saveOrUpdate(hourlyAccount);
             });
         } catch (Exception e) {
@@ -166,8 +168,10 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             kuaishouResult = mapper.readValue(result, new TypeReference<KuaishouResult<KuaishouReportDailyAccount>>() {
             });
             List<KuaishouReportDailyAccount> dailyAccounts = kuaishouResult.getData().getDetails();
-            dailyAccounts.forEach((kuaishouReportDailyAccount -> {
-                dailyAccountService.saveOrUpdate(kuaishouReportDailyAccount);
+            dailyAccounts.forEach((hourlyAccount -> {
+                hourlyAccount.setAccountId(advertiserId);
+                hourlyAccount.setId("" + hourlyAccount.getAccountId() + hourlyAccount.getStatDate());
+                dailyAccountService.saveOrUpdate(hourlyAccount);
             }));
         } catch (Exception e) {
             e.printStackTrace();
@@ -178,10 +182,10 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
     @Override
     public KuaishouResult<KuaishouReportDailyCampaign> getCampaignDailyReport(String accessToken, Long advertiserId, String startDate, String endDate, int pageSize, int pageNum) {
         String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.CAMPAIGN_REPORT;
-        Map<String, String> headers = new HashMap<String, String>();
+        Map<String, String> headers = new HashMap<>();
         headers.put("Content-Type", "application/json");
         headers.put("Access-Token", accessToken);
-        Map<String, Object> param = new HashMap<String, Object>();
+        Map<String, Object> param = new HashMap<>();
         param.put("start_date", startDate);
         param.put("end_date", endDate);
         param.put("advertiser_id", advertiserId);
@@ -197,8 +201,10 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             kuaishouResult = mapper.readValue(result, new TypeReference<KuaishouResult<KuaishouReportDailyCampaign>>() {
             });
             List<KuaishouReportDailyCampaign> details = kuaishouResult.getData().getDetails();
-            details.forEach((kuaishouReportDailyCampaign) -> {
-                dailyCampaignService.saveOrUpdate(kuaishouReportDailyCampaign);
+            details.forEach((campaign) -> {
+                campaign.setAccountId(advertiserId);
+                campaign.setId("" + campaign.getAccountId() + campaign.getCampaignId() + campaign.getStatDate());
+                dailyCampaignService.saveOrUpdate(campaign);
             });
         } catch (Exception e) {
             e.printStackTrace();
@@ -212,7 +218,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         Map<String, String> headers = new HashMap<>();
         headers.put("Content-Type", "application/json");
         headers.put("Access-Token", accessToken);
-        Map<String, Object> param = new HashMap<String, Object>();
+        Map<String, Object> param = new HashMap<>();
         param.put("start_date", startDate);
         param.put("end_date", endDate);
         param.put("advertiser_id", advertiserId);
@@ -227,8 +233,10 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             kuaishouResult = mapper.readValue(result, new TypeReference<KuaishouResult<KuaishouReportHourlyCampaign>>() {
             });
             List<KuaishouReportHourlyCampaign> campaigns = kuaishouResult.getData().getDetails();
-            campaigns.forEach((kuaishouReportHourlyCampaign) -> {
-                hourlyCampaignService.saveOrUpdate(kuaishouReportHourlyCampaign);
+            campaigns.forEach((campaign) -> {
+                campaign.setAccountId(advertiserId);
+                campaign.setId("" + campaign.getAccountId() + campaign.getCampaignId() + campaign.getStatDate() + campaign.getStatHour());
+                hourlyCampaignService.saveOrUpdate(campaign);
             });
         } catch (Exception e) {
             e.printStackTrace();
@@ -270,8 +278,10 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             kuaishouResult = mapper.readValue(result, new TypeReference<KuaishouResult<KuaishouReportDailyGroup>>() {
             });
             List<KuaishouReportDailyGroup> dailyGroups = kuaishouResult.getData().getDetails();
-            dailyGroups.forEach((kuaishouReportDailyGroup) -> {
-                dailyGroupService.saveOrUpdate(kuaishouReportDailyGroup);
+            dailyGroups.forEach((dailyGroup) -> {
+                dailyGroup.setAccountId(advertiserId);
+                dailyGroup.setId("" + dailyGroup.getAccountId() + dailyGroup.getGroupId() + dailyGroup.getStatDate());
+                dailyGroupService.saveOrUpdate(dailyGroup);
             });
         } catch (Exception e) {
             e.printStackTrace();
@@ -300,8 +310,10 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             kuaishouResult = mapper.readValue(result, new TypeReference<KuaishouResult<KuaishouReportHourlyGroup>>() {
             });
             List<KuaishouReportHourlyGroup> hourlyGroups = kuaishouResult.getData().getDetails();
-            hourlyGroups.forEach((kuaishouReportHourlyGroup) -> {
-                hourlyGroupService.saveOrUpdate(kuaishouReportHourlyGroup);
+            hourlyGroups.forEach((hourlyGroup) -> {
+                hourlyGroup.setAccountId(advertiserId);
+                hourlyGroup.setId("" + hourlyGroup.getAccountId() + hourlyGroup.getGroupId() + hourlyGroup.getStatDate() + hourlyGroup.getStatHour());
+                hourlyGroupService.saveOrUpdate(hourlyGroup);
             });
         } catch (Exception e) {
             e.printStackTrace();
@@ -330,8 +342,10 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             kuaishouResult = mapper.readValue(result, new TypeReference<KuaishouResult<KuaishouReportDailyCreative>>() {
             });
             List<KuaishouReportDailyCreative> dailyCreatives = kuaishouResult.getData().getDetails();
-            dailyCreatives.forEach((kuaishouReportDailyCreative) -> {
-                dailyCreativeService.saveOrUpdate(kuaishouReportDailyCreative);
+            dailyCreatives.forEach((creative) -> {
+                creative.setAccountId(advertiserId);
+                creative.setId("" + creative.getAccountId() + creative.getCreativeId() + creative.getStatDate());
+                dailyCreativeService.saveOrUpdate(creative);
             });
         } catch (Exception e) {
             e.printStackTrace();
@@ -360,8 +374,10 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             kuaishouResult = mapper.readValue(result, new TypeReference<KuaishouResult<KuaishouReportHourlyCreative>>() {
             });
             List<KuaishouReportHourlyCreative> hourlyCreatives = kuaishouResult.getData().getDetails();
-            hourlyCreatives.forEach((kuaishouReportHourlyCreative) -> {
-                hourlyCreativeService.saveOrUpdate(kuaishouReportHourlyCreative);
+            hourlyCreatives.forEach((creative) -> {
+                creative.setAccountId(advertiserId);
+                creative.setId("" + creative.getAccountId() + creative.getCreativeId() + creative.getStatDate() + creative.getStatHour());
+                hourlyCreativeService.saveOrUpdate(creative);
             });
         } catch (Exception e) {
             e.printStackTrace();

+ 4 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyAccount.java

@@ -1,6 +1,5 @@
 package cn.com.ctop.kuaishou.modules.report.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -15,10 +14,13 @@ import java.math.BigDecimal;
 public class KuaishouReportDailyAccount implements Serializable {
     private static final long serialVersionUID = 1L;
     @TableId
+    private String id;
+
     private Long accountId;
+
     @JsonProperty("stat_date")
-    @TableId
     private String statDate;
+
     @JsonProperty
     private BigDecimal charge;
     @JsonProperty

+ 1 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyCampaign.java

@@ -13,12 +13,11 @@ import java.math.BigDecimal;
 public class KuaishouReportDailyCampaign implements Serializable {
     private static final long serialVersionUID = 1L;
     @TableId
+    private String id;
     private Long accountId;
     @JsonProperty("campaign_id")
-    @TableId
     private Long campaignId;
     @JsonProperty("stat_date")
-    @TableId
     private String statDate;
     @JsonProperty
     private BigDecimal charge;

+ 4 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyCreative.java

@@ -13,12 +13,14 @@ import java.math.BigDecimal;
 public class KuaishouReportDailyCreative implements Serializable {
     private static final long serialVersionUID = 1L;
     @TableId
+    private String id;
+
     private Long accountId;
+
     @JsonProperty("creative_id")
-    @TableId
     private Long creativeId;
+
     @JsonProperty("stat_date")
-    @TableId
     private String statDate;
     @JsonProperty
     private BigDecimal charge;

+ 5 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportDailyGroup.java

@@ -13,13 +13,16 @@ import java.math.BigDecimal;
 public class KuaishouReportDailyGroup implements Serializable {
     private static final long serialVersionUID = 1L;
     @TableId
+    private String id;
+
     private Long accountId;
+
     @JsonProperty("unit_id")
-    @TableId
     private Long groupId;
+
     @JsonProperty("stat_date")
-    @TableId
     private String statDate;
+
     @JsonProperty
     private BigDecimal charge;
     @JsonProperty

+ 4 - 3
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportHourlyAccount.java

@@ -1,6 +1,5 @@
 package cn.com.ctop.kuaishou.modules.report.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -14,13 +13,15 @@ import java.math.BigDecimal;
 public class KuaishouReportHourlyAccount implements Serializable {
     private static final long serialVersionUID = 1L;
     @TableId
+    private String id;
+
     private Long accountId;
     @JsonProperty("stat_date")
-    @TableId
     private String statDate;
+
     @JsonProperty("stat_hour")
-    @TableId
     private Integer statHour;
+
     @JsonProperty
     private BigDecimal charge;
     @JsonProperty

+ 6 - 3
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportHourlyCampaign.java

@@ -14,16 +14,19 @@ import java.math.BigDecimal;
 public class KuaishouReportHourlyCampaign implements Serializable {
     private static final long serialVersionUID = 1L;
     @TableId
+    private String id;
+
     private Long accountId;
+
     @JsonProperty("campaign_id")
-    @TableId
     private Long campaignId;
+
     @JsonProperty("stat_date")
-    @TableId
     private String statDate;
+
     @JsonProperty("stat_hour")
-    @TableId
     private Integer statHour;
+
     @JsonProperty
     private BigDecimal charge;
     @JsonProperty

+ 1 - 3
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportHourlyCreative.java

@@ -14,15 +14,13 @@ import java.math.BigDecimal;
 public class KuaishouReportHourlyCreative implements Serializable {
     private static final long serialVersionUID = 1L;
     @TableId
+    private String id;
     private Long accountId;
     @JsonProperty("creative_id")
-    @TableId
     private Long creativeId;
     @JsonProperty("stat_date")
-    @TableId
     private String statDate;
     @JsonProperty("stat_hour")
-    @TableId
     private Integer statHour;
     @JsonProperty
     private BigDecimal charge;

+ 1 - 3
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/entity/KuaishouReportHourlyGroup.java

@@ -14,15 +14,13 @@ import java.math.BigDecimal;
 public class KuaishouReportHourlyGroup implements Serializable {
     private static final long serialVersionUID = 1L;
     @TableId
+    private String id;
     private Long accountId;
     @JsonProperty("unit_id")
-    @TableId
     private Long groupId;
     @JsonProperty("stat_date")
-    @TableId
     private String statDate;
     @JsonProperty("stat_hour")
-    @TableId
     private Integer statHour;
     @JsonProperty
     private BigDecimal charge;

+ 36 - 2
module-toutiao/src/main/java/cn/com/ctop/toutiao/service/impl/ByteDanceAdvertisePlanServiceImpl.java

@@ -9,6 +9,7 @@ import cn.com.ctop.toutiao.mapper.ByteDanceAdvertisePlanMapper;
 import cn.com.ctop.toutiao.mapper.BytedanceDeliveryTargetTemplateMapper;
 import cn.com.ctop.toutiao.mapper.BytedanceUrlInfoMapper;
 import cn.com.ctop.toutiao.service.IByteDanceAdvertisePlanService;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
@@ -110,7 +111,24 @@ public class ByteDanceAdvertisePlanServiceImpl extends ServiceImpl<ByteDanceAdve
         if ("IOS".equals(urlInfo.getType())) {
             params.put("itunes_url", urlInfo.getUrl());
         }
-        return HttpUtils.bytedanceGetRequest(token.getAccessToken(), url, params);
+
+        JSONObject result = HttpUtils.bytedanceGetRequest(token.getAccessToken(), url, params);
+        result.remove("data");
+        JSONArray activeConvertList = result.getJSONObject("data").getJSONArray("active_convert_list");
+        JSONArray resultList = new JSONArray();
+        if (null != activeConvertList && activeConvertList.size() > 0) {
+            for (int i = 0; i < activeConvertList.size(); i++) {
+                JSONObject covert = activeConvertList.getJSONObject(i);
+                String name = covert.getString("name");
+                if (!"下载完成".equals(name.trim()) && !"安装完成".equals(name)) {
+                    resultList.add(covert);
+                }
+            }
+        }
+        JSONObject dataObject = new JSONObject();
+        dataObject.put("active_convert_list", resultList);
+        result.put("data", dataObject);
+        return result;
     }
 
     public JSONObject getAdConvert(CtopOauthToken token, BytedanceDeliveryTargetTemplate targetTemplate) {
@@ -133,7 +151,23 @@ public class ByteDanceAdvertisePlanServiceImpl extends ServiceImpl<ByteDanceAdve
                 params.put("package_name", targetTemplate.getPackageName());
             }
         }
-        return HttpUtils.bytedanceGetRequest(token.getAccessToken(), url, params);
+        JSONObject result = HttpUtils.bytedanceGetRequest(token.getAccessToken(), url, params);
+        result.remove("data");
+        JSONArray activeConvertList = result.getJSONObject("data").getJSONArray("active_convert_list");
+        JSONArray resultList = new JSONArray();
+        if (null != activeConvertList && activeConvertList.size() > 0) {
+            for (int i = 0; i < activeConvertList.size(); i++) {
+                JSONObject covert = activeConvertList.getJSONObject(i);
+                String name = covert.getString("name");
+                if (!"下载完成".equals(name.trim()) && !"安装完成".equals(name)) {
+                    resultList.add(covert);
+                }
+            }
+        }
+        JSONObject dataObject = new JSONObject();
+        dataObject.put("active_convert_list", resultList);
+        result.put("data", dataObject);
+        return result;
     }