yumeng 4 years ago
parent
commit
52d52a73dc
44 changed files with 750 additions and 450 deletions
  1. 86 38
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialImageInfoController.java
  2. 34 111
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialInfoController.java
  3. 37 78
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/ProjectController.java
  4. 44 8
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/ProjectMemberController.java
  5. 5 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/UserAllocationController.java
  6. 2 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/ProjectMemberMapper.java
  7. 8 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/ProjectMemberMapper.xml
  8. 2 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/IProjectMemberService.java
  9. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/ProjectMemberServiceImpl.java
  10. 23 5
      jeecg-boot-module-system/src/test/java/org/jeecg/SampleTest.java
  11. 12 0
      module-common/src/main/java/cn/com/ctop/common/module/entity/MaterialImageInfo.java
  12. 3 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/MaterialImageInfoMapper.java
  13. 2 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/MaterialInfoMapper.java
  14. 2 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/SysUserMapper.java
  15. 29 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialImageInfoMapper.xml
  16. 13 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialInfoMapper.xml
  17. 3 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/SysUserMapper.xml
  18. 3 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialImageInfoService.java
  19. 2 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialInfoService.java
  20. 2 0
      module-common/src/main/java/cn/com/ctop/common/module/service/ISysUserService.java
  21. 70 4
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialImageInfoServiceImpl.java
  22. 20 4
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java
  23. 5 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/SysUserServiceImpl.java
  24. 3 0
      module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouMatDailyReportJob.java
  25. 1 12
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/BatchController.java
  26. 2 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaishouTemplateController.java
  27. 1 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaiShouGroup.java
  28. 1 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaiShouGroupTemplate.java
  29. 1 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaishouTemplate.java
  30. 3 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaishouTemplateMapper.java
  31. 4 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaishouTemplateTargetMapper.java
  32. 6 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouGroupMapper.xml
  33. 1 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouGroupTargetMapper.xml
  34. 38 9
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaishouTemplateMapper.xml
  35. 70 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaishouTemplateTargetMapper.xml
  36. 1 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaishouTemplateService.java
  37. 111 121
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/BatchServiceImpl.java
  38. 2 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouGroupServiceImpl.java
  39. 4 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouGroupTemplateServiceImpl.java
  40. 1 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouReportDailyMaterialServiceImpl.java
  41. 1 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouInterfaceServiceImpl.java
  42. 27 13
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouTemplateServiceImpl.java
  43. 51 37
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaiShouDailyAgentMapper.xml
  44. 9 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaiShouDailyAgentServiceImpl.java

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

@@ -1,11 +1,13 @@
 package org.jeecg.modules.ctop.controller;
 
 import cn.com.ctop.common.module.annotation.AutoLog;
+import cn.com.ctop.common.module.constant.CtopRoleCodeConstant;
 import cn.com.ctop.common.module.entity.MaterialImageInfo;
 import cn.com.ctop.common.module.entity.MaterialInfo;
 import cn.com.ctop.common.module.mapper.MaterialInfoMapper;
 import cn.com.ctop.common.module.service.IMaterialImageInfoService;
 import cn.com.ctop.common.module.service.IMaterialInfoService;
+import cn.com.ctop.common.module.service.ISysUserService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.QueryGenerator;
 import com.alibaba.fastjson.JSON;
@@ -14,14 +16,15 @@ 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.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.ctop.service.IProjectMemberService;
 import org.jeecg.modules.system.service.ISysRoleService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -39,11 +42,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 素材
