Parcourir la source

Merge remote-tracking branch 'origin/master'

syh il y a 4 ans
Parent
commit
c81bf94a40
26 fichiers modifiés avec 497 ajouts et 28 suppressions
  1. 1 3
      module-alarm/src/main/java/cn/com/ctop/alarm/modules/constant/MatchLogic.java
  2. 2 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaishouStrategyController.java
  3. 8 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaishouStrategy.java
  4. 57 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/kuaishoustrategycampaignRel.java
  5. 19 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/kuaishoustrategycampaignRelMapper.java
  6. 12 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/kuaishoustrategycampaignRelMapper.xml
  7. 1 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaishouStrategyService.java
  8. 18 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IkuaishoustrategycampaignRelService.java
  9. 154 12
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouGroupTemplateServiceImpl.java
  10. 29 6
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouStrategyServiceImpl.java
  11. 30 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/kuaishoustrategycampaignRelServiceImpl.java
  12. 23 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/controller/KuaishouAudienceReportDailyController.java
  13. 4 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyAgeMapper.java
  14. 3 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyBusinessMapper.java
  15. 3 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyCityMapper.java
  16. 3 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyClientMapper.java
  17. 3 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyGenderMapper.java
  18. 5 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyProvinceMapper.java
  19. 11 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyAgeMapper.xml
  20. 11 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyBusinessMapper.xml
  21. 11 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyCityMapper.xml
  22. 11 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyClientMapper.xml
  23. 11 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyGenderMapper.xml
  24. 12 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyProvinceMapper.xml
  25. 11 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IKuaishouAudienceReportDailyService.java
  26. 44 2
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaishouAudienceReportDailyServiceImpl.java

+ 1 - 3
module-alarm/src/main/java/cn/com/ctop/alarm/modules/constant/MatchLogic.java

@@ -12,8 +12,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
- * TODO
- *
  * @ClassName MatchLogic
  * @Author ZHAOXA
  * @date 2020-11-17 10:54
