瀏覽代碼

分销平台 公众号推送

wangyunpeng 3 天之前
父節點
當前提交
92955ef2d9
共有 23 個文件被更改,包括 2535 次插入9 次删除
  1. 1 0
      api-module/src/main/java/com/tzld/piaoquan/api/common/enums/contentplatform/BussinessTypeEnum.java
  2. 1 0
      api-module/src/main/java/com/tzld/piaoquan/api/common/enums/contentplatform/ContentPlatformGzhPlanTypeEnum.java
  3. 16 0
      api-module/src/main/java/com/tzld/piaoquan/api/controller/contentplatform/ContentPlatformDatastatController.java
  4. 2 2
      api-module/src/main/java/com/tzld/piaoquan/api/dao/generator/MybatisGeneratorMain.java
  5. 30 0
      api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/contentplatform/ContentPlatformGzhPushDataStatMapper.java
  6. 30 0
      api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/contentplatform/ContentPlatformGzhPushDataStatTotalMapper.java
  7. 22 0
      api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/contentplatform/ext/ContentPlatformDataStatMapperExt.java
  8. 147 0
      api-module/src/main/java/com/tzld/piaoquan/api/job/contentplatform/ContentPlatformDatastatJob.java
  9. 1 1
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/contentplatform/GzhDatastatListParam.java
  10. 1 1
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/contentplatform/GzhPlanListParam.java
  11. 1 1
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/contentplatform/GzhPlanSaveParam.java
  12. 1 1
      api-module/src/main/java/com/tzld/piaoquan/api/model/param/contentplatform/VideoContentListParam.java
  13. 90 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/contentplatform/ContentPlatformGzhPushDataStat.java
  14. 641 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/contentplatform/ContentPlatformGzhPushDataStatExample.java
  15. 112 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/contentplatform/ContentPlatformGzhPushDataStatTotal.java
  16. 771 0
      api-module/src/main/java/com/tzld/piaoquan/api/model/po/contentplatform/ContentPlatformGzhPushDataStatTotalExample.java
  17. 60 1
      api-module/src/main/java/com/tzld/piaoquan/api/service/contentplatform/impl/ContentPlatformDatastatServiceImpl.java
  18. 10 1
      api-module/src/main/java/com/tzld/piaoquan/api/service/contentplatform/impl/ContentPlatformPlanServiceImpl.java
  19. 246 0
      api-module/src/main/resources/mapper/contentplatform/ContentPlatformGzhPushDataStatMapper.xml
  20. 279 0
      api-module/src/main/resources/mapper/contentplatform/ContentPlatformGzhPushDataStatTotalMapper.xml
  21. 69 1
      api-module/src/main/resources/mapper/contentplatform/ext/ContentPlatformDataStatMapperExt.xml
  22. 2 0
      api-module/src/main/resources/mybatis-api-contentPlatform-generator-config.xml
  23. 2 0
      api-module/src/test/java/com/tzld/piaoquan/api/ContentPlatformTest.java

+ 1 - 0
api-module/src/main/java/com/tzld/piaoquan/api/common/enums/contentplatform/BussinessTypeEnum.java

