Quellcode durchsuchen

智能投放西安状态修改接口

jiequan.bi vor 4 Jahren
Ursprung
Commit
b9acb6142e
12 geänderte Dateien mit 176 neuen und 63 gelöschten Zeilen
  1. 0 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ads/service/impl/AiStrategyServiceImpl.java
  2. 3 11
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaishouStrategyController.java
  3. 54 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/kuaishoustrategycampaignRel.java
  4. 0 4
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaiShouReportDailyMaterialMapper.java
  5. 18 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/kuaishoustrategycampaignRelMapper.java
  6. 0 23
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouReportDailyMaterialMapper.xml
  7. 12 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/kuaishoustrategycampaignRelMapper.xml
  8. 2 5
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaishouStrategyService.java
  9. 18 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IkuaishoustrategycampaignRelService.java
  10. 0 1
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouUpdateServiceImpl.java
  11. 39 16
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouStrategyServiceImpl.java
  12. 30 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/kuaishoustrategycampaignRelServiceImpl.java

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

@@ -336,9 +336,6 @@ public class AiStrategyServiceImpl implements IAiStrategyService {
                     }
 
                 }
-
-
-
                 creativeParams.put("advertiser_id",token.getAccountId());
                 creativeParams.put("unit_id",unitId);
                 creativeParams.put("creative_name","");

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

@@ -5,7 +5,6 @@ import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouStrategy;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouStrategyService;
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -22,14 +21,7 @@ import org.jeecgframework.poi.excel.entity.ExportParams;
 import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
@@ -117,9 +109,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);
         }

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

@@ -0,0 +1,54 @@
+package cn.com.ctop.kuaishou.modules.batch.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.util.Date;
+
+/**
+ * 快手-策略和计划启动/关停关系表
+ * @author jeecg-boot
+ * @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.AUTO)
+    @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;
+}

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

@@ -31,8 +31,4 @@ public interface KuaiShouReportDailyMaterialMapper extends BaseMapper<KuaiShouRe
     void batchReplace(@Param("addList") List<KuaiShouReportDailyMaterial> addList);
 
 
-    List<KuaiShouReportDailyMaterial> getHighQualityMaterialId(@Param(value = "accountId") Long accountId,
-                                                               @Param(value = "days") Integer days,
-                                                               @Param(value = "highQualityNum") Integer highQualityNum);
-
 }

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

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

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

@@ -319,29 +319,6 @@
 
 
 
-    <select id="getHighQualityMaterialId" resultType="com.xxl.job.executor.report.entity.KuaiShouReportDailyMaterial">
-    /*
-    根据account_id,获取project_id
-    得到该项目下,近 days 内,素材消耗排名前 num 的素材签名
-    */
-        select
-        material.signature
-        from
-        ctop_kuaishou_report_daily_material material
-        left join
-        ctop_user_allocation allocation
-        on material.account_id = allocation.account_id
-        where  allocation.project_id in
-               (select project_id from ctop_user_allocation where 1=1
-                                                              <if test="accountId!=null">
-                                                              and account_id = #{accountId}
-                                                              </if>)
-        and  to_days(now()) - to_days(material.stat_date) &lt;=  #{days}
-        and material.signature is not null
-        GROUP BY material.signature
-        order by sum_charge desc
-        limit #{highQualityNum}
-    </select>
 
 
 </mapper>

+ 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>

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

@@ -2,7 +2,6 @@ package cn.com.ctop.kuaishou.modules.batch.service;
 
 import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouStrategy;
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.common.api.vo.Result;
@@ -24,18 +23,16 @@ public interface IKuaishouStrategyService extends IService<KuaishouStrategy> {
      * @throws
      * @author ZHAOXA
      */
-    Result<?> shutDownPlan(JSONArray ids);
+    Result<?> shutDownPlan(JSONObject data);
 
     /**
      * 创建快手广告计划
      *
      * @param oauthToken token签名
-     * @param data  广告计划
+     * @param groupJson  广告计划
      * @return void
      * @throws
      * @author ZHAOXA
      */
     Map<String, Object> createPlanLevelStrategy(CtopOauthToken oauthToken, JSONObject data);
-
-    JSONArray createGroupLevelStrategy(CtopOauthToken oauthToken, 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);
+}

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

@@ -281,7 +281,6 @@ public class KuaiShouUpdateServiceImpl implements IKuaiShouUpdateService {
             if (!Check.isNull(resultJson)) {
                 Integer code = resultJson.getInteger("code");
                 if (code == 0) {
-
                     QueryWrapper<KuaiShouCampaign> queryWrapper = new QueryWrapper<>();
                     queryWrapper.eq("campaign_id", campaignId);
                     queryWrapper.eq("account_id", advertiserId);

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

@@ -5,12 +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.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;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouUpdateService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouStrategyService;
+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;
@@ -49,31 +46,51 @@ 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);
+                QueryWrapper<KuaishouStrategy> strategyWrapper = new QueryWrapper<>();
+                strategyWrapper.eq("id", id);
+                KuaishouStrategy strategy = new KuaishouStrategy();
+                strategy.setStrategyState(data.getString("state"));
+                kuaishouStrategyMapper.update(strategy, strategyWrapper);
             } else {
                 obj.put(id.toString(), false);
             }
@@ -81,6 +98,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");
@@ -94,12 +117,11 @@ public class KuaishouStrategyServiceImpl extends ServiceImpl<KuaishouStrategyMap
 
     /**
      * @param oauthToken token签名
-     * @param data  广告计划
+     * @param groupJson  广告计划
      * @return void
      * @throws
      * @author ZHAOXA
      */
-    @Override
     public Map<String, Object> createPlanLevelStrategy(CtopOauthToken oauthToken, JSONObject data) {
         JSONObject planJson = new JSONObject();
         /**计划类型
@@ -125,7 +147,6 @@ public class KuaishouStrategyServiceImpl extends ServiceImpl<KuaishouStrategyMap
         return kuaishouInterfaceService.campaignCreate(oauthToken.getAccessToken(), oauthToken.getAccountId(), planJson);
     }
 
-    @Override
     public JSONArray createGroupLevelStrategy(CtopOauthToken oauthToken, JSONObject data) {
         JSONArray resultArr = new JSONArray();
         JSONArray groupInfo = data.getJSONArray("groupInfo");
@@ -408,8 +429,9 @@ public class KuaishouStrategyServiceImpl extends ServiceImpl<KuaishouStrategyMap
             if (!Check.isNull(groupJson.getInteger("noAreaBreak"))) {
                 intelliExtendJson.put("no_area_break", groupJson.getInteger("noAreaBreak"));
             }
-            targetJson.put("intelli_extend", intelliExtendJson);
-
+            if (!Check.isNull(intelliExtendJson)) {
+                targetJson.put("intelli_extend", intelliExtendJson);
+            }
         }
         // APP行为-按分类
         if (!Check.isNull(groupJson.getJSONArray("appInterest"))) {
@@ -435,6 +457,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);
+    }
+}