jiequan.bi 4 rokov pred
rodič
commit
30f89a6eea
27 zmenil súbory, kde vykonal 700 pridanie a 2 odobranie
  1. 11 0
      jeecg-boot-module-system/src/test/java/org/jeecg/SampleTest.java
  2. 0 2
      module-common/src/main/java/cn/com/ctop/common/module/entity/RuleDataAccount.java
  3. 45 0
      module-common/src/main/java/cn/com/ctop/common/module/entity/RuleDataAccountKuaishou.java
  4. 41 0
      module-common/src/main/java/cn/com/ctop/common/module/entity/RuleDataTargetKuaishou.java
  5. 27 0
      module-common/src/main/java/cn/com/ctop/common/module/entity/RuleDatePlanKuaishou.java
  6. 50 0
      module-common/src/main/java/cn/com/ctop/common/module/entity/RuleDateUnitKuaishou.java
  7. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/RuleDataAccountKuaishouMapper.java
  8. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/RuleDataTargetKuaishouMapper.java
  9. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/RuleDatePlanKuaishouMapper.java
  10. 12 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/RuleDateUnitKuaishouMapper.java
  11. 5 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/RuleDataAccountKuaishouMapper.xml
  12. 5 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/RuleDataTargetKuaishouMapper.xml
  13. 5 0
      module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/RuleDatePlanKuaishouMapper.xml
  14. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IRuleDataAccountKuaishouService.java
  15. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IRuleDataTargetKuaishouService.java
  16. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IRuleDataUnitKuaishouService.java
  17. 11 0
      module-common/src/main/java/cn/com/ctop/common/module/service/IRuleDatePlanKuaishouService.java
  18. 18 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/RuleDataAccountKuaishouServiceImpl.java
  19. 15 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/RuleDataTargetKuaishouServiceImpl.java
  20. 18 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/RuleDataUnitKuaishouServiceImpl.java
  21. 18 0
      module-common/src/main/java/cn/com/ctop/common/module/service/impl/RuleDatePlanKuaishouServiceImpl.java
  22. 23 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IKuaiShouGetAccountFundService.java
  23. 7 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IRuleKuaiShouAccountService.java
  24. 23 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IRuleKuaiShouPlanService.java
  25. 60 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaiShouGetAccountFundServiceImpl.java
  26. 39 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/RuleKuaiShouAccountServiceImpl.java
  27. 201 0
      module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/RuleKuaiShouPlanServiceImpl.java

+ 11 - 0
jeecg-boot-module-system/src/test/java/org/jeecg/SampleTest.java

@@ -14,6 +14,7 @@ import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
 import cn.com.ctop.kuaishou.modules.graphql.service.IKuaishouWebInterfaceService;
 import cn.com.ctop.kuaishou.modules.report.service.IKuaishouCostGroupService;
 import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportDailyAgentService;
+import cn.com.ctop.kuaishou.modules.report.service.IRuleKuaiShouPlanService;
 import cn.com.ctop.oa.modules.service.IWechatCheckinDataService;
 import cn.com.ctop.oa.modules.service.IWechatDepartmentService;
 import cn.com.ctop.oa.modules.service.IWechatNoListService;
@@ -329,5 +330,15 @@ public class SampleTest {
         wechatNoListService.getNoDateByNo("2020-11-01 00:00:00", "2020-12-01 23:59:59", "1");
     }
 
+    @Autowired
+    IRuleKuaiShouPlanService kuaiShouPlanService;
+    @Test
+    public void kuaishouRuleData(){
+        //kuaiShouPlanService.cleanRuleDataPlan(3429620L,"2020-12-07","2020-12-07",1);
+        kuaiShouPlanService.cleanRuleDataUnit(3429620L,"2020-12-07","2020-12-07",1);
+        kuaiShouPlanService.cleanRuleDataTarget(3429620L,"2020-12-07","2020-12-07",1);
+
+    }
+
 
 }

+ 0 - 2
module-common/src/main/java/cn/com/ctop/common/module/entity/RuleDataAccount.java

@@ -1,7 +1,5 @@
 package cn.com.ctop.common.module.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;