@@ -185,7 +183,7 @@ public class MatchLogic {
             buf.append("预警计划:").append(codes).append("<br/>");
         } else if ("unit".equals(type)) {
             buf.append("预警组:").append(codes).append("<br/>");
-        }else if ("creative".equals(type)) {
+        } else if ("creative".equals(type)) {
             buf.append("预警创意:").append(codes).append("<br/>");
         }
         if (isNull) {

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

@@ -117,9 +117,9 @@ public class KuaishouStrategyController {
     @AutoLog(value = "kuaishou.modules.batch-优化评估策略表-编辑")
     @ApiOperation(value = "kuaishou.modules.batch-优化评估策略表-编辑", notes = "kuaishou.modules.batch-优化评估策略表-编辑")
     @PostMapping(value = "/edit")
-    public Result<?> edit(@RequestBody JSONArray ids) {
+    public Result<?> edit(@RequestBody JSONObject data) {
         try {
-            return kuaishouStrategyService.shutDownPlan(ids);
+            return kuaishouStrategyService.shutDownPlan(data);
         } catch (Exception e) {
             log.error("关停策略下的计划异常", e);
         }

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

@@ -207,6 +207,14 @@ public class KuaishouStrategy {
      */
     private String urlType;
     /**
+     * 是否优先从应用商店下载  true false
+     */
+    private String useAppMarket;
+    /**
+     * 请勾选投放应用已上架的应用商店
+     */
+    private String appStore;
+    /**
      * 第三方点击检测链接
      */
     private String clickTrackUrl;

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

@@ -0,0 +1,57 @@
+package cn.com.ctop.kuaishou.modules.batch.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * 快手-策略和计划启动/关停关系表
+ * @author jeecg-boot
+ * @date   2020-12-18
+ * @version V1.0
+ */
+@Data
+@TableName("ctop_kuaishou_strategy_campaign_rel")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="ctop_kuaishou_strategy_campaign_rel对象", description="快手-策略和计划启动/关停关系表")
+public class kuaishoustrategycampaignRel {
+    
+	/**策略ID*/
+	@TableId(type = IdType.UUID)
+    @ApiModelProperty(value = "策略ID")
+	private Long id;
+	/**策略id*/
+	@Excel(name = "策略id", width = 15)
+    @ApiModelProperty(value = "策略id")
+	private Long strategyId;
+	/**账户ID*/
+	@Excel(name = "账户ID", width = 15)
+    @ApiModelProperty(value = "账户ID")
+	private Long accountId;
+	/**策略状态 0 关停,1激活*/
+	@Excel(name = "策略状态 0 关停,1激活", width = 15)
+    @ApiModelProperty(value = "策略状态 0 关停,1激活")
+	private String strategyState;
+	/**计划id*/
+	@Excel(name = "计划id", width = 15)
+    @ApiModelProperty(value = "计划id")
+	private Long campaignId;
+	/**创建时间*/
+    @ApiModelProperty(value = "创建时间")
+	private Date createTime;
+	/**updateTime*/
+    @ApiModelProperty(value = "updateTime")
+	private Date updateTime;
+}

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

@@ -0,0 +1,19 @@
+package cn.com.ctop.kuaishou.modules.batch.mapper;
+
+import java.util.List;
+
+import cn.com.ctop.kuaishou.modules.batch.entity.kuaishoustrategycampaignRel;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 快手-策略和计划启动/关停关系表
+ * @author: jeecg-boot
+ * @date:   2020-12-18
+ * @cersion: V1.0
+ */
+public interface kuaishoustrategycampaignRelMapper extends BaseMapper<kuaishoustrategycampaignRel> {
+
+    List<JSONObject> queryPlanIdsByStrategyId(Object id);
+}

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

@@ -0,0 +1,12 @@
+<?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.kuaishoustrategycampaignRelMapper">
+    <select id="queryPlanIdsByStrategyId" parameterType="java.util.Map" resultType="com.alibaba.fastjson.JSONObject">
+         select
+          id,
+          account_id as accountId,
+          campaign_id as campaignId
+          from ctop_kuaishou_strategy_campaign_rel
+         where strategy_id = #{id}
+    </select>
+</mapper>

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

@@ -24,7 +24,7 @@ public interface IKuaishouStrategyService extends IService<KuaishouStrategy> {
      * @throws
      * @author ZHAOXA
      */
-    Result<?> shutDownPlan(JSONArray ids);
+    Result<?> shutDownPlan(JSONObject data);
 
     /**
      * 创建快手广告计划

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

@@ -0,0 +1,18 @@
+package cn.com.ctop.kuaishou.modules.batch.service;
+
+import cn.com.ctop.kuaishou.modules.batch.entity.kuaishoustrategycampaignRel;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * @Description: 快手-策略和计划启动/关停关系表
+ * @Author: jeecg-boot
+ * @Date: 2020-12-18
+ * @Version: V1.0
+ */
+public interface IkuaishoustrategycampaignRelService extends IService<kuaishoustrategycampaignRel> {
+
+    List<JSONObject>  queryPlanIdsByStrategyId(Long id);
+}

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

@@ -5,11 +5,9 @@ import cn.com.ctop.common.module.service.ICtopOauthTokenService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroupTemplate;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouTemplateTarget;
 import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouGroupTemplateMapper;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouGroupTemplateService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouMaterialUploadService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
+import cn.com.ctop.kuaishou.modules.batch.service.*;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -44,10 +42,18 @@ public class KuaiShouGroupTemplateServiceImpl extends ServiceImpl<KuaiShouGroupT
     private IKuaiShouImageGetService imageGetService;
     @Autowired
     private IKuaiShouMaterialUploadService uploadService;
+    @Autowired
+    private IKuaishouTemplateTargetService templateTargetService;
 
     static ExecutorService executorService = Executors.newFixedThreadPool(5);
 
-
+    /**
+     * 提交创建任务
+     *
+     * @param requestJson
+     * @return
+     * @throws Exception
+     */
     @Override
     public JSONObject submitUnitTask(JSONObject requestJson) throws Exception {
         Long accountId = requestJson.getLong("accountId");
@@ -220,6 +226,10 @@ public class KuaiShouGroupTemplateServiceImpl extends ServiceImpl<KuaiShouGroupT
         return returnJson;
     }
 
+
+    /**
+     * 创建组
+     */
     @Override
     public void createUnit() {
         QueryWrapper<KuaiShouGroupTemplate> queryWrapper = new QueryWrapper<>();
@@ -245,12 +255,39 @@ public class KuaiShouGroupTemplateServiceImpl extends ServiceImpl<KuaiShouGroupT
                     updateTemplate.setTaskStatus(1);
                     updateById(updateTemplate);   // 修改状态为创建中
                     JSONObject createUnitJson = new JSONObject();
-                    createUnitJson.put("campaign_id", template.getCampaignId());
-                    createUnitJson.put("unit_name", template.getUnitName());
 
-                    if (!Check.isNull(template.getTemplateId())) {
-                        createUnitJson.put("template_id", template.getTemplateId());
+                    JSONArray sceneIdArr = JSONArray.parseArray(template.getSceneId());
+                    if (Check.isNull(sceneIdArr)) {
+                        updateTemplate.setTaskStatus(3);
+                        updateTemplate.setReviewDetail("scene_id不能为空");
+                        updateTemplate.setCreativeStatus(3);
+                        updateTemplate.setCreativeReviewDetail("组创建失败");
+                        updateById(updateTemplate);
+                        return;
+                    }
+                    createUnitJson.put("scene_id", sceneIdArr); //资源位置
+                    Integer sceneId = (Integer) sceneIdArr.get(0);
+                    if (sceneId != 5) {
+                        if (!Check.isNull(template.getTemplateId())) {
+                            createUnitJson.put("template_id", template.getTemplateId());
+                        }
+                    } else {
+                        if (!Check.isNull(template.getTemplateId())) {
+                            JSONObject unionJson = getUnionJson(template.getTemplateId());
+                            if (unionJson.getInteger("code") != 0) {
+                                updateTemplate.setTaskStatus(3);
+                                updateTemplate.setReviewDetail(unionJson.getString("message"));
+                                updateTemplate.setCreativeStatus(3);
+                                updateTemplate.setCreativeReviewDetail("组创建失败");
+                                updateById(updateTemplate);
+                                return;
+                            } else {
+                                createUnitJson.put("target", unionJson.getJSONObject("target"));
+                            }
+                        }
                     }
+                    createUnitJson.put("campaign_id", template.getCampaignId());
+                    createUnitJson.put("unit_name", template.getUnitName());
                     if (!Check.isNull(template.getBidType())) {
                         createUnitJson.put("bid_type", template.getBidType()); // 优化目标类型
                     }
@@ -275,9 +312,6 @@ public class KuaiShouGroupTemplateServiceImpl extends ServiceImpl<KuaiShouGroupT
                     if (!Check.isNull(template.getDeepConversionBid())) {
                         createUnitJson.put("deep_conversion_bid", template.getDeepConversionBid()); //深度转化目标出价
                     }
-                    if (!Check.isNull(template.getSceneId())) {
-                        createUnitJson.put("scene_id", JSONArray.parseArray(template.getSceneId())); //资源位置
-                    }
                     if (!Check.isNull(template.getUnitType())) {
                         createUnitJson.put("unit_type", template.getUnitType()); //创意制作方式
                     }
@@ -344,17 +378,125 @@ public class KuaiShouGroupTemplateServiceImpl extends ServiceImpl<KuaiShouGroupT
 
     }
 
+
+    /**
+     * 根据模板id 获取联盟定向
+     *
+     * @return
+     */
+    private JSONObject getUnionJson(Long templateId) {
+        JSONObject returnJson = new JSONObject();
+        QueryWrapper<KuaishouTemplateTarget> targetQueryWrapper = new QueryWrapper<>();
+        targetQueryWrapper.eq("template_id", templateId);
+        targetQueryWrapper.last("limit 1");
+        KuaishouTemplateTarget templateTarget = templateTargetService.getOne(targetQueryWrapper);
+        if (Check.isNull(templateTarget)) {
+            returnJson.put("code", -1);
+            returnJson.put("message", "根据模板id未获取到模板详情");
+            return returnJson;
+        }
+        JSONObject target = new JSONObject();
+        if (!Check.isNull(templateTarget.getRegion())) {
+            target.put("region", JSONArray.parseArray(templateTarget.getRegion()));
+        }
+
+        if (!Check.isNull(templateTarget.getMax()) && !Check.isNull(templateTarget.getMin())) {
+            JSONObject ageJson = new JSONObject();
+            if (!Check.isNull(templateTarget.getMax())) {
+                ageJson.put("max", templateTarget.getMax());
+            }
+            if (!Check.isNull(templateTarget.getMin())) {
+                ageJson.put("min", templateTarget.getMin());
+            }
+            target.put("age", ageJson);
+        }
+        if (!Check.isNull(templateTarget.getAgesRange())) {
+            target.put("ages_range", JSONArray.parseArray(templateTarget.getAgesRange()));
+        }
+
+        if (!Check.isNull(templateTarget.getGender())) {
+            target.put("gender", templateTarget.getGender());
+        }
+
+        if (!Check.isNull(templateTarget.getPlatformOs())) {
+            target.put("platform_os", templateTarget.getPlatformOs());
+        }
+
+        if (!Check.isNull(templateTarget.getAndroidOsv())) {
+            target.put("android_osv", templateTarget.getAndroidOsv());
+        }
+
+        if (!Check.isNull(templateTarget.getIosOsv())) {
+            target.put("ios_osv", templateTarget.getIosOsv());
+        }
+
+        if (!Check.isNull(templateTarget.getNetwork())) {
+            target.put("network", templateTarget.getNetwork());
+        }
+
+        if (!Check.isNull(templateTarget.getDeviceBrand())) {
+            target.put("device_brand", JSONArray.parseArray(templateTarget.getDeviceBrand()));
+        }
+
+        if (!Check.isNull(templateTarget.getDevicePrice())) {
+            target.put("device_price", JSONArray.parseArray(templateTarget.getDevicePrice()));
+        }
+
+        if (!Check.isNull(templateTarget.getAppInterest())) {
+            target.put("app_interest", JSONArray.parseArray(templateTarget.getAppInterest()));
+        }
+
+        if (!Check.isNull(templateTarget.getAppIds())) {
+            target.put("app_ids", JSONArray.parseArray(templateTarget.getAppIds()));
+        }
+
+        if (!Check.isNull(templateTarget.getPopulation())) {
+            target.put("population", JSONArray.parseArray(templateTarget.getPopulation()));
+        }
+
+        if (!Check.isNull(templateTarget.getExcludePopulation())) {
+            target.put("exclude_population", JSONArray.parseArray(templateTarget.getExcludePopulation()));
+        }
+
+        if (!Check.isNull(templateTarget.getPaidAudience())) {
+            target.put("paid_audience", JSONArray.parseArray(templateTarget.getPaidAudience()));
+        }
+        returnJson.put("target", target);
+        returnJson.put("code", 0);
+        return returnJson;
+    }
+
+    /**
+     * 获取当天api创建创意数
+     *
+     * @param accountId
+     * @param date
+     * @return
+     */
     @Override
     public Integer getApiCreateCount(Long accountId, String date) {
         return groupTemplateMapper.getApiCreateCount(accountId, date);
     }
 
+    /**
+     * 根据photoId 获取视频、封面链接
+     *
+     * @param photoId
+     * @return
+     */
     @Override
     public JSONObject getUrlByPhotoId(Long photoId) {
         return groupTemplateMapper.getUrlByPhotoId(photoId);
     }
 
 
+    /**
+     * 创建创意
+     *
+     * @param accessToken
+     * @param unitId
+     * @param template
+     */
     @Override
     public void createCreative(String accessToken, Long unitId, KuaiShouGroupTemplate template) {
         KuaiShouGroupTemplate updateTemplate = new KuaiShouGroupTemplate();

+ 29 - 6
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouStrategyServiceImpl.java

@@ -5,6 +5,7 @@ import cn.com.ctop.common.module.service.ICtopOauthTokenService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouStrategy;
+import cn.com.ctop.kuaishou.modules.batch.entity.kuaishoustrategycampaignRel;
 import cn.com.ctop.kuaishou.modules.batch.mapper.KuaishouStrategyMapper;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouMaterialUploadService;
@@ -49,28 +50,43 @@ public class KuaishouStrategyServiceImpl extends ServiceImpl<KuaishouStrategyMap
     @Autowired
     private IKuaiShouUpdateService kuaiShouUpdateService;
     @Autowired
+    private kuaishoustrategycampaignRelServiceImpl kuaishoustrategycampaignRelService;
+    @Autowired
     private ICtopOauthTokenService tokenService;
 
-    //TODO
     @Override
-    public Result<?> shutDownPlan(JSONArray ids) {
+    public Result<?> shutDownPlan(JSONObject data) {
+        JSONArray ids = data.getJSONArray("ids");
+        Integer state = data.getInteger("state");
         JSONObject obj = new JSONObject();
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         String userId = null;
         if (!Check.isNull(sysUser)) {
             userId = sysUser.getId();
         }
-        userId = "test";
         for (Object id : ids) {
             boolean flag = true;
-            List<JSONObject> list = kuaishouStrategyMapper.queryPlanIdsByStrategyId(Long.valueOf(id.toString()));
+            List<JSONObject> list = null;
+            //开启
+            if (state == 1) {
+                list = kuaishoustrategycampaignRelService.queryPlanIdsByStrategyId(Long.valueOf(id.toString()));
+            } else {
+                list = kuaishouStrategyMapper.queryPlanIdsByStrategyId(Long.valueOf(id.toString()));
+            }
             CtopOauthToken token = tokenService.getTokenByAccountId(list.get(0).getLong("accountId"));
+            kuaishoustrategycampaignRel rel = new kuaishoustrategycampaignRel();
+            rel.setAccountId(token.getAccountId());
+            rel.setStrategyId(Long.valueOf(id.toString()));
+            rel.setStrategyState(state.toString());
             for (JSONObject object : list) {
+                rel.setId(object.getLong("id"));
+                rel.setCampaignId(object.getLong("campaignId"));
                 if (flag) {
-                    flag = EditAdvertisingPlanStatus(token.getAccessToken(), token.getAccountId(), object.getLong("campaignId"), NoEn.NO2.valueInt(), userId, NoEn.NO1.valueInt());
+                    flag = EditAdvertisingPlanStatus(token.getAccessToken(), token.getAccountId(), object.getLong("campaignId"), state, userId, NoEn.NO1.valueInt());
                 } else {
-                    EditAdvertisingPlanStatus(token.getAccessToken(), token.getAccountId(), object.getLong("campaignId"), NoEn.NO2.valueInt(), userId, NoEn.NO1.valueInt());
+                    EditAdvertisingPlanStatus(token.getAccessToken(), token.getAccountId(), object.getLong("campaignId"), state, userId, NoEn.NO1.valueInt());
                 }
+                kuaishoustrategycampaignRelService.saveOrUpdate(rel);
             }
             if (flag) {
                 obj.put(id.toString(), true);
@@ -81,6 +97,12 @@ public class KuaishouStrategyServiceImpl extends ServiceImpl<KuaishouStrategyMap
         return Result.ok(obj);
     }
 
+    /**
+     * @param
+     * @return boolean
+     * @throws
+     * @author ZHAOXA
+     */
     private boolean EditAdvertisingPlanStatus(String token, Long accountId, Long campaignId, Integer state, String userId, int count) {
         Map<String, Object> map = kuaiShouUpdateService.updateCampaignStatus(token, accountId, campaignId, state, userId);
         boolean success = (boolean) map.get("success");
@@ -434,6 +456,7 @@ public class KuaishouStrategyServiceImpl extends ServiceImpl<KuaishouStrategyMap
         return kuaishouInterfaceService.adUnitCreate(oauthToken.getAccessToken(), oauthToken.getAccountId(), unitJson, 1);
     }
 
+
     /**
      * 根据策略创建创意
      *

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

@@ -0,0 +1,30 @@
+package cn.com.ctop.kuaishou.modules.batch.service.impl;
+
+import cn.com.ctop.kuaishou.modules.batch.entity.kuaishoustrategycampaignRel;
+import cn.com.ctop.kuaishou.modules.batch.mapper.kuaishoustrategycampaignRelMapper;
+import cn.com.ctop.kuaishou.modules.batch.service.IkuaishoustrategycampaignRelService;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 快手-策略和计划启动/关停关系表
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-12-18
+ */
+@Service
+public class kuaishoustrategycampaignRelServiceImpl extends ServiceImpl<kuaishoustrategycampaignRelMapper, kuaishoustrategycampaignRel> implements IkuaishoustrategycampaignRelService {
+
+    @Autowired
+    private kuaishoustrategycampaignRelMapper relMapper;
+
+    @Override
+    public List<JSONObject> queryPlanIdsByStrategyId(Long id) {
+        return relMapper.queryPlanIdsByStrategyId(id);
+    }
+}

+ 23 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/controller/KuaishouAudienceReportDailyController.java

@@ -4,6 +4,7 @@ import cn.com.ctop.common.module.annotation.AutoLog;
 import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
 import cn.com.ctop.kuaishou.modules.report.service.IKuaishouAudienceReportDailyService;
 import com.alibaba.fastjson.JSON;
+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;
@@ -51,7 +52,7 @@ import java.util.Map;
 @Slf4j
 @Api(tags = "人群分析报表")
 @RestController
-@RequestMapping("/modules.batch/kuaishouAudienceReportDaily")
+@RequestMapping("/audienceReport")
 public class KuaishouAudienceReportDailyController {
     @Autowired
     private IKuaishouAudienceReportDailyService kuaishouAudienceReportDailyService;
@@ -82,6 +83,27 @@ public class KuaishouAudienceReportDailyController {
     }
 
     /**
+     * 分页列表查询
+     *
+     * @param kuaishouAudienceReportDaily
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @AutoLog(value = "人群分析报表-分页列表查询")
+    @ApiOperation(value = "人群分析报表-分页列表查询", notes = "人群分析报表-分页列表查询")
+    @GetMapping(value = "/queryPageList")
+    public Result<Object> queryPageLists(KuaishouAudienceReportDaily audienceReport, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, String type) {
+        try {
+            return kuaishouAudienceReportDailyService.queryPageLists(audienceReport, pageNo, pageSize, type);
+        } catch (Exception e) {
+            log.error("人群分析报表-分页列表查询异常", e);
+        }
+        return Result.error("查询人群分析报表失败");
+    }
+
+    /**
      * 添加
      *
      * @param kuaishouAudienceReportDaily

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

@@ -1,8 +1,11 @@
 package cn.com.ctop.kuaishou.modules.report.mapper;
 
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
 import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyAge;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * 人群分析报表
  *
@@ -12,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KuaishouAudienceReportDailyAgeMapper extends BaseMapper<KuaishouAudienceReportDailyAge> {
 
+    List<KuaishouAudienceReportDaily> queryPageLists(KuaishouAudienceReportDaily audienceReport);
 }

+ 3 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyBusinessMapper.java

@@ -4,6 +4,8 @@ import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
 import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyBussiness;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * 人群分析报表
  *
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KuaishouAudienceReportDailyBusinessMapper extends BaseMapper<KuaishouAudienceReportDailyBussiness> {
 
+    List<KuaishouAudienceReportDaily> queryPageLists(KuaishouAudienceReportDaily audienceReport);
 }

+ 3 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyCityMapper.java

@@ -4,6 +4,8 @@ import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
 import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyCity;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * 人群分析报表
  *
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KuaishouAudienceReportDailyCityMapper extends BaseMapper<KuaishouAudienceReportDailyCity> {
 
+    List<KuaishouAudienceReportDaily> queryPageLists(KuaishouAudienceReportDaily audienceReport);
 }

+ 3 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyClientMapper.java

@@ -4,6 +4,8 @@ import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
 import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyClient;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * 人群分析报表
  *
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KuaishouAudienceReportDailyClientMapper extends BaseMapper<KuaishouAudienceReportDailyClient> {
 
+    List<KuaishouAudienceReportDaily> queryPageLists(KuaishouAudienceReportDaily audienceReport);
 }

+ 3 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyGenderMapper.java

@@ -4,6 +4,8 @@ import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
 import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyGender;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * 人群分析报表
  *
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KuaishouAudienceReportDailyGenderMapper extends BaseMapper<KuaishouAudienceReportDailyGender> {
 
+    List<KuaishouAudienceReportDaily> queryPageLists(KuaishouAudienceReportDaily audienceReport);
 }

+ 5 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/KuaishouAudienceReportDailyProvinceMapper.java

@@ -1,8 +1,12 @@
 package cn.com.ctop.kuaishou.modules.report.mapper;
 
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
 import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDailyProvince;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * 人群分析报表
  *
@@ -12,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KuaishouAudienceReportDailyProvinceMapper extends BaseMapper<KuaishouAudienceReportDailyProvince> {
 
+    List<KuaishouAudienceReportDaily> queryPageLists(KuaishouAudienceReportDaily audienceReport);
 }

+ 11 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyAgeMapper.xml

@@ -0,0 +1,11 @@
+<?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.report.mapper.KuaishouAudienceReportDailyAgeMapper">
+    <select id="queryPageLists" resultType="cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily">
+        select
+        *
+       from
+        ctop_kuaishou_audience_report_daily_province
+        where account_id = #{accountId}
+      </select>
+</mapper>

+ 11 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyBusinessMapper.xml

@@ -0,0 +1,11 @@
+<?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.report.mapper.KuaishouAudienceReportDailyBusinessMapper">
+    <select id="queryPageLists" resultType="cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily">
+        select
+        *
+       from
+        ctop_kuaishou_audience_report_daily_province
+        where account_id = #{accountId}
+      </select>
+</mapper>

+ 11 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyCityMapper.xml

@@ -0,0 +1,11 @@
+<?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.report.mapper.KuaishouAudienceReportDailyCityMapper">
+    <select id="queryPageLists" resultType="cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily">
+        select
+        *
+       from
+        ctop_kuaishou_audience_report_daily_province
+        where account_id = #{accountId}
+      </select>
+</mapper>

+ 11 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyClientMapper.xml

@@ -0,0 +1,11 @@
+<?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.report.mapper.KuaishouAudienceReportDailyClientMapper">
+    <select id="queryPageLists" resultType="cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily">
+        select
+        *
+       from
+        ctop_kuaishou_audience_report_daily_province
+        where account_id = #{accountId}
+      </select>
+</mapper>

+ 11 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyGenderMapper.xml

@@ -0,0 +1,11 @@
+<?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.report.mapper.KuaishouAudienceReportDailyGenderMapper">
+    <select id="queryPageLists" resultType="cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily">
+        select
+        *
+       from
+        ctop_kuaishou_audience_report_daily_province
+        where account_id = #{accountId}
+      </select>
+</mapper>

+ 12 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/KuaishouAudienceReportDailyProvinceMapper.xml

@@ -0,0 +1,12 @@
+<?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.report.mapper.KuaishouAudienceReportDailyProvinceMapper">
+
+    <select id="queryPageLists" resultType="cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily">
+        select
+        *
+       from
+        ctop_kuaishou_audience_report_daily_province
+        where account_id = #{accountId}
+      </select>
+</mapper>

+ 11 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IKuaishouAudienceReportDailyService.java

@@ -2,8 +2,9 @@ package cn.com.ctop.kuaishou.modules.report.service;
 
 import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.kuaishou.modules.report.entity.KuaishouAudienceReportDaily;
-import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
 
 /**
  * @Description: 人群分析报表
@@ -22,4 +23,13 @@ public interface IKuaishouAudienceReportDailyService extends IService<KuaishouAu
      */
     void crowdAnalysisReport(CtopOauthToken token, String date, String type, Long plan, Long unit, Integer page, Integer pageSize);
 
+    /**
+     * 人群分析报表
+     *
+     * @param
+     * @return java.lang.Long
+     * @throws
+     * @author ZHAOXA
+     */
+    Result<Object> queryPageLists(KuaishouAudienceReportDaily audienceReport, Integer pageNo, Integer pageSize, String type);
 }

+ 44 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaishouAudienceReportDailyServiceImpl.java

@@ -24,11 +24,15 @@ import cn.com.ctop.kuaishou.modules.report.service.IKuaishouAudienceReportDailyS
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 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.api.vo.Result;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -43,6 +47,8 @@ import java.util.Map;
 public class KuaishouAudienceReportDailyServiceImpl extends ServiceImpl<KuaishouAudienceReportDailyMapper, KuaishouAudienceReportDaily> implements IKuaishouAudienceReportDailyService {
 
     @Autowired
+    private KuaishouAudienceReportDailyMapper kuaishouAudienceReportDailyMapper;
+    @Autowired
     private KuaishouAudienceReportDailyProvinceMapper provinceMapper;
     @Autowired
     private KuaishouAudienceReportDailyAgeMapper ageMapper;
@@ -59,11 +65,47 @@ public class KuaishouAudienceReportDailyServiceImpl extends ServiceImpl<Kuaishou
     private String urlPath = PropertiesUtils.getConfig("kuaishou_api_url");
 
     /**
-     * 人群分析报表
+     * 报表分页查询
+     *
+     * @param type province: 省级地域分布, city: 地级地域分布,gender: 性别分布,ageSegment: 年龄分布clientId: 系统分布 businessInterestTags: 商业兴趣分布
+     * @return org.jeecg.common.api.vo.Result<java.lang.Object>
+     * @throws
+     * @author ZHAOXA
+     */
+    @Override
+    public Result<Object> queryPageLists(KuaishouAudienceReportDaily audienceReport, Integer pageNo, Integer pageSize, String type) {
+        if (null == pageNo || pageNo == 0) {
+            pageNo = 1;
+        }
+        if (null == pageSize || pageSize == 0) {
+            pageSize = 10;
+        }
+        List<KuaishouAudienceReportDaily> list = null;
+        PageHelper.startPage(pageNo, pageSize);
+        if ("province".equals(type)) {
+            list = provinceMapper.queryPageLists(audienceReport);
+        } else if ("city".equals(type)) {
+            list = cityMapper.queryPageLists(audienceReport);
+        } else if ("gender".equals(type)) {
+            list = genderMapper.queryPageLists(audienceReport);
+        } else if ("ageSegment".equals(type)) {
+            list = ageMapper.queryPageLists(audienceReport);
+        } else if ("client".equals(type)) {
+            list = clientMapper.queryPageLists(audienceReport);
+        } else if ("businessInterestTags".equals(type)) {
+            list = bussinessMapper.queryPageLists(audienceReport);
+        } else {
+            return Result.error("请选择人群报表类型");
+        }
+        PageInfo<KuaishouAudienceReportDaily> pageInfo = new PageInfo<>(list);
+        return Result.ok(pageInfo);
+    }
+
+    /**
+     * 人群分析报表入库
      *
      * @param type      province: 省级地域分布, city: 地级地域分布,gender: 性别分布,ageSegment: 年龄分布clientId: 系统分布 businessInterestTags: 商业兴趣分布
      * @param accountId 广告主ID
-     * @param file      请求的文件,最大支持500MB
      * @return
      */
     @Override