@@ -8,6 +8,7 @@ import java.util.Objects;
 public enum BussinessTypeEnum {
     GZH_AUTO_REPLY("gzh_autoReply", "gongzhonghaozidonghuifu", "公众号自动回复"),
     FWH_PUSH("fwh_push", "fuwuhaodaiyunying", "服务号推送"),
+    GZH_PUSH("gzh_push", "gongzhonghaotuisong", "公众号推送"),
     QW("qw", "qiweihezuo", "企微"),
 
     ;

+ 1 - 0
api-module/src/main/java/com/tzld/piaoquan/api/common/enums/contentplatform/ContentPlatformGzhPlanTypeEnum.java

@@ -6,6 +6,7 @@ import lombok.Getter;
 public enum ContentPlatformGzhPlanTypeEnum {
     AUTO_REPLY(0, "自动回复"),
     FWH_PUSH(1, "服务号推送"),
+    GZH_PUSH(2, "公众号推送"),
 
     other(999, "其他");
 

+ 16 - 0
api-module/src/main/java/com/tzld/piaoquan/api/controller/contentplatform/ContentPlatformDatastatController.java

@@ -88,6 +88,22 @@ public class ContentPlatformDatastatController {
         return CommonResponse.success();
     }
 
+    @ApiOperation(value = "公众号推送总计数据统计同步任务", hidden = true)
+    @GetMapping("/job/syncGzhPushDatastatTotal")
+    @JwtIgnore
+    public CommonResponse<String> syncContentPlatformGzhPushDatastatTotalJob(String dateStr) {
+        job.syncContentPlatformGzhPushDatastatTotalJob(dateStr);
+        return CommonResponse.success();
+    }
+
+    @ApiOperation(value = "公众号推送分账号数据统计同步任务", hidden = true)
+    @GetMapping("/job/syncGzhPushDatastat")
+    @JwtIgnore
+    public CommonResponse<String> syncContentPlatformGzhPushDatastatJob(String dateStr) {
+        job.syncContentPlatformGzhPushDatastatJob(dateStr);
+        return CommonResponse.success();
+    }
+
     @ApiOperation(value = "企微数据统计同步任务", hidden = true)
     @GetMapping("/job/syncQwDatastat")
     @JwtIgnore

+ 2 - 2
api-module/src/main/java/com/tzld/piaoquan/api/dao/generator/MybatisGeneratorMain.java

@@ -22,8 +22,8 @@ public class MybatisGeneratorMain {
 
         //File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-generator-config.xml").getFile());
 //        File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-api-generator-config.xml").getFile());
-//        File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-api-contentPlatform-generator-config.xml").getFile());
-        File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-api-wecomThirdpart-generator-config.xml").getFile());
+        File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-api-contentPlatform-generator-config.xml").getFile());
+//        File configFile = new File(MybatisGeneratorMain.class.getResource("/mybatis-api-wecomThirdpart-generator-config.xml").getFile());
         ConfigurationParser cp = new ConfigurationParser(warnings);
         Configuration config = cp.parseConfiguration(configFile);
         DefaultShellCallback callback = new DefaultShellCallback(true);

+ 30 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/contentplatform/ContentPlatformGzhPushDataStatMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.api.dao.mapper.contentplatform;
+
+import com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStat;
+import com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface ContentPlatformGzhPushDataStatMapper {
+    long countByExample(ContentPlatformGzhPushDataStatExample example);
+
+    int deleteByExample(ContentPlatformGzhPushDataStatExample example);
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(ContentPlatformGzhPushDataStat record);
+
+    int insertSelective(ContentPlatformGzhPushDataStat record);
+
+    List<ContentPlatformGzhPushDataStat> selectByExample(ContentPlatformGzhPushDataStatExample example);
+
+    ContentPlatformGzhPushDataStat selectByPrimaryKey(Long id);
+
+    int updateByExampleSelective(@Param("record") ContentPlatformGzhPushDataStat record, @Param("example") ContentPlatformGzhPushDataStatExample example);
+
+    int updateByExample(@Param("record") ContentPlatformGzhPushDataStat record, @Param("example") ContentPlatformGzhPushDataStatExample example);
+
+    int updateByPrimaryKeySelective(ContentPlatformGzhPushDataStat record);
+
+    int updateByPrimaryKey(ContentPlatformGzhPushDataStat record);
+}

+ 30 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/contentplatform/ContentPlatformGzhPushDataStatTotalMapper.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.api.dao.mapper.contentplatform;
+
+import com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatTotal;
+import com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatTotalExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface ContentPlatformGzhPushDataStatTotalMapper {
+    long countByExample(ContentPlatformGzhPushDataStatTotalExample example);
+
+    int deleteByExample(ContentPlatformGzhPushDataStatTotalExample example);
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(ContentPlatformGzhPushDataStatTotal record);
+
+    int insertSelective(ContentPlatformGzhPushDataStatTotal record);
+
+    List<ContentPlatformGzhPushDataStatTotal> selectByExample(ContentPlatformGzhPushDataStatTotalExample example);
+
+    ContentPlatformGzhPushDataStatTotal selectByPrimaryKey(Long id);
+
+    int updateByExampleSelective(@Param("record") ContentPlatformGzhPushDataStatTotal record, @Param("example") ContentPlatformGzhPushDataStatTotalExample example);
+
+    int updateByExample(@Param("record") ContentPlatformGzhPushDataStatTotal record, @Param("example") ContentPlatformGzhPushDataStatTotalExample example);
+
+    int updateByPrimaryKeySelective(ContentPlatformGzhPushDataStatTotal record);
+
+    int updateByPrimaryKey(ContentPlatformGzhPushDataStatTotal record);
+}

+ 22 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/contentplatform/ext/ContentPlatformDataStatMapperExt.java

@@ -44,6 +44,20 @@ public interface ContentPlatformDataStatMapperExt {
                                                                   @Param("offset") int offset,
                                                                   @Param("pageSize") Integer pageSize);
 
+    int getGzhPushTotalDatastatCount(@Param("param") GzhDatastatListParam param, @Param("createAccountId") Long createAccountId);
+
+    List<ContentPlatformGzhPushDataStatTotal> getGzhPushTotalDatastatList(@Param("param") GzhDatastatListParam param,
+                                                                      @Param("createAccountId") Long createAccountId,
+                                                                      @Param("offset") int offset,
+                                                                      @Param("pageSize") Integer pageSize);
+
+    int getGzhPushAccountDatastatCount(@Param("param") GzhDatastatListParam param, @Param("createAccountId") Long createAccountId);
+
+    List<ContentPlatformGzhDataStat> getGzhPushAccountDatastatList(@Param("param") GzhDatastatListParam param,
+                                                                  @Param("createAccountId") Long createAccountId,
+                                                                  @Param("offset") int offset,
+                                                                  @Param("pageSize") Integer pageSize);
+
     Integer getQwRootSourceIdDatastatCount(@Param("param") QwDatastatListParam param, @Param("createAccountId") Long createAccountId);
 
     List<ContentPlatformQwDataStat> getQwRootSourceIdDatastatList(@Param("param") QwDatastatListParam param,
@@ -107,6 +121,10 @@ public interface ContentPlatformDataStatMapperExt {
 
     void batchInsertQwDatastatSubChannel(@Param("records") List<ContentPlatformQwDataStatSubChannel> saveList);
 
+    void batchInsertGzhPushDatastat(@Param("records") List<ContentPlatformGzhPushDataStat> saveList);
+
+    void batchInsertGzhPushDatastatTotal(@Param("records") List<ContentPlatformGzhPushDataStatTotal> saveList);
+
     List<ContentPlatformQwDataStatTotal> getQwTotalDatastatScoreList(@Param("dt") String dt, @Param("channels") List<String> channels);
 
     List<ContentPlatformQwDataStatReplyTotal> getQwTotalDatastatReplyScoreList(@Param("dt") String dt, @Param("channels") List<String> channels);
@@ -128,4 +146,8 @@ public interface ContentPlatformDataStatMapperExt {
     void deleteFwhDatastatTotal(@Param("dt") String dt);
 
     void deleteGzhVideoDatastat(@Param("dt") String dt);
+
+    void deleteGzhPushDatastat(@Param("dt") String dt);
+
+    void deleteGzhPushDatastatTotal(@Param("dt") String dt);
 }

+ 147 - 0
api-module/src/main/java/com/tzld/piaoquan/api/job/contentplatform/ContentPlatformDatastatJob.java

@@ -408,6 +408,153 @@ public class ContentPlatformDatastatJob {
         return ReturnT.SUCCESS;
     }
 
+    @XxlJob("syncContentPlatformGzhPushDatastatJob")
+    public ReturnT<String> syncContentPlatformGzhPushDatastatJob(String param) {
+        String dt = DateUtil.getBeforeDayDateString("yyyyMMdd");
+        if (StringUtils.hasText(param)) {
+            dt = param;
+        }
+        Long now = System.currentTimeMillis();
+        // 公众号自动回复数据统计
+        String sql = String.format(
+                "SELECT first_level.subchannel, first_level.first_uv, fission.split_uv " +
+                "FROM loghubods.out_channel_mid_first_total first_level " +
+                "left join loghubods.out_channel_mid_split_total fission " +
+                "on first_level.subchannel = fission.subchannel and first_level.dt = fission.dt " +
+                "and first_level.type = fission.type and first_level.tag = fission.tag " +
+                "WHERE first_level.dt = %s and first_level.type = '公众号推送' and first_level.tag = '分投放渠道客户分账号去重' ;", dt);
+        List<Record> dataList = OdpsUtil.getOdpsData(sql);
+        // 所有公众号
+        List<ContentPlatformGzhAccount> accountList = getAllGzhAccount();
+        Map<String, ContentPlatformGzhAccount> accountMap = accountList.stream()
+                .collect(Collectors.toMap(ContentPlatformGzhAccount::getGhId, account -> account));
+        List<String> ghIds = accountList.stream().map(ContentPlatformGzhAccount::getGhId).collect(Collectors.toList());
+        List<String> accountExternalIds = accountList.stream().map(ContentPlatformGzhAccount::getExternalId)
+                .collect(Collectors.toList());
+        String dateStr = dt.substring(0, 4) + "-" + dt.substring(4, 6) + "-" + dt.substring(6, 8);
+        List<WxAccountDatastatVO> wxAccountDatastatVOList = aigcApiService.getWxAccountDatastat(dateStr, accountExternalIds);
+        Map<String, WxAccountDatastatVO> wxAccountDatastatMap = wxAccountDatastatVOList.stream()
+                .collect(Collectors.toMap(WxAccountDatastatVO::getAccountId, wxAccountDatastatVO -> wxAccountDatastatVO));
+        if (CollectionUtils.isNotEmpty(dataList)) {
+            List<ContentPlatformGzhPushDataStat> saveList = new ArrayList<>();
+            for (Record record : dataList) {
+                ContentPlatformGzhPushDataStat item = new ContentPlatformGzhPushDataStat();
+                String ghId = (String) record.get(0);
+                int firstLevelCount = Integer.parseInt((String) record.get(1));
+                Integer fissionCount = parseInteger(record.get(2));
+                item.setDateStr(dt);
+                if (!ghIds.contains(ghId)) {
+                    continue;
+                }
+                ContentPlatformGzhAccount gzhAccount = accountMap.get(ghId);
+                item.setAccountId(gzhAccount.getId());
+                item.setFirstLevelCount(firstLevelCount);
+                WxAccountDatastatVO wxAccountDatastatVO = wxAccountDatastatMap.get(gzhAccount.getExternalId());
+                if (Objects.nonNull(wxAccountDatastatVO)) {
+                    item.setFansIncreaseCount(wxAccountDatastatVO.getFansIncreaseCount());
+                }
+
+                if (fissionCount > 0 && firstLevelCount > 0) {
+                    BigDecimal num = BigDecimal.valueOf(fissionCount.doubleValue() * 10 / firstLevelCount);
+                    BigDecimal rounded = num.setScale(2, RoundingMode.HALF_UP);
+                    item.setScore(rounded.doubleValue());
+                }
+                item.setCreateTimestamp(now);
+                saveList.add(item);
+            }
+            if (CollectionUtils.isNotEmpty(saveList)) {
+                dataStatMapperExt.deleteGzhPushDatastat(dt);
+                dataStatMapperExt.batchInsertGzhPushDatastat(saveList);
+            }
+        }
+        return ReturnT.SUCCESS;
+    }
+
+    @XxlJob("syncContentPlatformGzhPushDatastatTotalJob")
+    public ReturnT<String> syncContentPlatformGzhPushDatastatTotalJob(String param) {
+        String dt = DateUtil.getBeforeDayDateString("yyyyMMdd");
+        if (StringUtils.hasText(param)) {
+            dt = param;
+        }
+        Long now = System.currentTimeMillis();
+        // 公众号自动回复数据统计
+        String sql = String.format(
+                "SELECT first_level.channel_shortname, first_level.first_uv, fission.split_uv, price.arpu " +
+                "FROM loghubods.out_channel_mid_first_total first_level " +
+                "left join loghubods.out_channel_mid_split_total fission " +
+                "on first_level.channel_shortname = fission.channel_shortname and first_level.dt = fission.dt " +
+                "and first_level.type = fission.type and first_level.tag = fission.tag " +
+                "left join loghubods.wecom_cooperation_dynamic_unit_price price " +
+                "on first_level.channel_shortname = price.channel_shortname and first_level.dt = price.dt " +
+                "and first_level.type = price.type and first_level.tag = price.tag " +
+                "WHERE first_level.dt = %s and first_level.type = '公众号推送' and first_level.tag = '投放渠道内去重' ;", dt);
+        List<Record> dataList = OdpsUtil.getOdpsData(sql);
+        // 所有公众号
+        List<ContentPlatformAccount> accountList = getAllAccount();
+        Map<String, ContentPlatformAccount> accountMap = accountList.stream()
+                .collect(Collectors.toMap(ContentPlatformAccount::getChannel, account -> account));
+        List<ContentPlatformGzhAccount> gzhAccountList = getAllGzhAccount();
+        Map<Long, List<ContentPlatformGzhAccount>> gzhAccountMap = gzhAccountList.stream()
+                .collect(Collectors.groupingBy(ContentPlatformGzhAccount::getCreateAccountId));
+        List<String> accountExternalIds = gzhAccountList.stream().map(ContentPlatformGzhAccount::getExternalId)
+                .collect(Collectors.toList());
+        String dateStr = dt.substring(0, 4) + "-" + dt.substring(4, 6) + "-" + dt.substring(6, 8);
+        List<WxAccountDatastatVO> wxAccountDatastatVOList = aigcApiService.getWxAccountDatastat(dateStr, accountExternalIds);
+        Map<String, WxAccountDatastatVO> wxAccountDatastatMap = wxAccountDatastatVOList.stream()
+                .collect(Collectors.toMap(WxAccountDatastatVO::getAccountId, wxAccountDatastatVO -> wxAccountDatastatVO));
+        if (CollectionUtils.isNotEmpty(dataList)) {
+            List<ContentPlatformGzhPushDataStatTotal> saveList = new ArrayList<>();
+            for (Record record : dataList) {
+                ContentPlatformGzhPushDataStatTotal item = new ContentPlatformGzhPushDataStatTotal();
+                String channel = record.getString(0);
+                int firstLevelCount = Integer.parseInt((String) record.get(1));
+                Integer fissionCount = parseInteger(record.get(2));
+                Double arpu = parseDouble(record.get(3));
+                item.setDateStr(dt);
+                item.setChannel(channel);
+                item.setFirstLevelCount(firstLevelCount);
+                ContentPlatformAccount account = accountMap.get(channel);
+                if (Objects.isNull(account)) {
+                    continue;
+                }
+                List<ContentPlatformGzhAccount> gzhAccounts = gzhAccountMap.get(account.getId());
+                int fansIncreaseCount = 0;
+                if (CollectionUtils.isNotEmpty(gzhAccounts)) {
+                    for (ContentPlatformGzhAccount gzhAccount : gzhAccounts) {
+                        WxAccountDatastatVO wxAccountDatastatVO = wxAccountDatastatMap.get(gzhAccount.getExternalId());
+                        if (Objects.nonNull(wxAccountDatastatVO)) {
+                            fansIncreaseCount += wxAccountDatastatVO.getFansIncreaseCount();
+                        }
+                    }
+                }
+                item.setFansIncreaseCount(fansIncreaseCount);
+
+                if (fissionCount > 0 && firstLevelCount > 0) {
+                    BigDecimal fissionRate = BigDecimal.valueOf(fissionCount.doubleValue() / firstLevelCount);
+                    BigDecimal rounded = fissionRate.multiply(new BigDecimal(10)).setScale(2, RoundingMode.HALF_UP);
+                    item.setScore(rounded.doubleValue());
+                    BigDecimal unitPrice = getUnitPrice(account.getPrice(), fissionRate, arpu, BussinessTypeEnum.GZH_PUSH);
+                    if (Objects.nonNull(unitPrice)) {
+                        item.setUnitPrice(unitPrice.doubleValue());
+                        BigDecimal settlementAmount = unitPrice.multiply(new BigDecimal(firstLevelCount)).setScale(2, RoundingMode.HALF_UP);
+                        item.setSettlementAmount(settlementAmount.doubleValue());
+                    }
+                } else {
+                    item.setScore(0.0);
+                    item.setUnitPrice(0.1);
+                    item.setSettlementAmount(0.0);
+                }
+                item.setCreateTimestamp(now);
+                saveList.add(item);
+            }
+            if (CollectionUtils.isNotEmpty(saveList)) {
+                dataStatMapperExt.deleteGzhPushDatastatTotal(dt);
+                dataStatMapperExt.batchInsertGzhPushDatastatTotal(saveList);
+            }
+        }
+        return ReturnT.SUCCESS;
+    }
+
     private List<ContentPlatformAccount> getAllAccount() {
         ContentPlatformAccountExample example = new ContentPlatformAccountExample();
         example.createCriteria().andStatusEqualTo(1);

+ 1 - 1
api-module/src/main/java/com/tzld/piaoquan/api/model/param/contentplatform/GzhDatastatListParam.java

@@ -7,7 +7,7 @@ import lombok.Data;
 @Data
 public class GzhDatastatListParam extends PageParam {
 
-    @ApiModelProperty(value = "0-自动回复总计 1-自动回复分账号 2-服务号总计 3-服务号分账号 4-自动回复分账号分视频")
+    @ApiModelProperty(value = "0-自动回复总计 1-自动回复分账号 2-服务号总计 3-服务号分账号 4-自动回复分账号分视频 5-公众号推送总计 6-公众号推送分账号")
     private Integer type;
 
     @ApiModelProperty(value = "公众号id")

+ 1 - 1
api-module/src/main/java/com/tzld/piaoquan/api/model/param/contentplatform/GzhPlanListParam.java

@@ -13,7 +13,7 @@ public class GzhPlanListParam extends PageParam {
     @ApiModelProperty(value = "标题")
     private String title;
 
-    @ApiModelProperty(value = "发布计划类型 0-自动回复、1-服务号推送")
+    @ApiModelProperty(value = "发布计划类型 0-自动回复、1-服务号推送、2-公众号推送")
     private Integer type;
 
     @ApiModelProperty(value = "发布方:0-平台发布 1-用户发布")

+ 1 - 1
api-module/src/main/java/com/tzld/piaoquan/api/model/param/contentplatform/GzhPlanSaveParam.java

@@ -14,7 +14,7 @@ public class GzhPlanSaveParam {
     @ApiModelProperty(value = "公众号id")
     private Long accountId;
 
-    @ApiModelProperty(value = "发布计划类型 0-自动回复、1-服务号推送")
+    @ApiModelProperty(value = "发布计划类型 0-自动回复、1-服务号推送、2-公众号推送")
     private Integer type;
 
     @ApiModelProperty(value = "发布场景 0-关注回复")

+ 1 - 1
api-module/src/main/java/com/tzld/piaoquan/api/model/param/contentplatform/VideoContentListParam.java

@@ -13,7 +13,7 @@ public class VideoContentListParam extends PageParam {
     @ApiModelProperty(value = "品类")
     private String category;
 
-    @ApiModelProperty(value = "排序 0-自动回复、1-服务号推送、2-企微-社群、3-企微-自动回复")
+    @ApiModelProperty(value = "排序 0-自动回复、1-服务号推送、2-企微-社群、3-企微-自动回复、4-公众号推送")
     private Integer type = 999;
 
     @ApiModelProperty(value = "排序 0-平台推荐 1-行业裂变率 2-本渠道裂变率")

+ 90 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/contentplatform/ContentPlatformGzhPushDataStat.java

@@ -0,0 +1,90 @@
+package com.tzld.piaoquan.api.model.po.contentplatform;
+
+public class ContentPlatformGzhPushDataStat {
+    private Long id;
+
+    private String dateStr;
+
+    private Long accountId;
+
+    private Integer fansIncreaseCount;
+
+    private Integer firstLevelCount;
+
+    private Double score;
+
+    private Long createTimestamp;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getDateStr() {
+        return dateStr;
+    }
+
+    public void setDateStr(String dateStr) {
+        this.dateStr = dateStr;
+    }
+
+    public Long getAccountId() {
+        return accountId;
+    }
+
+    public void setAccountId(Long accountId) {
+        this.accountId = accountId;
+    }
+
+    public Integer getFansIncreaseCount() {
+        return fansIncreaseCount;
+    }
+
+    public void setFansIncreaseCount(Integer fansIncreaseCount) {
+        this.fansIncreaseCount = fansIncreaseCount;
+    }
+
+    public Integer getFirstLevelCount() {
+        return firstLevelCount;
+    }
+
+    public void setFirstLevelCount(Integer firstLevelCount) {
+        this.firstLevelCount = firstLevelCount;
+    }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+    }
+
+    public Long getCreateTimestamp() {
+        return createTimestamp;
+    }
+
+    public void setCreateTimestamp(Long createTimestamp) {
+        this.createTimestamp = createTimestamp;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", dateStr=").append(dateStr);
+        sb.append(", accountId=").append(accountId);
+        sb.append(", fansIncreaseCount=").append(fansIncreaseCount);
+        sb.append(", firstLevelCount=").append(firstLevelCount);
+        sb.append(", score=").append(score);
+        sb.append(", createTimestamp=").append(createTimestamp);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 641 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/contentplatform/ContentPlatformGzhPushDataStatExample.java

@@ -0,0 +1,641 @@
+package com.tzld.piaoquan.api.model.po.contentplatform;
+
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ContentPlatformGzhPushDataStatExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public ContentPlatformGzhPushDataStatExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Long value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Long value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Long value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Long value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Long value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Long> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Long> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Long value1, Long value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Long value1, Long value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrIsNull() {
+            addCriterion("date_str is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrIsNotNull() {
+            addCriterion("date_str is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrEqualTo(String value) {
+            addCriterion("date_str =", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrNotEqualTo(String value) {
+            addCriterion("date_str <>", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrGreaterThan(String value) {
+            addCriterion("date_str >", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrGreaterThanOrEqualTo(String value) {
+            addCriterion("date_str >=", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrLessThan(String value) {
+            addCriterion("date_str <", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrLessThanOrEqualTo(String value) {
+            addCriterion("date_str <=", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrLike(String value) {
+            addCriterion("date_str like", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrNotLike(String value) {
+            addCriterion("date_str not like", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrIn(List<String> values) {
+            addCriterion("date_str in", values, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrNotIn(List<String> values) {
+            addCriterion("date_str not in", values, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrBetween(String value1, String value2) {
+            addCriterion("date_str between", value1, value2, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrNotBetween(String value1, String value2) {
+            addCriterion("date_str not between", value1, value2, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdIsNull() {
+            addCriterion("account_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdIsNotNull() {
+            addCriterion("account_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdEqualTo(Long value) {
+            addCriterion("account_id =", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdNotEqualTo(Long value) {
+            addCriterion("account_id <>", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdGreaterThan(Long value) {
+            addCriterion("account_id >", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("account_id >=", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdLessThan(Long value) {
+            addCriterion("account_id <", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdLessThanOrEqualTo(Long value) {
+            addCriterion("account_id <=", value, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdIn(List<Long> values) {
+            addCriterion("account_id in", values, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdNotIn(List<Long> values) {
+            addCriterion("account_id not in", values, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdBetween(Long value1, Long value2) {
+            addCriterion("account_id between", value1, value2, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccountIdNotBetween(Long value1, Long value2) {
+            addCriterion("account_id not between", value1, value2, "accountId");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountIsNull() {
+            addCriterion("fans_increase_count is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountIsNotNull() {
+            addCriterion("fans_increase_count is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountEqualTo(Integer value) {
+            addCriterion("fans_increase_count =", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountNotEqualTo(Integer value) {
+            addCriterion("fans_increase_count <>", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountGreaterThan(Integer value) {
+            addCriterion("fans_increase_count >", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountGreaterThanOrEqualTo(Integer value) {
+            addCriterion("fans_increase_count >=", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountLessThan(Integer value) {
+            addCriterion("fans_increase_count <", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountLessThanOrEqualTo(Integer value) {
+            addCriterion("fans_increase_count <=", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountIn(List<Integer> values) {
+            addCriterion("fans_increase_count in", values, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountNotIn(List<Integer> values) {
+            addCriterion("fans_increase_count not in", values, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountBetween(Integer value1, Integer value2) {
+            addCriterion("fans_increase_count between", value1, value2, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountNotBetween(Integer value1, Integer value2) {
+            addCriterion("fans_increase_count not between", value1, value2, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountIsNull() {
+            addCriterion("first_level_count is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountIsNotNull() {
+            addCriterion("first_level_count is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountEqualTo(Integer value) {
+            addCriterion("first_level_count =", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountNotEqualTo(Integer value) {
+            addCriterion("first_level_count <>", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountGreaterThan(Integer value) {
+            addCriterion("first_level_count >", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountGreaterThanOrEqualTo(Integer value) {
+            addCriterion("first_level_count >=", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountLessThan(Integer value) {
+            addCriterion("first_level_count <", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountLessThanOrEqualTo(Integer value) {
+            addCriterion("first_level_count <=", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountIn(List<Integer> values) {
+            addCriterion("first_level_count in", values, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountNotIn(List<Integer> values) {
+            addCriterion("first_level_count not in", values, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountBetween(Integer value1, Integer value2) {
+            addCriterion("first_level_count between", value1, value2, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountNotBetween(Integer value1, Integer value2) {
+            addCriterion("first_level_count not between", value1, value2, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIsNull() {
+            addCriterion("score is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIsNotNull() {
+            addCriterion("score is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreEqualTo(Double value) {
+            addCriterion("score =", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotEqualTo(Double value) {
+            addCriterion("score <>", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreGreaterThan(Double value) {
+            addCriterion("score >", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreGreaterThanOrEqualTo(Double value) {
+            addCriterion("score >=", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreLessThan(Double value) {
+            addCriterion("score <", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreLessThanOrEqualTo(Double value) {
+            addCriterion("score <=", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIn(List<Double> values) {
+            addCriterion("score in", values, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotIn(List<Double> values) {
+            addCriterion("score not in", values, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreBetween(Double value1, Double value2) {
+            addCriterion("score between", value1, value2, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotBetween(Double value1, Double value2) {
+            addCriterion("score not between", value1, value2, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIsNull() {
+            addCriterion("create_timestamp is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIsNotNull() {
+            addCriterion("create_timestamp is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampEqualTo(Long value) {
+            addCriterion("create_timestamp =", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotEqualTo(Long value) {
+            addCriterion("create_timestamp <>", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampGreaterThan(Long value) {
+            addCriterion("create_timestamp >", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampGreaterThanOrEqualTo(Long value) {
+            addCriterion("create_timestamp >=", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampLessThan(Long value) {
+            addCriterion("create_timestamp <", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampLessThanOrEqualTo(Long value) {
+            addCriterion("create_timestamp <=", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIn(List<Long> values) {
+            addCriterion("create_timestamp in", values, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotIn(List<Long> values) {
+            addCriterion("create_timestamp not in", values, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampBetween(Long value1, Long value2) {
+            addCriterion("create_timestamp between", value1, value2, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotBetween(Long value1, Long value2) {
+            addCriterion("create_timestamp not between", value1, value2, "createTimestamp");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 112 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/contentplatform/ContentPlatformGzhPushDataStatTotal.java

@@ -0,0 +1,112 @@
+package com.tzld.piaoquan.api.model.po.contentplatform;
+
+public class ContentPlatformGzhPushDataStatTotal {
+    private Long id;
+
+    private String dateStr;
+
+    private String channel;
+
+    private Integer fansIncreaseCount;
+
+    private Integer firstLevelCount;
+
+    private Double score;
+
+    private Double unitPrice;
+
+    private Double settlementAmount;
+
+    private Long createTimestamp;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getDateStr() {
+        return dateStr;
+    }
+
+    public void setDateStr(String dateStr) {
+        this.dateStr = dateStr;
+    }
+
+    public String getChannel() {
+        return channel;
+    }
+
+    public void setChannel(String channel) {
+        this.channel = channel;
+    }
+
+    public Integer getFansIncreaseCount() {
+        return fansIncreaseCount;
+    }
+
+    public void setFansIncreaseCount(Integer fansIncreaseCount) {
+        this.fansIncreaseCount = fansIncreaseCount;
+    }
+
+    public Integer getFirstLevelCount() {
+        return firstLevelCount;
+    }
+
+    public void setFirstLevelCount(Integer firstLevelCount) {
+        this.firstLevelCount = firstLevelCount;
+    }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+    }
+
+    public Double getUnitPrice() {
+        return unitPrice;
+    }
+
+    public void setUnitPrice(Double unitPrice) {
+        this.unitPrice = unitPrice;
+    }
+
+    public Double getSettlementAmount() {
+        return settlementAmount;
+    }
+
+    public void setSettlementAmount(Double settlementAmount) {
+        this.settlementAmount = settlementAmount;
+    }
+
+    public Long getCreateTimestamp() {
+        return createTimestamp;
+    }
+
+    public void setCreateTimestamp(Long createTimestamp) {
+        this.createTimestamp = createTimestamp;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", dateStr=").append(dateStr);
+        sb.append(", channel=").append(channel);
+        sb.append(", fansIncreaseCount=").append(fansIncreaseCount);
+        sb.append(", firstLevelCount=").append(firstLevelCount);
+        sb.append(", score=").append(score);
+        sb.append(", unitPrice=").append(unitPrice);
+        sb.append(", settlementAmount=").append(settlementAmount);
+        sb.append(", createTimestamp=").append(createTimestamp);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 771 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/po/contentplatform/ContentPlatformGzhPushDataStatTotalExample.java

@@ -0,0 +1,771 @@
+package com.tzld.piaoquan.api.model.po.contentplatform;
+
+import com.tzld.piaoquan.growth.common.utils.page.Page;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ContentPlatformGzhPushDataStatTotalExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    protected Page page;
+
+    public ContentPlatformGzhPushDataStatTotalExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    public void setPage(Page page) {
+        this.page=page;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Long value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Long value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Long value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Long value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Long value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Long> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Long> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Long value1, Long value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Long value1, Long value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrIsNull() {
+            addCriterion("date_str is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrIsNotNull() {
+            addCriterion("date_str is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrEqualTo(String value) {
+            addCriterion("date_str =", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrNotEqualTo(String value) {
+            addCriterion("date_str <>", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrGreaterThan(String value) {
+            addCriterion("date_str >", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrGreaterThanOrEqualTo(String value) {
+            addCriterion("date_str >=", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrLessThan(String value) {
+            addCriterion("date_str <", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrLessThanOrEqualTo(String value) {
+            addCriterion("date_str <=", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrLike(String value) {
+            addCriterion("date_str like", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrNotLike(String value) {
+            addCriterion("date_str not like", value, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrIn(List<String> values) {
+            addCriterion("date_str in", values, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrNotIn(List<String> values) {
+            addCriterion("date_str not in", values, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrBetween(String value1, String value2) {
+            addCriterion("date_str between", value1, value2, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andDateStrNotBetween(String value1, String value2) {
+            addCriterion("date_str not between", value1, value2, "dateStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIsNull() {
+            addCriterion("channel is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIsNotNull() {
+            addCriterion("channel is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelEqualTo(String value) {
+            addCriterion("channel =", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotEqualTo(String value) {
+            addCriterion("channel <>", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelGreaterThan(String value) {
+            addCriterion("channel >", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelGreaterThanOrEqualTo(String value) {
+            addCriterion("channel >=", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelLessThan(String value) {
+            addCriterion("channel <", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelLessThanOrEqualTo(String value) {
+            addCriterion("channel <=", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelLike(String value) {
+            addCriterion("channel like", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotLike(String value) {
+            addCriterion("channel not like", value, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIn(List<String> values) {
+            addCriterion("channel in", values, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotIn(List<String> values) {
+            addCriterion("channel not in", values, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelBetween(String value1, String value2) {
+            addCriterion("channel between", value1, value2, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelNotBetween(String value1, String value2) {
+            addCriterion("channel not between", value1, value2, "channel");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountIsNull() {
+            addCriterion("fans_increase_count is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountIsNotNull() {
+            addCriterion("fans_increase_count is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountEqualTo(Integer value) {
+            addCriterion("fans_increase_count =", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountNotEqualTo(Integer value) {
+            addCriterion("fans_increase_count <>", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountGreaterThan(Integer value) {
+            addCriterion("fans_increase_count >", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountGreaterThanOrEqualTo(Integer value) {
+            addCriterion("fans_increase_count >=", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountLessThan(Integer value) {
+            addCriterion("fans_increase_count <", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountLessThanOrEqualTo(Integer value) {
+            addCriterion("fans_increase_count <=", value, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountIn(List<Integer> values) {
+            addCriterion("fans_increase_count in", values, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountNotIn(List<Integer> values) {
+            addCriterion("fans_increase_count not in", values, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountBetween(Integer value1, Integer value2) {
+            addCriterion("fans_increase_count between", value1, value2, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFansIncreaseCountNotBetween(Integer value1, Integer value2) {
+            addCriterion("fans_increase_count not between", value1, value2, "fansIncreaseCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountIsNull() {
+            addCriterion("first_level_count is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountIsNotNull() {
+            addCriterion("first_level_count is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountEqualTo(Integer value) {
+            addCriterion("first_level_count =", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountNotEqualTo(Integer value) {
+            addCriterion("first_level_count <>", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountGreaterThan(Integer value) {
+            addCriterion("first_level_count >", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountGreaterThanOrEqualTo(Integer value) {
+            addCriterion("first_level_count >=", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountLessThan(Integer value) {
+            addCriterion("first_level_count <", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountLessThanOrEqualTo(Integer value) {
+            addCriterion("first_level_count <=", value, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountIn(List<Integer> values) {
+            addCriterion("first_level_count in", values, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountNotIn(List<Integer> values) {
+            addCriterion("first_level_count not in", values, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountBetween(Integer value1, Integer value2) {
+            addCriterion("first_level_count between", value1, value2, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstLevelCountNotBetween(Integer value1, Integer value2) {
+            addCriterion("first_level_count not between", value1, value2, "firstLevelCount");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIsNull() {
+            addCriterion("score is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIsNotNull() {
+            addCriterion("score is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreEqualTo(Double value) {
+            addCriterion("score =", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotEqualTo(Double value) {
+            addCriterion("score <>", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreGreaterThan(Double value) {
+            addCriterion("score >", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreGreaterThanOrEqualTo(Double value) {
+            addCriterion("score >=", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreLessThan(Double value) {
+            addCriterion("score <", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreLessThanOrEqualTo(Double value) {
+            addCriterion("score <=", value, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreIn(List<Double> values) {
+            addCriterion("score in", values, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotIn(List<Double> values) {
+            addCriterion("score not in", values, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreBetween(Double value1, Double value2) {
+            addCriterion("score between", value1, value2, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andScoreNotBetween(Double value1, Double value2) {
+            addCriterion("score not between", value1, value2, "score");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceIsNull() {
+            addCriterion("unit_price is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceIsNotNull() {
+            addCriterion("unit_price is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceEqualTo(Double value) {
+            addCriterion("unit_price =", value, "unitPrice");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceNotEqualTo(Double value) {
+            addCriterion("unit_price <>", value, "unitPrice");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceGreaterThan(Double value) {
+            addCriterion("unit_price >", value, "unitPrice");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceGreaterThanOrEqualTo(Double value) {
+            addCriterion("unit_price >=", value, "unitPrice");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceLessThan(Double value) {
+            addCriterion("unit_price <", value, "unitPrice");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceLessThanOrEqualTo(Double value) {
+            addCriterion("unit_price <=", value, "unitPrice");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceIn(List<Double> values) {
+            addCriterion("unit_price in", values, "unitPrice");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceNotIn(List<Double> values) {
+            addCriterion("unit_price not in", values, "unitPrice");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceBetween(Double value1, Double value2) {
+            addCriterion("unit_price between", value1, value2, "unitPrice");
+            return (Criteria) this;
+        }
+
+        public Criteria andUnitPriceNotBetween(Double value1, Double value2) {
+            addCriterion("unit_price not between", value1, value2, "unitPrice");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountIsNull() {
+            addCriterion("settlement_amount is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountIsNotNull() {
+            addCriterion("settlement_amount is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountEqualTo(Double value) {
+            addCriterion("settlement_amount =", value, "settlementAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountNotEqualTo(Double value) {
+            addCriterion("settlement_amount <>", value, "settlementAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountGreaterThan(Double value) {
+            addCriterion("settlement_amount >", value, "settlementAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountGreaterThanOrEqualTo(Double value) {
+            addCriterion("settlement_amount >=", value, "settlementAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountLessThan(Double value) {
+            addCriterion("settlement_amount <", value, "settlementAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountLessThanOrEqualTo(Double value) {
+            addCriterion("settlement_amount <=", value, "settlementAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountIn(List<Double> values) {
+            addCriterion("settlement_amount in", values, "settlementAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountNotIn(List<Double> values) {
+            addCriterion("settlement_amount not in", values, "settlementAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountBetween(Double value1, Double value2) {
+            addCriterion("settlement_amount between", value1, value2, "settlementAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andSettlementAmountNotBetween(Double value1, Double value2) {
+            addCriterion("settlement_amount not between", value1, value2, "settlementAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIsNull() {
+            addCriterion("create_timestamp is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIsNotNull() {
+            addCriterion("create_timestamp is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampEqualTo(Long value) {
+            addCriterion("create_timestamp =", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotEqualTo(Long value) {
+            addCriterion("create_timestamp <>", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampGreaterThan(Long value) {
+            addCriterion("create_timestamp >", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampGreaterThanOrEqualTo(Long value) {
+            addCriterion("create_timestamp >=", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampLessThan(Long value) {
+            addCriterion("create_timestamp <", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampLessThanOrEqualTo(Long value) {
+            addCriterion("create_timestamp <=", value, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampIn(List<Long> values) {
+            addCriterion("create_timestamp in", values, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotIn(List<Long> values) {
+            addCriterion("create_timestamp not in", values, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampBetween(Long value1, Long value2) {
+            addCriterion("create_timestamp between", value1, value2, "createTimestamp");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimestampNotBetween(Long value1, Long value2) {
+            addCriterion("create_timestamp not between", value1, value2, "createTimestamp");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 60 - 1
api-module/src/main/java/com/tzld/piaoquan/api/service/contentplatform/impl/ContentPlatformDatastatServiceImpl.java

@@ -49,6 +49,10 @@ public class ContentPlatformDatastatServiceImpl implements ContentPlatformDatast
                 return fwhTotalDatastatList(param);
             case 3:
                 return fwhAccountDatastatList(param);
+            case 5:
+                return gzhPushTotalDatastatList(param);
+            case 6:
+                return gzhPushAccountDatastatList(param);
             default:
                 return gzhAccountDatastatList(param);
         }
@@ -237,6 +241,61 @@ public class ContentPlatformDatastatServiceImpl implements ContentPlatformDatast
         return result;
     }
 
+    private Page<GzhDatastatItemVO> gzhPushAccountDatastatList(GzhDatastatListParam param) {
+        ContentPlatformAccount user = LoginUserContext.getUser();
+        Page<GzhDatastatItemVO> result = new Page<>(param.getPageNum(), param.getPageSize());
+        int offset = (param.getPageNum() - 1) * param.getPageSize();
+        int count = dataStatMapperExt.getGzhPushTotalDatastatCount(param, user.getId());
+        result.setTotalSize(count);
+        if (count == 0) {
+            return result;
+        }
+        List<ContentPlatformGzhPushDataStatTotal> datastatList = dataStatMapperExt.getGzhPushTotalDatastatList(param,
+                user.getId(), offset, param.getPageSize());
+        List<GzhDatastatItemVO> list = buildGzhPushDatastatTotalItemVOList(datastatList);
+        result.setObjs(list);
+        return result;
+    }
+
+    private List<GzhDatastatItemVO> buildGzhPushDatastatTotalItemVOList(List<ContentPlatformGzhPushDataStatTotal> datastatList) {
+        if (CollectionUtils.isEmpty(datastatList)) {
+            return null;
+        }
+        List<GzhDatastatItemVO> result = new ArrayList<>();
+        for (ContentPlatformGzhPushDataStatTotal datastat : datastatList) {
+            GzhDatastatItemVO vo = new GzhDatastatItemVO();
+            vo.setDateStr(datastat.getDateStr());
+            vo.setFansIncreaseCount(datastat.getFansIncreaseCount());
+            vo.setFirstLevel(datastat.getFirstLevelCount());
+            vo.setScore(datastat.getScore());
+            vo.setUnitPrice(datastat.getUnitPrice());
+            vo.setSettlementAmount(datastat.getSettlementAmount());
+            if (Objects.nonNull(vo.getFansIncreaseCount()) && vo.getFansIncreaseCount() > 0) {
+                BigDecimal num = BigDecimal.valueOf(vo.getFirstLevel() / (double) vo.getFansIncreaseCount());
+                BigDecimal rounded = num.setScale(3, RoundingMode.HALF_UP);
+                vo.setOpenRate(rounded.doubleValue());
+            }
+            result.add(vo);
+        }
+        return result;
+    }
+
+    private Page<GzhDatastatItemVO> gzhPushTotalDatastatList(GzhDatastatListParam param) {
+        ContentPlatformAccount user = LoginUserContext.getUser();
+        Page<GzhDatastatItemVO> result = new Page<>(param.getPageNum(), param.getPageSize());
+        int offset = (param.getPageNum() - 1) * param.getPageSize();
+        int count = dataStatMapperExt.getGzhPushAccountDatastatCount(param, user.getId());
+        result.setTotalSize(count);
+        if (count == 0) {
+            return result;
+        }
+        List<ContentPlatformGzhDataStat> datastatList = dataStatMapperExt.getGzhPushAccountDatastatList(param,
+                user.getId(), offset, param.getPageSize());
+        List<GzhDatastatItemVO> list = buildGzhDatastatItemVOList(param.getType(), datastatList);
+        result.setObjs(list);
+        return result;
+    }
+
     @Override
     public Page<QwDatastatItemVO> qwDatastatList(QwDatastatListParam param) {
         switch (param.getType()) {
@@ -406,7 +465,7 @@ public class ContentPlatformDatastatServiceImpl implements ContentPlatformDatast
         param.setPageSize(10000);
         Page<GzhDatastatItemVO> pageResult = gzhDatastatList(param);
         List<GzhDatastatItemVO> dataList = pageResult.getObjs();
-        if (param.getType() == 1 || param.getType() == 3) {
+        if (param.getType() == 1 || param.getType() == 3 || param.getType() == 6) {
             return generateGzhDatastatExcelFile(dataList);
         } else if (param.getType() == 4) {
             return generateGzhAccountVideoDatastatExcelFile(dataList);

+ 10 - 1
api-module/src/main/java/com/tzld/piaoquan/api/service/contentplatform/impl/ContentPlatformPlanServiceImpl.java

@@ -242,7 +242,8 @@ public class ContentPlatformPlanServiceImpl implements ContentPlatformPlanServic
         ContentPlatformAccount loginAccount = LoginUserContext.getUser();
         List<ContentPlatformGzhPlan> planExistList = planMapperExt.getGzhPlanExists(param.getAccountId(),
                 param.getType(), param.getScene(), param.getId());
-        if (CollectionUtils.isNotEmpty(planExistList) && param.getType() != ContentPlatformGzhPlanTypeEnum.FWH_PUSH.getVal()) {
+        if (CollectionUtils.isNotEmpty(planExistList)
+                && param.getType() == ContentPlatformGzhPlanTypeEnum.AUTO_REPLY.getVal()) {
             throw new CommonException(ExceptionEnum.GZH_SCENE_PLAN_EXISTS);
         }
         if (param.getVideoList().size() > 3) {
@@ -379,6 +380,12 @@ public class ContentPlatformPlanServiceImpl implements ContentPlatformPlanServic
                     JSONObject json = JSONObject.parseObject(response);
                     SmallPageUrlDetail smallPageUrlDetail = json.getJSONObject("data").toJavaObject(SmallPageUrlDetail.class);
                     item.setPageUrl(smallPageUrlDetail.getUrl());
+                } else if (param.getType() == ContentPlatformGzhPlanTypeEnum.GZH_PUSH.getVal()) {
+                    String response = touLiuHttpClient.sendAdFlowAddRequest(GET_SMALL_PAGE_URL, String.valueOf(vo.getVideoId()), "longArticles",
+                            loginAccount.getChannel(), "自动", "公众号", "文章插小程序", "小程序", account.getGhId());
+                    JSONObject json = JSONObject.parseObject(response);
+                    SmallPageUrlDetail smallPageUrlDetail = json.getJSONObject("data").toJavaObject(SmallPageUrlDetail.class);
+                    item.setPageUrl(smallPageUrlDetail.getUrl());
                 }
                 item.setCreateAccountId(loginAccount.getId());
                 item.setCreateTimestamp(System.currentTimeMillis());
@@ -494,6 +501,8 @@ public class ContentPlatformPlanServiceImpl implements ContentPlatformPlanServic
                 return "企微-社群";
             case 3:
                 return "企微-自动回复";
+            case 4:
+                return "公众号推送";
             default:
                 return "";
         }

+ 246 - 0
api-module/src/main/resources/mapper/contentplatform/ContentPlatformGzhPushDataStatMapper.xml

@@ -0,0 +1,246 @@
+<?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="com.tzld.piaoquan.api.dao.mapper.contentplatform.ContentPlatformGzhPushDataStatMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStat">
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="date_str" jdbcType="VARCHAR" property="dateStr" />
+    <result column="account_id" jdbcType="BIGINT" property="accountId" />
+    <result column="fans_increase_count" jdbcType="INTEGER" property="fansIncreaseCount" />
+    <result column="first_level_count" jdbcType="INTEGER" property="firstLevelCount" />
+    <result column="score" jdbcType="DOUBLE" property="score" />
+    <result column="create_timestamp" jdbcType="BIGINT" property="createTimestamp" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, date_str, account_id, fans_increase_count, first_level_count, score, create_timestamp
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from content_platform_gzh_push_datastat
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from content_platform_gzh_push_datastat
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    delete from content_platform_gzh_push_datastat
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatExample">
+    delete from content_platform_gzh_push_datastat
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStat">
+    insert into content_platform_gzh_push_datastat (id, date_str, account_id, 
+      fans_increase_count, first_level_count, score, 
+      create_timestamp)
+    values (#{id,jdbcType=BIGINT}, #{dateStr,jdbcType=VARCHAR}, #{accountId,jdbcType=BIGINT}, 
+      #{fansIncreaseCount,jdbcType=INTEGER}, #{firstLevelCount,jdbcType=INTEGER}, #{score,jdbcType=DOUBLE}, 
+      #{createTimestamp,jdbcType=BIGINT})
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStat">
+    insert into content_platform_gzh_push_datastat
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="dateStr != null">
+        date_str,
+      </if>
+      <if test="accountId != null">
+        account_id,
+      </if>
+      <if test="fansIncreaseCount != null">
+        fans_increase_count,
+      </if>
+      <if test="firstLevelCount != null">
+        first_level_count,
+      </if>
+      <if test="score != null">
+        score,
+      </if>
+      <if test="createTimestamp != null">
+        create_timestamp,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="dateStr != null">
+        #{dateStr,jdbcType=VARCHAR},
+      </if>
+      <if test="accountId != null">
+        #{accountId,jdbcType=BIGINT},
+      </if>
+      <if test="fansIncreaseCount != null">
+        #{fansIncreaseCount,jdbcType=INTEGER},
+      </if>
+      <if test="firstLevelCount != null">
+        #{firstLevelCount,jdbcType=INTEGER},
+      </if>
+      <if test="score != null">
+        #{score,jdbcType=DOUBLE},
+      </if>
+      <if test="createTimestamp != null">
+        #{createTimestamp,jdbcType=BIGINT},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatExample" resultType="java.lang.Long">
+    select count(*) from content_platform_gzh_push_datastat
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update content_platform_gzh_push_datastat
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=BIGINT},
+      </if>
+      <if test="record.dateStr != null">
+        date_str = #{record.dateStr,jdbcType=VARCHAR},
+      </if>
+      <if test="record.accountId != null">
+        account_id = #{record.accountId,jdbcType=BIGINT},
+      </if>
+      <if test="record.fansIncreaseCount != null">
+        fans_increase_count = #{record.fansIncreaseCount,jdbcType=INTEGER},
+      </if>
+      <if test="record.firstLevelCount != null">
+        first_level_count = #{record.firstLevelCount,jdbcType=INTEGER},
+      </if>
+      <if test="record.score != null">
+        score = #{record.score,jdbcType=DOUBLE},
+      </if>
+      <if test="record.createTimestamp != null">
+        create_timestamp = #{record.createTimestamp,jdbcType=BIGINT},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update content_platform_gzh_push_datastat
+    set id = #{record.id,jdbcType=BIGINT},
+      date_str = #{record.dateStr,jdbcType=VARCHAR},
+      account_id = #{record.accountId,jdbcType=BIGINT},
+      fans_increase_count = #{record.fansIncreaseCount,jdbcType=INTEGER},
+      first_level_count = #{record.firstLevelCount,jdbcType=INTEGER},
+      score = #{record.score,jdbcType=DOUBLE},
+      create_timestamp = #{record.createTimestamp,jdbcType=BIGINT}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStat">
+    update content_platform_gzh_push_datastat
+    <set>
+      <if test="dateStr != null">
+        date_str = #{dateStr,jdbcType=VARCHAR},
+      </if>
+      <if test="accountId != null">
+        account_id = #{accountId,jdbcType=BIGINT},
+      </if>
+      <if test="fansIncreaseCount != null">
+        fans_increase_count = #{fansIncreaseCount,jdbcType=INTEGER},
+      </if>
+      <if test="firstLevelCount != null">
+        first_level_count = #{firstLevelCount,jdbcType=INTEGER},
+      </if>
+      <if test="score != null">
+        score = #{score,jdbcType=DOUBLE},
+      </if>
+      <if test="createTimestamp != null">
+        create_timestamp = #{createTimestamp,jdbcType=BIGINT},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStat">
+    update content_platform_gzh_push_datastat
+    set date_str = #{dateStr,jdbcType=VARCHAR},
+      account_id = #{accountId,jdbcType=BIGINT},
+      fans_increase_count = #{fansIncreaseCount,jdbcType=INTEGER},
+      first_level_count = #{firstLevelCount,jdbcType=INTEGER},
+      score = #{score,jdbcType=DOUBLE},
+      create_timestamp = #{createTimestamp,jdbcType=BIGINT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>

+ 279 - 0
api-module/src/main/resources/mapper/contentplatform/ContentPlatformGzhPushDataStatTotalMapper.xml

@@ -0,0 +1,279 @@
+<?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="com.tzld.piaoquan.api.dao.mapper.contentplatform.ContentPlatformGzhPushDataStatTotalMapper">
+  <resultMap id="BaseResultMap" type="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatTotal">
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="date_str" jdbcType="VARCHAR" property="dateStr" />
+    <result column="channel" jdbcType="VARCHAR" property="channel" />
+    <result column="fans_increase_count" jdbcType="INTEGER" property="fansIncreaseCount" />
+    <result column="first_level_count" jdbcType="INTEGER" property="firstLevelCount" />
+    <result column="score" jdbcType="DOUBLE" property="score" />
+    <result column="unit_price" jdbcType="DOUBLE" property="unitPrice" />
+    <result column="settlement_amount" jdbcType="DOUBLE" property="settlementAmount" />
+    <result column="create_timestamp" jdbcType="BIGINT" property="createTimestamp" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, date_str, channel, fans_increase_count, first_level_count, score, unit_price, 
+    settlement_amount, create_timestamp
+  </sql>
+  <select id="selectByExample" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatTotalExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from content_platform_gzh_push_datastat_total
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="page != null">
+      limit #{page.offset} , #{page.pageSize}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from content_platform_gzh_push_datastat_total
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    delete from content_platform_gzh_push_datastat_total
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatTotalExample">
+    delete from content_platform_gzh_push_datastat_total
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatTotal">
+    insert into content_platform_gzh_push_datastat_total (id, date_str, channel, 
+      fans_increase_count, first_level_count, score, 
+      unit_price, settlement_amount, create_timestamp
+      )
+    values (#{id,jdbcType=BIGINT}, #{dateStr,jdbcType=VARCHAR}, #{channel,jdbcType=VARCHAR}, 
+      #{fansIncreaseCount,jdbcType=INTEGER}, #{firstLevelCount,jdbcType=INTEGER}, #{score,jdbcType=DOUBLE}, 
+      #{unitPrice,jdbcType=DOUBLE}, #{settlementAmount,jdbcType=DOUBLE}, #{createTimestamp,jdbcType=BIGINT}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatTotal">
+    insert into content_platform_gzh_push_datastat_total
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="dateStr != null">
+        date_str,
+      </if>
+      <if test="channel != null">
+        channel,
+      </if>
+      <if test="fansIncreaseCount != null">
+        fans_increase_count,
+      </if>
+      <if test="firstLevelCount != null">
+        first_level_count,
+      </if>
+      <if test="score != null">
+        score,
+      </if>
+      <if test="unitPrice != null">
+        unit_price,
+      </if>
+      <if test="settlementAmount != null">
+        settlement_amount,
+      </if>
+      <if test="createTimestamp != null">
+        create_timestamp,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="dateStr != null">
+        #{dateStr,jdbcType=VARCHAR},
+      </if>
+      <if test="channel != null">
+        #{channel,jdbcType=VARCHAR},
+      </if>
+      <if test="fansIncreaseCount != null">
+        #{fansIncreaseCount,jdbcType=INTEGER},
+      </if>
+      <if test="firstLevelCount != null">
+        #{firstLevelCount,jdbcType=INTEGER},
+      </if>
+      <if test="score != null">
+        #{score,jdbcType=DOUBLE},
+      </if>
+      <if test="unitPrice != null">
+        #{unitPrice,jdbcType=DOUBLE},
+      </if>
+      <if test="settlementAmount != null">
+        #{settlementAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="createTimestamp != null">
+        #{createTimestamp,jdbcType=BIGINT},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatTotalExample" resultType="java.lang.Long">
+    select count(*) from content_platform_gzh_push_datastat_total
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update content_platform_gzh_push_datastat_total
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=BIGINT},
+      </if>
+      <if test="record.dateStr != null">
+        date_str = #{record.dateStr,jdbcType=VARCHAR},
+      </if>
+      <if test="record.channel != null">
+        channel = #{record.channel,jdbcType=VARCHAR},
+      </if>
+      <if test="record.fansIncreaseCount != null">
+        fans_increase_count = #{record.fansIncreaseCount,jdbcType=INTEGER},
+      </if>
+      <if test="record.firstLevelCount != null">
+        first_level_count = #{record.firstLevelCount,jdbcType=INTEGER},
+      </if>
+      <if test="record.score != null">
+        score = #{record.score,jdbcType=DOUBLE},
+      </if>
+      <if test="record.unitPrice != null">
+        unit_price = #{record.unitPrice,jdbcType=DOUBLE},
+      </if>
+      <if test="record.settlementAmount != null">
+        settlement_amount = #{record.settlementAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="record.createTimestamp != null">
+        create_timestamp = #{record.createTimestamp,jdbcType=BIGINT},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update content_platform_gzh_push_datastat_total
+    set id = #{record.id,jdbcType=BIGINT},
+      date_str = #{record.dateStr,jdbcType=VARCHAR},
+      channel = #{record.channel,jdbcType=VARCHAR},
+      fans_increase_count = #{record.fansIncreaseCount,jdbcType=INTEGER},
+      first_level_count = #{record.firstLevelCount,jdbcType=INTEGER},
+      score = #{record.score,jdbcType=DOUBLE},
+      unit_price = #{record.unitPrice,jdbcType=DOUBLE},
+      settlement_amount = #{record.settlementAmount,jdbcType=DOUBLE},
+      create_timestamp = #{record.createTimestamp,jdbcType=BIGINT}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatTotal">
+    update content_platform_gzh_push_datastat_total
+    <set>
+      <if test="dateStr != null">
+        date_str = #{dateStr,jdbcType=VARCHAR},
+      </if>
+      <if test="channel != null">
+        channel = #{channel,jdbcType=VARCHAR},
+      </if>
+      <if test="fansIncreaseCount != null">
+        fans_increase_count = #{fansIncreaseCount,jdbcType=INTEGER},
+      </if>
+      <if test="firstLevelCount != null">
+        first_level_count = #{firstLevelCount,jdbcType=INTEGER},
+      </if>
+      <if test="score != null">
+        score = #{score,jdbcType=DOUBLE},
+      </if>
+      <if test="unitPrice != null">
+        unit_price = #{unitPrice,jdbcType=DOUBLE},
+      </if>
+      <if test="settlementAmount != null">
+        settlement_amount = #{settlementAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="createTimestamp != null">
+        create_timestamp = #{createTimestamp,jdbcType=BIGINT},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatTotal">
+    update content_platform_gzh_push_datastat_total
+    set date_str = #{dateStr,jdbcType=VARCHAR},
+      channel = #{channel,jdbcType=VARCHAR},
+      fans_increase_count = #{fansIncreaseCount,jdbcType=INTEGER},
+      first_level_count = #{firstLevelCount,jdbcType=INTEGER},
+      score = #{score,jdbcType=DOUBLE},
+      unit_price = #{unitPrice,jdbcType=DOUBLE},
+      settlement_amount = #{settlementAmount,jdbcType=DOUBLE},
+      create_timestamp = #{createTimestamp,jdbcType=BIGINT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>

+ 69 - 1
api-module/src/main/resources/mapper/contentplatform/ext/ContentPlatformDataStatMapperExt.xml

@@ -65,7 +65,7 @@
         limit #{offset}, #{pageSize}
     </select>
 
-<select id="getFwhAccountDatastatCount" resultType="java.lang.Integer">
+    <select id="getFwhAccountDatastatCount" resultType="java.lang.Integer">
         select count(1)
         from content_platform_fwh_datastat cpgd
         join content_platform_gzh_account cpgza on cpgd.account_id = cpgza.id
@@ -105,6 +105,46 @@
         limit #{offset}, #{pageSize}
     </select>
 
+    <select id="getGzhPushTotalDatastatCount" resultType="java.lang.Integer">
+        select count(1)
+        from content_platform_gzh_push_datastat_total cpfdt
+         join content_platform_account cpa on cpfdt.channel = cpa.channel
+        where cpa.id = #{createAccountId}
+    </select>
+
+    <select id="getGzhPushTotalDatastatList"
+            resultType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhPushDataStatTotal">
+        select date_str, fans_increase_count, first_level_count, score, unit_price, settlement_amount
+        from content_platform_gzh_push_datastat_total cpfdt
+         join content_platform_account cpa on cpfdt.channel = cpa.channel
+        where cpa.id = #{createAccountId}
+        order by cpfdt.date_str desc
+        limit #{offset}, #{pageSize}
+    </select>
+
+    <select id="getGzhPushAccountDatastatCount" resultType="java.lang.Integer">
+        select count(1)
+        from content_platform_gzh_push_datastat cpgd
+        join content_platform_gzh_account cpgza on cpgd.account_id = cpgza.id
+        where cpgza.create_account_id = #{createAccountId}
+        <if test="param.accountId!= null and param.accountId!= ''">
+            and cpgza.account_id = #{param.accountId}
+        </if>
+    </select>
+
+    <select id="getGzhPushAccountDatastatList"
+            resultType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformGzhDataStat">
+        select cpfd.*
+        from content_platform_gzh_push_datastat cpfd
+        join content_platform_gzh_account cpgza on cpfd.account_id = cpgza.id
+        where cpgza.create_account_id = #{createAccountId}
+        <if test="param.accountId!= null and param.accountId!= ''">
+            and cpgza.account_id = #{param.accountId}
+        </if>
+        order by cpfd.date_str desc
+        limit #{offset}, #{pageSize}
+    </select>
+
     <select id="getQwRootSourceIdDatastatCount" resultType="java.lang.Integer">
         select count(1)
         from content_platform_qw_datastat cpqd
@@ -297,6 +337,26 @@
         </foreach>
     </insert>
 
+    <insert id="batchInsertGzhPushDatastat">
+        insert into content_platform_gzh_push_datastat (date_str, account_id, fans_increase_count, first_level_count, score,
+        create_timestamp)
+        values
+        <foreach collection="records" item="item" separator=",">
+            (#{item.dateStr}, #{item.accountId}, #{item.fansIncreaseCount}, #{item.firstLevelCount}, #{item.score},
+            #{item.createTimestamp})
+        </foreach>
+    </insert>
+
+    <insert id="batchInsertGzhPushDatastatTotal">
+        insert into content_platform_gzh_push_datastat_total (date_str, channel, fans_increase_count, first_level_count, score,
+        unit_price, settlement_amount, create_timestamp)
+        values
+        <foreach collection="records" item="item" separator=",">
+            (#{item.dateStr}, #{item.channel}, #{item.fansIncreaseCount}, #{item.firstLevelCount}, #{item.score},
+            #{item.unitPrice}, #{item.settlementAmount}, #{item.createTimestamp})
+        </foreach>
+    </insert>
+
     <select id="getQwTotalDatastatScoreList"
             resultType="com.tzld.piaoquan.api.model.po.contentplatform.ContentPlatformQwDataStatTotal">
         select cpa.channel, round(avg(cpqd.score), 2) as score
@@ -353,4 +413,12 @@
         delete from content_platform_gzh_video_datastat where date_str = #{dt}
     </delete>
 
+    <delete id="deleteGzhPushDatastat">
+        delete from content_platform_gzh_push_datastat where date_str = #{dt}
+    </delete>
+
+    <delete id="deleteGzhPushDatastatTotal">
+        delete from content_platform_gzh_push_datastat_total where date_str = #{dt}
+    </delete>
+
 </mapper>

+ 2 - 0
api-module/src/main/resources/mybatis-api-contentPlatform-generator-config.xml

@@ -57,6 +57,8 @@
         <table tableName="content_platform_gzh_datastat_total" domainObjectName="ContentPlatformGzhDataStatTotal" alias=""/>
         <table tableName="content_platform_fwh_datastat" domainObjectName="ContentPlatformFwhDataStat" alias=""/>
         <table tableName="content_platform_fwh_datastat_total" domainObjectName="ContentPlatformFwhDataStatTotal" alias=""/>
+        <table tableName="content_platform_gzh_push_datastat" domainObjectName="ContentPlatformGzhPushDataStat" alias=""/>
+        <table tableName="content_platform_gzh_push_datastat_total" domainObjectName="ContentPlatformGzhPushDataStatTotal" alias=""/>
         <table tableName="content_platform_gzh_plan" domainObjectName="ContentPlatformGzhPlan" alias=""/>
         <table tableName="content_platform_gzh_plan_video" domainObjectName="ContentPlatformGzhPlanVideo" alias=""/>
         <table tableName="content_platform_gzh_plan_change_log" domainObjectName="ContentPlatformGzhPlanChangeLog" alias=""/>

+ 2 - 0
api-module/src/test/java/com/tzld/piaoquan/api/ContentPlatformTest.java

@@ -32,6 +32,8 @@ public class ContentPlatformTest {
             datastatJob.syncContentPlatformGzhDatastatTotalJob(dt);
             datastatJob.syncContentPlatformFwhDatastatJob(dt);
             datastatJob.syncContentPlatformFwhDatastatTotalJob(dt);
+            datastatJob.syncContentPlatformGzhPushDatastatJob(dt);
+            datastatJob.syncContentPlatformGzhPushDatastatTotalJob(dt);
             datastatJob.syncContentPlatformQwDatastatJob(dt);
             datastatJob.syncContentPlatformQwDatastatTotalJob(dt);
             datastatJob.syncContentPlatformQwDatastatReplyTotalJob(dt);