+ 45 - 0
module-common/src/main/java/cn/com/ctop/common/module/entity/RuleDataAccountKuaishou.java

@@ -0,0 +1,45 @@
+package cn.com.ctop.common.module.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * 快手预警数据账户维度
+ */
+@Data
+@TableName("ctop_rule_data_account_kuaishou")
+public class RuleDataAccountKuaishou {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Long id;
+	/**账户id*/
+	private Long accountId;
+	/**accountName*/
+	private String accountName;
+	/**消耗*/
+	private BigDecimal cost;
+	/**validBalance*/
+	private BigDecimal validBalance;
+	/**转化数*/
+	private Long convertNum;
+	/**转化成本*/
+	private BigDecimal convertCost;
+	/**次留数*/
+	private Long nextDayOpenNum;
+	/**nextDayOpenCost*/
+	private BigDecimal nextDayOpenCost;
+	/**次留率*/
+	private BigDecimal nextDayOpenRate;
+	/**status*/
+	private Integer status;
+	/**createTime*/
+	private Date createTime;
+	/**updateTime*/
+	private Date updateTime;
+}

+ 41 - 0
module-common/src/main/java/cn/com/ctop/common/module/entity/RuleDataTargetKuaishou.java

@@ -0,0 +1,41 @@
+package cn.com.ctop.common.module.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * 快手预警指标数据
+ */
+@Data
+@TableName("ctop_rule_data_target_kuaishou")
+public class RuleDataTargetKuaishou {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Long id;
+	/**accountId*/
+	private Long accountId;
+	/**unitId*/
+	private Long unitId;
+	/**广告位*/
+	private String sceneId;
+	/**地域定向*/
+	private String region;
+	/**gender*/
+	private Integer gender;
+	/**操作系统*/
+	private Integer platformOs;
+	/**手机品牌*/
+	private String deviceBrand;
+	/**手机价格*/
+	private String devicePrice;
+	/**智能扩量*/
+	private Integer isOpen;
+	/**过滤已转化人群*/
+	private String filterConvertedLevel;
+	/**投放时段*/
+	private String scheduleTime;
+}

+ 27 - 0
module-common/src/main/java/cn/com/ctop/common/module/entity/RuleDatePlanKuaishou.java

@@ -0,0 +1,27 @@
+package cn.com.ctop.common.module.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * 预警快手计划数据清洗
+ */
+@Data
+@TableName("ctop_rule_date_plan_kuaishou")
+public class RuleDatePlanKuaishou {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Long id;
+	/**accountId*/
+	private Long accountId;
+	/**accountName*/
+	private String accountName;
+	/**planId*/
+	private Long planId;
+	/**planName*/
+	private String planName;
+}

+ 50 - 0
module-common/src/main/java/cn/com/ctop/common/module/entity/RuleDateUnitKuaishou.java