@@ -65,43 +64,92 @@ public class MaterialImageInfoController {
     private MaterialInfoMapper materialInfoMapper;
     @Autowired
     private ISysRoleService sysRoleService;
+    @Autowired
+    private IProjectMemberService memberService;
+    @Autowired
+    private ISysUserService userService;
 
 
     @ApiOperation(value = "截屏-分页列表查询", notes = "截屏-分页列表查询")
     @GetMapping(value = "/pageList")
-    public Result<IPage<MaterialImageInfo>> pageList(MaterialImageInfo materialImageInfo,
-                                                     @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                                     @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                                     HttpServletRequest req) {
-        Result<IPage<MaterialImageInfo>> result = new Result<IPage<MaterialImageInfo>>();
-        QueryWrapper<MaterialImageInfo> queryWrapper = new QueryWrapper<>();
-        Object createTime = materialImageInfo.getCreateTime();
-        materialImageInfo.setCreateTime(null);
-        if (!Check.isNull(materialImageInfo.getUserId())) {
-            String roleCode = sysRoleService.getRoleCodeByUserId(materialImageInfo.getUserId());
-            if ("designTeamLeader".equals(roleCode) || "planeLeader".equals(roleCode) || "admin".equals(roleCode) || "operator".equals(roleCode) || "kuaishouOperationManager".equals(roleCode) || "operationAssistant".equals(roleCode) || "touTiaoOperationManager".equals(roleCode) || "sale".equals(roleCode) || "saleDirector".equals(roleCode)) {
-                materialImageInfo.setUserId(null);
-                queryWrapper = QueryGenerator.initQueryWrapper(materialImageInfo, req.getParameterMap());
-            } else if ("plane".equals(roleCode) || "plan".equals(roleCode) || "shot".equals(roleCode)) {
-                queryWrapper = QueryGenerator.initQueryWrapper(materialImageInfo, req.getParameterMap());
+    public Result<PageInfo<MaterialImageInfo>> pageList(String type, String userId, Integer status, Long projectId, String startDate, String endDate,
+                                                        @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+        Result<PageInfo<MaterialImageInfo>> result = new Result();
+        try {
+            if (Check.isNull(userId)) {
+                throw new Exception("请传入userId");
             }
-            if (!Check.isNull(createTime)) {
-                try {
-                    String dateString = DateUtils.getDateString(String.valueOf(createTime));
-                    Map<String, Object> map = DateUtils.getStartEndTime(dateString);
-                    queryWrapper.ge("create_time", map.get("start"));
-                    queryWrapper.lt("create_time", map.get("end"));
-                } catch (ParseException e) {
-                    e.printStackTrace();
+            String roleCode = sysRoleService.getRoleCodeByUserId(userId);
+            Map<String, Object> requestMap = new HashMap<>();
+            List<Long> projectIds = new ArrayList<>();
+            if (!Check.isNull(projectId)) {
+                projectIds.add(projectId);
+            }
+            if (!Check.isNull(startDate)) {
+                requestMap.put("startDate", startDate);
+            }
+            if (!Check.isNull(endDate)) {
+                requestMap.put("endDate", endDate);
+            }
+            if (!Check.isNull(status)) {
+                requestMap.put("status", status);
+            }
+            if (!Check.isNull(type)) {
+                requestMap.put("type", type);
+            }
+            if (!CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)  // 管理员
+                    && !roleCode.equals("general_manager_of_operations")       // 运营总经理
+                    && !roleCode.contains("sale")                              // 是所有销售相关角色
+                    && !roleCode.equals("kuaishou_design_director")            // 快手设计总监
+                    && !roleCode.equals("toutiao_graphic_design_supervisor")) {   // 头条平面设计主管
+                //查询所有
+
+                if ("kuaishou_operation".equals(roleCode)             // 快手运营
+                        || "kuaishou_operations_assistant".equals(roleCode)  // 快手 运营助理
+                        || "toutiao_operation".equals(roleCode)            // 头条运营
+                        || "toutiao_operations_assistant".equals(roleCode)) { // 头条运营助理
+                    //查询自己所在项目下的数据
+                    if (Check.isNull(projectId)) {
+                        projectIds = memberService.selectProjectsByUserId(userId);
+                    }
+                    requestMap.put("projectIds", projectIds);
+                } else if ("kuaishou_operations_director".equals(roleCode)  // 快手运营总监
+                        || "kuaishou_operations_manager".equals(roleCode)   // 快手运营经理
+                        || "toutiao_operations_director".equals(roleCode)  // 头条运营总监
+                        || "toutiao_operations_manager".equals(roleCode)  // 头条运营经理
+                        || "kuaishou_filming_supervisor".equals(roleCode) // 快手拍摄主管
+                        || "kuaishou_design_team_leader".equals(roleCode) // 快手设计组长
+                        || "kuaishou_design_manager".equals(roleCode)   // 快手设计经理
+                        || "toutiao_design_manager".equals(roleCode)) { // 头条设计经理
+
+                    //查询自己和组下成员所在项目下的数据
+                    if (Check.isNull(projectId)) {
+                        List<String> userList = userService.getUserListByLeaderId(userId);
+                        userList.add(userId);
+                        projectIds = memberService.selectProjectsByUserIds(userList);
+                    }
+                    requestMap.put("projectIds", projectIds);
+                } else {
+                    if (Check.isNull(projectId)) {
+                        projectIds = memberService.selectProjectsByUserId(userId);
+                    }
+                    requestMap.put("projectIds", projectIds);
+                    requestMap.put("userId", userId);
                 }
+            } else {
+                if (Check.isNull(projectId)) {
+                    projectIds = memberService.selectProjectsByUserId(userId);
+                }
+                requestMap.put("projectIds", projectIds);
             }
+            PageInfo<MaterialImageInfo> materialImageInfoPageInfo = MaterialImageInfoService.selectImageListByMap(pageNo, pageSize, requestMap);
+            result.setSuccess(true);
+            result.setResult(materialImageInfoPageInfo);
+        } catch (Exception e) {
+            e.printStackTrace();
+            result.setSuccess(false);
         }
-        Page<MaterialImageInfo> page = new Page<>(pageNo, pageSize);
-        IPage<MaterialImageInfo> pageList = MaterialImageInfoService.page(page, queryWrapper);
-
-
-        result.setSuccess(true);
-        result.setResult(pageList);
         return result;
 
     }
@@ -111,9 +159,9 @@ public class MaterialImageInfoController {
         Result<IPage<MaterialImageInfo>> result = new Result<IPage<MaterialImageInfo>>();
         QueryWrapper<MaterialImageInfo> queryWrapper = new QueryWrapper<>();
         if (!Check.isNull(requestBody.getString("userId"))) {
-            queryWrapper.eq("user_id",requestBody.getString("userId"));
-            }
-        queryWrapper.orderByDesc(true,"create_time");
+            queryWrapper.eq("user_id", requestBody.getString("userId"));
+        }
+        queryWrapper.orderByDesc(true, "create_time");
         Page<MaterialImageInfo> page = new Page<>(requestBody.getInteger("pageNo"), requestBody.getInteger("pageSize"));
         IPage<MaterialImageInfo> pageList = MaterialImageInfoService.page(page, queryWrapper);
 

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

@@ -5,8 +5,10 @@ import cn.com.ctop.common.module.constant.CtopRoleCodeConstant;
 import cn.com.ctop.common.module.entity.*;
 import cn.com.ctop.common.module.enums.MaterialSupplierEnum;
 import cn.com.ctop.common.module.service.*;
-import cn.com.ctop.common.module.utils.*;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouReportDailyMaterialService;
+import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.common.module.utils.CloudVideoProcessUtil;
+import cn.com.ctop.common.module.utils.KuaishouInterfaceConstant;
+import cn.com.ctop.common.module.utils.QueryGenerator;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -61,7 +63,7 @@ public class MaterialInfoController {
     @Autowired
     private IMaterialImageInfoService iMaterialImageInfoService;
     @Autowired
-    private IKuaiShouReportDailyMaterialService kuaiShouReportDailyMaterialService;
+    private ISysUserService userService;
 
 
     @GetMapping("/supplierWatermark")
@@ -192,112 +194,6 @@ public class MaterialInfoController {
     @Autowired
     private ISysRoleService roleService;
 
-    @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<>();
-        String materialName = materialInfo.getMaterialName();
-        String startDate = materialInfo.getStartDate();
-        String endDate = materialInfo.getEndDate();
-        materialInfo.setStartDate(null);
-        materialInfo.setEndDate(null);
-
-
-        materialInfo.setMaterialName(null);
-        QueryWrapper<MaterialInfo> queryWrapper = new QueryWrapper<>();
-        materialInfo.setCreateTime(null);
-        if (!Check.isNull(materialInfo.getUserId())) {
-            String roleCode = roleService.getRoleCodeByUserId(materialInfo.getUserId());
-            if (CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode) || "operator".equals(roleCode) || "kuaishouOperationManager".equals(roleCode) || "operationAssistant".equals(roleCode) || "touTiaoOperationManager".equals(roleCode) || roleCode.contains("sale")) {
-                materialInfo.setUserId(null);
-                queryWrapper = QueryGenerator.initQueryWrapper(materialInfo, req.getParameterMap());
-            } else if ("designTeamLeader".equals(roleCode) || "planeLeader".equals(roleCode) || "plane".equals(roleCode) || "plan".equals(roleCode) || "shot".equals(roleCode)) {
-                String userId = materialInfo.getUserId();
-                materialInfo.setUserId(null);
-                queryWrapper = QueryGenerator.initQueryWrapper(materialInfo, req.getParameterMap());
-                if (Check.isNull(materialInfo.getProjectId())) {
-                    List<Long> projects = memberService.selectProjectsByUserId(userId);
-                    if (!Check.isNull(projects)) {
-                        queryWrapper.in("project_id", projects);
-                    } else {
-                        result.setSuccess(true);
-                        result.setResult(null);
-                        return result;
-                    }
-                }
-            } else {
-                queryWrapper = QueryGenerator.initQueryWrapper(materialInfo, req.getParameterMap());
-            }
-            if (!Check.isNull(startDate) && !Check.isNull(endDate)) {
-                try {
-                    String startDateStr = DateUtils.getDateString(startDate);
-                    String endDateStr = DateUtils.getDateString(endDate);
-                    queryWrapper.between("create_time", startDateStr, DateUtils.getEndTime(endDateStr));
-                } catch (ParseException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-        if (!Check.isNull(materialName)) {
-            queryWrapper.like("material_name", materialName);
-
-        }
-        Page<MaterialInfo> page = new Page<>(pageNo, pageSize);
-        IPage<MaterialInfo> pageList = materialInfoService.page(page, queryWrapper);
-        List<MaterialInfo> materialInfoList = pageList.getRecords();
-        if (materialInfoList.size() != 0) {
-            for (MaterialInfo material : materialInfoList) {
-                //判断是否已经同步到快手平台
-                Integer kuaishouMaterialUpCount = materialInfoService.getKuaishouUpVideoCount(material.getCode());
-                if (kuaishouMaterialUpCount > 0) {
-                    material.setKuaishouVideoIsUp(1);
-                } else {
-                    material.setKuaishouVideoIsUp(0);
-                }
-                //判断是否已经同步到抖音平台
-                Integer toutiaoMaterialUpCount = materialInfoService.getToutiaoUpVideoCount(material.getCode());
-                if (toutiaoMaterialUpCount > 0) {
-                    material.setToutiaoVideoIsUp(1);
-                } else {
-                    material.setToutiaoVideoIsUp(0);
-                }
-
-
-                ByteDanceCleanMaterialReport byteDance = byteDanceCleanMaterialReportService.getById(material.getCode());
-                if (!Check.isNull(byteDance)) {
-                    String byteDanceString = JsonUtil.objectToJson(byteDance);
-                    material.setByteDance(JSONObject.parseObject(byteDanceString));
-                }
-
-
-                Project project = projectService.getById(material.getProjectId());
-                if (!Check.isNull(project)) {
-                    material.setMediaId(project.getMediaId());
-                    material.setProjectName(project.getProjectName());
-                }
-
-                QueryWrapper<MaterialImageInfo> imageInfoQueryWrapper = new QueryWrapper<>();
-                imageInfoQueryWrapper.eq("video_id", material.getCode());
-                imageInfoQueryWrapper.eq("status", 0);
-                List<MaterialImageInfo> imageInfoList = iMaterialImageInfoService.list(imageInfoQueryWrapper);
-                if (Check.isNull(imageInfoList)) {
-                    material.setWhetherUnaudited(false);
-                } else {
-                    material.setWhetherUnaudited(true);
-                }
-
-            }
-
-
-        }
-
-        result.setSuccess(true);
-        result.setResult(pageList);
-        return result;
-    }
 
     @GetMapping(value = "/listV2")
     public Map<String, Object> queryPageList(String type, Integer status, Long projectId, String materialName, String code,
@@ -311,14 +207,22 @@ public class MaterialInfoController {
         if (null == tagCode || "".equals(tagCode.trim())) {
             tagCode = null;
         }
-        if (CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode) || "operator".equals(roleCode) || "kuaishouOperationManager".equals(roleCode) || "operationAssistant".equals(roleCode) || "touTiaoOperationManager".equals(roleCode) || roleCode.contains("sale")) {
+        if (CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)  // 管理员
+                || roleCode.equals("general_manager_of_operations")       // 运营总经理
+                || roleCode.contains("sale")                              // 是所有销售相关角色
+                || roleCode.equals("kuaishou_design_director")            // 快手设计总监
+                || roleCode.equals("toutiao_graphic_design_supervisor")) {   // 头条平面设计主管
             //查询所有
             if (null != projectId && projectId != 0) {
                 projectIds = new ArrayList<>();
                 projectIds.add(projectId);
             }
             return materialInfoService.getListByParams(tagCode, type, status, projectIds, materialName, code, startDate, endDate, null, pageNo, pageSize);
-        } else if ("designTeamLeader".equals(roleCode) || "planeLeader".equals(roleCode) || "plane".equals(roleCode) || "plan".equals(roleCode) || "shot".equals(roleCode)) {
+        } else if ("kuaishou_operation".equals(roleCode)             // 快手运营
+                || "kuaishou_operations_assistant".equals(roleCode)  // 快手 运营助理
+                || "toutiao_operation".equals(roleCode)            // 头条运营
+                || "toutiao_operations_assistant".equals(roleCode)) { // 头条运营助理
+
             //查询自己所在项目下的数据
             if (null == projectId || projectId == 0) {
                 projectIds = memberService.selectProjectsByUserId(userId);
@@ -327,6 +231,25 @@ public class MaterialInfoController {
                 projectIds.add(projectId);
             }
             return materialInfoService.getListByParams(tagCode, type, status, projectIds, materialName, code, startDate, endDate, null, pageNo, pageSize);
+        } else if ("kuaishou_operations_director".equals(roleCode)  // 快手运营总监
+                || "kuaishou_operations_manager".equals(roleCode)   // 快手运营经
+                || "toutiao_operations_director".equals(roleCode)  // 头条运营总监
+                || "toutiao_operations_manager".equals(roleCode)  // 头条运营经理
+                || "kuaishou_filming_supervisor".equals(roleCode) // 快手拍摄主管
+                || "kuaishou_design_team_leader".equals(roleCode) // 快手设计组长
+                || "kuaiShou_design_manager".equals(roleCode)   // 快手设计经理
+                || "toutiao_design_manager".equals(roleCode)) { // 头条设计经理
+
+            //查询自己和组下成员所在项目下的数据
+            if (null == projectId || projectId == 0) {
+                List<String> userList = userService.getUserListByLeaderId(userId);
+                userList.add(userId);
+                projectIds = memberService.selectProjectsByUserIds(userList);
+            } else {
+                projectIds = new ArrayList<>();
+                projectIds.add(projectId);
+            }
+            return materialInfoService.getListByParams(tagCode, type, status, projectIds, materialName, code, startDate, endDate, null, pageNo, pageSize);
         } else {
             //查询自己上传的视频
             if (null != projectId && projectId != 0) {

+ 37 - 78
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/ProjectController.java

@@ -20,8 +20,6 @@ import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.ctop.entity.ProjectMember;
-import org.jeecg.modules.ctop.entity.TransferAccount;
-import org.jeecg.modules.ctop.mapper.ProjectMemberMapper;
 import org.jeecg.modules.ctop.service.IAdvertiserService;
 import org.jeecg.modules.ctop.service.IProjectMemberService;
 import org.jeecg.modules.ctop.service.ITransferAccountService;
@@ -29,7 +27,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 项目
@@ -47,8 +48,7 @@ public class ProjectController {
     private IProjectService projectService;
     @Autowired
     private IProjectMemberService projectMemberService;
-    @Autowired
-    private ProjectMemberMapper projectMemberMapper;
+
     @Autowired
     private IAdvertiserService advertiserService;
     @Autowired
@@ -57,6 +57,8 @@ public class ProjectController {
     private ITransferAccountService transferAccountService;
     @Autowired
     private IUserAllocationService userAllocationService;
+    @Autowired
+    private ISysUserService userService;
 
     /**
      * @param advertiserId
@@ -81,72 +83,8 @@ public class ProjectController {
     }
 
 
-    /**
-     * 我管理的
-     *
-     * @param userId
-     * @return
-     */
-    @AutoLog(value = "项目成员-分页列表查询")
-    @ApiOperation(value = "项目成员-分页列表查询", notes = "项目成员-分页列表查询")
-    @GetMapping(value = "/responsibleList")
-    public Map<String, Object> responsibleList(String userId) {
-        Map<String, Object> map = new HashMap<>();
-        String roleCode = sysRoleService.getRoleCodeByUserId(userId);
-        QueryWrapper<Project> queryWrapper = new QueryWrapper<>();
-        List<Project> projects = new ArrayList<>();
-        if (!CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode) && !"sale".equals(roleCode) && !"saleDirector".equals(roleCode)) {
-            if ("designTeamLeader".equals(roleCode) || "touTiaoOperationManager".equals(roleCode) || "kuaishouOperationManager".equals(roleCode) || "planeLeader".equals(roleCode)) {
-                QueryWrapper<ProjectMember> memberQueryWrapper = new QueryWrapper<>();
-                memberQueryWrapper.eq("user_id", userId);
-                memberQueryWrapper.groupBy("project_id");
-                memberQueryWrapper.orderByDesc("create_time");
-                List<ProjectMember> projectMemberList = projectMemberMapper.selectList(memberQueryWrapper);
-                if (!Check.isNull(projectMemberList)) {
-                    for (ProjectMember member : projectMemberList) {
-                        Long projectId = member.getProjectId();
-                        Project project = projectService.getById(projectId);
-                        if (null != project) {
-                            projects.add(project);
-                        }
-                    }
-                }
-            } else {
-                QueryWrapper<Project> projectQueryWrapper = new QueryWrapper<>();
-                projectQueryWrapper.eq("responsible_id", userId);
-                projectQueryWrapper.orderByDesc("create_time");
-                List<Project> responsibles = projectMapper.selectList(projectQueryWrapper);
-                if (!Check.isNull(responsibles)) {
-                    projects = responsibles;
-                } else {
-                    QueryWrapper<Project> designResponsibleQueryWrapper = new QueryWrapper<>();
-                    designResponsibleQueryWrapper.eq("design_responsible_id", userId);
-                    designResponsibleQueryWrapper.orderByDesc("create_time");
-                    List<Project> designResponsibles = projectMapper.selectList(projectQueryWrapper);
-                    projects = designResponsibles;
-                }
-            }
-        } else {
-            queryWrapper.orderByDesc("create_time");
-            projects = projectMapper.selectList(queryWrapper);
-        }
-
-        if (!Check.isNull(projects)) {
-            for (Project project : projects) {
-                QueryWrapper<TransferAccount> transferAccountQueryWrapper = new QueryWrapper<>();
-                transferAccountQueryWrapper.eq("project_id", project.getId());
-                transferAccountQueryWrapper.eq("status", 0);
-                List<TransferAccount> list = transferAccountService.list(transferAccountQueryWrapper);
-                project.setNeedExamine(list.size());
-            }
-        }
-
-        map.put("success", true);
-        map.put("code", 0);
-        map.put("result", projects);
-        return map;
-    }
-
+    @Autowired
+    private IProjectMemberService memberService;
 
     @AutoLog(value = "项目-分页列表查询")
     @ApiOperation(value = "项目-分页列表查询", notes = "项目-分页列表查询")
@@ -175,23 +113,44 @@ public class ProjectController {
         Page<Project> page = new Page<>(pageNo, pageSize);
         IPage<Project> pageList = null;
         // 查询所有
-        if (CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode) || "sale".equals(roleCode) || "saleDirector".equals(roleCode)) {
+        if (CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)  // 管理员
+                || roleCode.equals("general_manager_of_operations")       // 运营总经理
+                || roleCode.contains("sale")                              // 是所有销售相关角色
+                || roleCode.equals("kuaishou_design_director")            // 快手设计总监
+                || roleCode.equals("toutiao_graphic_design_supervisor")) {
             pageList = projectService.page(page, queryWrapper);
             // 经理岗查询所在项目
-        } else if ("designTeamLeader".equals(roleCode) || "touTiaoOperationManager".equals(roleCode) || "kuaishouOperationManager".equals(roleCode) || "planeLeader".equals(roleCode)) {
-
-            List<Long> projectIds = projectMemberService.getProjectByMap(userId);
+        } else if ("kuaishou_operations_director".equals(roleCode)  // 快手运营总监
+                || "kuaishou_operations_manager".equals(roleCode)   // 快手运营经理
+                || "toutiao_operations_director".equals(roleCode)  // 头条运营总监
+                || "toutiao_operations_manager".equals(roleCode)  // 头条运营经理
+                || "kuaishou_filming_supervisor".equals(roleCode) // 快手拍摄主管
+                || "kuaishou_design_team_leader".equals(roleCode) // 快手设计组长
+                || "kuaishou_design_manager".equals(roleCode)   // 快手设计经理
+                || "toutiao_design_manager".equals(roleCode)) { //  头条设计经理
+            List<String> userList = userService.getUserListByLeaderId(userId);
+            userList.add(userId);
+            List<Long> projectIds = memberService.selectProjectsByUserIds(userList);
             if (!Check.isNull(projectIds)) {
                 queryWrapper.in("id", projectIds);
                 pageList = projectService.page(page, queryWrapper);
-
             }
+
             // 剪辑 编导 平面 拍摄 查询自己为设计负责人项目
-        } else if ("clip".equals(roleCode) || "shot".equals(roleCode) || "plan".equals(roleCode) || "plane".equals(roleCode)) {
+        } else if ("kuaishou_edit".equals(roleCode)  // 快手剪辑
+                || "kuaishou_shoot".equals(roleCode) // 快手拍摄
+                || "kuaishou_choreographer".equals(roleCode) // 快手编导
+                || "toutiao_edit".equals(roleCode) // 头条后期
+                || "toutiao_shoot".equals(roleCode) // 头条拍摄
+                || "toutiao_choreographe".equals(roleCode) // 头条编导
+                || "toutiao_flat".equals(roleCode)) {// 头条平面
             queryWrapper.eq("design_responsible_id", userId);
             pageList = projectService.page(page, queryWrapper);
             // 运营 运营助理查询 自己负责项目
-        } else if ("operator".equals(roleCode) || "operationAssistant".equals(roleCode)) {
+        } else if ("kuaishou_operation".equals(roleCode) // 快手运营
+                || "Kuaishou_operations_assistant".equals(roleCode) // 快手运营助理
+                || "toutiao_operation".equals(roleCode)   //  头条运营
+                || "toutiao_operations_assistant".equals(roleCode)) {// 头条运营助理
             queryWrapper.eq("responsible_id", userId);
             pageList = projectService.page(page, queryWrapper);
         } else {

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

@@ -1,5 +1,6 @@
 package org.jeecg.modules.ctop.controller;
 
+import cn.com.ctop.common.module.constant.CtopRoleCodeConstant;
 import cn.com.ctop.common.module.entity.Advertiser;
 import cn.com.ctop.common.module.entity.Product;
 import cn.com.ctop.common.module.entity.Project;
@@ -169,9 +170,17 @@ public class ProjectMemberController {
                 }
             }
             String roleCode = sysRoleService.getRoleCodeByUserId(userId);
-            if ("admin".equals(roleCode) || roleCode.contains("sale") || "meidaManager".equals(roleCode)) {
+
+            if (CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)  // 管理员
+                    || roleCode.equals("general_manager_of_operations")       // 运营总经理
+                    || roleCode.contains("sale")                              // 所有销售相关角色
+                    || roleCode.equals("kuaishou_design_director")            // 快手设计总监
+                    || roleCode.equals("toutiao_graphic_design_supervisor") // 拍摄主管
+                    || "meidaManager".equals(roleCode)) { // 媒介
                 userId = null;
+
             }
+
             List<JSONObject> projectList = projectMemberService.getProjectByUserIdAndMediaIds(userId, mediaIds);
             List<JSONObject> haveList = new ArrayList<>();
             if (!Check.isNull(projectList)) {
@@ -202,7 +211,12 @@ public class ProjectMemberController {
         try {
             String userId = ((LoginUser) SecurityUtils.getSubject().getPrincipal()).getId();
             String roleCode = sysRoleService.getRoleCodeByUserId(userId);
-            if ("admin".equals(roleCode) || roleCode.contains("sale") || "meidaManager".equals(roleCode)) {
+            if ((CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)  // 管理员
+                    || roleCode.equals("general_manager_of_operations")       // 运营总经理
+                    || roleCode.contains("sale")                              // 所有销售相关角色
+                    || roleCode.equals("kuaishou_design_director")            // 快手设计总监
+                    || roleCode.equals("toutiao_graphic_design_supervisor") // 拍摄主管
+                    || "meidaManager".equals(roleCode))) {
                 List<Project> projects = projectService.list();
                 result.put("data", projects);
                 ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS);
@@ -221,6 +235,8 @@ public class ProjectMemberController {
 
     @Autowired
     private IProductService productService;
+    @Autowired
+    private ISysUserService userService;
 
     @GetMapping(value = "/participateListV2")
     public Result<IPage<ProjectMember>> participateListV2(ProjectMember projectMember,
@@ -240,15 +256,37 @@ public class ProjectMemberController {
         projectMember.setProjectName(null);
         QueryWrapper<ProjectMember> queryWrapper = QueryGenerator.initQueryWrapper(projectMember, req.getParameterMap());
 
-        String roleCode = sysRoleService.getRoleCodeByUserId(userId);
-        if (!"admin".equals(roleCode) && !roleCode.contains("sale") && !"meidaManager".equals(roleCode)) {
-            queryWrapper.eq("user_id", userId);
-        }
+
         if (!Check.isNull(projectName)) {
             queryWrapper.like("project_name", projectName);
         }
         queryWrapper.groupBy("project_id");
         queryWrapper.orderByDesc("create_time");
+        String roleCode = sysRoleService.getRoleCodeByUserId(userId);
+
+        if (!CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)  // 管理员
+                && !roleCode.equals("general_manager_of_operations")       // 运营总经理
+                && !roleCode.contains("sale")                              // 是所有销售相关角色
+                && !roleCode.equals("kuaishou_design_director")            // 快手设计总监
+                && !roleCode.equals("toutiao_graphic_design_supervisor")) {
+
+            if ("kuaishou_operations_director".equals(roleCode)  // 快手运营总监
+                    || "kuaishou_operations_manager".equals(roleCode)   // 快手运营经
+                    || "toutiao_operations_director".equals(roleCode)  // 头条运营总监
+                    || "toutiao_operations_manager".equals(roleCode)  // 头条运营经理
+                    || "kuaishou_filming_supervisor".equals(roleCode) // 快手拍摄主管
+                    || "kuaishou_design_team_leader".equals(roleCode) // 快手设计组长
+                    || "kuaishou_design_manager".equals(roleCode)   // 快手设计经理
+                    || "toutiao_design_manager".equals(roleCode)) { // 头条设计经理
+                List<String> userList = userService.getUserListByLeaderId(userId);
+                userList.add(userId);
+                queryWrapper.in("user_id", userList);
+            } else {
+                queryWrapper.eq("user_id", userId);
+            }
+        }
+
+
         Page<ProjectMember> page = new Page<>(pageNo, pageSize);
         IPage<ProjectMember> pageList = projectMemberService.page(page, queryWrapper);
         List<ProjectMember> projectMembers = pageList.getRecords();
@@ -260,8 +298,6 @@ public class ProjectMemberController {
     }
 
 
-
-
     /**
      * 分页列表查询
      *

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

@@ -337,7 +337,11 @@ public class UserAllocationController {
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         QueryWrapper<UserAllocation> queryWrapper = QueryGenerator.initQueryWrapper(userAllocation, req.getParameterMap());
         String roleCode = sysRoleService.getRoleCodeByUserId(user.getId());
-        if (!CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)) {
+        if ( !CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)  // 管理员
+                && !roleCode.equals("general_manager_of_operations")       // 运营总经理
+                && !roleCode.contains("sale")                              // 是所有销售相关角色
+                && !roleCode.equals("kuaishou_design_director")            // 快手设计总监
+                && !roleCode.equals("toutiao_graphic_design_supervisor")) {
             queryWrapper.eq("user_id", user.getId());
             queryWrapper.orderByDesc("id");
         }

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/ProjectMemberMapper.java

@@ -44,4 +44,6 @@ public interface ProjectMemberMapper extends BaseMapper<ProjectMember> {
     List<Long> getProjectByAccountIds(@Param("accountIds")JSONArray accountIds);
 
     List<JSONObject> getProjectByUserIdAndMediaIds(@Param("userId") String userId, @Param("mediaIds") List<Integer> mediaIds);
+
+    List<Long> selectProjectsByUserIds(@Param("userIds") List<String> userList);
 }

+ 8 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/ProjectMemberMapper.xml

@@ -214,6 +214,14 @@
         group by t2.id
         order by t2.create_time desc
     </select>
+    <select id="selectProjectsByUserIds" resultType="java.lang.Long">
+        SELECT project_id  from  ctop_project_member WHERE user_id in
+        <foreach collection="userIds" item="item" separator=","
+                 open="(" close=")">
+            #{item}
+        </foreach>
+         GROUP BY project_id
+    </select>
 
 
 </mapper>

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

@@ -43,4 +43,6 @@ public interface IProjectMemberService extends IService<ProjectMember> {
     List<Map<String, Object>> getAllProjectAccount(String mediaType);
 
     List<ProjectMember> getMapsByProjectList(List<ProjectMember> projectMembers);
+
+    List<Long> selectProjectsByUserIds(List<String> userList);
 }

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

@@ -412,6 +412,11 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
         return projectMembers;
     }
 
+    @Override
+    public List<Long> selectProjectsByUserIds(List<String> userList) {
+        return memberMapper.selectProjectsByUserIds(userList);
+    }
+
 }
 
 

+ 23 - 5
jeecg-boot-module-system/src/test/java/org/jeecg/SampleTest.java

@@ -73,17 +73,35 @@ public class SampleTest {
     @Autowired
     private IKuaiShouGroupService kuaiShouGroupService;
 
+    @Autowired
+    private IKuaiShouReportDailyMaterialService kuaiShouReportDailyMaterialService;
+    @Autowired
+    private IKuaishouInterfaceService iKuaishouInterfaceService;
+    @Autowired
+    private IKuaishouTemplateService templateService;
 
     @Test
     public void loadBytedanceCreativeData() throws ParseException {
-        Date getDate = DateUtils.addDay(new Date(), -1);
-        Date getDate2 = DateUtils.addDay(new Date(), -2);
+
+      /*  templateService.getTemplateByAccountId(9850194L, "536ff37ed26ff4d549d9f6d0691906c8", 1);*/
+
+
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String endDate = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+        String startDate = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -7);
 
         CtopOauthToken token = new CtopOauthToken();
-        token.setAccountId(9901975L);
-        token.setAccessToken("1c7cebebc3174c39fe941d136df65b1d");
+        token.setAccountId(9961551L);
+        token.setAccessToken("64a8b6c17492b42d1cbe387ce2126809");
+
+
+        iKuaishouInterfaceService.getVideoList(token, nowDate, nowDate);
+
+/*        kuaiShouReportDailyMaterialService.getMaterialReportByAccountIdAndStatDate(token.getAccountId(),token.getAccessToken(),startDate,endDate,1);
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+
 
-        kuaiShouGroupService.getGroupListByPage("90f31a01c2137aa11c8686e86064b630",9845316L,null,1);
+        kuaishouInterfaceService.getAdvertiserReportDaily(token, simpleDateFormat.parse(startDate), simpleDateFormat.parse(endDate), null);*/
 
 //        kuaishouInterfaceService.getAdvertiserReportDaily(token, getDate2, getDate, "adScene");
 

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

@@ -119,6 +119,9 @@ public class MaterialImageInfo {
     private String size;
 
     private Integer excellent;
+
+
+    private Long projectId;
     /**
      * createTime
      */
@@ -134,9 +137,18 @@ public class MaterialImageInfo {
     private String videoUrl;
 
     @TableField(exist = false)
+    private String coverUrlUrl;
+
+    @TableField(exist = false)
     private String auditorName;
 
     @TableField(exist = false)
     private String userName;
 
+    @TableField(exist = false)
+    private String projectName;
+
+    @TableField(exist = false)
+    private String videoName;
+
 }

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

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 素材
@@ -20,4 +21,6 @@ public interface MaterialImageInfoMapper extends BaseMapper<MaterialImageInfo> {
     List<String> getCodeList();
 
     List<JSONObject> getUrlList(@Param("videoId") String videoId);
+
+    List<MaterialImageInfo> selectImageListByMap(Map<String, Object> requestMap);
 }

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

@@ -36,4 +36,6 @@ public interface MaterialInfoMapper extends BaseMapper<MaterialInfo> {
     List<MaterialInfo> getListByDate(@Param("startDate") String startDate,@Param("endDate") String endDate);
 
     List<MaterialInfo> getListByParams(@Param("tagCode")String tagCode,@Param("type")String type, @Param("status")Integer status, @Param("projectIds")List<Long> projectIds, @Param("materialName")String materialName, @Param("code")String code, @Param("startDate")String startDate, @Param("endDate")String endDate, @Param("userId")String userId);
+
+    List<JSONObject> getVideoInfoByMap(@Param("ids") Map<String, String> materialIdMap);
 }

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

@@ -177,4 +177,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
     List<SysUser> queryPageList(SysUser user);
 
     List<JSONObject> getUserMapByMap(@Param("ids") Map<String, String> userIdMap);
+
+    List<String> getUserListByLeaderId(@Param("userId") String userId);
 }

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

@@ -130,5 +130,34 @@
         ) t
 
     </select>
+    <select id="selectImageListByMap" parameterType="map"
+            resultType="cn.com.ctop.common.module.entity.MaterialImageInfo">
+        select
+        *
+        from ctop_material_image_info
+        where 1=1
+        <if test="type != null and type != '' ">
+            and type = #{type}
+        </if>
+        <if test="userId != null and userId != '' ">
+            and user_id = #{userId}
+        </if>
+        <if test="status != null and status != '' ">
+            and status = #{status}
+        </if>
+        <if test="startDate != null and startDate != '' ">
+            and create_time &gt;= #{startDate}
+        </if>
+        <if test="endDate != null and endDate != '' ">
+            and create_time &lt;= #{endDate}
+        </if>
+        <if test="projectIds!=null">
+            and project_id in
+            <foreach item="item" index="index" collection="projectIds" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        order by create_time desc
+    </select>
 
 </mapper>

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

@@ -134,6 +134,19 @@
         and DATE_FORMAT(create_time,'%Y-%m-%d') &gt;= #{startDate}
         and DATE_FORMAT(create_time,'%Y-%m-%d') &lt;= #{endDate}
     </select>
+    <select id="getVideoInfoByMap" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT
+        code as 'code',
+        url as 'url',
+        cover_url as 'coverUrl',
+        material_name as 'materialName',
+        from ctop_material_info
+        where code in
+        <foreach collection="ids" item="ids" separator="," open="(" close=")">
+            #{ids}
+        </foreach>
+       group by code
+    </select>
 
 
 </mapper>

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

@@ -319,5 +319,8 @@ SELECT
             #{ids}
         </foreach>
     </select>
+    <select id="getUserListByLeaderId" resultType="java.lang.String">
+        SELECT id  from  sys_user WHERE leader_id = #{userId}
+    </select>
 
 </mapper>

+ 3 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialImageInfoService.java

@@ -3,6 +3,7 @@ package cn.com.ctop.common.module.service;
 import cn.com.ctop.common.module.entity.MaterialImageInfo;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.pagehelper.PageInfo;
 
 import java.util.List;
 import java.util.Map;
@@ -32,4 +33,6 @@ public interface IMaterialImageInfoService extends IService<MaterialImageInfo> {
 
 
     List<MaterialImageInfo> getListByVideoSignature(String signature);
+
+    PageInfo<MaterialImageInfo> selectImageListByMap(Integer pageNo, Integer pageSize, Map<String, Object> requestMap);
 }

+ 2 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialInfoService.java

@@ -78,4 +78,6 @@ public interface IMaterialInfoService extends IService<MaterialInfo> {
     List<MaterialInfo> getListByDate(String startDate, String endDate);
 
     Map<String, Object> getListByParams(String tagCode, String type, Integer status, List<Long> projectIds, String materialName, String code, String startDate, String endDate, String userId, Integer pageNo, Integer pageSize);
+
+    Map<String, JSONObject> getVideoInfoByMap(Map<String, String> materialIdMap);
 }

+ 2 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/ISysUserService.java

@@ -269,4 +269,6 @@ public interface ISysUserService extends IService<SysUser> {
     List<SysUser> queryPageList(SysUser user);
 
     Map<String, String> getUserMapByMap(Map<String, String> userIdMap);
+
+    List<String> getUserListByLeaderId(String userId);
 }

+ 70 - 4
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialImageInfoServiceImpl.java

@@ -3,6 +3,9 @@ package cn.com.ctop.common.module.service.impl;
 import cn.com.ctop.common.module.entity.MaterialImageInfo;
 import cn.com.ctop.common.module.mapper.MaterialImageInfoMapper;
 import cn.com.ctop.common.module.service.IMaterialImageInfoService;
+import cn.com.ctop.common.module.service.IMaterialInfoService;
+import cn.com.ctop.common.module.service.IProjectService;
+import cn.com.ctop.common.module.service.ISysUserService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.LoadFileUtil;
 import cn.com.ctop.common.module.utils.ResultMapUtils;
@@ -11,6 +14,8 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.util.MD5Util;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,9 +45,15 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
 
     @Value("${oss.replace.download}")
     private String downloadUrl;
+    @Autowired
+    private ISysUserService userService;
 
     @Autowired
     private MaterialImageInfoMapper materialImageInfoMapper;
+    @Autowired
+    private IProjectService projectService;
+    @Autowired
+    private IMaterialInfoService materialInfoService;
 
 
     @Override
@@ -52,8 +63,14 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
             String videoId = imageJson.getString("videoId");
             if (Check.isNull(videoId)) {
                 log.error("视频id不能为空");
+                throw new Exception("视频id不能为空");
 
             }
+            Long projectId = imageJson.getLong("projectId");
+            if (Check.isNull(projectId)) {
+                log.error("项目id不能为空");
+                throw new Exception("项目id不能为空");
+            }
             String userId = imageJson.getString("userId");
             JSONArray imageArr = imageJson.getJSONArray("imageArr");
             for (int i = 0; i < imageArr.size(); i++) {
@@ -71,6 +88,7 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
                     String localUrl = LoadFileUtil.downLoadFromUrl(url, downloadUrl);
                     String md5Code = MD5Util.getFileMd5(localUrl);
                     materialImageInfo.setCode(md5Code);
+                    materialImageInfo.setProjectId(projectId);
                     File picture = new File(localUrl);
                     BufferedImage sourceImg = null;
                     try {
@@ -146,7 +164,7 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
     @Override
     public MaterialImageInfo getByCode(String signature) {
         QueryWrapper<MaterialImageInfo> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("code",signature);
+        queryWrapper.eq("code", signature);
         queryWrapper.last("limit 1");
         return this.getOne(queryWrapper);
     }
@@ -154,12 +172,60 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
 
     @Override
     public List<MaterialImageInfo> getListByVideoSignature(String signature) {
-        QueryWrapper<MaterialImageInfo>queryWrapper =new QueryWrapper<>();
-        if(null!=signature&&!signature.trim().equals("")){
-            queryWrapper.eq("video_id",signature);
+        QueryWrapper<MaterialImageInfo> queryWrapper = new QueryWrapper<>();
+        if (null != signature && !signature.trim().equals("")) {
+            queryWrapper.eq("video_id", signature);
         }
         return this.list(queryWrapper);
     }
 
+    @Override
+    public PageInfo<MaterialImageInfo> selectImageListByMap(Integer pageNo, Integer pageSize, Map<String, Object> requestMap) {
+        PageHelper.startPage(pageNo, pageSize);
+        List<MaterialImageInfo> imageInfos = materialImageInfoMapper.selectImageListByMap(requestMap);
+        Map<String, String> userIdMap = new HashMap<>();
+        Map<Long, Long> projectIdMap = new HashMap<>();
+        Map<String, String> MaterialIdMap = new HashMap<>();
+        for (MaterialImageInfo imageInfo : imageInfos) {
+            userIdMap.put(imageInfo.getAuditorId(), imageInfo.getAuditorId());
+            userIdMap.put(imageInfo.getUserId(), imageInfo.getUserId());
+            MaterialIdMap.put(imageInfo.getVideoId(), imageInfo.getVideoId());
+        }
+
+        Map<String, String> userMap = new HashMap<>();
+        if (!Check.isNullMap(userIdMap)) {
+            userMap = userService.getUserMapByMap(userIdMap);
+        }
+        Map<Long, String> projectMap = new HashMap<>();
+        if (!Check.isNullMap(projectIdMap)) {
+            projectMap = projectService.getProjectMap(projectIdMap);
+        }
+        Map<String, JSONObject> videoMap = new HashMap<>();
+        if (!Check.isNullMap(projectIdMap)) {
+            videoMap = materialInfoService.getVideoInfoByMap(MaterialIdMap);
+        }
+        for (MaterialImageInfo imageInfo : imageInfos) {
+            if (!Check.isNullMap(userMap)) {
+                imageInfo.setAuditorName(userMap.get(imageInfo.getAuditorId()));
+                imageInfo.setUserName(userMap.get(imageInfo.getUserId()));
+            }
+            if (!Check.isNullMap(projectMap)) {
+                imageInfo.setProjectName(projectMap.get(imageInfo.getProjectId()));
+            }
+            if (!Check.isNullMap(videoMap)) {
+                JSONObject videoJson = videoMap.get(imageInfo.getVideoId());
+                if (!Check.isNull(videoJson)) {
+                    imageInfo.setVideoName(videoJson.getString("materialName"));
+                    imageInfo.setVideoUrl(videoJson.getString("url"));
+                    imageInfo.setCoverUrlUrl(videoJson.getString("coverUrl"));
+                }
+            }
+        }
+
+        PageInfo<MaterialImageInfo> pageInfo = new PageInfo<>(imageInfos);
+        return pageInfo;
+
+    }
+
 
 }

+ 20 - 4
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java

@@ -3,7 +3,10 @@ package cn.com.ctop.common.module.service.impl;
 import cn.com.ctop.common.module.constant.CosConstant;
 import cn.com.ctop.common.module.entity.*;
 import cn.com.ctop.common.module.enums.MaterialSupplierEnum;
-import cn.com.ctop.common.module.mapper.*;
+import cn.com.ctop.common.module.mapper.MaterialAscriptionMapper;
+import cn.com.ctop.common.module.mapper.MaterialInfoMapper;
+import cn.com.ctop.common.module.mapper.MaterialParameterMapper;
+import cn.com.ctop.common.module.mapper.MaterialTagMapper;
 import cn.com.ctop.common.module.service.*;
 import cn.com.ctop.common.module.utils.*;
 import com.alibaba.fastjson.JSONArray;
@@ -474,8 +477,6 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
     }
 
 
-
-
     @Autowired
     private IMaterialImageInfoService materialImageInfoService;
     @Autowired
@@ -560,7 +561,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
                 MaterialAscription materialAscription = new MaterialAscription();
                 materialAscription.setMaterialId(info.getCode());
                 String clipId = ascription.getString("clipId");
-                if(null!=clipId&&!"".equals(clipId.trim())){
+                if (null != clipId && !"".equals(clipId.trim())) {
                     materialAscription.setClipId(clipId);
                 }
                 materialAscription.setShotId(ascription.getString("shotId"));
@@ -820,6 +821,21 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
         ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS);
         return result;
     }
+
+    @Override
+    public Map<String, JSONObject> getVideoInfoByMap(Map<String, String> materialIdMap) {
+        Map<String, JSONObject> videoMap = new HashMap<>();
+        List<JSONObject> videoList = materialInfoMapper.getVideoInfoByMap(materialIdMap);
+        if (Check.isNull(videoList)) {
+            return videoMap;
+        }
+        for (int i = 0; i < videoList.size(); i++) {
+            JSONObject jsonObject = videoList.get(i);
+            videoMap.put(jsonObject.getString("code"), jsonObject);
+
+        }
+        return videoMap;
+    }
 }
 
 

+ 5 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/SysUserServiceImpl.java

@@ -307,6 +307,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
+    public List<String> getUserListByLeaderId(String userId) {
+        return userMapper.getUserListByLeaderId(userId);
+    }
+
+    @Override
     public Map<String, String> getDepNamesByUserIds(List<String> userIds) {
         List<SysUserDepVo> list = this.baseMapper.getDepNamesByUserIds(userIds);
         Map<String, String> res = new HashMap<String, String>();

+ 3 - 0
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaishouMatDailyReportJob.java

@@ -35,4 +35,7 @@ public class KuaishouMatDailyReportJob {
         XxlJobHelper.log("快手物料数据同步完成");
     }
 
+
+
+
 }

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

@@ -145,25 +145,14 @@ public class BatchController {
             };
             thread1.start();
 
-
             Thread thread2 = new Thread() {
                 @Override
                 public void run() {
-                    // syncPullMaterialService.getSyncVideoList(accountId, nowDate, nowDate);
                     iKuaishouInterfaceService.getVideoList(oauthToken, nowDate, nowDate);
-
                 }
             };
             thread2.start();
 
-          /*  Thread thread3 = new Thread() {
-                @Override
-                public void run() {
-                    iKuaishouInterfaceService.getSuZaoList(oauthToken.getAccessToken(), accountId, 1, nowDate, endDate);
-                }
-            };
-            thread3.start();*/
-
             Thread thread4 = new Thread() {
                 @Override
                 public void run() {
@@ -918,7 +907,7 @@ public class BatchController {
                                 failArr.add(failJson);
                             } else {
                                 //更新数据状态
-                                shouGroupDailyReportService.updateStatus(accountId,unitId,putStatus);
+                                shouGroupDailyReportService.updateStatus(accountId, unitId, putStatus);
                             }
                         }
                     }

+ 2 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaishouTemplateController.java

@@ -57,9 +57,9 @@ public class KuaishouTemplateController {
     @AutoLog(value = "快手-定向模板-分页列表查询")
     @ApiOperation(value = "快手-定向模板-分页列表查询", notes = "快手-定向模板-分页列表查询")
     @GetMapping(value = "/list")
-    public Result<List<JSONObject>> list(Long accountId, Integer platformOs) {
+    public Result<List<JSONObject>> list(Long accountId, Integer platformOs,Boolean autoTarget) {
         Result<List<JSONObject>> result = new Result<>();
-        List<JSONObject> list = kuaishouTemplateService.getJsonArrByAccountId(accountId, platformOs);
+        List<JSONObject> list = kuaishouTemplateService.getJsonArrByAccountId(accountId, platformOs,autoTarget);
         result.setSuccess(true);
         result.setResult(list);
         return result;

+ 1 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaiShouGroup.java

@@ -130,6 +130,7 @@ public class KuaiShouGroup {
 
     // 应用商店列表
     private String appStore;
+    private Boolean autoTarget;
 
 
     /**

+ 1 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaiShouGroupTemplate.java

@@ -67,6 +67,7 @@ public class KuaiShouGroupTemplate {
     @Excel(name = "定向模板id", width = 15)
     @ApiModelProperty(value = "定向模板id")
     private Long templateId;
+    private Boolean autoTarget;
     /**
      * 优化目标出价类型 1: CPM 2: CPC 10:OCPM
      */

+ 1 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaishouTemplate.java

@@ -53,6 +53,7 @@ public class KuaishouTemplate {
     @Excel(name = "绑定组个数", width = 15)
     @ApiModelProperty(value = "绑定组个数")
     private Integer unitCount;
+    private Boolean autoTarget;
     /**
      * 定向模板创建时间
      */

+ 3 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaishouTemplateMapper.java

@@ -15,5 +15,7 @@ import java.util.List;
  * @cersion: V1.0
  */
 public interface KuaishouTemplateMapper extends BaseMapper<KuaishouTemplate> {
-    List<JSONObject> getJsonArrByAccountId(@Param("accountId") Long accountId,@Param("platformOs") Integer platformOs);
+    List<JSONObject> getJsonArrByAccountId(@Param("accountId") Long accountId, @Param("platformOs") Integer platformOs, @Param("autoTarget") Boolean autoTarget);
+
+    void replaceBatch(@Param("templateList") List<KuaishouTemplate> templateList);
 }

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

@@ -2,6 +2,9 @@ package cn.com.ctop.kuaishou.modules.batch.mapper;
 
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouTemplateTarget;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 快手-定向模板-详情
@@ -12,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KuaishouTemplateTargetMapper extends BaseMapper<KuaishouTemplateTarget> {
 
+    void templateTargetList(@Param("templateTargetList") List<KuaishouTemplateTarget> templateTargetList);
 }

+ 6 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouGroupMapper.xml

@@ -38,7 +38,9 @@
         group_update_time,
         create_time,
         update_time,
-        study_status)
+        study_status,
+        auto_target
+        )
         values
         <foreach collection="groups" item="getGroup" separator=",">
             (
@@ -77,7 +79,9 @@
             #{getGroup.groupUpdateTime},
             #{getGroup.createTime},
             #{getGroup.updateTime},
-            #{getGroup.studyStatus})
+            #{getGroup.studyStatus},
+            #{getGroup.autoTarget}
+            )
         </foreach>
     </insert>
 

+ 1 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouGroupTargetMapper.xml

@@ -5,7 +5,7 @@
 
     <insert id="replaceBatch">
         replace into ctop_kuaishou_group_target(
-        account_id ,
+        account_id,
         unit_id,
         region,
         age_min,

+ 38 - 9
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaishouTemplateMapper.xml

@@ -1,22 +1,51 @@
 <?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.kuaishou.modules.batch.mapper.KuaishouTemplateMapper">
+    <insert id="replaceBatch">
+
+        replace into ctop_kuaishou_template(
+        id,
+        account_id,
+        template_id,
+        template_name,
+        unit_count,
+        auto_target,
+        create_time,
+        update_time)
+        values
+        <foreach collection="templateList" item="template" separator=",">
+            (
+            #{template.id},
+            #{template.accountId},
+            #{template.templateId},
+            #{template.templateName},
+            #{template.unitCount},
+            #{template.autoTarget},
+            #{template.createTime},
+            #{template.updateTime}
+            )
+        </foreach>
+
+    </insert>
 
     <select id="getJsonArrByAccountId" resultType="com.alibaba.fastjson.JSONObject">
         SELECT
-            t1.account_id AS 'accountId',
-            t1.template_id AS 'templateId',
-            t1.template_name AS 'templateName',
-            t1.unit_count AS 'unitCount',
-            t2.platform_os AS 'platformOs'
+        t1.account_id AS 'accountId',
+        t1.template_id AS 'templateId',
+        t1.template_name AS 'templateName',
+        t1.unit_count AS 'unitCount',
+        t2.platform_os AS 'platformOs'
         FROM
-            ctop_kuaishou_template t1
-                LEFT JOIN ctop_kuaishou_template_target t2 ON t1.template_id = t2.template_id
+        ctop_kuaishou_template t1
+        LEFT JOIN ctop_kuaishou_template_target t2 ON t1.template_id = t2.template_id
         WHERE
-            t1.account_id = #{accountId}
-        <if test="platformOs != null">
+        t1.account_id = #{accountId}
+        <if test="platformOs != null and platformOs!= '' ">
             AND t2.platform_os = #{platformOs}
         </if>
+        <if test="autoTarget != null and autoTarget != '' ">
+            AND t1.auto_target = #{autoTarget}
+        </if>
     </select>
 
 </mapper>

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

@@ -2,4 +2,74 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.com.ctop.kuaishou.modules.batch.mapper.KuaishouTemplateTargetMapper">
 
+    <insert id="templateTargetList">
+        replace into ctop_kuaishou_template_target(
+        id,
+        template_id,
+        region,
+        district_ids,
+        user_type,
+        ages_range,
+        min,
+        max,
+        gender,
+        platform_os,
+        android_osv,
+        ios_osv,
+        network,
+        filter_converted_level,
+        device_brand,
+        device_price,
+        business_interest_type,
+        business_interest,
+        fans_star,
+        interest_video,
+        app_interest,
+        app_ids,
+        population,
+        paid_audience,
+        exclude_population,
+        is_open,
+        no_age_break,
+        no_gender_break,
+        no_area_break,
+        create_time,
+        update_time)
+        values
+        <foreach collection="templateTargetList" item="templateTarget" separator=",">
+            (
+            #{templateTarget.id},
+            #{templateTarget.templateId},
+            #{templateTarget.region},
+            #{templateTarget.districtIds},
+            #{templateTarget.userType},
+            #{templateTarget.agesRange},
+            #{templateTarget.min},
+            #{templateTarget.max},
+            #{templateTarget.gender},
+            #{templateTarget.platformOs},
+            #{templateTarget.androidOsv},
+            #{templateTarget.iosOsv},
+            #{templateTarget.network},
+            #{templateTarget.filterConvertedLevel},
+            #{templateTarget.deviceBrand},
+            #{templateTarget.devicePrice},
+            #{templateTarget.businessInterestType},
+            #{templateTarget.businessInterest},
+            #{templateTarget.fansStar},
+            #{templateTarget.interestVideo},
+            #{templateTarget.appInterest},
+            #{templateTarget.appIds},
+            #{templateTarget.population},
+            #{templateTarget.paidAudience},
+            #{templateTarget.excludePopulation},
+            #{templateTarget.isOpen},
+            #{templateTarget.noAgeBreak},
+            #{templateTarget.noGenderBreak},
+            #{templateTarget.noAreaBreak},
+            #{templateTarget.createTime},
+            #{templateTarget.updateTime}
+            )
+        </foreach>
+    </insert>
 </mapper>

+ 1 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaishouTemplateService.java

@@ -20,5 +20,5 @@ public interface IKuaishouTemplateService extends IService<KuaishouTemplate> {
 
     JSONObject updateTemplate(Long accountId, String accessToken, JSONObject requestJson);
 
-    List<JSONObject> getJsonArrByAccountId(Long accountId,Integer platformOs);
+    List<JSONObject> getJsonArrByAccountId(Long accountId, Integer platformOs, Boolean autoTarget);
 }

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

@@ -170,13 +170,18 @@ public class BatchServiceImpl implements IBatchService {
             unitJson.put("campaign_id", campaignId);
         }
 
-
         // 资源位置
         JSONArray scene_id = requestJson.getJSONArray("sceneId");
         if (!Check.isNull(scene_id)) {
             unitJson.put("scene_id", scene_id);
         }
         Integer sceneId = valueOf(scene_id.get(0).toString());
+
+        // 智能定向
+        Boolean autoTarget = requestJson.getBoolean("autoTarget");
+        if (!Check.isNull(autoTarget)) {
+            unitJson.put("auto_target", autoTarget);
+        }
         // 资源创作方式
         Integer unitType = requestJson.getInteger("unitType");
         if (!Check.isNull(unitType)) {
@@ -239,126 +244,123 @@ public class BatchServiceImpl implements IBatchService {
         if (!Check.isNull(requestJson.getInteger("speed"))) {
             unitJson.put("speed", requestJson.getInteger("speed"));
         }
-
-
-        // -----------------用户定向-----------
-        JSONObject targetJson = new JSONObject();
-
-        // 地域
-        if (!Check.isNull(requestJson.getJSONArray("region"))) {
-            targetJson.put("region", requestJson.getJSONArray("region"));
-        }
-
-        // 自定义年龄段
-        JSONArray ageArr = requestJson.getJSONArray("age");
-        if (!Check.isNull(ageArr)) {
-            JSONObject ageJson = new JSONObject();
-            ageJson.put("min", ageArr.get(0));
-            ageJson.put("max", ageArr.get(1));
-            targetJson.put("age", ageJson);
-        }
-        // 固定年龄段
-        if (!Check.isNull(requestJson.getJSONArray("agesRange"))) {
-            targetJson.put("ages_range", requestJson.getJSONArray("agesRange"));
-        }
-        // 性别
-        if (!Check.isNull(requestJson.getInteger("gender"))) {
-            targetJson.put("gender", requestJson.getInteger("gender"));
-        }
-        //操作系统
-        if (!Check.isNull(requestJson.getInteger("platformOs"))) {
-            targetJson.put("platform_os", requestJson.getInteger("platformOs"));
-        }
-        //Android版本
-        if (!Check.isNull(requestJson.getInteger("androidOsv"))) {
-            targetJson.put("android_osv", requestJson.getInteger("androidOsv"));
-        }
-        // iOS版本
-        if (!Check.isNull(requestJson.getInteger("iosOsv"))) {
-            targetJson.put("ios_osv", requestJson.getInteger("iosOsv"));
-        }
-        //网络环境
-        if (!Check.isNull(requestJson.getInteger("network"))) {
-            targetJson.put("network", requestJson.getInteger("network"));
-        }
-        //设备品牌
-        if (!Check.isNull(requestJson.getJSONArray("deviceBrand"))) {
-            targetJson.put("device_brand", requestJson.getJSONArray("deviceBrand"));
-        }
-        //设备价格
-        if (!Check.isNull(requestJson.getJSONArray("devicePrice"))) {
-            targetJson.put("device_price", requestJson.getJSONArray("devicePrice"));
-        }
-
-        if (sceneId != 5) {
-            //过滤已转化人群纬度
-            if (!Check.isNull(requestJson.getInteger("filterConvertedLevel"))) {
-                targetJson.put("filter_converted_level", requestJson.getInteger("filterConvertedLevel"));
+        Long templateId = requestJson.getLong("templateId");
+        if (!Check.isNull(templateId)) {
+            unitJson.put("template_id", templateId);
+        } else {
+            // -----------------用户定向-----------
+            JSONObject targetJson = new JSONObject();
+            // 地域
+            if (!Check.isNull(requestJson.getJSONArray("region"))) {
+                targetJson.put("region", requestJson.getJSONArray("region"));
             }
-            //商业兴趣类型
-            if (!Check.isNull(requestJson.getInteger("businessInterestType"))) {
-                targetJson.put("business_interest_type", requestJson.getInteger("businessInterestType"));
+            // 自定义年龄段
+            JSONArray ageArr = requestJson.getJSONArray("age");
+            if (!Check.isNull(ageArr)) {
+                JSONObject ageJson = new JSONObject();
+                ageJson.put("min", ageArr.get(0));
+                ageJson.put("max", ageArr.get(1));
+                targetJson.put("age", ageJson);
             }
-            // 商业兴趣
-            if (!Check.isNull(requestJson.getJSONArray("businessInterest"))) {
-                targetJson.put("business_interest", requestJson.getJSONArray("businessInterest"));
+            // 固定年龄段
+            if (!Check.isNull(requestJson.getJSONArray("agesRange"))) {
+                targetJson.put("ages_range", requestJson.getJSONArray("agesRange"));
             }
-            //网红粉丝
-            if (!Check.isNull(requestJson.getJSONArray("fansStar"))) {
-                targetJson.put("fans_star", requestJson.getJSONArray("fansStar"));
+            // 性别
+            if (!Check.isNull(requestJson.getInteger("gender"))) {
+                targetJson.put("gender", requestJson.getInteger("gender"));
             }
-            //兴趣视频用户
-            if (!Check.isNull(requestJson.getJSONArray("interestVideo"))) {
-                targetJson.put("interest_video", requestJson.getJSONArray("interestVideo"));
+            //操作系统
+            if (!Check.isNull(requestJson.getInteger("platformOs"))) {
+                targetJson.put("platform_os", requestJson.getInteger("platformOs"));
+            }
+            //Android版本
+            if (!Check.isNull(requestJson.getInteger("androidOsv"))) {
+                targetJson.put("android_osv", requestJson.getInteger("androidOsv"));
+            }
+            // iOS版本
+            if (!Check.isNull(requestJson.getInteger("iosOsv"))) {
+                targetJson.put("ios_osv", requestJson.getInteger("iosOsv"));
+            }
+            //网络环境
+            if (!Check.isNull(requestJson.getInteger("network"))) {
+                targetJson.put("network", requestJson.getInteger("network"));
+            }
+            //设备品牌
+            if (!Check.isNull(requestJson.getJSONArray("deviceBrand"))) {
+                targetJson.put("device_brand", requestJson.getJSONArray("deviceBrand"));
+            }
+            //设备价格
+            if (!Check.isNull(requestJson.getJSONArray("devicePrice"))) {
+                targetJson.put("device_price", requestJson.getJSONArray("devicePrice"));
             }
-        }
-        // APP行为-按分类
-        if (!Check.isNull(requestJson.getJSONArray("appInterest"))) {
-            targetJson.put("app_interest", requestJson.getJSONArray("appInterest"));
-        }
-        // APP行为-按APP名称
-        if (!Check.isNull(requestJson.getJSONArray("appIds"))) {
-            targetJson.put("app_ids", requestJson.getJSONArray("appIds"));
-        }
-        // 人群包定向
-        if (!Check.isNull(requestJson.getJSONArray("population"))) {
-            targetJson.put("population", requestJson.getJSONArray("population"));
-        }
-        // 人群包排除
-        if (!Check.isNull(requestJson.getJSONArray("excludePopulation"))) {
-            targetJson.put("exclude_population", requestJson.getJSONArray("excludePopulation"));
-        }
-
-
-        if (!Check.isNull(requestJson.getJSONArray("thirdPlatformCode"))) {
-            targetJson.put("third_platform_code", requestJson.getJSONArray("thirdPlatformCode"));
-        }
-
-        if (sceneId != 5) {
-            JSONObject intelliExtendJson = new JSONObject();
 
-            // 开启智能扩量
-            if (!Check.isNull(requestJson.getInteger("isOpen"))) {
-                intelliExtendJson.put("is_open", requestJson.getInteger("isOpen"));
+            if (sceneId != 5) {
+                //过滤已转化人群纬度
+                if (!Check.isNull(requestJson.getInteger("filterConvertedLevel"))) {
+                    targetJson.put("filter_converted_level", requestJson.getInteger("filterConvertedLevel"));
+                }
+                //商业兴趣类型
+                if (!Check.isNull(requestJson.getInteger("businessInterestType"))) {
+                    targetJson.put("business_interest_type", requestJson.getInteger("businessInterestType"));
+                }
+                // 商业兴趣
+                if (!Check.isNull(requestJson.getJSONArray("businessInterest"))) {
+                    targetJson.put("business_interest", requestJson.getJSONArray("businessInterest"));
+                }
+                //网红粉丝
+                if (!Check.isNull(requestJson.getJSONArray("fansStar"))) {
+                    targetJson.put("fans_star", requestJson.getJSONArray("fansStar"));
+                }
+                //兴趣视频用户
+                if (!Check.isNull(requestJson.getJSONArray("interestVideo"))) {
+                    targetJson.put("interest_video", requestJson.getJSONArray("interestVideo"));
+                }
             }
-            //不可突破年龄
-            if (!Check.isNull(requestJson.getInteger("noAgeBreak"))) {
-                intelliExtendJson.put("no_age_break", requestJson.getInteger("noAgeBreak"));
+            // APP行为-按分类
+            if (!Check.isNull(requestJson.getJSONArray("appInterest"))) {
+                targetJson.put("app_interest", requestJson.getJSONArray("appInterest"));
             }
-            //不可突破性别
-            if (!Check.isNull(requestJson.getInteger("noGenderBreak"))) {
-                intelliExtendJson.put("no_gender_break", requestJson.getInteger("noGenderBreak"));
+            // APP行为-按APP名称
+            if (!Check.isNull(requestJson.getJSONArray("appIds"))) {
+                targetJson.put("app_ids", requestJson.getJSONArray("appIds"));
+            }
+            // 人群包定向
+            if (!Check.isNull(requestJson.getJSONArray("population"))) {
+                targetJson.put("population", requestJson.getJSONArray("population"));
             }
-            // 不可突破地域
-            if (!Check.isNull(requestJson.getInteger("noAreaBreak"))) {
-                intelliExtendJson.put("no_area_break", requestJson.getInteger("noAreaBreak"));
+            // 人群包排除
+            if (!Check.isNull(requestJson.getJSONArray("excludePopulation"))) {
+                targetJson.put("exclude_population", requestJson.getJSONArray("excludePopulation"));
             }
-            if (!Check.isNull(intelliExtendJson)) {
-                targetJson.put("intelli_extend", intelliExtendJson);
+            if (!Check.isNull(requestJson.getJSONArray("thirdPlatformCode"))) {
+                targetJson.put("third_platform_code", requestJson.getJSONArray("thirdPlatformCode"));
             }
-        }
+            if (sceneId != 5) {
+                JSONObject intelliExtendJson = new JSONObject();
 
-        unitJson.put("target", targetJson);
+                // 开启智能扩量
+                if (!Check.isNull(requestJson.getInteger("isOpen"))) {
+                    intelliExtendJson.put("is_open", requestJson.getInteger("isOpen"));
+                }
+                //不可突破年龄
+                if (!Check.isNull(requestJson.getInteger("noAgeBreak"))) {
+                    intelliExtendJson.put("no_age_break", requestJson.getInteger("noAgeBreak"));
+                }
+                //不可突破性别
+                if (!Check.isNull(requestJson.getInteger("noGenderBreak"))) {
+                    intelliExtendJson.put("no_gender_break", requestJson.getInteger("noGenderBreak"));
+                }
+                // 不可突破地域
+                if (!Check.isNull(requestJson.getInteger("noAreaBreak"))) {
+                    intelliExtendJson.put("no_area_break", requestJson.getInteger("noAreaBreak"));
+                }
+                if (!Check.isNull(intelliExtendJson)) {
+                    targetJson.put("intelli_extend", intelliExtendJson);
+                }
+            }
+            unitJson.put("target", targetJson);
+        }
         JSONArray groupArr = requestJson.getJSONArray("groupArr");
         if (Check.isNull(groupArr)) {
             throw new Exception("请输入需要创建的广告组");
@@ -370,12 +372,9 @@ public class BatchServiceImpl implements IBatchService {
         returnJson.put("total", groupArr.size());
         JSONArray successArr = new JSONArray();
         JSONArray failArr = new JSONArray();
-
-
         for (int i = 0; i < groupArr.size(); i++) {
             JSONObject groupJson = groupArr.getJSONObject(i);
             if (!Check.isNull(groupJson)) {
-
                 // 出价
                 if (!Check.isNull(groupJson.getLong("bid"))) {
                     unitJson.put("bid", groupJson.getLong("bid"));
@@ -406,7 +405,6 @@ public class BatchServiceImpl implements IBatchService {
                 if (!Check.isNull(unitName)) {
                     unitJson.put("unit_name", unitName);
                 }
-
                 Map<String, Object> returnUnitMap = kuaishouInterfaceService.adUnitCreate(oauthToken.getAccessToken(), oauthToken.getAccountId(), unitJson, 1);
                 if (!Check.isNullMap(returnUnitMap)) {
                     Integer code = (Integer) returnUnitMap.get("code");
@@ -419,7 +417,6 @@ public class BatchServiceImpl implements IBatchService {
                         successJson.put("ocpxActionType", ocpx_action_type);
                         successJson.put("unitType", unitType);
                         successArr.add(successJson);
-
                         if (!Check.isNull(type) && "copy".equals(type)) {
                             Long copyUnitId = requestJson.getLong("copyUnitId");
                             if (!Check.isNull(unitId) && !Check.isNull(copyUnitId)) {
@@ -443,13 +440,9 @@ public class BatchServiceImpl implements IBatchService {
                         failJson.put("failMessage", returnUnitMap.get("message"));
                         failArr.add(failJson);
                     }
-
                 }
-
             }
-
         }
-
         returnJson.put("success", successArr);
         returnJson.put("fail", failArr);
         return returnJson;
@@ -473,7 +466,6 @@ public class BatchServiceImpl implements IBatchService {
             if (Check.isNull(campaignId)) {
                 throw new Exception("请选择广告计划");
             }
-
             String type = requestJson.getString("type");
             if ("copy".equals(type) && !Check.isNull(type)) {
                 unitJson.put("campaign_id", requestJson.getLong("copyToCampaignId"));
@@ -848,8 +840,6 @@ public class BatchServiceImpl implements IBatchService {
                     // 自定义年龄段
                     Integer ageMin = groupTarget.getAgeMin();
                     Integer ageMax = groupTarget.getAgeMax();
-
-
                     JSONObject ageJson = new JSONObject();
                     if (!Check.isNull(ageMin)) {
                         ageJson.put("min", ageMin);

+ 2 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouGroupServiceImpl.java

@@ -86,7 +86,7 @@ public class KuaiShouGroupServiceImpl extends ServiceImpl<KuaiShouGroupMapper, K
         String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.GROUP_LIST;
         JSONObject param = new JSONObject();
         param.put("advertiser_id", accountId);
-        if(!Check.isNull(campaignId)){
+        if (!Check.isNull(campaignId)) {
             param.put("campaign_id", campaignId);
         }
         param.put("page_size", 500);
@@ -434,6 +434,7 @@ public class KuaiShouGroupServiceImpl extends ServiceImpl<KuaiShouGroupMapper, K
                     group.setConvertId(detail.getLong("convert_id"));
                     group.setUseAppMarket(detail.getInteger("use_app_market"));
                     group.setAppStore(detail.getJSONArray("app_store") + "");
+                    group.setAutoTarget(detail.getBoolean("auto_target"));
                     group.setCreateTime(new Date());
                     group.setUpdateTime(new Date());
                     groups.add(group);

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

@@ -90,6 +90,7 @@ public class KuaiShouGroupTemplateServiceImpl extends ServiceImpl<KuaiShouGroupT
         String userId = requestJson.getString("userId");
         String unitName = requestJson.getString("unitName");
         Long template_id = requestJson.getLong("templateId");
+        Boolean auto_target = requestJson.getBoolean("autoTarget");
         Integer bid_type = requestJson.getInteger("bidType");
         Integer use_app_market = requestJson.getInteger("useAppMarket");
         JSONArray app_store = requestJson.getJSONArray("appStore");
@@ -143,6 +144,9 @@ public class KuaiShouGroupTemplateServiceImpl extends ServiceImpl<KuaiShouGroupT
             if (!Check.isNull(template_id)) {
                 template.setTemplateId(template_id);
             }
+            if (!Check.isNull(auto_target)) {
+                template.setAutoTarget(auto_target);
+            }
             if (!Check.isNull(bid_type)) {
                 template.setBidType(bid_type);
             }

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

@@ -62,6 +62,7 @@ public class KuaiShouReportDailyMaterialServiceImpl extends ServiceImpl<KuaiShou
         if (Check.isNull(resultJson)) {
             return;
         }
+
         Integer total_count = resultJson.getInteger("total_count");
         if (total_count == 0) {
             return;

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

@@ -1326,6 +1326,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                     group.setConvertId(detail.getLong("convert_id"));
                     group.setUseAppMarket(detail.getInteger("use_app_market"));
                     group.setAppStore(detail.getJSONArray("app_store") + "");
+                    group.setAutoTarget(detail.getBoolean("auto_target"));
                     group.setCreateTime(new Date());
                     group.setUpdateTime(new Date());
                     groups.add(group);

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

@@ -7,8 +7,8 @@ import cn.com.ctop.common.module.utils.PropertiesUtils;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouTemplate;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouTemplateTarget;
 import cn.com.ctop.kuaishou.modules.batch.mapper.KuaishouTemplateMapper;
+import cn.com.ctop.kuaishou.modules.batch.mapper.KuaishouTemplateTargetMapper;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouTemplateService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouTemplateTargetService;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -16,6 +16,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -30,15 +31,18 @@ import java.util.Map;
 @Slf4j
 @Service
 public class KuaishouTemplateServiceImpl extends ServiceImpl<KuaishouTemplateMapper, KuaishouTemplate> implements IKuaishouTemplateService {
+
+    @Autowired
+    private KuaishouTemplateTargetMapper templateTargetMapper;
+
     @Autowired
-    private IKuaishouTemplateTargetService templateTargetService;
- @Autowired
     private KuaishouTemplateMapper templateMapper;
 
     @Override
-    public List<JSONObject> getJsonArrByAccountId(Long accountId,Integer platformOs) {
-        return templateMapper.getJsonArrByAccountId(accountId,platformOs);
+    public List<JSONObject> getJsonArrByAccountId(Long accountId, Integer platformOs, Boolean autoTarget) {
+        return templateMapper.getJsonArrByAccountId(accountId, platformOs, autoTarget);
     }
+
     @Override
     public void getTemplateByAccountId(Long accountId, String accessToken, Integer page) {
         String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.TEMPLATE_LIST;
@@ -46,6 +50,7 @@ public class KuaishouTemplateServiceImpl extends ServiceImpl<KuaishouTemplateMap
         param.put("advertiser_id", accountId);
         param.put("page", page);
         param.put("page_size", 500);
+
         Map<String, String> headers = new HashMap<String, String>();
         headers.put("Access-Token", accessToken);
         headers.put("Content-Type", " application/json");
@@ -53,9 +58,6 @@ public class KuaishouTemplateServiceImpl extends ServiceImpl<KuaishouTemplateMap
         JSONObject resultJson = JSONObject.parseObject(result);
         if (!Check.isNull(resultJson)) {
             Integer code = resultJson.getInteger("code");
-         /*   Map<String, Object> deleteMap = new HashMap<>();
-            deleteMap.put("account_id", accountId);
-            this.removeByMap(deleteMap);*/
             if (code == 0) {
                 JSONObject dataJson = resultJson.getJSONObject("data");
                 if (Check.isNull(dataJson)) {
@@ -65,6 +67,9 @@ public class KuaishouTemplateServiceImpl extends ServiceImpl<KuaishouTemplateMap
                 if (Check.isNull(details)) {
                     return;
                 }
+
+                List<KuaishouTemplate> templateList = new ArrayList<>();
+                List<KuaishouTemplateTarget> templateTargetList = new ArrayList<>();
                 for (int i = 0; i < details.size(); i++) {
                     JSONObject jsonObject = details.getJSONObject(i);
                     Long templateId = jsonObject.getLong("template_id");
@@ -74,9 +79,10 @@ public class KuaishouTemplateServiceImpl extends ServiceImpl<KuaishouTemplateMap
                     template.setTemplateId(templateId);
                     template.setTemplateName(jsonObject.getString("template_name"));
                     template.setUnitCount(jsonObject.getInteger("unit_count"));
+                    template.setAutoTarget(jsonObject.getBoolean("auto_target"));
                     template.setCreateTime(jsonObject.getDate("create_time"));
                     template.setUpdateTime(jsonObject.getDate("updateTime"));
-                    this.saveOrUpdate(template);
+                    templateList.add(template);
                     JSONObject targetJson = jsonObject.getJSONObject("target");
                     if (!Check.isNull(targetJson)) {
                         KuaishouTemplateTarget templateTarget = new KuaishouTemplateTarget();
@@ -165,10 +171,18 @@ public class KuaishouTemplateServiceImpl extends ServiceImpl<KuaishouTemplateMap
                                 templateTarget.setNoAreaBreak(intelliExtendJson.getInteger("no_area_break"));
                             }
                         }
-                        templateTargetService.saveOrUpdate(templateTarget);
+
+
+                        templateTarget.setCreateTime(jsonObject.getDate("create_time"));
+                        templateTarget.setUpdateTime(jsonObject.getDate("updateTime"));
+                        templateTargetList.add(templateTarget);
                     }
 
                 }
+                if (!Check.isNull(templateList)) {
+                    templateMapper.replaceBatch(templateList);
+                    templateTargetMapper.templateTargetList(templateTargetList);
+                }
 
                 getTemplateByAccountId(accountId, accessToken, page + 1);
             } else {
@@ -202,10 +216,12 @@ public class KuaishouTemplateServiceImpl extends ServiceImpl<KuaishouTemplateMap
             if (Check.isNull(requestJson.getString("templateName"))) {
                 throw new Exception("定向模板名称为必传项");
             }
-
             JSONObject param = new JSONObject();
             param.put("advertiser_id", accountId);
             param.put("template_name", requestJson.getString("templateName"));
+            if (!Check.isNull(requestJson.getBoolean("autoTarget"))) {
+                param.put("auto_target", requestJson.getBoolean("autoTarget"));
+            }
             JSONObject targetJson = new JSONObject();
             if (!Check.isNull(requestJson.getJSONArray("region"))) {
                 targetJson.put("region", requestJson.getJSONArray("region"));
@@ -349,7 +365,6 @@ public class KuaishouTemplateServiceImpl extends ServiceImpl<KuaishouTemplateMap
      */
     @Override
     public JSONObject updateTemplate(Long accountId, String accessToken, JSONObject requestJson) {
-        System.err.println(requestJson);
         JSONObject returnJson = new JSONObject();
         try {
             if (Check.isNull(requestJson.getString("templateName"))) {
@@ -466,7 +481,6 @@ public class KuaishouTemplateServiceImpl extends ServiceImpl<KuaishouTemplateMap
             headers.put("Access-Token", accessToken);
             headers.put("Content-Type", " application/json");
             String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.TEMPLATE_UPDATE;
-            System.err.println("入参:" + param);
             String result = HttpUtils.kuaiShouhttpPostRequest(url, param.toJSONString(), headers);
             JSONObject resultJson = JSONObject.parseObject(result);
             if (!Check.isNull(resultJson)) {

+ 51 - 37
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaiShouDailyAgentMapper.xml

@@ -298,47 +298,61 @@
     </insert>
     <insert id="replaceBatch">
         replace into ctop_kuaishou_daily_agent(
-        `date`,
-        `account_id`,
-        `kid`,
-        `advertiser_name`,
-        `advertiser_create_time`,
-        `cost_campaign_count`,
-        `balance`,
-        `cost`,
-        `xianjin_cost`,
-        `fandian_cost`,
-        `kuangfan_cost`,
-        `jili_cost`,
-        `xinyong_cost`,
-        `fengmian_show_count`,
-        `fengmian_click_count`,
-        `sucai_show_count`,
-        `convert_count`,
-        `fengmian_click_rate`,
-        `convert_click_rate`
+        agent_id,
+        account_id,
+        date_time,
+        user_id,
+        account_name,
+        total_charged_in_yuan,
+        total_balance_in_yuan,
+        real_charged_in_yuan,
+        total_rebate_real_charged_in_yuan,
+        contract_rebate_real_charged_in_yuan,
+        direct_rebate_real_charged_in_yuan,
+        credit_real_charged_in_yuan,
+        charge_day_on_day_percent,
+        ad_photo_impression,
+        ad_photo_click,
+        ad_item_impression,
+        ad_item_click,
+        photo_click_ratio,
+        item_click_ratio,
+        charged_campaign_count,
+        product_name,
+        corporation_name,
+        first_cost_day,
+        industry,
+        second_industry
         )
         values
         <foreach collection="list" item="agent" separator=",">
-            (#{agent.date},
+            (
+            #{agent.agentId},
             #{agent.accountId},
-            #{agent.kid},
-            #{agent.advertiserName},
-            #{agent.advertiserCreateTime},
-            #{agent.costCampaignCount},
-            #{agent.balance},
-            #{agent.cost},
-            #{agent.xianjinCost},
-            #{agent.fandianCost},
-            #{agent.kuangfanCost},
-            #{agent.jiliCost},
-            #{agent.xinyongCost},
-            #{agent.fengmianShowCount},
-            #{agent.fengmianClickCount},
-            #{agent.sucaiShowCount},
-            #{agent.convertCount},
-            #{agent.fengmianClickRate},
-            #{agent.convertClickRate})
+            #{agent.dateTime},
+            #{agent.userId},
+            #{agent.accountName},
+            #{agent.totalChargedInYuan},
+            #{agent.totalBalanceInYuan},
+            #{agent.realChargedInYuan},
+            #{agent.totalRebateRealChargedInYuan},
+            #{agent.contractRebateRealChargedInYuan},
+            #{agent.directRebateRealChargedInYuan},
+            #{agent.creditRealChargedInYuan},
+            #{agent.chargeDayOnDayPercent},
+            #{agent.adPhotoImpression},
+            #{agent.adPhotoClick},
+            #{agent.adItemImpression},
+            #{agent.adItemClick},
+            #{agent.photoClickRatio},
+            #{agent.itemClickRatio},
+            #{agent.chargedCampaignCount},
+            #{agent.productName},
+            #{agent.corporationName},
+            #{agent.firstCostDay},
+            #{agent.industry},
+            #{agent.secondIndustry}
+            )
         </foreach>
 
     </insert>

+ 9 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaiShouDailyAgentServiceImpl.java

@@ -17,6 +17,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -84,6 +85,7 @@ public class KuaiShouDailyAgentServiceImpl extends ServiceImpl<KuaiShouDailyAgen
                 log.error("代理商报表返回details节点为空");
                 return;
             }
+            List<KuaiShouDailyAgent> agentList = new ArrayList<>();
             for (int i = 0; i < details.size(); i++) {
                 JSONObject detailJson = details.getJSONObject(i);
                 if (!Check.isNull(detailJson)) {
@@ -113,9 +115,15 @@ public class KuaiShouDailyAgentServiceImpl extends ServiceImpl<KuaiShouDailyAgen
                     agent.setFirstCostDay(detailJson.getString("first_cost_day"));
                     agent.setIndustry(detailJson.getString("industry"));
                     agent.setSecondIndustry(detailJson.getString("second_industry"));
-                    agentMapper.insertSelective(agent);
+                   // agentMapper.insertSelective(agent);
+                    agentList.add(agent);
                 }
             }
+
+            if(!Check.isNull(agentList)){
+                agentMapper.replaceBatch(agentList);
+            }
+
             getAgentReport(token, agentId, startDate, endDate, page + 1);
         } catch (Exception e) {
             e.printStackTrace();