@@ -0,0 +1,50 @@
+package cn.com.ctop.common.module.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * 快手预警组数据
+ */
+@Data
+@TableName("ctop_rule_data_unit_kuaishou")
+public class RuleDateUnitKuaishou {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+	private Long id;
+	/**accountId*/
+	private Long accountId;
+	/**accountName*/
+	private String accountName;
+	/**unitId*/
+	private Long unitId;
+	/**unitName*/
+	private String unitName;
+	/**消耗*/
+	private BigDecimal charge;
+
+	private Integer convertNum;
+
+	private BigDecimal convertCost;
+
+	/**activation*/
+	private Long activation;
+	/**激活单价*/
+	private BigDecimal activationCost;
+	/**注册数*/
+	private Long eventRegister;
+	/**表单*/
+	private BigDecimal registerCost;
+	/**表单*/
+	private Long formCount;
+	/**表单提交单价*/
+	private BigDecimal formCost;
+	/**付费*/
+	private Long eventPay;
+	/**付费单价*/
+	private BigDecimal payCost;
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/RuleDataAccountKuaishouMapper.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.mapper;
+
+import cn.com.ctop.common.module.entity.RuleDataAccountKuaishou;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 快手预警数据账户维度
+ */
+public interface RuleDataAccountKuaishouMapper extends BaseMapper<RuleDataAccountKuaishou> {
+
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/RuleDataTargetKuaishouMapper.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.mapper;
+
+import cn.com.ctop.common.module.entity.RuleDataTargetKuaishou;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 快手预警指标数据
+ */
+public interface RuleDataTargetKuaishouMapper extends BaseMapper<RuleDataTargetKuaishou> {
+
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/RuleDatePlanKuaishouMapper.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.mapper;
+
+import cn.com.ctop.common.module.entity.RuleDatePlanKuaishou;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 预警快手计划数据清洗
+ */
+public interface RuleDatePlanKuaishouMapper extends BaseMapper<RuleDatePlanKuaishou> {
+
+}

+ 12 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/RuleDateUnitKuaishouMapper.java

@@ -0,0 +1,12 @@
+package cn.com.ctop.common.module.mapper;
+
+import cn.com.ctop.common.module.entity.RuleDateUnitKuaishou;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 预警快手计划数据清洗
+ */
+public interface RuleDateUnitKuaishouMapper extends BaseMapper<RuleDateUnitKuaishou> {
+
+}

+ 5 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/RuleDataAccountKuaishouMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.common.module.mapper.RuleDataAccountKuaishouMapper">
+
+</mapper>

+ 5 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/RuleDataTargetKuaishouMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.common.module.mapper.RuleDataTargetKuaishouMapper">
+
+</mapper>

+ 5 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/RuleDatePlanKuaishouMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.common.module.mapper.RuleDatePlanKuaishouMapper">
+
+</mapper>

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IRuleDataAccountKuaishouService.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.service;
+
+import cn.com.ctop.common.module.entity.RuleDataAccountKuaishou;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *  快手预警数据账户维度
+ */
+public interface IRuleDataAccountKuaishouService extends IService<RuleDataAccountKuaishou> {
+
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IRuleDataTargetKuaishouService.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.service;
+
+import cn.com.ctop.common.module.entity.RuleDataTargetKuaishou;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 快手预警指标数据
+ */
+public interface IRuleDataTargetKuaishouService extends IService<RuleDataTargetKuaishou> {
+
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IRuleDataUnitKuaishouService.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.service;
+
+import cn.com.ctop.common.module.entity.RuleDateUnitKuaishou;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *  组维度数据清洗
+ */
+public interface IRuleDataUnitKuaishouService extends IService<RuleDateUnitKuaishou> {
+
+}

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IRuleDatePlanKuaishouService.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.common.module.service;
+
+import cn.com.ctop.common.module.entity.RuleDatePlanKuaishou;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 预警快手计划数据清洗
+ */
+public interface IRuleDatePlanKuaishouService extends IService<RuleDatePlanKuaishou> {
+
+}

+ 18 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/RuleDataAccountKuaishouServiceImpl.java

@@ -0,0 +1,18 @@
+package cn.com.ctop.common.module.service.impl;
+
+import cn.com.ctop.common.module.entity.RuleDataAccountKuaishou;
+import cn.com.ctop.common.module.mapper.RuleDataAccountKuaishouMapper;
+import cn.com.ctop.common.module.service.IRuleDataAccountKuaishouService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 快手预警数据账户维度
+ * @author jeecg-boot
+ * @date   2020-12-03
+ * @version V1.0
+ */
+@Service
+public class RuleDataAccountKuaishouServiceImpl extends ServiceImpl<RuleDataAccountKuaishouMapper, RuleDataAccountKuaishou> implements IRuleDataAccountKuaishouService {
+
+}

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

@@ -0,0 +1,15 @@
+package cn.com.ctop.common.module.service.impl;
+
+import cn.com.ctop.common.module.entity.RuleDataTargetKuaishou;
+import cn.com.ctop.common.module.mapper.RuleDataTargetKuaishouMapper;
+import cn.com.ctop.common.module.service.IRuleDataTargetKuaishouService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 快手预警指标数据
+ */
+@Service
+public class RuleDataTargetKuaishouServiceImpl extends ServiceImpl<RuleDataTargetKuaishouMapper, RuleDataTargetKuaishou> implements IRuleDataTargetKuaishouService {
+
+}

+ 18 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/RuleDataUnitKuaishouServiceImpl.java

@@ -0,0 +1,18 @@
+package cn.com.ctop.common.module.service.impl;
+
+import cn.com.ctop.common.module.entity.RuleDateUnitKuaishou;
+import cn.com.ctop.common.module.mapper.RuleDateUnitKuaishouMapper;
+import cn.com.ctop.common.module.service.IRuleDataUnitKuaishouService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 组维度数据清洗
+ * @author jeecg-boot
+ * @date   2020-12-04
+ * @version V1.0
+ */
+@Service
+public class RuleDataUnitKuaishouServiceImpl extends ServiceImpl<RuleDateUnitKuaishouMapper, RuleDateUnitKuaishou> implements IRuleDataUnitKuaishouService {
+
+}

+ 18 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/RuleDatePlanKuaishouServiceImpl.java

@@ -0,0 +1,18 @@
+package cn.com.ctop.common.module.service.impl;
+
+import cn.com.ctop.common.module.entity.RuleDatePlanKuaishou;
+import cn.com.ctop.common.module.mapper.RuleDatePlanKuaishouMapper;
+import cn.com.ctop.common.module.service.IRuleDatePlanKuaishouService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 预警快手计划数据清洗
+ * @author jeecg-boot
+ * @date   2020-12-04
+ * @version V1.0
+ */
+@Service
+public class RuleDatePlanKuaishouServiceImpl extends ServiceImpl<RuleDatePlanKuaishouMapper, RuleDatePlanKuaishou> implements IRuleDatePlanKuaishouService {
+
+}

+ 23 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IKuaiShouGetAccountFundService.java

@@ -0,0 +1,23 @@
+package cn.com.ctop.kuaishou.modules.report.service;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import com.alibaba.fastjson.JSONObject;
+
+/**
+ *  Created by JQ.bi on 2020.11.15
+ *
+ *  拉取账户余额
+ */
+public interface IKuaiShouGetAccountFundService {
+
+    /**
+     * 获取账号余额信息
+     */
+    JSONObject getAccountFundBy(CtopOauthToken token, Long advertiserId);
+
+    /**
+     * 获取账号余额信息
+     */
+    JSONObject getAccountReportBy(CtopOauthToken token, Long advertiserId);
+
+}

+ 7 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IRuleKuaiShouAccountService.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.kuaishou.modules.report.service;
+
+public interface IRuleKuaiShouAccountService {
+
+    void cleanRuleDataAccount(Long accountId);
+
+}

+ 23 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IRuleKuaiShouPlanService.java

@@ -0,0 +1,23 @@
+package cn.com.ctop.kuaishou.modules.report.service;
+
+/**
+ *  快手规则引擎数据清洗;计划、组、定向
+ */
+public interface IRuleKuaiShouPlanService {
+
+    /**
+     *  计划
+     */
+    void cleanRuleDataPlan(Long accountId,String startDate, String endDate,int page);
+
+    /**
+     *  组
+     */
+    void cleanRuleDataUnit(Long accountId,String startDate, String endDate,int page);
+
+    /**
+     *  定向
+     */
+    void cleanRuleDataTarget(Long accountId,String startDate, String endDate,int page);
+
+}

+ 60 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/KuaiShouGetAccountFundServiceImpl.java

@@ -0,0 +1,60 @@
+package cn.com.ctop.kuaishou.modules.report.service.impl;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.utils.HttpUtils;
+import cn.com.ctop.kuaishou.modules.report.service.IKuaiShouGetAccountFundService;
+
+import com.alibaba.fastjson.JSONObject;
+import com.xxl.job.core.context.XxlJobHelper;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.constant.SystemDateConstant;
+import org.jeecg.common.util.DateUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+@Service
+public class KuaiShouGetAccountFundServiceImpl implements IKuaiShouGetAccountFundService {
+
+    @Override
+    public JSONObject getAccountFundBy(CtopOauthToken token, Long advertiserId) {
+
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", token.getAccessToken());
+
+        JSONObject params=new JSONObject();
+        params.put("advertiser_id",advertiserId);
+
+        JSONObject jsonObject = JSONObject.parseObject(HttpUtils.httpGetRequest("https://ad.e.kuaishou.com/rest/openapi/v1/advertiser/fund/get", headers,params));
+        if(jsonObject.getInteger("code")!=0){
+            XxlJobHelper.log("查询账户余额失败==》accountId:{},message:{}", token.getAccountId(), jsonObject.getString("message"));
+            return null;
+        }
+        return jsonObject.getJSONObject("data");
+    }
+
+    @Override
+    public JSONObject getAccountReportBy(CtopOauthToken token, Long advertiserId) {
+
+        JSONObject result= new JSONObject();
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", token.getAccessToken());
+
+        String now = DateUtils.getNowDate(SystemDateConstant.yyyy_MM_dd);
+        JSONObject params=new JSONObject();
+        params.put("advertiser_id",advertiserId);
+        params.put("start_date",now);
+        params.put("end_date",now);
+        JSONObject jsonObject = JSONObject.parseObject(HttpUtils.httpPostRequest("https://ad.e.kuaishou.com/rest/openapi/v1/report/account_report", params, headers));
+        if(jsonObject.getInteger("code")!=0){
+            XxlJobHelper.log("账户{}获取实时数据失败---{}",advertiserId,jsonObject.getString("message"));
+        }else {
+            result= (JSONObject) jsonObject.getJSONObject("data").getJSONArray("details").get(0);
+        }
+        return result;
+    }
+}

+ 39 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/RuleKuaiShouAccountServiceImpl.java

@@ -0,0 +1,39 @@
+package cn.com.ctop.kuaishou.modules.report.service.impl;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.entity.RuleDataAccountKuaishou;
+import cn.com.ctop.common.module.service.ICtopOauthTokenService;
+import cn.com.ctop.common.module.service.IRuleDataAccountKuaishouService;
+import cn.com.ctop.kuaishou.modules.report.service.IKuaiShouGetAccountFundService;
+import cn.com.ctop.kuaishou.modules.report.service.IRuleKuaiShouAccountService;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RuleKuaiShouAccountServiceImpl implements IRuleKuaiShouAccountService {
+
+    @Autowired
+    IKuaiShouGetAccountFundService kuaiShouGetAccountFundService;
+    @Autowired
+    ICtopOauthTokenService oauthTokenService;
+    @Autowired
+    IRuleDataAccountKuaishouService ruleDataAccountKuaishouService;
+
+    @Override
+    public void cleanRuleDataAccount(Long accountId) {
+        CtopOauthToken oauthToken=oauthTokenService.getTokenByAccountId(accountId);
+        //查询账户实时数据
+        JSONObject dataAccount=kuaiShouGetAccountFundService.getAccountReportBy(oauthToken,accountId);
+        if(!dataAccount.isEmpty()){
+            JSONObject fundData=kuaiShouGetAccountFundService.getAccountFundBy(oauthToken,accountId);
+            RuleDataAccountKuaishou ruleDataAccount=new RuleDataAccountKuaishou();
+            ruleDataAccount.setId(accountId);
+            ruleDataAccount.setAccountId(accountId);
+            ruleDataAccount.setCost(dataAccount.getBigDecimal("charge"));
+            ruleDataAccount.setValidBalance(fundData.getBigDecimal("balance"));
+
+            ruleDataAccountKuaishouService.saveOrUpdate(ruleDataAccount);
+        }
+    }
+}

+ 201 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/RuleKuaiShouPlanServiceImpl.java

@@ -0,0 +1,201 @@
+package cn.com.ctop.kuaishou.modules.report.service.impl;
+
+import cn.com.ctop.common.module.entity.RuleDataTargetKuaishou;
+import cn.com.ctop.common.module.entity.RuleDatePlanKuaishou;
+import cn.com.ctop.common.module.entity.RuleDateUnitKuaishou;
+import cn.com.ctop.common.module.service.ICtopOauthTokenService;
+import cn.com.ctop.common.module.service.IRuleDataTargetKuaishouService;
+import cn.com.ctop.common.module.service.IRuleDataUnitKuaishouService;
+import cn.com.ctop.common.module.service.IRuleDatePlanKuaishouService;
+import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.common.module.utils.HttpUtils;
+import cn.com.ctop.common.module.utils.KuaishouInterfaceConstant;
+import cn.com.ctop.common.module.utils.PropertiesUtils;
+import cn.com.ctop.kuaishou.modules.report.service.IRuleKuaiShouPlanService;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.xxl.job.core.context.XxlJobHelper;
+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;
+
+@Service
+public class RuleKuaiShouPlanServiceImpl implements IRuleKuaiShouPlanService {
+
+    @Autowired
+    ICtopOauthTokenService oauthTokenService;
+
+    @Autowired
+    IRuleDataTargetKuaishouService targetKuaishouService;
+
+    @Autowired
+    IRuleDatePlanKuaishouService planKuaishouService;
+
+    @Autowired
+    IRuleDataUnitKuaishouService unitKuaishouService;
+
+    @Override
+    public void cleanRuleDataPlan(Long accountId, String startDate, String endDate, int page) {
+        JSONObject param = new JSONObject();
+        param.put("advertiser_id", accountId);
+        param.put("page_size", 500);
+        param.put("page", page);
+        param.put("start_date", startDate);
+        param.put("end_date", endDate);
+
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Access-Token", oauthTokenService.getTokenByAccountId(accountId).getAccessToken());
+        headers.put("Content-Type", "application/json");
+
+        String result = HttpUtils.kuaiShouhttpPostRequest("https://ad.e.kuaishou.com/rest/openapi/v1/campaign/list", param.toJSONString(), headers);
+        JSONObject resultJson = JSONObject.parseObject(result);
+        if (Check.isNull(resultJson)) {
+            XxlJobHelper.log("获取广告计划接口异常,advertiserId:{}", accountId);
+            return;
+        }
+        Integer code = resultJson.getInteger("code");
+        if (null == code || code != 0) {
+            XxlJobHelper.log("获取广告计划返回结果异常,advertiserId:{},异常信息:{}", accountId, resultJson);
+            return;
+        }
+        JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
+        if (Check.isNull(details)) {
+            return;
+        }
+        this.insertPlan(accountId, details);
+        cleanRuleDataPlan(accountId, startDate, endDate, page + 1);
+    }
+
+    @Override
+    public void cleanRuleDataUnit(Long accountId, String startDate, String endDate, int page) {
+        JSONObject param = new JSONObject();
+        param.put("advertiser_id", accountId);
+        param.put("page_size", 500);
+        param.put("page", page);
+        param.put("start_date", startDate);
+        param.put("end_date", endDate);
+
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Access-Token", oauthTokenService.getTokenByAccountId(accountId).getAccessToken());
+        headers.put("Content-Type", "application/json");
+
+        String result = HttpUtils.kuaiShouhttpPostRequest("https://ad.e.kuaishou.com/rest/openapi/v1/report/unit_report", param.toJSONString(), headers);
+        JSONObject resultJson = JSONObject.parseObject(result);
+        if (Check.isNull(resultJson)) {
+            XxlJobHelper.log("获取广告组报表接口异常,advertiserId:{}", accountId);
+            return;
+        }
+        Integer code = resultJson.getInteger("code");
+        if (null == code || code != 0) {
+            XxlJobHelper.log("获取广告组报表返回结果异常,advertiserId:{},异常信息:{}", accountId, resultJson);
+            return;
+        }
+        JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
+        if (Check.isNull(details)) {
+            return;
+        }
+        this.insertUnit(accountId, details);
+        cleanRuleDataUnit(accountId, startDate, endDate, page + 1);
+    }
+
+    @Override
+    public void cleanRuleDataTarget(Long accountId, String startDate, String endDate, int page) {
+        String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.GROUP_LIST;
+        JSONObject param = new JSONObject();
+        param.put("advertiser_id", accountId);
+        param.put("page_size", 500);
+        param.put("page", page);
+        param.put("start_date", startDate);
+        param.put("end_date", endDate);
+
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Access-Token", oauthTokenService.getTokenByAccountId(accountId).getAccessToken());
+        headers.put("Content-Type", "application/json");
+
+        String result = HttpUtils.kuaiShouhttpPostRequest(url, param.toJSONString(), headers);
+        JSONObject resultJson = JSONObject.parseObject(result);
+        if (Check.isNull(resultJson)) {
+            XxlJobHelper.log("获取广告组接口异常,advertiserId:{}", accountId);
+            return;
+        }
+        Integer code = resultJson.getInteger("code");
+        if (null == code || code != 0) {
+            XxlJobHelper.log("获取广告组返回结果异常,advertiserId:{},异常信息:{}", accountId, resultJson);
+            return;
+        }
+        JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
+        if (Check.isNull(details)) {
+            return;
+        }
+        this.insertTarget(accountId, details);
+        cleanRuleDataTarget(accountId, startDate, endDate, page + 1);
+    }
+
+    private void insertPlan(Long accountId, JSONArray details) {
+        List<RuleDatePlanKuaishou> batch = new ArrayList<>();
+        details.forEach(detail -> {
+            JSONObject planDetail = (JSONObject) detail;
+            RuleDatePlanKuaishou plan = new RuleDatePlanKuaishou();
+            if (planDetail.getInteger("status") == 4 && planDetail.getInteger("put_status") == 1) {
+                plan.setId(planDetail.getLong("campaign_id"));
+                plan.setAccountId(accountId);
+                plan.setPlanId(planDetail.getLong("campaign_id"));
+                plan.setPlanName(planDetail.getString("campaign_name"));
+                batch.add(plan);
+            }
+        });
+        planKuaishouService.saveOrUpdateBatch(batch);
+    }
+
+    private void insertUnit(Long accountId, JSONArray details) {
+        List<RuleDateUnitKuaishou> batch = new ArrayList<>();
+        details.forEach(detail -> {
+            JSONObject unitDetail = (JSONObject) detail;
+            RuleDateUnitKuaishou plan = new RuleDateUnitKuaishou();
+            plan.setId(unitDetail.getLong("unit_id"));
+            plan.setAccountId(accountId);
+            plan.setUnitId(unitDetail.getLong("unit_id"));
+            plan.setUnitName(unitDetail.getString("unit_name"));
+            plan.setCharge(unitDetail.getBigDecimal("charge"));
+/*            plan.setActivation(unitDetail.getBigDecimal("activation"));
+            plan.setActivationCost(unitDetail.getBigDecimal("charge"));
+            plan.setEventRegister(unitDetail.getBigDecimal("charge"));
+            plan.setRegisterCost(unitDetail.getBigDecimal("charge"));
+            plan.setFormCount(unitDetail.getBigDecimal("charge"));
+            plan.setFormCost(unitDetail.getBigDecimal("charge"));
+            plan.setEventPay(unitDetail.getBigDecimal("charge"));
+            plan.setPayCost(unitDetail.getBigDecimal("charge"));*/
+            batch.add(plan);
+        });
+        unitKuaishouService.saveOrUpdateBatch(batch);
+    }
+
+    private void insertTarget(Long accountId, JSONArray details) {
+        List<RuleDataTargetKuaishou> batch = new ArrayList<>();
+        details.forEach(detail -> {
+            JSONObject unitDetail = (JSONObject) detail;
+            RuleDataTargetKuaishou target = new RuleDataTargetKuaishou();
+            if ((unitDetail.getInteger("status") == 20 || unitDetail.getInteger("status") == 19) &&
+                    unitDetail.getInteger("put_status") == 1) {
+                target.setId(unitDetail.getLong("unit_id"));
+                target.setAccountId(accountId);
+                target.setUnitId(unitDetail.getLong("unit_id"));
+                target.setSceneId(unitDetail.getJSONArray("scene_id").toString());
+                target.setRegion(unitDetail.getJSONArray("region").toString());
+                target.setGender(unitDetail.getInteger("gender"));
+                target.setPlatformOs(unitDetail.getInteger("platform_os"));
+                target.setDeviceBrand(unitDetail.getJSONArray("device_brand").toString());
+                target.setDevicePrice(unitDetail.getJSONArray("device_price").toString());
+                target.setFilterConvertedLevel(unitDetail.getString("filter_converted_level"));
+                target.setIsOpen(unitDetail.getInteger("is_open"));
+                target.setScheduleTime(unitDetail.getJSONArray("schedule_time").toString());
+                batch.add(target);
+            }
+        });
+        targetKuaishouService.saveOrUpdateBatch(batch);
+    }
+}