Browse Source

Merge remote-tracking branch 'origin/package' into package

bilingfeng 1 year ago
parent
commit
b64238857e
37 changed files with 5783 additions and 226 deletions
  1. 3 2
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/AdsGameServerController.java
  2. 27 2
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/AdsPromotionDayController.java
  3. 88 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/PitcherDataController.java
  4. 16 3
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/GameServerDayDTO.java
  5. 15 3
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/GameServerDayTotalDTO.java
  6. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherDataDayDTO.java
  7. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherDataDayTotalDTO.java
  8. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherDataTotalDTO.java
  9. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherDataTotalSumDTO.java
  10. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherGameDataDayDTO.java
  11. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherGameDataDayTotalDTO.java
  12. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherGameDataTotalDTO.java
  13. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherGameDataTotalSumDTO.java
  14. 131 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/TencentPromotionDayDTO.java
  15. 118 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/TencentPromotionDayTotalDTO.java
  16. 1033 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsAdgroupDay.java
  17. 0 6
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsGameServerDay.java
  18. 10 3
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsPromotionDay.java
  19. 550 4
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameServerDayTotalVO.java
  20. 99 105
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameServerDayVO.java
  21. 71 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameServerTrendVO.java
  22. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherDataDayTotalVO.java
  23. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherDataDayVO.java
  24. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherDataTotalSumVO.java
  25. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherDataTotalVO.java
  26. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherGameDataDayTotalVO.java
  27. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherGameDataDayVO.java
  28. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherGameDataTotalSumVO.java
  29. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherGameDataTotalVO.java
  30. 886 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/TencentPromotionDayTotalVO.java
  31. 1062 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/TencentPromotionDayVO.java
  32. 25 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IAdsPromotionDayService.java
  33. 49 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IPitcherDataService.java
  34. 19 6
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java
  35. 419 3
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameServerServiceImpl.java
  36. 104 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PitcherDataServiceImpl.java
  37. 914 89
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PromotionDayServiceImpl.java

+ 3 - 2
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/AdsGameServerController.java

@@ -1,5 +1,6 @@
 package com.zanxiang.game.data.serve.controller;
 
+import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.game.data.serve.pojo.dto.GameServerDayDTO;
 import com.zanxiang.game.data.serve.pojo.dto.GameServerDayTotalDTO;
 import com.zanxiang.game.data.serve.pojo.vo.GameServerDayTotalVO;
@@ -31,14 +32,14 @@ public class AdsGameServerController {
     private IGameServerService gameServerService;
 
     @ApiOperation(value = "游戏区服数据")
-    //@PreAuthorize(permissionKey = "gameServer:adsGameServerDay:day")
+    @PreAuthorize(permissionKey = "gameServer:adsGameServerDay:day")
     @PostMapping("/day")
     public ResultVO<Page<GameServerDayVO>> getGameServerDataDay(@RequestBody GameServerDayDTO dto) {
         return ResultVO.ok(gameServerService.getGameServerDataDay(dto));
     }
 
     @ApiOperation(value = "游戏区服数据总计一栏")
-    //@PreAuthorize(permissionKey = "gameServer:adsGameServerDay:dayTotal")
+    @PreAuthorize(permissionKey = "gameServer:adsGameServerDay:dayTotal")
     @PostMapping("/day/total")
     public ResultVO<GameServerDayTotalVO> getGameServerDataDayTotal(@RequestBody GameServerDayTotalDTO dto) {
         return ResultVO.ok(gameServerService.getGameServerDataDayTotal(dto));

+ 27 - 2
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/AdsPromotionDayController.java

@@ -3,8 +3,12 @@ package com.zanxiang.game.data.serve.controller;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.game.data.serve.pojo.dto.PromotionDayDTO;
 import com.zanxiang.game.data.serve.pojo.dto.PromotionDayTotalDTO;
+import com.zanxiang.game.data.serve.pojo.dto.TencentPromotionDayDTO;
+import com.zanxiang.game.data.serve.pojo.dto.TencentPromotionDayTotalDTO;
 import com.zanxiang.game.data.serve.pojo.vo.PromotionDayTotalVO;
 import com.zanxiang.game.data.serve.pojo.vo.PromotionDayVO;
+import com.zanxiang.game.data.serve.pojo.vo.TencentPromotionDayTotalVO;
+import com.zanxiang.game.data.serve.pojo.vo.TencentPromotionDayVO;
 import com.zanxiang.game.data.serve.service.IAdsPromotionDayService;
 import com.zanxiang.game.data.serve.utils.Page;
 import com.zanxiang.module.util.pojo.ResultVO;
@@ -34,7 +38,7 @@ public class AdsPromotionDayController {
     @ApiOperation(value = "广告监控数据")
     @PreAuthorize(permissionKey = "promotionData:adsPromotionDay:day")
     @PostMapping("/day")
-    public ResultVO<Page<PromotionDayVO>> getPromotionDayData(@RequestBody PromotionDayDTO dto){
+    public ResultVO<Page<PromotionDayVO>> getPromotionDayData(@RequestBody PromotionDayDTO dto) {
         return ResultVO.ok(adsPromotionDayService.getPromotionDayData(dto));
     }
 
@@ -48,8 +52,29 @@ public class AdsPromotionDayController {
     @ApiOperation(value = "广告监控每日数据")
     @PreAuthorize(permissionKey = "promotionData:adsPromotionDay:dayList")
     @PostMapping("/day/list")
-    public ResultVO<Page<PromotionDayVO>> getPromotionDayListData(@RequestBody PromotionDayDTO dto){
+    public ResultVO<Page<PromotionDayVO>> getPromotionDayListData(@RequestBody PromotionDayDTO dto) {
         return ResultVO.ok(adsPromotionDayService.getPromotionDayListData(dto));
     }
 
+    @ApiOperation(value = "腾讯广告监控数据")
+    @PreAuthorize(permissionKey = "promotionData:adsAdGroupDay:day")
+    @PostMapping("/tencent/day")
+    public ResultVO<Page<TencentPromotionDayVO>> getTencentPromotionDayData(@RequestBody TencentPromotionDayDTO dto) {
+        return ResultVO.ok(adsPromotionDayService.getTencentPromotionDayData(dto));
+    }
+
+    @ApiOperation(value = "腾讯广告监控数据总计")
+    @PreAuthorize(permissionKey = "promotionData:adsAdGroupDay:total")
+    @PostMapping("/tencent/total")
+    public ResultVO<TencentPromotionDayTotalVO> getTencentPromotionDayTotalData(@RequestBody TencentPromotionDayTotalDTO dto) {
+        return ResultVO.ok(adsPromotionDayService.getTencentPromotionDayTotalData(dto));
+    }
+
+    @ApiOperation(value = "腾讯广告监控每日数据")
+    @PreAuthorize(permissionKey = "promotionData:adsAdGroupDay:dayList")
+    @PostMapping("/tencent/day/list")
+    public ResultVO<Page<TencentPromotionDayVO>> getTencentPromotionDayListData(@RequestBody TencentPromotionDayDTO dto) {
+        return ResultVO.ok(adsPromotionDayService.getTencentPromotionDayListData(dto));
+    }
+
 }

+ 88 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/PitcherDataController.java

@@ -0,0 +1,88 @@
+package com.zanxiang.game.data.serve.controller;
+
+import com.zanxiang.game.data.serve.pojo.dto.*;
+import com.zanxiang.game.data.serve.pojo.vo.*;
+import com.zanxiang.game.data.serve.service.IPitcherDataService;
+import com.zanxiang.game.data.serve.utils.Page;
+import com.zanxiang.module.util.pojo.ResultVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手数据相关控制层接口
+ **/
+@Api(tags = "投手数据")
+@RestController
+@RequestMapping("/pitcherData")
+@Slf4j
+public class PitcherDataController {
+
+    @Autowired
+    private IPitcherDataService pitcherDataService;
+
+    @ApiOperation(value = "投手每日数据")
+    //@PreAuthorize(permissionKey = "pitcherData:pitcher:day")
+    @PostMapping("/pitcher/day")
+    public ResultVO<Page<PitcherDataDayVO>> getPitcherDataDay(@RequestBody PitcherDataDayDTO dto) {
+        return ResultVO.ok(pitcherDataService.getPitcherDataDay(dto));
+    }
+
+    @ApiOperation(value = "投手每日数据总计")
+    //@PreAuthorize(permissionKey = "pitcherData:pitcher:dayTotal")
+    @PostMapping("/pitcher/day/total")
+    public ResultVO<PitcherDataDayTotalVO> getPitcherDataDayTotal(@RequestBody PitcherDataDayTotalDTO dto) {
+        return ResultVO.ok(pitcherDataService.getPitcherDataDayTotal(dto));
+    }
+
+    @ApiOperation(value = "投手总数据")
+    //@PreAuthorize(permissionKey = "pitcherData:pitcher:total")
+    @PostMapping("/pitcher/total")
+    public ResultVO<Page<PitcherDataTotalVO>> getPitcherDataTotal(@RequestBody PitcherDataTotalDTO dto) {
+        return ResultVO.ok(pitcherDataService.getPitcherDataTotal(dto));
+    }
+
+    @ApiOperation(value = "投手总数据总计")
+    //@PreAuthorize(permissionKey = "pitcherData:pitcher:totalSum")
+    @PostMapping("/pitcher/total/sum")
+    public ResultVO<PitcherDataTotalSumVO> getPitcherDataTotalSum(@RequestBody PitcherDataTotalSumDTO dto) {
+        return ResultVO.ok(pitcherDataService.getPitcherDataTotalSum(dto));
+    }
+
+    @ApiOperation(value = "投手游戏每日数据")
+    //@PreAuthorize(permissionKey = "pitcherData:pitcherGame:day")
+    @PostMapping("/pitcherGame/day")
+    public ResultVO<Page<PitcherGameDataDayVO>> getPitcherGameDataDay(@RequestBody PitcherGameDataDayDTO dto) {
+        return ResultVO.ok(pitcherDataService.getPitcherGameDataDay(dto));
+    }
+
+    @ApiOperation(value = "投手游戏每日数据总计")
+    //@PreAuthorize(permissionKey = "pitcherData:pitcherGame:dayTotal")
+    @PostMapping("/pitcherGame/day/total")
+    public ResultVO<PitcherGameDataDayTotalVO> getPitcherGameDataDayTotal(@RequestBody PitcherGameDataDayTotalDTO dto) {
+        return ResultVO.ok(pitcherDataService.getPitcherGameDataDayTotal(dto));
+    }
+
+    @ApiOperation(value = "投手游戏总数据")
+    //@PreAuthorize(permissionKey = "pitcherData:pitcherGame:total")
+    @PostMapping("/pitcherGame/total")
+    public ResultVO<Page<PitcherGameDataTotalVO>> getPitcherGameDataTotal(@RequestBody PitcherGameDataTotalDTO dto) {
+        return ResultVO.ok(pitcherDataService.getPitcherGameDataTotal(dto));
+    }
+
+    @ApiOperation(value = "投手游戏总数据总计")
+    //@PreAuthorize(permissionKey = "pitcherData:pitcherGame:totalSum")
+    @PostMapping("/pitcherGame/total/sum")
+    public ResultVO<PitcherGameDataTotalSumVO> getPitcherGameDataTotalSum(@RequestBody PitcherGameDataTotalSumDTO dto) {
+        return ResultVO.ok(pitcherDataService.getPitcherGameDataTotalSum(dto));
+    }
+
+
+}

+ 16 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/GameServerDayDTO.java

@@ -21,10 +21,16 @@ import java.time.LocalDate;
 public class GameServerDayDTO extends BasePage {
 
     /**
-     * 开服时间
+     * 开服时间(开始时间)
      */
-    @ApiModelProperty(value = "开服时间")
-    private LocalDate dt;
+    @ApiModelProperty(value = "开服时间(起始)")
+    private LocalDate beginDate;
+
+    /**
+     * 开服时间(结束时间)
+     */
+    @ApiModelProperty(value = "开服时间(结束)")
+    private LocalDate endDate;
 
     /**
      * 游戏ID
@@ -44,6 +50,13 @@ public class GameServerDayDTO extends BasePage {
     @ApiModelProperty(value = "区服名称")
     private String serverName;
 
+    /**
+     * SDK来源
+     */
+    @ApiModelProperty(value = "SDK来源")
+    private String sourceSystem;
+
+
     /**
      * 排序字段
      */

+ 15 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/GameServerDayTotalDTO.java

@@ -20,10 +20,16 @@ import java.time.LocalDate;
 public class GameServerDayTotalDTO {
 
     /**
-     * 开服时间
+     * 开服时间(开始时间)
      */
-    @ApiModelProperty(value = "开服时间")
-    private LocalDate dt;
+    @ApiModelProperty(value = "开服时间(起始)")
+    private LocalDate beginDate;
+
+    /**
+     * 开服时间(结束时间)
+     */
+    @ApiModelProperty(value = "开服时间(结束)")
+    private LocalDate endDate;
 
     /**
      * 游戏ID
@@ -43,4 +49,10 @@ public class GameServerDayTotalDTO {
     @ApiModelProperty(value = "区服名称")
     private String serverName;
 
+    /**
+     * SDK来源
+     */
+    @ApiModelProperty(value = "SDK来源")
+    private String sourceSystem;
+
 }

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherDataDayDTO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手每日数据查询条件实体
+ **/
+public class PitcherDataDayDTO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherDataDayTotalDTO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手每日数据总计查询条件实体
+ **/
+public class PitcherDataDayTotalDTO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherDataTotalDTO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手总数据查询条件实体
+ **/
+public class PitcherDataTotalDTO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherDataTotalSumDTO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手总数据总计查询条件实体
+ **/
+public class PitcherDataTotalSumDTO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherGameDataDayDTO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手游戏每日数据查询条件实体
+ **/
+public class PitcherGameDataDayDTO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherGameDataDayTotalDTO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手游戏每日数据总计查询条件实体
+ **/
+public class PitcherGameDataDayTotalDTO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherGameDataTotalDTO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手游戏总数据查询条件实体
+ **/
+public class PitcherGameDataTotalDTO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PitcherGameDataTotalSumDTO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手游戏总数据总计查询条件实体
+ **/
+public class PitcherGameDataTotalSumDTO {
+}

+ 131 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/TencentPromotionDayDTO.java

@@ -0,0 +1,131 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+import com.zanxiang.game.data.serve.pojo.base.BasePage;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDate;
+
+/**
+ * @author tianhua
+ * @time 2023/7/27
+ * @Description 前端传递的查询参数实体(腾讯广告)
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class TencentPromotionDayDTO extends BasePage {
+
+    /**
+     * 消耗开始日期
+     */
+    @ApiModelProperty(value = "消耗开始时间")
+    private LocalDate costBeginDate;
+
+    /**
+     * 消耗结束日期
+     */
+    @ApiModelProperty(value = "消耗结束时间")
+    private LocalDate costEndDate;
+
+    /**
+     * SDK来源
+     */
+    @ApiModelProperty(value = "SDK来源")
+    private String sourceSystem;
+
+    /**
+     * 广告ID
+     */
+    @ApiModelProperty(value = "广告ID")
+    private Long promotionId;
+
+    /**
+     * 广告名称
+     */
+    @ApiModelProperty(value = "广告名称")
+    private String promotionName;
+
+    /**
+     * 广告状态
+     */
+    @ApiModelProperty(value = "广告状态")
+    private String status;
+
+    /**
+     * 项目ID
+     */
+    @ApiModelProperty(value = "项目ID")
+    private Long projectId;
+
+    /**
+     * 项目名称
+     */
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    /**
+     * 推广账号名称
+     */
+    @ApiModelProperty(value = "推广账号名称")
+    private String accountName;
+
+    /**
+     * 推广账号ID
+     */
+    @ApiModelProperty(value = "推广账号ID")
+    private Long accountId;
+
+    /**
+     * 投放媒体
+     */
+    @ApiModelProperty(value = "投放媒体")
+    private String accountType;
+
+    /**
+     * 投手ID
+     */
+    @ApiModelProperty(value = "投手ID")
+    private Long pitcherId;
+
+    /**
+     * 渠道ID
+     */
+    @ApiModelProperty(value = "渠道ID")
+    private Long[] agentId;
+
+    /**
+     * cp名称
+     */
+    @ApiModelProperty(value = "CP名称")
+    private String cpName;
+
+    /**
+     * 游戏ID
+     */
+    @ApiModelProperty(value = "游戏ID")
+    private Long gameId;
+
+    /**
+     * 游戏应用类型
+     */
+    @ApiModelProperty(value = "游戏应用类型")
+    private Long classify;
+
+    /**
+     * 排序字段
+     */
+    @ApiModelProperty(notes = "排序字段")
+    private String sortFiled;
+
+    /**
+     * 排序方式:升序asc;降序desc
+     */
+    @ApiModelProperty(notes = "排序方式:升序asc;降序desc")
+    private String sortType;
+
+}

+ 118 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/TencentPromotionDayTotalDTO.java

@@ -0,0 +1,118 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDate;
+
+/**
+ * @author tianhua
+ * @time 2023/7/27
+ * @Description 前端传递的查询参数实体(腾讯广告)
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class TencentPromotionDayTotalDTO {
+
+    /**
+     * 消耗开始日期
+     */
+    @ApiModelProperty(value = "消耗开始时间")
+    private LocalDate costBeginDate;
+
+    /**
+     * 消耗结束日期
+     */
+    @ApiModelProperty(value = "消耗结束时间")
+    private LocalDate costEndDate;
+
+    /**
+     * SDK来源
+     */
+    @ApiModelProperty(value = "SDK来源")
+    private String sourceSystem;
+
+    /**
+     * 广告ID
+     */
+    @ApiModelProperty(value = "广告ID")
+    private Long promotionId;
+
+    /**
+     * 广告名称
+     */
+    @ApiModelProperty(value = "广告名称")
+    private String promotionName;
+
+    /**
+     * 广告状态
+     */
+    @ApiModelProperty(value = "广告状态")
+    private String status;
+
+    /**
+     * 项目ID
+     */
+    @ApiModelProperty(value = "项目ID")
+    private Long projectId;
+
+    /**
+     * 项目名称
+     */
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+
+    /**
+     * 推广账号名称
+     */
+    @ApiModelProperty(value = "推广账号名称")
+    private String accountName;
+
+    /**
+     * 推广账号ID
+     */
+    @ApiModelProperty(value = "推广账号ID")
+    private Long accountId;
+
+    /**
+     * 投放媒体
+     */
+    @ApiModelProperty(value = "投放媒体")
+    private String accountType;
+
+    /**
+     * 投手ID
+     */
+    @ApiModelProperty(value = "投手ID")
+    private Long pitcherId;
+
+    /**
+     * 渠道ID
+     */
+    @ApiModelProperty(value = "渠道ID")
+    private Long[] agentId;
+
+    /**
+     * cp名称
+     */
+    @ApiModelProperty(value = "CP名称")
+    private String cpName;
+
+    /**
+     * 游戏ID
+     */
+    @ApiModelProperty(value = "游戏ID")
+    private Long gameId;
+
+    /**
+     * 游戏应用类型
+     */
+    @ApiModelProperty(value = "游戏应用类型")
+    private Long classify;
+
+}

+ 1033 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsAdgroupDay.java

@@ -0,0 +1,1033 @@
+package com.zanxiang.game.data.serve.pojo.entity;
+
+import lombok.Data;
+import org.nutz.dao.entity.annotation.Column;
+import org.nutz.dao.entity.annotation.PK;
+import org.nutz.dao.entity.annotation.Table;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+@Table(AdsAdgroupDay.TABLE_NAME)
+@PK({"dt", "sourceSystem", "promotionId", "projectId"})
+public class AdsAdgroupDay implements Serializable {
+    
+    private static final long serialVersionUID = 1L;
+    public static final String TABLE_NAME = "ads_adgroup_day";
+     
+    /**
+    * 日期
+    */
+    private LocalDate dt;
+    
+    /**
+    * SDK来源
+    */
+    private String sourceSystem;
+    
+    /**
+    * 广告ID
+    */
+    private Long promotionId;
+    
+    /**
+    * 项目ID
+    */
+    private Long projectId;
+    
+    /**
+    * 广告名称
+    */    
+    @Column
+    private String promotionName;
+    
+    /**
+    * 计划名称
+    */    
+    @Column
+    private String projectName;
+    
+    /**
+    * 推广账号名称
+    */    
+    @Column
+    private String accountName;
+    
+    /**
+    * 推广账号ID
+    */    
+    @Column
+    private Long accountId;
+    
+    /**
+    * 投放媒体
+    */    
+    @Column
+    private String accountType;
+    
+    /**
+    * 投手ID
+    */    
+    @Column
+    private Long pitcherId;
+    
+    /**
+    * 投手名称
+    */    
+    @Column
+    private String pitcherName;
+    
+    /**
+    * 渠道ID
+    */    
+    @Column
+    private Long agentId;
+    
+    /**
+    * 渠道名称
+    */    
+    @Column
+    private String agentName;
+    
+    /**
+    * 渠道标识
+    */    
+    @Column
+    private String agentKey;
+    
+    /**
+    * cp名称
+    */    
+    @Column
+    private String cpName;
+    
+    /**
+    * 游戏ID
+    */    
+    @Column
+    private Long gameId;
+    
+    /**
+    * 游戏名称
+    */    
+    @Column
+    private String gameName;
+    
+    /**
+    * 游戏应用类型
+    */    
+    @Column
+    private Long classify;
+    
+    /**
+    * 广告状态
+    */    
+    @Column
+    private String status;
+    
+    /**
+    * 创意预览
+    */    
+    @Column
+    private String creativePreview;
+    
+    /**
+    * 推广目标
+    */    
+    @Column
+    private String landingType;
+    
+    /**
+    * 出价方式
+    */    
+    @Column
+    private String pricing;
+    
+    /**
+    * 当前出价
+    */    
+    @Column
+    private String cpaBid;
+    
+    /**
+    * 深度转化ROI系数
+    */    
+    @Column
+    private String roiGoal;
+    
+    /**
+    * 日预算
+    */    
+    @Column
+    private String budget;
+    
+    /**
+    * 投放开始时间
+    */    
+    @Column
+    private LocalDateTime startTime;
+    
+    /**
+    * 投放结束时间
+    */    
+    @Column
+    private LocalDateTime endTime;
+    
+    /**
+    * 备注
+    */    
+    @Column
+    private String notes;
+    
+    /**
+    * 服务商
+    */    
+    @Column
+    private String service;
+    
+    /**
+    * 余额
+    */    
+    @Column
+    private String balance;
+    
+    /**
+    * 注册人数 (应用下载广告数据-激活数)
+    */    
+    @Column
+    private Long active;
+    
+    /**
+    * 注册成本 (应用下载广告数据-激活成本)
+    */    
+    @Column
+    private BigDecimal activeCost;
+    
+    /**
+    * 首日转化数 (转化数据-转化数)
+    */    
+    @Column
+    private Long firstConvertCount;
+    
+    /**
+    * 首日转化成本 (转化数据-转化成本)
+    */    
+    @Column
+    private BigDecimal firstConvertCost;
+    
+    /**
+    * 首次付费率 (应用下载广告数据-首次付费率)
+    */    
+    @Column
+    private BigDecimal firstActivePayRate;
+    
+    /**
+    * 首日付费金额(当日付费金额-所选时间范围内的激活用户,激活当日在APP内的付费金额)
+    */    
+    @Column
+    private BigDecimal firstAttributionGameInAppLtv1day;
+    
+    /**
+    * 首日付费ROI (当日付费ROI)
+    */    
+    @Column
+    private BigDecimal firstAttributionGameInAppRoi1day;
+    
+    /**
+    * 付费次数 (应用下载广告数据-付费次数)
+    */    
+    @Column
+    private Long gamePayCount;
+    
+    /**
+    * 今日消耗
+    */    
+    @Column
+    private BigDecimal todayCost;
+    
+    /**
+    * 广告总消耗
+    */    
+    @Column
+    private BigDecimal promotionTotalCost;
+    
+    /**
+    * 曝光量
+    */    
+    @Column
+    private Long showCount;
+    
+    /**
+    * 千次曝光成本
+    */    
+    @Column
+    private BigDecimal thousandDisplayPrice;
+    
+    /**
+    * 点击量
+    */    
+    @Column
+    private Long clickCount;
+    
+    /**
+    * 点击均价
+    */    
+    @Column
+    private BigDecimal avgClickCost;
+    
+    /**
+    * 点击率
+    */    
+    @Column
+    private BigDecimal ctr;
+    
+    /**
+    * 转化目标
+    */    
+    @Column
+    private String convertTarget;
+    
+    /**
+    * 转化目标量
+    */    
+    @Column
+    private Long convertCount;
+    
+    /**
+    * 转化目标成本
+    */    
+    @Column
+    private BigDecimal convertCost;
+    
+    /**
+    * 目标转化率
+    */    
+    @Column
+    private BigDecimal convertRate;
+    
+    /**
+    * 新增用户数
+    */    
+    @Column
+    private Long regNum;
+    
+    /**
+    * 广告总注册人数
+    */    
+    @Column
+    private Long regTotalNum;
+    
+    /**
+    * 总创角人数
+    */    
+    @Column
+    private Long roleTotalNum;
+    
+    /**
+    * 首日创角人数
+    */    
+    @Column
+    private Long firstRoleNum;
+    
+    /**
+    * 新用户累计创角人数
+    */    
+    @Column
+    private Long newUserTotalRoleNum;
+    
+    /**
+    * 注册成本
+    */    
+    @Column
+    private BigDecimal regCost;
+    
+    /**
+    * 总注册成本
+    */    
+    @Column
+    private BigDecimal regTotalCost;
+    
+    /**
+    * 首日创角成本
+    */    
+    @Column
+    private BigDecimal firstRoleCost;
+    
+    /**
+    * 新用户创角成本
+    */    
+    @Column
+    private BigDecimal newUserTotalRoleCost;
+    
+    /**
+    * 总创角成本
+    */    
+    @Column
+    private BigDecimal roleTotalCost;
+    
+    /**
+    * 首日创角率
+    */    
+    @Column
+    private BigDecimal firstRoleRate;
+    
+    /**
+    * 新用户创角率
+    */    
+    @Column
+    private BigDecimal newUserTotalRoleRate;
+    
+    /**
+    * 总创角率
+    */    
+    @Column
+    private BigDecimal roleTotalRate;
+    
+    /**
+    * 首日新用户付费次数
+    */    
+    @Column
+    private Long firstNewUserAmountCount;
+    
+    /**
+    * 首日新用户付费人数
+    */    
+    @Column
+    private Long firstNewUserAmountNum;
+    
+    /**
+    * 首日新用户付费金额
+    */    
+    @Column
+    private BigDecimal firstNewUserAmount;
+    
+    /**
+    * 首日扣单数
+    */    
+    @Column
+    private Long firstSubAmountCount;
+    
+    /**
+    * 首日扣单金额
+    */    
+    @Column
+    private BigDecimal firstSubAmount;
+    
+    /**
+    * 至今付费次数
+    */    
+    @Column
+    private Long newUserTotalAmountCount;
+    
+    /**
+    * 至今付费人数
+    */    
+    @Column
+    private Long newUserTotalAmountNum;
+    
+    /**
+    * 至今付费金额
+    */    
+    @Column
+    private BigDecimal newUserTotalAmount;
+    
+    /**
+    * 总充值次数
+    */    
+    @Column
+    private Long totalAmountCount;
+    
+    /**
+    * 总充值人数
+    */    
+    @Column
+    private Long totalAmountNum;
+    
+    /**
+    * 总充值金额
+    */    
+    @Column
+    private BigDecimal totalAmount;
+    
+    /**
+    * 首日ROI
+    */    
+    @Column
+    private BigDecimal firstRoi;
+    
+    /**
+    * 新用户24小时充值金额
+    */    
+    @Column
+    private BigDecimal twentyFourHoursAmount;
+    
+    /**
+    * 新用户24小时ROI
+    */    
+    @Column
+    private BigDecimal twentyFourHoursRoi;
+    
+    /**
+    * 总ROI
+    */    
+    @Column
+    private BigDecimal totalRoi;
+    
+    /**
+    * 广告总ROI
+    */    
+    @Column
+    private BigDecimal promotionTotalRoi;
+    
+    /**
+    * 首日新用户付费成本
+    */    
+    @Column
+    private BigDecimal firstNewUserRechargeCost;
+    
+    /**
+    * 至今付费成本
+    */    
+    @Column
+    private BigDecimal newUserTotalRechargeCost;
+    
+    /**
+    * 广告总付费成本
+    */    
+    @Column
+    private BigDecimal totalRechargeCost;
+    
+    /**
+    * 新增付费ARPPU
+    */    
+    @Column
+    private BigDecimal firstNewUserArppu;
+    
+    /**
+    * 至今付费ARPPU
+    */    
+    @Column
+    private BigDecimal newUserTotalAmountArppu;
+    
+    /**
+    * 新增付费100+用户数
+    */    
+    @Column
+    private Long firstNewUserHundredUserNum;
+    
+    /**
+    * 新增付费200+用户数
+    */    
+    @Column
+    private Long firstNewUserTwoHundredUserNum;
+    
+    /**
+    * 至今付费100+用户数
+    */    
+    @Column
+    private Long newUserTotalHundredUserNum;
+    
+    /**
+    * 首充50~100元用户数
+    */    
+    @Column
+    private Long firstRechargeFiftyHundredNum;
+    
+    /**
+    * 新增付费100+用户付费成本
+    */    
+    @Column
+    private BigDecimal firstNewUserHundredUserCost;
+    
+    /**
+    * 新增付费200+用户付费成本
+    */    
+    @Column
+    private BigDecimal firstNewUserTwoHundredUserCost;
+    
+    /**
+    * 至今付费100+用户付费成本
+    */    
+    @Column
+    private BigDecimal newUserTotalHundredUserCost;
+    
+    /**
+    * 首充50~100元占比
+    */    
+    @Column
+    private BigDecimal firstRechargeFiftyHundredRate;
+    
+    /**
+    * 首日IOS付费次数
+    */    
+    @Column
+    private Long firstIosAmountCount;
+    
+    /**
+    * 首日IOS付费人数
+    */    
+    @Column
+    private Long firstIosAmountNum;
+    
+    /**
+    * 首日IOS付费金额
+    */    
+    @Column
+    private BigDecimal firstIosAmount;
+    
+    /**
+    * 首日Android付费次数
+    */    
+    @Column
+    private Long firstAndroidAmountCount;
+    
+    /**
+    * 首日Android付费人数
+    */    
+    @Column
+    private Long firstAndroidAmountNum;
+    
+    /**
+    * 首日Android付费金额
+    */    
+    @Column
+    private BigDecimal firstAndroidAmount;
+    
+    /**
+    * 首日IOS付费人数占比
+    */    
+    @Column
+    private BigDecimal firstIosAmountNumRate;
+    
+    /**
+    * 首日IOS付费金额占比
+    */    
+    @Column
+    private BigDecimal firstIosAmountRate;
+    
+    /**
+    * 首日IOS付费ROI
+    */    
+    @Column
+    private BigDecimal firstIosAmountRoi;
+    
+    /**
+    * 首日Android付费人数占比
+    */    
+    @Column
+    private BigDecimal firstAndroidAmountNumRate;
+    
+    /**
+    * 首日Android付费金额占比
+    */    
+    @Column
+    private BigDecimal firstAndroidAmountRate;
+    
+    /**
+    * 首日Android付费ROI
+    */    
+    @Column
+    private BigDecimal firstAndroidAmountRoi;
+    
+    /**
+    * 首日付费率
+    */    
+    @Column
+    private BigDecimal firstAmountRate;
+    
+    /**
+    * 新增客单价
+    */    
+    @Column
+    private BigDecimal firstNewUserAvgPrice;
+    
+    /**
+    * 至今客单价
+    */    
+    @Column
+    private BigDecimal newUserTotalAvgPrice;
+    
+    /**
+    * ltv1 (首日付费金额(attribution_game_in_app_ltv1day) / 注册人数)
+    */    
+    @Column
+    private BigDecimal ltvDay1;
+    
+    /**
+    * 每日扣单数 (首日新用户付费次数 - 首日扣单数)
+    */    
+    @Column
+    private Long subOrderNum;
+    
+    /**
+    * 每日扣单金额  (首日新用户付费金额 - 首日扣单金额)
+    */    
+    @Column
+    private BigDecimal subOrderAmount;
+    
+    /**
+    * 广告ID,消耗时间的第1天新用户充值
+    */    
+    @Column
+    private BigDecimal d1;
+    
+    /**
+    * 广告ID,消耗时间的第2天新用户充值
+    */    
+    @Column
+    private BigDecimal d2;
+    
+    /**
+    * 广告ID,消耗时间的第3天新用户充值
+    */    
+    @Column
+    private BigDecimal d3;
+    
+    /**
+    * 广告ID,消耗时间的第4天新用户充值
+    */    
+    @Column
+    private BigDecimal d4;
+    
+    /**
+    * 广告ID,消耗时间的第5天新用户充值
+    */    
+    @Column
+    private BigDecimal d5;
+    
+    /**
+    * 广告ID,消耗时间的第6天新用户充值
+    */    
+    @Column
+    private BigDecimal d6;
+    
+    /**
+    * 广告ID,消耗时间的第7天新用户充值
+    */    
+    @Column
+    private BigDecimal d7;
+    
+    /**
+    * 广告ID,消耗时间的第8天新用户充值
+    */    
+    @Column
+    private BigDecimal d8;
+    
+    /**
+    * 广告ID,消耗时间的第9天新用户充值
+    */    
+    @Column
+    private BigDecimal d9;
+    
+    /**
+    * 广告ID,消耗时间的第10天新用户充值
+    */    
+    @Column
+    private BigDecimal d10;
+    
+    /**
+    * 广告ID,消耗时间的第11天新用户充值
+    */    
+    @Column
+    private BigDecimal d11;
+    
+    /**
+    * 广告ID,消耗时间的第12天新用户充值
+    */    
+    @Column
+    private BigDecimal d12;
+    
+    /**
+    * 广告ID,消耗时间的第13天新用户充值
+    */    
+    @Column
+    private BigDecimal d13;
+    
+    /**
+    * 广告ID,消耗时间的第14天新用户充值
+    */    
+    @Column
+    private BigDecimal d14;
+    
+    /**
+    * 广告ID,消耗时间的第15天新用户充值
+    */    
+    @Column
+    private BigDecimal d15;
+    
+    /**
+    * 广告ID,消耗时间的第16天新用户充值
+    */    
+    @Column
+    private BigDecimal d16;
+    
+    /**
+    * 广告ID,消耗时间的第17天新用户充值
+    */    
+    @Column
+    private BigDecimal d17;
+    
+    /**
+    * 广告ID,消耗时间的第18天新用户充值
+    */    
+    @Column
+    private BigDecimal d18;
+    
+    /**
+    * 广告ID,消耗时间的第19天新用户充值
+    */    
+    @Column
+    private BigDecimal d19;
+    
+    /**
+    * 广告ID,消耗时间的第20天新用户充值
+    */    
+    @Column
+    private BigDecimal d20;
+    
+    /**
+    * 广告ID,消耗时间的第21天新用户充值
+    */    
+    @Column
+    private BigDecimal d21;
+    
+    /**
+    * 广告ID,消耗时间的第22天新用户充值
+    */    
+    @Column
+    private BigDecimal d22;
+    
+    /**
+    * 广告ID,消耗时间的第23天新用户充值
+    */    
+    @Column
+    private BigDecimal d23;
+    
+    /**
+    * 广告ID,消耗时间的第24天新用户充值
+    */    
+    @Column
+    private BigDecimal d24;
+    
+    /**
+    * 广告ID,消耗时间的第25天新用户充值
+    */    
+    @Column
+    private BigDecimal d25;
+    
+    /**
+    * 广告ID,消耗时间的第26天新用户充值
+    */    
+    @Column
+    private BigDecimal d26;
+    
+    /**
+    * 广告ID,消耗时间的第27天新用户充值
+    */    
+    @Column
+    private BigDecimal d27;
+    
+    /**
+    * 广告ID,消耗时间的第28天新用户充值
+    */    
+    @Column
+    private BigDecimal d28;
+    
+    /**
+    * 广告ID,消耗时间的第29天新用户充值
+    */    
+    @Column
+    private BigDecimal d29;
+    
+    /**
+    * 广告ID,消耗时间的第30天新用户充值
+    */    
+    @Column
+    private BigDecimal d30;
+    
+    /**
+    * 付费趋势第1天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da1;
+    
+    /**
+    * 付费趋势第2天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da2;
+    
+    /**
+    * 付费趋势第3天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da3;
+    
+    /**
+    * 付费趋势第4天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da4;
+    
+    /**
+    * 付费趋势第5天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da5;
+    
+    /**
+    * 付费趋势第6天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da6;
+    
+    /**
+    * 付费趋势第7天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da7;
+    
+    /**
+    * 付费趋势第8天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da8;
+    
+    /**
+    * 付费趋势第9天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da9;
+    
+    /**
+    * 付费趋势第10天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da10;
+    
+    /**
+    * 付费趋势第11天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da11;
+    
+    /**
+    * 付费趋势第12天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da12;
+    
+    /**
+    * 付费趋势第13天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da13;
+    
+    /**
+    * 付费趋势第14天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da14;
+    
+    /**
+    * 付费趋势第15天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da15;
+    
+    /**
+    * 付费趋势第16天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da16;
+    
+    /**
+    * 付费趋势第17天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da17;
+    
+    /**
+    * 付费趋势第18天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da18;
+    
+    /**
+    * 付费趋势第19天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da19;
+    
+    /**
+    * 付费趋势第20天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da20;
+    
+    /**
+    * 付费趋势第21天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da21;
+    
+    /**
+    * 付费趋势第22天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da22;
+    
+    /**
+    * 付费趋势第23天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da23;
+    
+    /**
+    * 付费趋势第24天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da24;
+    
+    /**
+    * 付费趋势第25天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da25;
+    
+    /**
+    * 付费趋势第26天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da26;
+    
+    /**
+    * 付费趋势第27天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da27;
+    
+    /**
+    * 付费趋势第28天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da28;
+    
+    /**
+    * 付费趋势第29天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da29;
+    
+    /**
+    * 付费趋势第30天总:金额/人数/增/回/倍
+    */    
+    @Column
+    private String da30;
+
+}
+
+

+ 0 - 6
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsGameServerDay.java

@@ -1,9 +1,6 @@
 package com.zanxiang.game.data.serve.pojo.entity;
 
-import lombok.AllArgsConstructor;
-import lombok.Builder;
 import lombok.Data;
-import lombok.NoArgsConstructor;
 import org.nutz.dao.entity.annotation.Column;
 import org.nutz.dao.entity.annotation.PK;
 import org.nutz.dao.entity.annotation.Table;
@@ -13,9 +10,6 @@ import java.math.BigDecimal;
 import java.time.LocalDate;
 
 @Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Builder
 @Table(AdsGameServerDay.TABLE_NAME)
 @PK({"dt", "sourceSystem", "serverId", "serverName", "gameId", "gameName"})
 public class AdsGameServerDay implements Serializable {

+ 10 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsPromotionDay.java

@@ -11,6 +11,7 @@ import org.nutz.dao.entity.annotation.Table;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 
 /**
  * <p>
@@ -47,7 +48,7 @@ public class AdsPromotionDay implements Serializable {
     private Long promotionId;
 
     /**
-     * 计划ID
+     * 项目ID
      */
     private Long projectId;
 
@@ -196,10 +197,16 @@ public class AdsPromotionDay implements Serializable {
     private String budget;
 
     /**
-     * 投放时间
+     * 投放开始时间
      */
     @Column
-    private String scheduleTime;
+    private LocalDateTime startTime;
+
+    /**
+     * 投放结束时间
+     */
+    @Column
+    private LocalDateTime endTime;
 
     /**
      * 今日消耗

+ 550 - 4
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameServerDayTotalVO.java

@@ -3,7 +3,7 @@ package com.zanxiang.game.data.serve.pojo.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.time.LocalDate;
+import java.math.BigDecimal;
 
 /**
  * @author tianhua
@@ -14,9 +14,555 @@ import java.time.LocalDate;
 public class GameServerDayTotalVO {
 
     /**
-     * 开服时间
+     * 滚服累计人数
      */
-    @ApiModelProperty(value = "开服时间")
-    private LocalDate dt;
+    @ApiModelProperty(value = "滚服累计人数")
+    private Long outTotalNum;
+
+    /**
+     * 滚服累计付费人数
+     */
+    @ApiModelProperty(value = "滚服累计付费人数")
+    private Long outTotalAmountNum;
+
+    /**
+     * 滚服累计付费金额
+     */
+    @ApiModelProperty(value = "滚服累计付费金额")
+    private BigDecimal outTotalAmount;
+
+    /**
+     * 滚服累计付费占比
+     */
+    @ApiModelProperty(value = "滚服累计付费占比")
+    private BigDecimal outTotalRate;
+
+    /**
+     * 创角累计人数
+     */
+    @ApiModelProperty(value = "创角累计人数")
+    private Long totalRoleNum;
+
+    /**
+     * 注册累计人数
+     */
+    @ApiModelProperty(value = "注册累计人数")
+    private Long totalRegNum;
+
+    /**
+     * 付费累计人数
+     */
+    @ApiModelProperty(value = "付费累计人数")
+    private Long totalAmountNum;
+
+    /**
+     * 付费累计金额
+     */
+    @ApiModelProperty(value = "付费累计金额")
+    private BigDecimal totalAmount;
+
+    /**
+     * 区服第1天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da1;
+
+    /**
+     * 区服在第2天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da2;
+
+    /**
+     * 区服在第3天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da3;
+
+    /**
+     * 区服在第4天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da4;
+
+    /**
+     * 区服在第5天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da5;
+
+    /**
+     * 区服在第6天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da6;
+
+    /**
+     * 区服在第7天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da7;
+
+    /**
+     * 区服在第8天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da8;
+
+    /**
+     * 区服在第9天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da9;
+
+    /**
+     * 区服在第10天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da10;
+
+    /**
+     * 区服在第11天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da11;
+
+    /**
+     * 区服在第12天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da12;
+
+    /**
+     * 区服在第13天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da13;
+
+    /**
+     * 区服在第14天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da14;
+
+    /**
+     * 区服在第15天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da15;
+
+    /**
+     * 区服在第16天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da16;
+
+    /**
+     * 区服在第17天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da17;
+
+    /**
+     * 区服在第18天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da18;
+
+    /**
+     * 区服在第19天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da19;
+
+    /**
+     * 区服在第20天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da20;
+
+    /**
+     * 区服在第21天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da21;
+
+    /**
+     * 区服在第22天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da22;
+
+    /**
+     * 区服在第23天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da23;
+
+    /**
+     * 区服在第24天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da24;
+
+    /**
+     * 区服在第25天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da25;
+
+    /**
+     * 区服在第26天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da26;
+
+    /**
+     * 区服在第27天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da27;
+
+    /**
+     * 区服在第28天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da28;
+
+    /**
+     * 区服在第29天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da29;
+
+    /**
+     * 区服在第30天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String da30;
+
+    /**
+     * 区服在第2月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String m2;
+
+    /**
+     * 区服在第3月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String m3;
+
+    /**
+     * 区服在第4月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String m4;
+
+    /**
+     * 区服在第5月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String m5;
+
+    /**
+     * 区服在第6月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String m6;
+
+    /**
+     * 区服在第7月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String m7;
+
+    /**
+     * 区服在第8月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String m8;
+
+    /**
+     * 区服在第9月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String m9;
+
+    /**
+     * 区服在第10月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String m10;
+
+    /**
+     * 区服在第11月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String m11;
+
+    /**
+     * 区服在第1年:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String y1;
+
+    /**
+     * 区服至今:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "不展示")
+    private String total;
+
+    /**
+     * 区服第1天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第1天")
+    private GameServerTrendVO da1Trend;
+
+    /**
+     * 区服在第2天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第2天")
+    private GameServerTrendVO da2Trend;
+
+    /**
+     * 区服在第3天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第3天")
+    private GameServerTrendVO da3Trend;
+
+    /**
+     * 区服在第4天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第4天")
+    private GameServerTrendVO da4Trend;
+
+    /**
+     * 区服在第5天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第5天")
+    private GameServerTrendVO da5Trend;
+
+    /**
+     * 区服在第6天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第6天")
+    private GameServerTrendVO da6Trend;
+
+    /**
+     * 区服在第7天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第7天")
+    private GameServerTrendVO da7Trend;
+
+    /**
+     * 区服在第8天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第8天")
+    private GameServerTrendVO da8Trend;
+
+    /**
+     * 区服在第9天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第9天")
+    private GameServerTrendVO da9Trend;
+
+    /**
+     * 区服在第10天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第10天")
+    private GameServerTrendVO da10Trend;
+
+    /**
+     * 区服在第11天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第11天")
+    private GameServerTrendVO da11Trend;
+
+    /**
+     * 区服在第12天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第12天")
+    private GameServerTrendVO da12Trend;
+
+    /**
+     * 区服在第13天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第13天")
+    private GameServerTrendVO da13Trend;
+
+    /**
+     * 区服在第14天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第14天")
+    private GameServerTrendVO da14Trend;
+
+    /**
+     * 区服在第15天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第15天")
+    private GameServerTrendVO da15Trend;
+
+    /**
+     * 区服在第16天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第16天")
+    private GameServerTrendVO da16Trend;
+
+    /**
+     * 区服在第17天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第17天")
+    private GameServerTrendVO da17Trend;
+
+    /**
+     * 区服在第18天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第18天")
+    private GameServerTrendVO da18Trend;
+
+    /**
+     * 区服在第19天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第19天")
+    private GameServerTrendVO da19Trend;
+
+    /**
+     * 区服在第20天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第20天")
+    private GameServerTrendVO da20Trend;
+
+    /**
+     * 区服在第21天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第21天")
+    private GameServerTrendVO da21Trend;
+
+    /**
+     * 区服在第22天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第22天")
+    private GameServerTrendVO da22Trend;
+
+    /**
+     * 区服在第23天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第23天")
+    private GameServerTrendVO da23Trend;
+
+    /**
+     * 区服在第24天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第24天")
+    private GameServerTrendVO da24Trend;
+
+    /**
+     * 区服在第25天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第25天")
+    private GameServerTrendVO da25Trend;
+
+    /**
+     * 区服在第26天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第26天")
+    private GameServerTrendVO da26Trend;
+
+    /**
+     * 区服在第27天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第27天")
+    private GameServerTrendVO da27Trend;
+
+    /**
+     * 区服在第28天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第28天")
+    private GameServerTrendVO da28Trend;
+
+    /**
+     * 区服在第29天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第29天")
+    private GameServerTrendVO da29Trend;
+
+    /**
+     * 区服在第30天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第30天")
+    private GameServerTrendVO da30Trend;
+
+    /**
+     * 区服在第2月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第2月")
+    private GameServerTrendVO m2Trend;
+
+    /**
+     * 区服在第3月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第3月")
+    private GameServerTrendVO m3Trend;
+
+    /**
+     * 区服在第4月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第4月")
+    private GameServerTrendVO m4Trend;
+
+    /**
+     * 区服在第5月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第5月")
+    private GameServerTrendVO m5Trend;
+
+    /**
+     * 区服在第6月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第6月")
+    private GameServerTrendVO m6Trend;
+
+    /**
+     * 区服在第7月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第7月")
+    private GameServerTrendVO m7Trend;
+
+    /**
+     * 区服在第8月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第8月")
+    private GameServerTrendVO m8Trend;
+
+    /**
+     * 区服在第9月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第9月")
+    private GameServerTrendVO m9Trend;
+
+    /**
+     * 区服在第10月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第10月")
+    private GameServerTrendVO m10Trend;
+
+    /**
+     * 区服在第11月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第11月")
+    private GameServerTrendVO m11Trend;
+
+    /**
+     * 区服在第1年:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服第1年")
+    private GameServerTrendVO y1Trend;
+
+    /**
+     * 区服至今:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
+     */
+    @ApiModelProperty(value = "区服至今总数据")
+    private GameServerTrendVO totalTrend;
 
 }

+ 99 - 105
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameServerDayVO.java

@@ -1,10 +1,7 @@
 package com.zanxiang.game.data.serve.pojo.vo;
 
 import io.swagger.annotations.ApiModelProperty;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
 import lombok.Data;
-import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -15,9 +12,6 @@ import java.time.LocalDate;
  * @Description 前端展示的游戏区服数据
  **/
 @Data
-@AllArgsConstructor
-@NoArgsConstructor
-@Builder
 public class GameServerDayVO {
 
     /**
@@ -63,51 +57,51 @@ public class GameServerDayVO {
     private Long classify;
 
     /**
-     * 滚服人数
+     * 滚服累计人数
      */
-    @ApiModelProperty(value = "滚服人数")
+    @ApiModelProperty(value = "滚服累计人数")
     private Long outTotalNum;
 
     /**
-     * 滚服付费人数
+     * 滚服累计付费人数
      */
-    @ApiModelProperty(value = "滚服付费人数")
+    @ApiModelProperty(value = "滚服累计付费人数")
     private Long outTotalAmountNum;
 
     /**
-     * 滚服付费金额
+     * 滚服累计付费金额
      */
-    @ApiModelProperty(value = "滚服付费金额")
+    @ApiModelProperty(value = "滚服累计付费金额")
     private BigDecimal outTotalAmount;
 
     /**
-     * 滚服付费占比
+     * 滚服累计付费占比
      */
-    @ApiModelProperty(value = "滚服付费占比")
+    @ApiModelProperty(value = "滚服累计付费占比")
     private BigDecimal outTotalRate;
 
     /**
-     * 创角人数
+     * 创角累计人数
      */
-    @ApiModelProperty(value = "创角人数")
+    @ApiModelProperty(value = "创角累计人数")
     private Long totalRoleNum;
 
     /**
-     * 注册人数
+     * 注册累计人数
      */
-    @ApiModelProperty(value = "注册人数")
+    @ApiModelProperty(value = "注册累计人数")
     private Long totalRegNum;
 
     /**
-     * 付费人数
+     * 付费累计人数
      */
-    @ApiModelProperty(value = "付费人数")
+    @ApiModelProperty(value = "付费累计人数")
     private Long totalAmountNum;
 
     /**
-     * 付费金额
+     * 付费累计金额
      */
-    @ApiModelProperty(value = "付费金额")
+    @ApiModelProperty(value = "付费累计金额")
     private BigDecimal totalAmount;
 
     /**
@@ -366,252 +360,252 @@ public class GameServerDayVO {
      * 区服第1天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
     @ApiModelProperty(value = "区服第1天")
-    private String da1Trend;
+    private GameServerTrendVO da1Trend;
 
     /**
      * 区服在第2天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da2Trend;
+    @ApiModelProperty(value = "区服第2天")
+    private GameServerTrendVO da2Trend;
 
     /**
      * 区服在第3天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da3Trend;
+    @ApiModelProperty(value = "区服第3天")
+    private GameServerTrendVO da3Trend;
 
     /**
      * 区服在第4天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da4Trend;
+    @ApiModelProperty(value = "区服第4天")
+    private GameServerTrendVO da4Trend;
 
     /**
      * 区服在第5天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da5Trend;
+    @ApiModelProperty(value = "区服第5天")
+    private GameServerTrendVO da5Trend;
 
     /**
      * 区服在第6天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da6Trend;
+    @ApiModelProperty(value = "区服第6天")
+    private GameServerTrendVO da6Trend;
 
     /**
      * 区服在第7天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da7Trend;
+    @ApiModelProperty(value = "区服第7天")
+    private GameServerTrendVO da7Trend;
 
     /**
      * 区服在第8天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da8Trend;
+    @ApiModelProperty(value = "区服第8天")
+    private GameServerTrendVO da8Trend;
 
     /**
      * 区服在第9天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da9Trend;
+    @ApiModelProperty(value = "区服第9天")
+    private GameServerTrendVO da9Trend;
 
     /**
      * 区服在第10天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da10Trend;
+    @ApiModelProperty(value = "区服第10天")
+    private GameServerTrendVO da10Trend;
 
     /**
      * 区服在第11天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da11Trend;
+    @ApiModelProperty(value = "区服第11天")
+    private GameServerTrendVO da11Trend;
 
     /**
      * 区服在第12天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da12Trend;
+    @ApiModelProperty(value = "区服第12天")
+    private GameServerTrendVO da12Trend;
 
     /**
      * 区服在第13天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da13Trend;
+    @ApiModelProperty(value = "区服第13天")
+    private GameServerTrendVO da13Trend;
 
     /**
      * 区服在第14天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da14Trend;
+    @ApiModelProperty(value = "区服第14天")
+    private GameServerTrendVO da14Trend;
 
     /**
      * 区服在第15天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da15Trend;
+    @ApiModelProperty(value = "区服第15天")
+    private GameServerTrendVO da15Trend;
 
     /**
      * 区服在第16天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da16Trend;
+    @ApiModelProperty(value = "区服第16天")
+    private GameServerTrendVO da16Trend;
 
     /**
      * 区服在第17天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da17Trend;
+    @ApiModelProperty(value = "区服第17天")
+    private GameServerTrendVO da17Trend;
 
     /**
      * 区服在第18天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da18Trend;
+    @ApiModelProperty(value = "区服第18天")
+    private GameServerTrendVO da18Trend;
 
     /**
      * 区服在第19天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da19Trend;
+    @ApiModelProperty(value = "区服第19天")
+    private GameServerTrendVO da19Trend;
 
     /**
      * 区服在第20天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da20Trend;
+    @ApiModelProperty(value = "区服第20天")
+    private GameServerTrendVO da20Trend;
 
     /**
      * 区服在第21天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da21Trend;
+    @ApiModelProperty(value = "区服第21天")
+    private GameServerTrendVO da21Trend;
 
     /**
      * 区服在第22天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da22Trend;
+    @ApiModelProperty(value = "区服第22天")
+    private GameServerTrendVO da22Trend;
 
     /**
      * 区服在第23天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da23Trend;
+    @ApiModelProperty(value = "区服第23天")
+    private GameServerTrendVO da23Trend;
 
     /**
      * 区服在第24天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da24Trend;
+    @ApiModelProperty(value = "区服第24天")
+    private GameServerTrendVO da24Trend;
 
     /**
      * 区服在第25天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da25Trend;
+    @ApiModelProperty(value = "区服第25天")
+    private GameServerTrendVO da25Trend;
 
     /**
      * 区服在第26天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da26Trend;
+    @ApiModelProperty(value = "区服第26天")
+    private GameServerTrendVO da26Trend;
 
     /**
      * 区服在第27天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da27Trend;
+    @ApiModelProperty(value = "区服第27天")
+    private GameServerTrendVO da27Trend;
 
     /**
      * 区服在第28天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da28Trend;
+    @ApiModelProperty(value = "区服第28天")
+    private GameServerTrendVO da28Trend;
 
     /**
      * 区服在第29天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da29Trend;
+    @ApiModelProperty(value = "区服第29天")
+    private GameServerTrendVO da29Trend;
 
     /**
      * 区服在第30天:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String da30Trend;
+    @ApiModelProperty(value = "区服第30天")
+    private GameServerTrendVO da30Trend;
 
     /**
      * 区服在第2月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String m2Trend;
+    @ApiModelProperty(value = "区服第2月")
+    private GameServerTrendVO m2Trend;
 
     /**
      * 区服在第3月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String m3Trend;
+    @ApiModelProperty(value = "区服第3月")
+    private GameServerTrendVO m3Trend;
 
     /**
      * 区服在第4月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String m4Trend;
+    @ApiModelProperty(value = "区服第4月")
+    private GameServerTrendVO m4Trend;
 
     /**
      * 区服在第5月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String m5Trend;
+    @ApiModelProperty(value = "区服第5月")
+    private GameServerTrendVO m5Trend;
 
     /**
      * 区服在第6月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String m6Trend;
+    @ApiModelProperty(value = "区服第6月")
+    private GameServerTrendVO m6Trend;
 
     /**
      * 区服在第7月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String m7Trend;
+    @ApiModelProperty(value = "区服第7月")
+    private GameServerTrendVO m7Trend;
 
     /**
      * 区服在第8月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String m8Trend;
+    @ApiModelProperty(value = "区服第8月")
+    private GameServerTrendVO m8Trend;
 
     /**
      * 区服在第9月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String m9Trend;
+    @ApiModelProperty(value = "区服第9月")
+    private GameServerTrendVO m9Trend;
 
     /**
      * 区服在第10月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1")
-    private String m10Trend;
+    @ApiModelProperty(value = "区服第10月")
+    private GameServerTrendVO m10Trend;
 
     /**
      * 区服在第11月:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1")
-    private String m11Trend;
+    @ApiModelProperty(value = "区服第11月")
+    private GameServerTrendVO m11Trend;
 
     /**
      * 区服在第1年:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1")
-    private String y1Trend;
+    @ApiModelProperty(value = "区服第1")
+    private GameServerTrendVO y1Trend;
 
     /**
      * 区服至今:注册人数/创角人数/活跃人数/付费人数/付费金额/滚服人数/滚服付费人数/滚服付费金额/滚服付费占比
      */
-    @ApiModelProperty(value = "区服第1天")
-    private String totalTrend;
+    @ApiModelProperty(value = "区服至今总数据")
+    private GameServerTrendVO totalTrend;
 
 }

+ 71 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameServerTrendVO.java

@@ -0,0 +1,71 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class GameServerTrendVO {
+
+    /**
+     * 注册人数
+     */
+    @ApiModelProperty(notes = "注册人数")
+    private Long regNum;
+
+    /**
+     * 创角人数
+     */
+    @ApiModelProperty(notes = "创角人数")
+    private Long roleNum;
+
+    /**
+     * 活跃人数
+     */
+    @ApiModelProperty(notes = "活跃人数")
+    private Long activeNum;
+
+    /**
+     * 付费人数
+     */
+    @ApiModelProperty(notes = "付费人数")
+    private Long amountNum;
+
+    /**
+     * 付费金额
+     */
+    @ApiModelProperty(notes = "付费金额")
+    private BigDecimal amount;
+
+    /**
+     * 滚服人数
+     */
+    @ApiModelProperty(notes = "滚服人数")
+    private Long rollServerNum;
+
+    /**
+     * 滚服付费人数
+     */
+    @ApiModelProperty(notes = "滚服付费人数")
+    private Long rollServerAmountNum;
+
+    /**
+     * 滚服付费金额
+     */
+    @ApiModelProperty(notes = "滚服付费金额")
+    private BigDecimal rollServerAmount;
+
+    /**
+     * 滚服付费占比
+     */
+    @ApiModelProperty(notes = "滚服付费占比")
+    private BigDecimal rollServerAmountRate;
+
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherDataDayTotalVO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手每日数据总计实体
+ **/
+public class PitcherDataDayTotalVO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherDataDayVO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手每日数据实体
+ **/
+public class PitcherDataDayVO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherDataTotalSumVO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手总数据总计实体
+ **/
+public class PitcherDataTotalSumVO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherDataTotalVO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手总数据实体
+ **/
+public class PitcherDataTotalVO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherGameDataDayTotalVO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手游戏每日数据总计实体
+ **/
+public class PitcherGameDataDayTotalVO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherGameDataDayVO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手游戏每日数据实体
+ **/
+public class PitcherGameDataDayVO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherGameDataTotalSumVO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手游戏总数据总计实体
+ **/
+public class PitcherGameDataTotalSumVO {
+}

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PitcherGameDataTotalVO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手游戏总数据实体
+ **/
+public class PitcherGameDataTotalVO {
+}

+ 886 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/TencentPromotionDayTotalVO.java

@@ -0,0 +1,886 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * @author tianhua
+ * @time 2023/7/27
+ * @Description 广告监控数据总计前端显示对象(腾讯广告)
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class TencentPromotionDayTotalVO {
+
+    /**
+     * 今日消耗
+     */
+    @ApiModelProperty(value = "今日消耗")
+    private BigDecimal todayCost;
+
+    /**
+     * 广告总消耗
+     */
+    @ApiModelProperty(value = "广告总消耗")
+    private BigDecimal promotionTotalCost;
+
+    /**
+     * 曝光量
+     */
+    @ApiModelProperty(value = "曝光量")
+    private Long showCount;
+
+    /**
+     * 千次曝光成本
+     */
+    @ApiModelProperty(value = "千次曝光成本")
+    private BigDecimal thousandDisplayPrice;
+
+    /**
+     * 点击量
+     */
+    @ApiModelProperty(value = "点击量")
+    private Long clickCount;
+
+    /**
+     * 点击均价
+     */
+    @ApiModelProperty(value = "点击均价")
+    private BigDecimal avgClickCost;
+
+    /**
+     * 点击率
+     */
+    @ApiModelProperty(value = "点击率")
+    private BigDecimal ctr;
+
+    /**
+     * 转化目标量
+     */
+    @ApiModelProperty(value = "转化目标量")
+    private Long convertCount;
+
+    /**
+     * 转化目标成本
+     */
+    @ApiModelProperty(value = "转化目标成本")
+    private BigDecimal convertCost;
+
+    /**
+     * 目标转化率
+     */
+    @ApiModelProperty(value = "目标转化率")
+    private BigDecimal convertRate;
+
+    /**
+     * 新增用户数
+     */
+    @ApiModelProperty(value = "新增用户数")
+    private Long regNum;
+
+    /**
+     * 广告总注册人数
+     */
+    @ApiModelProperty(value = "广告总注册人数")
+    private Long regTotalNum;
+
+    /**
+     * 总创角人数
+     */
+    @ApiModelProperty(value = "总创角人数")
+    private Long roleTotalNum;
+
+    /**
+     * 首日创角人数
+     */
+    @ApiModelProperty(value = "首日创角人数")
+    private Long firstRoleNum;
+
+    /**
+     * 新用户累计创角人数
+     */
+    @ApiModelProperty(value = "新用户累计创角人数")
+    private Long newUserTotalRoleNum;
+
+    /**
+     * 注册成本
+     */
+    @ApiModelProperty(value = "注册成本")
+    private BigDecimal regCost;
+
+    /**
+     * 总注册成本
+     */
+    @ApiModelProperty(value = "总注册成本")
+    private BigDecimal regTotalCost;
+
+    /**
+     * 首日创角成本
+     */
+    @ApiModelProperty(value = "首日创角成本")
+    private BigDecimal firstRoleCost;
+
+    /**
+     * 新用户创角成本
+     */
+    @ApiModelProperty(value = "新用户创角成本")
+    private BigDecimal newUserTotalRoleCost;
+
+    /**
+     * 总创角成本
+     */
+    @ApiModelProperty(value = "总创角成本")
+    private BigDecimal roleTotalCost;
+
+    /**
+     * 首日创角率
+     */
+    @ApiModelProperty(value = "首日创角率")
+    private BigDecimal firstRoleRate;
+
+    /**
+     * 新用户创角率
+     */
+    @ApiModelProperty(value = "新用户创角率")
+    private BigDecimal newUserTotalRoleRate;
+
+    /**
+     * 总创角率
+     */
+    @ApiModelProperty(value = "总创角率")
+    private BigDecimal roleTotalRate;
+
+    /**
+     * 新增付费次数
+     */
+    @ApiModelProperty(value = "新增付费次数")
+    private Long firstNewUserAmountCount;
+
+    /**
+     * 新增付费人数
+     */
+    @ApiModelProperty(value = "新增付费人数")
+    private Long firstNewUserAmountNum;
+
+    /**
+     * 新增付费金额
+     */
+    @ApiModelProperty(value = "新增付费金额")
+    private BigDecimal firstNewUserAmount;
+
+    /**
+     * 至今付费次数
+     */
+    @ApiModelProperty(value = "至今付费次数")
+    private Long newUserTotalAmountCount;
+
+    /**
+     * 至今付费人数
+     */
+    @ApiModelProperty(value = "至今付费人数")
+    private Long newUserTotalAmountNum;
+
+    /**
+     * 至今付费金额
+     */
+    @ApiModelProperty(value = "至今付费金额")
+    private BigDecimal newUserTotalAmount;
+
+    /**
+     * 总充值次数
+     */
+    @ApiModelProperty(value = "总充值次数")
+    private Long totalAmountCount;
+
+    /**
+     * 总充值人数
+     */
+    @ApiModelProperty(value = "总充值人数")
+    private Long totalAmountNum;
+
+    /**
+     * 总充值金额
+     */
+    @ApiModelProperty(value = "总充值金额")
+    private BigDecimal totalAmount;
+
+    /**
+     * 首日ROI
+     */
+    @ApiModelProperty(value = "首日ROI")
+    private BigDecimal firstRoi;
+
+    /**
+     * 新用户24小时充值金额
+     */
+    @ApiModelProperty(value = "新用户24小时充值金额")
+    private BigDecimal twentyFourHoursAmount;
+
+    /**
+     * 新用户24小时ROI
+     */
+    @ApiModelProperty(value = "新用户24小时ROI")
+    private BigDecimal twentyFourHoursRoi;
+
+    /**
+     * 总ROI
+     */
+    @ApiModelProperty(value = "总ROI")
+    private BigDecimal totalRoi;
+
+    /**
+     * 广告总ROI
+     */
+    @ApiModelProperty(value = "广告总ROI")
+    private BigDecimal promotionTotalRoi;
+
+    /**
+     * 新增付费成本
+     */
+    @ApiModelProperty(value = "新增付费成本")
+    private BigDecimal firstNewUserRechargeCost;
+
+    /**
+     * 至今付费成本
+     */
+    @ApiModelProperty(value = "至今付费成本")
+    private BigDecimal newUserTotalRechargeCost;
+
+    /**
+     * 广告总付费成本
+     */
+    @ApiModelProperty(value = "广告总付费成本")
+    private BigDecimal totalRechargeCost;
+
+    /**
+     * 新增付费次数成本
+     */
+    @ApiModelProperty(value = "新增付费次数成本 = 消耗 / 新增付费次数")
+    private BigDecimal firstNewUserAmountCountCost;
+
+    /**
+     * 至今付费次数成本
+     */
+    @ApiModelProperty(value = "至今付费次数成本 = 消耗 / 至今付费数")
+    private BigDecimal newUserTotalAmountCountCost;
+
+    /**
+     * 总充值次数成本
+     */
+    @ApiModelProperty(value = "总充值次数成本 = 消耗 / 总充值次数")
+    private BigDecimal totalAmountCountCost;
+
+    /**
+     * 新增付费ARPPU
+     */
+    @ApiModelProperty(value = "新增付费ARPPU")
+    private BigDecimal firstNewUserArppu;
+
+    /**
+     * 至今付费ARPPU
+     */
+    @ApiModelProperty(value = "至今付费ARPPU")
+    private BigDecimal newUserTotalAmountArppu;
+
+    /**
+     * 新增付费100+用户数
+     */
+    @ApiModelProperty(value = "新增付费100+用户数")
+    private Long firstNewUserHundredUserNum;
+
+    /**
+     * 新增付费200+用户数
+     */
+    @ApiModelProperty(value = "新增付费200+用户数")
+    private Long firstNewUserTwoHundredUserNum;
+
+    /**
+     * 至今付费100+用户数
+     */
+    @ApiModelProperty(value = "至今付费100+用户数")
+    private Long newUserTotalHundredUserNum;
+
+    /**
+     * 首充50~100元用户数
+     */
+    @ApiModelProperty(value = "首充50~100元用户数")
+    private Long firstRechargeFiftyHundredNum;
+
+    /**
+     * 新增付费100+用户付费成本
+     */
+    @ApiModelProperty(value = "新增付费100+用户付费成本")
+    private BigDecimal firstNewUserHundredUserCost;
+
+    /**
+     * 新增付费200+用户付费成本
+     */
+    @ApiModelProperty(value = "新增付费200+用户付费成本")
+    private BigDecimal firstNewUserTwoHundredUserCost;
+
+    /**
+     * 至今付费100+用户付费成本
+     */
+    @ApiModelProperty(value = "至今付费100+用户付费成本")
+    private BigDecimal newUserTotalHundredUserCost;
+
+    /**
+     * 首充50~100元占比
+     */
+    @ApiModelProperty(value = "首充50~100元占比")
+    private BigDecimal firstRechargeFiftyHundredRate;
+
+    /**
+     * 首日IOS付费次数
+     */
+    @ApiModelProperty(value = "首日IOS付费次数")
+    private Long firstIosAmountCount;
+
+    /**
+     * 首日IOS付费人数
+     */
+    @ApiModelProperty(value = "首日IOS付费人数")
+    private Long firstIosAmountNum;
+
+    /**
+     * 首日IOS付费金额
+     */
+    @ApiModelProperty(value = "首日IOS付费金额")
+    private BigDecimal firstIosAmount;
+
+    /**
+     * 首日Android付费次数
+     */
+    @ApiModelProperty(value = "首日Android付费次数")
+    private Long firstAndroidAmountCount;
+
+    /**
+     * 首日Android付费人数
+     */
+    @ApiModelProperty(value = "首日Android付费人数")
+    private Long firstAndroidAmountNum;
+
+    /**
+     * 首日Android付费金额
+     */
+    @ApiModelProperty(value = "首日Android付费金额")
+    private BigDecimal firstAndroidAmount;
+
+    /**
+     * 首日IOS付费人数占比
+     */
+    @ApiModelProperty(value = "首日IOS付费人数占比")
+    private BigDecimal firstIosAmountNumRate;
+
+    /**
+     * 首日IOS付费金额占比
+     */
+    @ApiModelProperty(value = "首日IOS付费金额占比")
+    private BigDecimal firstIosAmountRate;
+
+    /**
+     * 首日IOS付费ROI
+     */
+    @ApiModelProperty(value = "首日IOS付费ROI")
+    private BigDecimal firstIosAmountRoi;
+
+    /**
+     * 首日Android付费人数占比
+     */
+    @ApiModelProperty(value = "首日Android付费人数占比")
+    private BigDecimal firstAndroidAmountNumRate;
+
+    /**
+     * 首日Android付费金额占比
+     */
+    @ApiModelProperty(value = "首日Android付费金额占比")
+    private BigDecimal firstAndroidAmountRate;
+
+    /**
+     * 首日Android付费ROI
+     */
+    @ApiModelProperty(value = "首日Android付费ROI")
+    private BigDecimal firstAndroidAmountRoi;
+
+    /**
+     * 首日付费率
+     */
+    @ApiModelProperty(value = "首日付费率")
+    private BigDecimal firstAmountRate;
+
+    /**
+     * 新增客单价
+     */
+    @ApiModelProperty(value = "新增客单价")
+    private BigDecimal firstNewUserAvgPrice;
+
+    /**
+     * 至今客单价
+     */
+    @ApiModelProperty(value = "至今客单价")
+    private BigDecimal newUserTotalAvgPrice;
+
+    /**
+     * 计划ID,消耗时间的第1天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第1天新用户充值(不显示)")
+    private BigDecimal d1;
+
+    /**
+     * 计划ID,消耗时间的第2天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第2天新用户充值(不显示)")
+    private BigDecimal d2;
+
+    /**
+     * 计划ID,消耗时间的第3天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第3天新用户充值(不显示)")
+    private BigDecimal d3;
+
+    /**
+     * 计划ID,消耗时间的第4天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第4天新用户充值(不显示)")
+    private BigDecimal d4;
+
+    /**
+     * 计划ID,消耗时间的第5天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第5天新用户充值(不显示)")
+    private BigDecimal d5;
+
+    /**
+     * 计划ID,消耗时间的第6天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第6天新用户充值(不显示)")
+    private BigDecimal d6;
+
+    /**
+     * 计划ID,消耗时间的第7天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第7天新用户充值(不显示)")
+    private BigDecimal d7;
+
+    /**
+     * 计划ID,消耗时间的第8天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第8天新用户充值(不显示)")
+    private BigDecimal d8;
+
+    /**
+     * 计划ID,消耗时间的第9天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第9天新用户充值(不显示)")
+    private BigDecimal d9;
+
+    /**
+     * 计划ID,消耗时间的第10天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第10天新用户充值(不显示)")
+    private BigDecimal d10;
+
+    /**
+     * 计划ID,消耗时间的第11天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第11天新用户充值(不显示)")
+    private BigDecimal d11;
+
+    /**
+     * 计划ID,消耗时间的第12天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第12天新用户充值(不显示)")
+    private BigDecimal d12;
+
+    /**
+     * 计划ID,消耗时间的第13天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第13天新用户充值(不显示)")
+    private BigDecimal d13;
+
+    /**
+     * 计划ID,消耗时间的第14天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第14天新用户充值(不显示)")
+    private BigDecimal d14;
+
+    /**
+     * 计划ID,消耗时间的第15天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第15天新用户充值(不显示)")
+    private BigDecimal d15;
+
+    /**
+     * 计划ID,消耗时间的第16天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第16天新用户充值(不显示)")
+    private BigDecimal d16;
+
+    /**
+     * 计划ID,消耗时间的第17天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第17天新用户充值(不显示)")
+    private BigDecimal d17;
+
+    /**
+     * 计划ID,消耗时间的第18天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第18天新用户充值(不显示)")
+    private BigDecimal d18;
+
+    /**
+     * 计划ID,消耗时间的第19天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第19天新用户充值(不显示)")
+    private BigDecimal d19;
+
+    /**
+     * 计划ID,消耗时间的第20天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第20天新用户充值(不显示)")
+    private BigDecimal d20;
+
+    /**
+     * 计划ID,消耗时间的第21天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第21天新用户充值(不显示)")
+    private BigDecimal d21;
+
+    /**
+     * 计划ID,消耗时间的第22天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第22天新用户充值(不显示)")
+    private BigDecimal d22;
+
+    /**
+     * 计划ID,消耗时间的第23天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第23天新用户充值(不显示)")
+    private BigDecimal d23;
+
+    /**
+     * 计划ID,消耗时间的第24天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第24天新用户充值(不显示)")
+    private BigDecimal d24;
+
+    /**
+     * 计划ID,消耗时间的第25天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第25天新用户充值(不显示)")
+    private BigDecimal d25;
+
+    /**
+     * 计划ID,消耗时间的第26天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第26天新用户充值(不显示)")
+    private BigDecimal d26;
+
+    /**
+     * 计划ID,消耗时间的第27天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第27天新用户充值(不显示)")
+    private BigDecimal d27;
+
+    /**
+     * 计划ID,消耗时间的第28天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第28天新用户充值(不显示)")
+    private BigDecimal d28;
+
+    /**
+     * 计划ID,消耗时间的第29天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第29天新用户充值(不显示)")
+    private BigDecimal d29;
+
+    /**
+     * 计划ID,消耗时间的第30天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第30天新用户充值(不显示)")
+    private BigDecimal d30;
+
+    /**
+     * 付费趋势第1天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第1天总:金额/人数/增/回/倍(不显示)")
+    private String da1;
+
+    /**
+     * 付费趋势第2天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第2天总:金额/人数/增/回/倍(不显示)")
+    private String da2;
+
+    /**
+     * 付费趋势第3天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第3天总:金额/人数/增/回/倍(不显示)")
+    private String da3;
+
+    /**
+     * 付费趋势第4天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第4天总:金额/人数/增/回/倍(不显示)")
+    private String da4;
+
+    /**
+     * 付费趋势第5天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第5天总:金额/人数/增/回/倍(不显示)")
+    private String da5;
+
+    /**
+     * 付费趋势第6天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第6天总:金额/人数/增/回/倍(不显示)")
+    private String da6;
+
+    /**
+     * 付费趋势第7天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第7天总:金额/人数/增/回/倍(不显示)")
+    private String da7;
+
+    /**
+     * 付费趋势第8天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第8天总:金额/人数/增/回/倍(不显示)")
+    private String da8;
+
+    /**
+     * 付费趋势第9天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第9天总:金额/人数/增/回/倍(不显示)")
+    private String da9;
+
+    /**
+     * 付费趋势第10天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第10天总:金额/人数/增/回/倍(不显示)")
+    private String da10;
+
+    /**
+     * 付费趋势第11天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第11天总:金额/人数/增/回/倍(不显示)")
+    private String da11;
+
+    /**
+     * 付费趋势第12天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第12天总:金额/人数/增/回/倍(不显示)")
+    private String da12;
+
+    /**
+     * 付费趋势第13天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第13天总:金额/人数/增/回/倍(不显示)")
+    private String da13;
+
+    /**
+     * 付费趋势第14天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第14天总:金额/人数/增/回/倍(不显示)")
+    private String da14;
+
+    /**
+     * 付费趋势第15天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第15天总:金额/人数/增/回/倍(不显示)")
+    private String da15;
+
+    /**
+     * 付费趋势第16天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第16天总:金额/人数/增/回/倍(不显示)")
+    private String da16;
+
+    /**
+     * 付费趋势第17天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第17天总:金额/人数/增/回/倍(不显示)")
+    private String da17;
+
+    /**
+     * 付费趋势第18天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第18天总:金额/人数/增/回/倍(不显示)")
+    private String da18;
+
+    /**
+     * 付费趋势第19天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第19天总:金额/人数/增/回/倍(不显示)")
+    private String da19;
+
+    /**
+     * 付费趋势第20天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第20天总:金额/人数/增/回/倍(不显示)")
+    private String da20;
+
+    /**
+     * 付费趋势第21天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第21天总:金额/人数/增/回/倍(不显示)")
+    private String da21;
+
+    /**
+     * 付费趋势第22天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第22天总:金额/人数/增/回/倍(不显示)")
+    private String da22;
+
+    /**
+     * 付费趋势第23天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第23天总:金额/人数/增/回/倍(不显示)")
+    private String da23;
+
+    /**
+     * 付费趋势第24天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第24天总:金额/人数/增/回/倍(不显示)")
+    private String da24;
+
+    /**
+     * 付费趋势第25天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第25天总:金额/人数/增/回/倍(不显示)")
+    private String da25;
+
+    /**
+     * 付费趋势第26天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第26天总:金额/人数/增/回/倍(不显示)")
+    private String da26;
+
+    /**
+     * 付费趋势第27天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第27天总:金额/人数/增/回/倍(不显示)")
+    private String da27;
+
+    /**
+     * 付费趋势第28天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第28天总:金额/人数/增/回/倍(不显示)")
+    private String da28;
+
+    /**
+     * 付费趋势第29天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第29天总:金额/人数/增/回/倍(不显示)")
+    private String da29;
+
+    /**
+     * 付费趋势第30天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第30天总:金额/人数/增/回/倍(不显示)")
+    private String da30;
+
+    /**
+     * 次日数据
+     */
+    @ApiModelProperty(value = "次日:ROI/付费/倍数")
+    private PromotionRechargeTrendVO d2Trend;
+
+    /**
+     * 3日数据
+     */
+    @ApiModelProperty(value = "3日:ROI/付费/倍数")
+    private PromotionRechargeTrendVO d3Trend;
+
+    /**
+     * 7日数据
+     */
+    @ApiModelProperty(value = "7日:ROI/付费/倍数")
+    private PromotionRechargeTrendVO d7Trend;
+
+    /**
+     * 15日数据
+     */
+    @ApiModelProperty(value = "15日:ROI/付费/倍数")
+    private PromotionRechargeTrendVO d15Trend;
+
+    /**
+     * 注册人数 (应用下载广告数据-激活数)
+     */
+    @ApiModelProperty(value = "注册人数 (应用下载广告数据-激活数)")
+    private Long active;
+
+    /**
+     * 注册成本 (应用下载广告数据-激活成本)
+     */
+    @ApiModelProperty(value = "注册成本 (应用下载广告数据-激活成本)")
+    private BigDecimal activeCost;
+
+    /**
+     * 首日转化数 (转化数据-转化数)
+     */
+    @ApiModelProperty(value = "首日转化数 (转化数据-转化数)")
+    private Long firstConvertCount;
+
+    /**
+     * 首日转化成本 (转化数据-转化成本)
+     */
+    @ApiModelProperty(value = "首日转化成本 (转化数据-转化成本)")
+    private BigDecimal firstConvertCost;
+
+    /**
+     * 首次付费率 (应用下载广告数据-首次付费率)
+     */
+    @ApiModelProperty(value = "首次付费率 (应用下载广告数据-首次付费率)")
+    private BigDecimal firstActivePayRate;
+
+    /**
+     * 首日付费金额(当日付费金额-所选时间范围内的激活用户,激活当日在APP内的付费金额)
+     */
+    @ApiModelProperty(value = "首日付费金额(当日付费金额-所选时间范围内的激活用户,激活当日在APP内的付费金额)")
+    private BigDecimal firstAttributionGameInAppLtv1day;
+
+    /**
+     * 首日付费ROI (当日付费ROI)
+     */
+    @ApiModelProperty(value = "首日付费ROI (当日付费ROI)")
+    private BigDecimal firstAttributionGameInAppRoi1day;
+
+    /**
+     * 付费次数 (应用下载广告数据-付费次数)
+     */
+    @ApiModelProperty(value = "付费次数 (应用下载广告数据-付费次数)")
+    private Long gamePayCount;
+
+    /**
+     * 付费次数成本
+     */
+    @ApiModelProperty(value = "付费次数成本 = 消耗 / 付费次数")
+    private BigDecimal gamePayCountCost;
+
+    /**
+     * ltv1 (首日付费金额(attribution_game_in_app_ltv1day) / 注册人数)
+     */
+    @ApiModelProperty(value = "ltv1 (首日付费金额(attribution_game_in_app_ltv1day) / 注册人数)")
+    private BigDecimal ltvDay1;
+
+    /**
+     * 每日扣单数 (广告首日总订单数 - 应用下载广告数据-付费次数(game_pay_count))
+     */
+    @ApiModelProperty(value = "每日扣单数 (广告首日总订单数 - 应用下载广告数据-付费次数(game_pay_count))")
+    private Long subOrderNum;
+
+    /**
+     * 每日扣单金额  (广告首日总金额 - 当日付费金额-所选时间范围内的激活用户,激活当日在APP内的付费金额(attribution_game_in_app_ltv1day) )
+     */
+    @ApiModelProperty(value = "每日扣单金额  (广告首日总金额 - 当日付费金额-所选时间范围内的激活用户,激活当日在APP内的付费金额(attribution_game_in_app_ltv1day) )")
+    private BigDecimal subOrderAmount;
+
+}

+ 1062 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/TencentPromotionDayVO.java

@@ -0,0 +1,1062 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * @author tianhua
+ * @time 2023/7/27
+ * @Description 广告监控数据前端显示实体对象(腾讯广告)
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class TencentPromotionDayVO {
+
+    /**
+     * 时间
+     */
+    @ApiModelProperty(value = "时间")
+    private LocalDate dt;
+
+    /**
+     * 广告ID
+     */
+    @ApiModelProperty(value = "广告ID")
+    private String promotionId;
+
+    /**
+     * 广告名称
+     */
+    @ApiModelProperty(value = "广告名称")
+    private String promotionName;
+
+    /**
+     * 计划ID
+     */
+    @ApiModelProperty(value = "计划ID")
+    private String projectId;
+
+    /**
+     * 计划名称
+     */
+    @ApiModelProperty(value = "计划名称")
+    private String projectName;
+
+    /**
+     * 推广账号ID
+     */
+    @ApiModelProperty(value = "推广账号ID")
+    private Long accountId;
+
+    /**
+     * 推广账号名称
+     */
+    @ApiModelProperty(value = "推广账号名称")
+    private String accountName;
+
+    /**
+     * 投放媒体
+     */
+    @ApiModelProperty(value = "投放媒体")
+    private String accountType;
+
+    /**
+     * 投手ID
+     */
+    @ApiModelProperty(value = "投手ID")
+    private Long pitcherId;
+
+    /**
+     * 投手名称
+     */
+    @ApiModelProperty(value = "投手名称")
+    private String pitcherName;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String notes;
+
+    /**
+     * 服务商
+     */
+    @ApiModelProperty(value = "服务商")
+    private String service;
+
+    /**
+     * 余额
+     */
+    @ApiModelProperty(value = "余额")
+    private String balance;
+
+    /**
+     * 渠道ID
+     */
+    @ApiModelProperty(value = "渠道ID")
+    private Long agentId;
+
+    /**
+     * 渠道名称
+     */
+    @ApiModelProperty(value = "渠道名称")
+    private String agentName;
+
+    /**
+     * 渠道标识
+     */
+    @ApiModelProperty(value = "渠道标识")
+    private String agentKey;
+
+    /**
+     * cp名称
+     */
+    @ApiModelProperty(value = "cp名称")
+    private String cpName;
+
+    /**
+     * 游戏ID
+     */
+    @ApiModelProperty(value = "游戏ID")
+    private Long gameId;
+
+    /**
+     * 游戏名称
+     */
+    @ApiModelProperty(value = "游戏名称")
+    private String gameName;
+
+    /**
+     * 游戏应用类型
+     */
+    @ApiModelProperty(value = "游戏应用类型")
+    private Long classify;
+
+    /**
+     * 广告状态
+     */
+    @ApiModelProperty(value = "广告状态")
+    private String status;
+
+    /**
+     * 创意预览
+     */
+    @ApiModelProperty(value = "创意预览")
+    private String creativePreview;
+
+    /**
+     * 推广目标
+     */
+    @ApiModelProperty(value = "推广目标")
+    private String landingType;
+
+    /**
+     * 出价方式
+     */
+    @ApiModelProperty(value = "出价方式")
+    private String pricing;
+
+    /**
+     * 当前出价
+     */
+    @ApiModelProperty(value = "当前出价")
+    private String cpaBid;
+
+    /**
+     * 深度转化ROI系数
+     */
+    @ApiModelProperty(value = "深度转化ROI系数")
+    private String roiGoal;
+
+    /**
+     * 日预算
+     */
+    @ApiModelProperty(value = "日预算")
+    private String budget;
+
+    /**
+     * 投放时间
+     */
+    @ApiModelProperty(value = "投放时间")
+    private String scheduleTime;
+
+    /**
+     * 今日消耗
+     */
+    @ApiModelProperty(value = "今日消耗")
+    private BigDecimal todayCost;
+
+    /**
+     * 广告总消耗
+     */
+    @ApiModelProperty(value = "广告总消耗")
+    private BigDecimal promotionTotalCost;
+
+    /**
+     * 曝光量
+     */
+    @ApiModelProperty(value = "曝光量")
+    private Long showCount;
+
+    /**
+     * 千次曝光成本
+     */
+    @ApiModelProperty(value = "千次曝光成本")
+    private BigDecimal thousandDisplayPrice;
+
+    /**
+     * 点击量
+     */
+    @ApiModelProperty(value = "点击量")
+    private Long clickCount;
+
+    /**
+     * 点击均价
+     */
+    @ApiModelProperty(value = "点击均价")
+    private BigDecimal avgClickCost;
+
+    /**
+     * 点击率
+     */
+    @ApiModelProperty(value = "点击率")
+    private BigDecimal ctr;
+
+    /**
+     * 转化目标
+     */
+    @ApiModelProperty(value = "转化目标")
+    private String convertTarget;
+
+    /**
+     * 转化目标量
+     */
+    @ApiModelProperty(value = "转化目标量")
+    private Long convertCount;
+
+    /**
+     * 转化目标成本
+     */
+    @ApiModelProperty(value = "转化目标成本")
+    private BigDecimal convertCost;
+
+    /**
+     * 目标转化率
+     */
+    @ApiModelProperty(value = "目标转化率")
+    private BigDecimal convertRate;
+
+    /**
+     * 新增用户数
+     */
+    @ApiModelProperty(value = "新增用户数")
+    private Long regNum;
+
+    /**
+     * 广告总注册人数
+     */
+    @ApiModelProperty(value = "广告总注册人数")
+    private Long regTotalNum;
+
+    /**
+     * 总创角人数
+     */
+    @ApiModelProperty(value = "总创角人数")
+    private Long roleTotalNum;
+
+    /**
+     * 首日创角人数
+     */
+    @ApiModelProperty(value = "首日创角人数")
+    private Long firstRoleNum;
+
+    /**
+     * 新用户累计创角人数
+     */
+    @ApiModelProperty(value = "新用户累计创角人数")
+    private Long newUserTotalRoleNum;
+
+    /**
+     * 注册成本
+     */
+    @ApiModelProperty(value = "注册成本")
+    private BigDecimal regCost;
+
+    /**
+     * 总注册成本
+     */
+    @ApiModelProperty(value = "总注册成本")
+    private BigDecimal regTotalCost;
+
+    /**
+     * 首日创角成本
+     */
+    @ApiModelProperty(value = "首日创角成本")
+    private BigDecimal firstRoleCost;
+
+    /**
+     * 新用户创角成本
+     */
+    @ApiModelProperty(value = "新用户创角成本")
+    private BigDecimal newUserTotalRoleCost;
+
+    /**
+     * 总创角成本
+     */
+    @ApiModelProperty(value = "总创角成本")
+    private BigDecimal roleTotalCost;
+
+    /**
+     * 首日创角率
+     */
+    @ApiModelProperty(value = "首日创角率")
+    private BigDecimal firstRoleRate;
+
+    /**
+     * 新用户创角率
+     */
+    @ApiModelProperty(value = "新用户创角率")
+    private BigDecimal newUserTotalRoleRate;
+
+    /**
+     * 总创角率
+     */
+    @ApiModelProperty(value = "总创角率")
+    private BigDecimal roleTotalRate;
+
+    /**
+     * 新增付费次数
+     */
+    @ApiModelProperty(value = "新增付费次数")
+    private Long firstNewUserAmountCount;
+
+    /**
+     * 新增付费人数
+     */
+    @ApiModelProperty(value = "新增付费人数")
+    private Long firstNewUserAmountNum;
+
+    /**
+     * 新增付费金额
+     */
+    @ApiModelProperty(value = "新增付费金额")
+    private BigDecimal firstNewUserAmount;
+
+    /**
+     * 至今付费次数
+     */
+    @ApiModelProperty(value = "至今付费次数")
+    private Long newUserTotalAmountCount;
+
+    /**
+     * 至今付费人数
+     */
+    @ApiModelProperty(value = "至今付费人数")
+    private Long newUserTotalAmountNum;
+
+    /**
+     * 至今付费金额
+     */
+    @ApiModelProperty(value = "至今付费金额")
+    private BigDecimal newUserTotalAmount;
+
+    /**
+     * 总充值次数
+     */
+    @ApiModelProperty(value = "总充值次数")
+    private Long totalAmountCount;
+
+    /**
+     * 总充值人数
+     */
+    @ApiModelProperty(value = "总充值人数")
+    private Long totalAmountNum;
+
+    /**
+     * 总充值金额
+     */
+    @ApiModelProperty(value = "总充值金额")
+    private BigDecimal totalAmount;
+
+    /**
+     * 首日ROI
+     */
+    @ApiModelProperty(value = "首日ROI")
+    private BigDecimal firstRoi;
+
+    /**
+     * 新用户24小时充值金额
+     */
+    @ApiModelProperty(value = "新用户24小时充值金额")
+    private BigDecimal twentyFourHoursAmount;
+
+    /**
+     * 新用户24小时ROI
+     */
+    @ApiModelProperty(value = "新用户24小时ROI")
+    private BigDecimal twentyFourHoursRoi;
+
+    /**
+     * 总ROI
+     */
+    @ApiModelProperty(value = "总ROI")
+    private BigDecimal totalRoi;
+
+    /**
+     * 广告总ROI
+     */
+    @ApiModelProperty(value = "广告总ROI")
+    private BigDecimal promotionTotalRoi;
+
+    /**
+     * 新增付费成本
+     */
+    @ApiModelProperty(value = "新增付费成本")
+    private BigDecimal firstNewUserRechargeCost;
+
+    /**
+     * 至今付费成本
+     */
+    @ApiModelProperty(value = "至今付费成本")
+    private BigDecimal newUserTotalRechargeCost;
+
+    /**
+     * 广告总付费成本
+     */
+    @ApiModelProperty(value = "广告总付费成本")
+    private BigDecimal totalRechargeCost;
+
+    /**
+     * 新增付费次数成本
+     */
+    @ApiModelProperty(value = "新增付费次数成本 = 消耗 / 新增付费次数")
+    private BigDecimal firstNewUserAmountCountCost;
+
+    /**
+     * 至今付费次数成本
+     */
+    @ApiModelProperty(value = "至今付费次数成本 = 消耗 / 至今付费数")
+    private BigDecimal newUserTotalAmountCountCost;
+
+    /**
+     * 总充值次数成本
+     */
+    @ApiModelProperty(value = "总充值次数成本 = 消耗 / 总充值次数")
+    private BigDecimal totalAmountCountCost;
+
+    /**
+     * 新增付费ARPPU
+     */
+    @ApiModelProperty(value = "新增付费ARPPU")
+    private BigDecimal firstNewUserArppu;
+
+    /**
+     * 至今付费ARPPU
+     */
+    @ApiModelProperty(value = "至今付费ARPPU")
+    private BigDecimal newUserTotalAmountArppu;
+
+    /**
+     * 新增付费100+用户数
+     */
+    @ApiModelProperty(value = "新增付费100+用户数")
+    private Long firstNewUserHundredUserNum;
+
+    /**
+     * 新增付费200+用户数
+     */
+    @ApiModelProperty(value = "新增付费200+用户数")
+    private Long firstNewUserTwoHundredUserNum;
+
+    /**
+     * 至今付费100+用户数
+     */
+    @ApiModelProperty(value = "至今付费100+用户数")
+    private Long newUserTotalHundredUserNum;
+
+    /**
+     * 首充50~100元用户数
+     */
+    @ApiModelProperty(value = "首充50~100元用户数")
+    private Long firstRechargeFiftyHundredNum;
+
+    /**
+     * 新增付费100+用户付费成本
+     */
+    @ApiModelProperty(value = "新增付费100+用户付费成本")
+    private BigDecimal firstNewUserHundredUserCost;
+
+    /**
+     * 新增付费200+用户付费成本
+     */
+    @ApiModelProperty(value = "新增付费200+用户付费成本")
+    private BigDecimal firstNewUserTwoHundredUserCost;
+
+    /**
+     * 至今付费100+用户付费成本
+     */
+    @ApiModelProperty(value = "至今付费100+用户付费成本")
+    private BigDecimal newUserTotalHundredUserCost;
+
+    /**
+     * 首充50~100元占比
+     */
+    @ApiModelProperty(value = "首充50~100元占比")
+    private BigDecimal firstRechargeFiftyHundredRate;
+
+    /**
+     * 首日IOS付费次数
+     */
+    @ApiModelProperty(value = "首日IOS付费次数")
+    private Long firstIosAmountCount;
+
+    /**
+     * 首日IOS付费人数
+     */
+    @ApiModelProperty(value = "首日IOS付费人数")
+    private Long firstIosAmountNum;
+
+    /**
+     * 首日IOS付费金额
+     */
+    @ApiModelProperty(value = "首日IOS付费金额")
+    private BigDecimal firstIosAmount;
+
+    /**
+     * 首日Android付费次数
+     */
+    @ApiModelProperty(value = "首日Android付费次数")
+    private Long firstAndroidAmountCount;
+
+    /**
+     * 首日Android付费人数
+     */
+    @ApiModelProperty(value = "首日Android付费人数")
+    private Long firstAndroidAmountNum;
+
+    /**
+     * 首日Android付费金额
+     */
+    @ApiModelProperty(value = "首日Android付费金额")
+    private BigDecimal firstAndroidAmount;
+
+    /**
+     * 首日IOS付费人数占比
+     */
+    @ApiModelProperty(value = "首日IOS付费人数占比")
+    private BigDecimal firstIosAmountNumRate;
+
+    /**
+     * 首日IOS付费金额占比
+     */
+    @ApiModelProperty(value = "首日IOS付费金额占比")
+    private BigDecimal firstIosAmountRate;
+
+    /**
+     * 首日IOS付费ROI
+     */
+    @ApiModelProperty(value = "首日IOS付费ROI")
+    private BigDecimal firstIosAmountRoi;
+
+    /**
+     * 首日Android付费人数占比
+     */
+    @ApiModelProperty(value = "首日Android付费人数占比")
+    private BigDecimal firstAndroidAmountNumRate;
+
+    /**
+     * 首日Android付费金额占比
+     */
+    @ApiModelProperty(value = "首日Android付费金额占比")
+    private BigDecimal firstAndroidAmountRate;
+
+    /**
+     * 首日Android付费ROI
+     */
+    @ApiModelProperty(value = "首日Android付费ROI")
+    private BigDecimal firstAndroidAmountRoi;
+
+    /**
+     * 首日付费率
+     */
+    @ApiModelProperty(value = "首日付费率")
+    private BigDecimal firstAmountRate;
+
+    /**
+     * 新增客单价
+     */
+    @ApiModelProperty(value = "新增客单价")
+    private BigDecimal firstNewUserAvgPrice;
+
+    /**
+     * 至今客单价
+     */
+    @ApiModelProperty(value = "至今客单价")
+    private BigDecimal newUserTotalAvgPrice;
+
+    /**
+     * 计划ID,消耗时间的第1天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第1天新用户充值(不显示)")
+    private BigDecimal d1;
+
+    /**
+     * 计划ID,消耗时间的第2天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第2天新用户充值(不显示)")
+    private BigDecimal d2;
+
+    /**
+     * 计划ID,消耗时间的第3天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第3天新用户充值(不显示)")
+    private BigDecimal d3;
+
+    /**
+     * 计划ID,消耗时间的第4天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第4天新用户充值(不显示)")
+    private BigDecimal d4;
+
+    /**
+     * 计划ID,消耗时间的第5天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第5天新用户充值(不显示)")
+    private BigDecimal d5;
+
+    /**
+     * 计划ID,消耗时间的第6天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第6天新用户充值(不显示)")
+    private BigDecimal d6;
+
+    /**
+     * 计划ID,消耗时间的第7天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第7天新用户充值(不显示)")
+    private BigDecimal d7;
+
+    /**
+     * 计划ID,消耗时间的第8天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第8天新用户充值(不显示)")
+    private BigDecimal d8;
+
+    /**
+     * 计划ID,消耗时间的第9天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第9天新用户充值(不显示)")
+    private BigDecimal d9;
+
+    /**
+     * 计划ID,消耗时间的第10天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第10天新用户充值(不显示)")
+    private BigDecimal d10;
+
+    /**
+     * 计划ID,消耗时间的第11天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第11天新用户充值(不显示)")
+    private BigDecimal d11;
+
+    /**
+     * 计划ID,消耗时间的第12天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第12天新用户充值(不显示)")
+    private BigDecimal d12;
+
+    /**
+     * 计划ID,消耗时间的第13天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第13天新用户充值(不显示)")
+    private BigDecimal d13;
+
+    /**
+     * 计划ID,消耗时间的第14天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第14天新用户充值(不显示)")
+    private BigDecimal d14;
+
+    /**
+     * 计划ID,消耗时间的第15天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第15天新用户充值(不显示)")
+    private BigDecimal d15;
+
+    /**
+     * 计划ID,消耗时间的第16天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第16天新用户充值(不显示)")
+    private BigDecimal d16;
+
+    /**
+     * 计划ID,消耗时间的第17天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第17天新用户充值(不显示)")
+    private BigDecimal d17;
+
+    /**
+     * 计划ID,消耗时间的第18天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第18天新用户充值(不显示)")
+    private BigDecimal d18;
+
+    /**
+     * 计划ID,消耗时间的第19天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第19天新用户充值(不显示)")
+    private BigDecimal d19;
+
+    /**
+     * 计划ID,消耗时间的第20天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第20天新用户充值(不显示)")
+    private BigDecimal d20;
+
+    /**
+     * 计划ID,消耗时间的第21天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第21天新用户充值(不显示)")
+    private BigDecimal d21;
+
+    /**
+     * 计划ID,消耗时间的第22天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第22天新用户充值(不显示)")
+    private BigDecimal d22;
+
+    /**
+     * 计划ID,消耗时间的第23天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第23天新用户充值(不显示)")
+    private BigDecimal d23;
+
+    /**
+     * 计划ID,消耗时间的第24天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第24天新用户充值(不显示)")
+    private BigDecimal d24;
+
+    /**
+     * 计划ID,消耗时间的第25天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第25天新用户充值(不显示)")
+    private BigDecimal d25;
+
+    /**
+     * 计划ID,消耗时间的第26天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第26天新用户充值(不显示)")
+    private BigDecimal d26;
+
+    /**
+     * 计划ID,消耗时间的第27天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第27天新用户充值(不显示)")
+    private BigDecimal d27;
+
+    /**
+     * 计划ID,消耗时间的第28天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第28天新用户充值(不显示)")
+    private BigDecimal d28;
+
+    /**
+     * 计划ID,消耗时间的第29天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第29天新用户充值(不显示)")
+    private BigDecimal d29;
+
+    /**
+     * 计划ID,消耗时间的第30天新用户充值(不显示)
+     */
+    @ApiModelProperty(value = "计划ID,消耗时间的第30天新用户充值(不显示)")
+    private BigDecimal d30;
+
+    /**
+     * 付费趋势第1天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第1天总:金额/人数/增/回/倍(不显示)")
+    private String da1;
+
+    /**
+     * 付费趋势第2天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第2天总:金额/人数/增/回/倍(不显示)")
+    private String da2;
+
+    /**
+     * 付费趋势第3天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第3天总:金额/人数/增/回/倍(不显示)")
+    private String da3;
+
+    /**
+     * 付费趋势第4天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第4天总:金额/人数/增/回/倍(不显示)")
+    private String da4;
+
+    /**
+     * 付费趋势第5天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第5天总:金额/人数/增/回/倍(不显示)")
+    private String da5;
+
+    /**
+     * 付费趋势第6天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第6天总:金额/人数/增/回/倍(不显示)")
+    private String da6;
+
+    /**
+     * 付费趋势第7天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第7天总:金额/人数/增/回/倍(不显示)")
+    private String da7;
+
+    /**
+     * 付费趋势第8天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第8天总:金额/人数/增/回/倍(不显示)")
+    private String da8;
+
+    /**
+     * 付费趋势第9天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第9天总:金额/人数/增/回/倍(不显示)")
+    private String da9;
+
+    /**
+     * 付费趋势第10天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第10天总:金额/人数/增/回/倍(不显示)")
+    private String da10;
+
+    /**
+     * 付费趋势第11天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第11天总:金额/人数/增/回/倍(不显示)")
+    private String da11;
+
+    /**
+     * 付费趋势第12天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第12天总:金额/人数/增/回/倍(不显示)")
+    private String da12;
+
+    /**
+     * 付费趋势第13天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第13天总:金额/人数/增/回/倍(不显示)")
+    private String da13;
+
+    /**
+     * 付费趋势第14天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第14天总:金额/人数/增/回/倍(不显示)")
+    private String da14;
+
+    /**
+     * 付费趋势第15天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第15天总:金额/人数/增/回/倍(不显示)")
+    private String da15;
+
+    /**
+     * 付费趋势第16天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第16天总:金额/人数/增/回/倍(不显示)")
+    private String da16;
+
+    /**
+     * 付费趋势第17天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第17天总:金额/人数/增/回/倍(不显示)")
+    private String da17;
+
+    /**
+     * 付费趋势第18天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第18天总:金额/人数/增/回/倍(不显示)")
+    private String da18;
+
+    /**
+     * 付费趋势第19天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第19天总:金额/人数/增/回/倍(不显示)")
+    private String da19;
+
+    /**
+     * 付费趋势第20天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第20天总:金额/人数/增/回/倍(不显示)")
+    private String da20;
+
+    /**
+     * 付费趋势第21天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第21天总:金额/人数/增/回/倍(不显示)")
+    private String da21;
+
+    /**
+     * 付费趋势第22天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第22天总:金额/人数/增/回/倍(不显示)")
+    private String da22;
+
+    /**
+     * 付费趋势第23天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第23天总:金额/人数/增/回/倍(不显示)")
+    private String da23;
+
+    /**
+     * 付费趋势第24天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第24天总:金额/人数/增/回/倍(不显示)")
+    private String da24;
+
+    /**
+     * 付费趋势第25天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第25天总:金额/人数/增/回/倍(不显示)")
+    private String da25;
+
+    /**
+     * 付费趋势第26天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第26天总:金额/人数/增/回/倍(不显示)")
+    private String da26;
+
+    /**
+     * 付费趋势第27天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第27天总:金额/人数/增/回/倍(不显示)")
+    private String da27;
+
+    /**
+     * 付费趋势第28天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第28天总:金额/人数/增/回/倍(不显示)")
+    private String da28;
+
+    /**
+     * 付费趋势第29天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第29天总:金额/人数/增/回/倍(不显示)")
+    private String da29;
+
+    /**
+     * 付费趋势第30天总:金额/人数/增/回/倍(不显示)
+     */
+    @ApiModelProperty(value = "付费趋势第30天总:金额/人数/增/回/倍(不显示)")
+    private String da30;
+
+    /**
+     * 次日数据
+     */
+    @ApiModelProperty(value = "次日:ROI/付费/倍数")
+    private PromotionRechargeTrendVO d2Trend;
+
+    /**
+     * 3日数据
+     */
+    @ApiModelProperty(value = "3日:ROI/付费/倍数")
+    private PromotionRechargeTrendVO d3Trend;
+
+    /**
+     * 7日数据
+     */
+    @ApiModelProperty(value = "7日:ROI/付费/倍数")
+    private PromotionRechargeTrendVO d7Trend;
+
+    /**
+     * 15日数据
+     */
+    @ApiModelProperty(value = "15日:ROI/付费/倍数")
+    private PromotionRechargeTrendVO d15Trend;
+
+
+    /**
+     * 注册人数 (应用下载广告数据-激活数)
+     */
+    @ApiModelProperty(value = "注册人数 (应用下载广告数据-激活数)")
+    private Long active;
+
+    /**
+     * 注册成本 (应用下载广告数据-激活成本)
+     */
+    @ApiModelProperty(value = "注册成本 (应用下载广告数据-激活成本)")
+    private BigDecimal activeCost;
+
+    /**
+     * 首日转化数 (转化数据-转化数)
+     */
+    @ApiModelProperty(value = "首日转化数 (转化数据-转化数)")
+    private Long firstConvertCount;
+
+    /**
+     * 首日转化成本 (转化数据-转化成本)
+     */
+    @ApiModelProperty(value = "首日转化成本 (转化数据-转化成本)")
+    private BigDecimal firstConvertCost;
+
+    /**
+     * 首次付费率 (应用下载广告数据-首次付费率)
+     */
+    @ApiModelProperty(value = "首次付费率 (应用下载广告数据-首次付费率)")
+    private BigDecimal firstActivePayRate;
+
+    /**
+     * 首日付费金额(当日付费金额-所选时间范围内的激活用户,激活当日在APP内的付费金额)
+     */
+    @ApiModelProperty(value = "首日付费金额(当日付费金额-所选时间范围内的激活用户,激活当日在APP内的付费金额)")
+    private BigDecimal firstAttributionGameInAppLtv1day;
+
+    /**
+     * 首日付费ROI (当日付费ROI)
+     */
+    @ApiModelProperty(value = "首日付费ROI (当日付费ROI)")
+    private BigDecimal firstAttributionGameInAppRoi1day;
+
+    /**
+     * 付费次数 (应用下载广告数据-付费次数)
+     */
+    @ApiModelProperty(value = "付费次数 (应用下载广告数据-付费次数)")
+    private Long gamePayCount;
+
+    /**
+     * 付费次数成本
+     */
+    @ApiModelProperty(value = "付费次数成本 = 消耗 / 付费次数")
+    private BigDecimal gamePayCountCost;
+
+    /**
+     * ltv1 (首日付费金额(attribution_game_in_app_ltv1day) / 注册人数)
+     */
+    @ApiModelProperty(value = "ltv1 (首日付费金额(attribution_game_in_app_ltv1day) / 注册人数)")
+    private BigDecimal ltvDay1;
+
+    /**
+     * 每日扣单数 (广告首日总订单数 - 应用下载广告数据-付费次数(game_pay_count))
+     */
+    @ApiModelProperty(value = "每日扣单数 (广告首日总订单数 - 应用下载广告数据-付费次数(game_pay_count))")
+    private Long subOrderNum;
+
+    /**
+     * 每日扣单金额  (广告首日总金额 - 当日付费金额-所选时间范围内的激活用户,激活当日在APP内的付费金额(attribution_game_in_app_ltv1day) )
+     */
+    @ApiModelProperty(value = "每日扣单金额  (广告首日总金额 - 当日付费金额-所选时间范围内的激活用户,激活当日在APP内的付费金额(attribution_game_in_app_ltv1day) )")
+    private BigDecimal subOrderAmount;
+    
+}

+ 25 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IAdsPromotionDayService.java

@@ -2,8 +2,12 @@ package com.zanxiang.game.data.serve.service;
 
 import com.zanxiang.game.data.serve.pojo.dto.PromotionDayDTO;
 import com.zanxiang.game.data.serve.pojo.dto.PromotionDayTotalDTO;
+import com.zanxiang.game.data.serve.pojo.dto.TencentPromotionDayDTO;
+import com.zanxiang.game.data.serve.pojo.dto.TencentPromotionDayTotalDTO;
 import com.zanxiang.game.data.serve.pojo.vo.PromotionDayTotalVO;
 import com.zanxiang.game.data.serve.pojo.vo.PromotionDayVO;
+import com.zanxiang.game.data.serve.pojo.vo.TencentPromotionDayTotalVO;
+import com.zanxiang.game.data.serve.pojo.vo.TencentPromotionDayVO;
 import com.zanxiang.game.data.serve.utils.Page;
 
 public interface IAdsPromotionDayService {
@@ -29,4 +33,25 @@ public interface IAdsPromotionDayService {
      */
     Page<PromotionDayVO> getPromotionDayListData(PromotionDayDTO dto);
 
+    /**
+     * 广告监控数据(腾讯广告)
+     * @param dto
+     * @return
+     */
+    Page<TencentPromotionDayVO> getTencentPromotionDayData(TencentPromotionDayDTO dto);
+
+    /**
+     * 广告监控数据总计(腾讯广告)
+     * @param dto
+     * @return
+     */
+    TencentPromotionDayTotalVO getTencentPromotionDayTotalData(TencentPromotionDayTotalDTO dto);
+
+    /**
+     * 广告监控每日数据(腾讯广告)
+     * @param dto
+     * @return
+     */
+    Page<TencentPromotionDayVO> getTencentPromotionDayListData(TencentPromotionDayDTO dto);
+
 }

+ 49 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IPitcherDataService.java

@@ -0,0 +1,49 @@
+package com.zanxiang.game.data.serve.service;
+
+import com.zanxiang.game.data.serve.pojo.dto.*;
+import com.zanxiang.game.data.serve.pojo.vo.*;
+import com.zanxiang.game.data.serve.utils.Page;
+
+public interface IPitcherDataService {
+
+    /**
+     * 投手每日数据
+     */
+    Page<PitcherDataDayVO> getPitcherDataDay(PitcherDataDayDTO dto);
+
+    /**
+     * 投手每日数据总计
+     */
+    PitcherDataDayTotalVO getPitcherDataDayTotal(PitcherDataDayTotalDTO dto);
+
+    /**
+     * 投手总数据
+     */
+    Page<PitcherDataTotalVO> getPitcherDataTotal(PitcherDataTotalDTO dto);
+
+    /**
+     * 投手总数据总计
+     */
+    PitcherDataTotalSumVO getPitcherDataTotalSum(PitcherDataTotalSumDTO dto);
+
+    /**
+     * 投手游戏每日数据
+     */
+    Page<PitcherGameDataDayVO> getPitcherGameDataDay(PitcherGameDataDayDTO dto);
+
+    /**
+     * 投手游戏每日数据总计
+     */
+    PitcherGameDataDayTotalVO getPitcherGameDataDayTotal(PitcherGameDataDayTotalDTO dto);
+
+    /**
+     * 投手游戏总数据
+     */
+    Page<PitcherGameDataTotalVO> getPitcherGameDataTotal(PitcherGameDataTotalDTO dto);
+
+    /**
+     * 投手游戏总数据总计
+     */
+    PitcherGameDataTotalSumVO getPitcherGameDataTotalSum(PitcherGameDataTotalSumDTO dto);
+
+}

+ 19 - 6
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java

@@ -3308,11 +3308,19 @@ public class GameDataServiceImpl implements IGameDataService {
         //得到每日总计对象
         GameDataFirstNewUserAgainTotalVO voAgainData = sqlAgainData.getObject(GameDataFirstNewUserAgainTotalVO.class);
         //得到所有userID
-        Long[] usersIdTotal = Arrays.stream(findUsersIdTotal(dto).split("/"))
-                .map(Long::parseLong)
-                .toArray(Long[]::new);
-        //计算游戏首日复充总计
-        formatFirstNewUserAgainTotal(voAgainData, usersIdTotal);
+        Long[] usersIdTotal = ArrayUtils.EMPTY_LONG_OBJECT_ARRAY;
+        //得到所有用户的id整合字符串
+        String usersIdTotalStr = findUsersIdTotal(dto);
+        if (StringUtils.isNotBlank(usersIdTotalStr)) {
+            usersIdTotal = Arrays.stream(usersIdTotalStr.split("/"))
+                    .map(Long::parseLong)
+                    .toArray(Long[]::new);
+        }
+        //voAgainData有值时进行映射的取值处理
+        if (StringUtils.isNotBlank(voAgainData.getDa1())) {
+            //计算游戏首日复充总计
+            formatFirstNewUserAgainTotal(voAgainData, usersIdTotal);
+        }
         //将两个对象的属性结合
         copyNullProperties(voAgainData, voGameData);
         //返回
@@ -3379,7 +3387,12 @@ public class GameDataServiceImpl implements IGameDataService {
         } else {
             userDetilsSql.vars().set("amount", "today_total_amount");
         }
-        userDetilsSql.params().set("usersId", usersId);
+        if (ArrayUtils.isNotEmpty(usersId)) {
+            userDetilsSql.params().set("usersId", usersId);
+        } else {
+            //用户不存在赋空值
+            userDetilsSql.params().set("usersId", null);
+        }
         //设置回传对象
         userDetilsSql.setCallback(Sqls.callback.entities());
         userDetilsSql.setEntity(dao.getEntity(GameDataUserDetailsVO.class));

+ 419 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameServerServiceImpl.java

@@ -1,15 +1,36 @@
 package com.zanxiang.game.data.serve.service.impl;
 
+import com.google.common.base.CaseFormat;
 import com.zanxiang.game.data.serve.pojo.dto.GameServerDayDTO;
 import com.zanxiang.game.data.serve.pojo.dto.GameServerDayTotalDTO;
+import com.zanxiang.game.data.serve.pojo.entity.AdsGameServerDay;
+import com.zanxiang.game.data.serve.pojo.enums.OrderByEnum;
 import com.zanxiang.game.data.serve.pojo.vo.GameServerDayTotalVO;
 import com.zanxiang.game.data.serve.pojo.vo.GameServerDayVO;
+import com.zanxiang.game.data.serve.pojo.vo.GameServerTrendVO;
 import com.zanxiang.game.data.serve.service.IGameServerService;
 import com.zanxiang.game.data.serve.utils.Page;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.nutz.dao.Cnd;
 import org.nutz.dao.Dao;
+import org.nutz.dao.Sqls;
+import org.nutz.dao.pager.Pager;
+import org.nutz.dao.sql.Criteria;
+import org.nutz.dao.sql.Sql;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import reactor.util.function.Tuple2;
+import reactor.util.function.Tuples;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author tianhua
@@ -20,27 +41,422 @@ import org.springframework.stereotype.Service;
 @Service
 public class GameServerServiceImpl implements IGameServerService {
 
+    //存储映射的List
+    private static final List<Tuple2<Field,Field>> dayNFieldMapList;
+    private static final List<Tuple2<Field,Field>> dayNTotalFieldMapList;
+
+    static {
+        //解析游戏区服的dayN映射
+        Map<String, Field> fieldMap = new HashMap<>();
+        List<Field> dayNFieldList = new ArrayList<>();
+        Class<?> tempClazz = GameServerDayVO.class;
+        while (tempClazz != null) {
+            //得到所有的field
+            Field[] fields = tempClazz.getDeclaredFields();
+            for (Field field : fields) {
+                if (Modifier.isFinal(field.getModifiers()) || Modifier.isStatic(field.getModifiers())) {
+                    continue;
+                }
+                //map里面存储了所有的field
+                fieldMap.put(field.getName(), field);
+                if (field.getType() == GameServerTrendVO.class) {
+                    //list里面只存储了 Trend 相关的field
+                    dayNFieldList.add(field);
+                }
+            }
+            tempClazz = tempClazz.getSuperclass();
+        }
+        if (dayNFieldList.isEmpty()) {
+            dayNFieldMapList = Collections.emptyList();
+        } else {
+            dayNFieldMapList = new ArrayList<>(dayNFieldList.size());
+            for (Field dayNField : dayNFieldList) {
+                dayNField.setAccessible(true);
+                Field sourceField = fieldMap.get(dayNField.getName().replace("Trend", ""));
+                sourceField.setAccessible(true);
+                if (sourceField != null) {
+                    dayNFieldMapList.add(Tuples.of(sourceField, dayNField));
+                }
+            }
+        }
+
+        //游戏区服总计dayN映射
+        Map<String, Field> fieldTotalMap = new HashMap<>();
+        List<Field> dayNTotalFieldList = new ArrayList<>();
+        Class<?> tempTotalClazz = GameServerDayTotalVO.class;
+        while (tempTotalClazz != null) {
+            //得到所有的field
+            Field[] fields = tempTotalClazz.getDeclaredFields();
+            for (Field field : fields) {
+                if (Modifier.isFinal(field.getModifiers()) || Modifier.isStatic(field.getModifiers())) {
+                    continue;
+                }
+                //map里面存储了所有的field
+                fieldTotalMap.put(field.getName(), field);
+                if (field.getType() == GameServerTrendVO.class) {
+                    //list里面只存储了 Trend 相关的field
+                    dayNTotalFieldList.add(field);
+                }
+            }
+            tempTotalClazz = tempTotalClazz.getSuperclass();
+        }
+        if (dayNTotalFieldList.isEmpty()) {
+            dayNTotalFieldMapList = Collections.emptyList();
+        } else {
+            dayNTotalFieldMapList = new ArrayList<>(dayNTotalFieldList.size());
+            for (Field dayNTotalField : dayNTotalFieldList) {
+                dayNTotalField.setAccessible(true);
+                Field sourceField = fieldTotalMap.get(dayNTotalField.getName().replace("Trend", ""));
+                sourceField.setAccessible(true);
+                if (sourceField != null) {
+                    dayNTotalFieldMapList.add(Tuples.of(sourceField, dayNTotalField));
+                }
+            }
+        }
+    }
+
     @Autowired
     private Dao dao;
 
     /**
      * 游戏区服数据
+     *
      * @param dto 前端传递的查询参数
      * @return page
      */
     @Override
     public Page<GameServerDayVO> getGameServerDataDay(GameServerDayDTO dto) {
-        //游戏id为最小维度
-        return null;
+
+        //不传递时间,默认查询当天数据
+        if (dto.getBeginDate() == null || dto.getEndDate() == null) {
+            dto.setBeginDate(LocalDate.now());
+            dto.setEndDate(LocalDate.now());
+        }
+        //默认排序字段 开服时间 降序
+        if (StringUtils.isBlank(dto.getSortFiled())) {
+            dto.setSortFiled("dt");
+        }
+        if (StringUtils.isBlank(dto.getSortType())) {
+            dto.setSortType(OrderByEnum.DESC.getOrderType());
+        }
+        //创建查询条件
+        Criteria cri = Cnd.cri();
+        if (dto.getGameId() != null) {
+            //拼接游戏ID查询条件
+            cri.where().andEquals("game_id", dto.getGameId());
+        }
+        if (dto.getServerId() != null) {
+            //拼接区服ID查询条件
+            cri.where().andEquals("server_id", dto.getServerId());
+        }
+        if (StringUtils.isNotBlank(dto.getServerName())) {
+            //拼接区服名称查询条件
+            cri.where().andLike("server_name", dto.getServerName());
+        }
+        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
+            //拼接开服时间查询条件
+            cri.where().andBetween("dt", dto.getBeginDate(), dto.getEndDate());
+        }
+        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
+            //拼接sdk来源
+            cri.where().andEquals("source_system", dto.getSourceSystem());
+        }
+        //添加排序条件
+        cri.getOrderBy().orderBy(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, dto.getSortFiled()), dto.getSortType());
+        //创建sql语句查询数据
+        Sql sql = Sqls.create(gameServerDaySql() + cri);
+        //设置自定义回传对象
+        sql.setCallback(Sqls.callback.entities());
+        sql.setEntity(dao.getEntity(GameServerDayVO.class));
+        //设置分页对象
+        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
+        sql.setPager(pager);
+        //执行sql
+        dao.execute(sql);
+        //设置总记录数
+        pager.setRecordCount(dao.count(AdsGameServerDay.class, cri));
+        List<GameServerDayVO> tempList = sql.getList(GameServerDayVO.class);
+        List<GameServerDayVO> list = tempList.stream().map(vo -> {
+                formatDayN(vo);
+                return vo;
+        }).collect(Collectors.toList());
+        //返回结果
+        return new Page<>(list, pager);
     }
 
     /**
      * 游戏区服数据总计
+     *
      * @param dto 前端传递的查询参数
      * @return vo
      */
     @Override
     public GameServerDayTotalVO getGameServerDataDayTotal(GameServerDayTotalDTO dto) {
-        return null;
+        //不传递时间,默认查询当天数据
+        if (dto.getBeginDate() == null || dto.getEndDate() == null) {
+            dto.setBeginDate(LocalDate.now());
+            dto.setEndDate(LocalDate.now());
+        }
+        //创建查询条件
+        Criteria cri = Cnd.cri();
+        if (dto.getGameId() != null) {
+            //拼接游戏ID查询条件
+            cri.where().andEquals("game_id", dto.getGameId());
+        }
+        if (dto.getServerId() != null) {
+            //拼接区服ID查询条件
+            cri.where().andEquals("server_id", dto.getServerId());
+        }
+        if (StringUtils.isNotBlank(dto.getServerName())) {
+            //拼接区服名称查询条件
+            cri.where().andLike("server_name", dto.getServerName());
+        }
+        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
+            //拼接开服时间查询条件
+            cri.where().andBetween("dt", dto.getBeginDate(), dto.getEndDate());
+        }
+        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
+            //拼接sdk来源
+            cri.where().andEquals("source_system", dto.getSourceSystem());
+        }
+        //创建sql语句查询数据
+        Sql sql = Sqls.create(gameServerDayTotalSql() + cri);
+        //设置自定义回传对象
+        sql.setCallback(Sqls.callback.entity());
+        sql.setEntity(dao.getEntity(GameServerDayTotalVO.class));
+        //执行sql
+        dao.execute(sql);
+        //得到查询的结果
+        GameServerDayTotalVO vo = sql.getObject(GameServerDayTotalVO.class);
+        if (StringUtils.isNotBlank(vo.getDa1())) {
+            formatTotalDayN(vo);
+        }
+        //返回结果
+        return vo;
+    }
+
+    /**
+     * 将vo中的原始String数据修改为一个对象
+     * @param vo 展示给前端的游戏区服数据
+     */
+    private void formatDayN(GameServerDayVO vo) {
+        if (CollectionUtils.isEmpty(dayNFieldMapList)) {
+            return;
+        }
+        dayNFieldMapList.forEach(dayNFieldMap -> {
+            try {
+                String[] temps = ((String) dayNFieldMap.getT1().get(vo)).split("/");
+                dayNFieldMap.getT2().set(vo, GameServerTrendVO.builder()
+                        .regNum(Long.parseLong(temps[0]))
+                        .roleNum(Long.parseLong(temps[1]))
+                        .activeNum(Long.parseLong(temps[2]))
+                        .amountNum(Long.parseLong(temps[3]))
+                        .amount(new BigDecimal(temps[4]))
+                        .rollServerNum(Long.parseLong(temps[5]))
+                        .rollServerAmountNum(Long.parseLong(temps[6]))
+                        .rollServerAmount(new BigDecimal(temps[7]))
+                        .rollServerAmountRate(new BigDecimal(temps[8]))
+                        .build()
+                );
+            } catch (IllegalAccessException e) {
+                e.printStackTrace();
+            }
+
+        });
+    }
+
+    /**
+     * 将vo中的原始String数据修改为一个对象
+     * @param vo 展示给前端的游戏区服数据总计
+     */
+    private void formatTotalDayN(GameServerDayTotalVO vo) {
+        if (CollectionUtils.isEmpty(dayNTotalFieldMapList)) {
+            return;
+        }
+        dayNTotalFieldMapList.forEach(dayNTotalFieldMap -> {
+            try {
+                String[] temps = ((String) dayNTotalFieldMap.getT1().get(vo)).split("/");
+                //付费金额
+                BigDecimal amount = new BigDecimal(temps[4]);
+                //滚服付费金额
+                BigDecimal rollServerAmount = new BigDecimal(temps[7]);
+                //设置trend对象
+                dayNTotalFieldMap.getT2().set(vo, GameServerTrendVO.builder()
+                        .regNum(Long.parseLong(temps[0]))
+                        .roleNum(Long.parseLong(temps[1]))
+                        .activeNum(Long.parseLong(temps[2]))
+                        .amountNum(Long.parseLong(temps[3]))
+                        .amount(amount)
+                        .rollServerNum(Long.parseLong(temps[5]))
+                        .rollServerAmountNum(Long.parseLong(temps[6]))
+                        .rollServerAmount(rollServerAmount)
+                        .rollServerAmountRate(amount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
+                                rollServerAmount.divide(amount, 4, RoundingMode.HALF_UP))
+                        .build()
+                );
+            } catch (IllegalAccessException e) {
+                e.printStackTrace();
+            }
+
+        });
     }
+
+    /**
+     * 计算总计一栏的daN数据
+     * @return String
+     */
+    private String trendDay() {
+        StringBuilder daySql = new StringBuilder(StringUtils.EMPTY);
+        //拼接da1-da30 sql
+        for (int i = 1; i < 31; i++) {
+            daySql.append("""
+                    CONCAT(
+                    	SUM(CAST (SPLIT_PART(da%s, '/', 1) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(da%s, '/', 2) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(da%s, '/', 3) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(da%s, '/', 4) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(da%s, '/', 5) AS DECIMAL(10,2))), '/',
+                    	SUM(CAST (SPLIT_PART(da%s, '/', 6) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(da%s, '/', 7) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(da%s, '/', 8) AS DECIMAL(10,2)))
+                    ) as da%s ,
+                    """.formatted(i, i, i, i, i, i, i, i, i));
+        }
+        //拼接m2-m11 sql
+        for (int i = 2; i < 12; i++) {
+            daySql.append("""
+                    CONCAT(
+                    	SUM(CAST (SPLIT_PART(m%s, '/', 1) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(m%s, '/', 2) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(m%s, '/', 3) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(m%s, '/', 4) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(m%s, '/', 5) AS DECIMAL(10,2))), '/',
+                    	SUM(CAST (SPLIT_PART(m%s, '/', 6) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(m%s, '/', 7) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(m%s, '/', 8) AS DECIMAL(10,2)))
+                    ) as m%s ,
+                    """.formatted(i, i, i, i, i, i, i, i, i));
+        }
+        //拼接y1
+        daySql.append("""
+                    CONCAT(
+                    	SUM(CAST (SPLIT_PART(y1, '/', 1) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(y1, '/', 2) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(y1, '/', 3) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(y1, '/', 4) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(y1, '/', 5) AS DECIMAL(10,2))), '/',
+                    	SUM(CAST (SPLIT_PART(y1, '/', 6) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(y1, '/', 7) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(y1, '/', 8) AS DECIMAL(10,2)))
+                    ) as y1 ,
+                    """);
+        //拼接total
+        daySql.append("""
+                    CONCAT(
+                    	SUM(CAST (SPLIT_PART(total, '/', 1) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(total, '/', 2) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(total, '/', 3) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(total, '/', 4) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(total, '/', 5) AS DECIMAL(10,2))), '/',
+                    	SUM(CAST (SPLIT_PART(total, '/', 6) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(total, '/', 7) AS BIGINT(20))), '/',
+                    	SUM(CAST (SPLIT_PART(total, '/', 8) AS DECIMAL(10,2)))
+                    ) as total
+                    """);
+
+        return daySql.toString();
+    }
+
+    /**
+     * 游戏区服数据SQL
+     * @return String
+     */
+    private String gameServerDaySql() {
+        return """
+                SELECT
+                    dt,
+                    source_system,
+                    server_id,
+                    server_name,
+                    game_id,
+                    game_name,
+                    classify,
+                    out_total_num,
+                    out_total_amount_num,
+                    out_total_amount,
+                    out_total_rate,
+                    total_role_num,
+                    total_reg_num,
+                    total_amount_num,
+                    total_amount,
+                    da1,
+                    da2,
+                    da3,
+                    da4,
+                    da5,
+                    da6,
+                    da7,
+                    da8,
+                    da9,
+                    da10,
+                    da11,
+                    da12,
+                    da13,
+                    da14,
+                    da15,
+                    da16,
+                    da17,
+                    da18,
+                    da19,
+                    da20,
+                    da21,
+                    da22,
+                    da23,
+                    da24,
+                    da25,
+                    da26,
+                    da27,
+                    da28,
+                    da29,
+                    da30,
+                    m2,
+                    m3,
+                    m4,
+                    m5,
+                    m6,
+                    m7,
+                    m8,
+                    m9,
+                    m10,
+                    m11,
+                    y1,
+                    total
+                FROM
+                    game_ads.ads_game_server_day
+                """;
+    }
+
+    /**
+     * 游戏区服数据总计SQL
+     * @return String
+     */
+    private String gameServerDayTotalSql() {
+        return """
+                SELECT
+                    IFNULL(SUM(out_total_num), 0) as out_total_num,
+                    IFNULL(SUM(out_total_amount_num), 0) as out_total_amount_num,
+                    IFNULL(SUM(out_total_amount), 0) as out_total_amount,
+                    ROUND(IF(SUM(total_amount) > 0, SUM(out_total_amount) / SUM(total_amount), 0), 4) as out_total_rate,
+                    IFNULL(SUM(total_role_num), 0) as total_role_num,
+                    IFNULL(SUM(total_reg_num), 0) as total_reg_num,
+                    IFNULL(SUM(total_amount_num), 0) as total_amount_num,
+                    IFNULL(SUM(total_amount), 0) as total_amount,
+                """ + trendDay() +
+                """
+                FROM
+                    game_ads.ads_game_server_day
+                """;
+    }
+
+
 }

+ 104 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PitcherDataServiceImpl.java

@@ -0,0 +1,104 @@
+package com.zanxiang.game.data.serve.service.impl;
+
+import com.zanxiang.game.data.serve.pojo.dto.*;
+import com.zanxiang.game.data.serve.pojo.vo.*;
+import com.zanxiang.game.data.serve.service.IPitcherDataService;
+import com.zanxiang.game.data.serve.utils.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.nutz.dao.Dao;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author tianhua
+ * @time 2023/8/15
+ * @Description 投手数据接口逻辑处理
+ **/
+@Service
+@Slf4j
+public class PitcherDataServiceImpl implements IPitcherDataService {
+
+    @Autowired
+    private Dao dao;
+
+    /**
+     * 投手每日数据
+     * @param dto PitcherDataDayDTO
+     * @return Page<PitcherDataDayVO>
+     */
+    @Override
+    public Page<PitcherDataDayVO> getPitcherDataDay(PitcherDataDayDTO dto) {
+        return null;
+    }
+
+    /**
+     * 投手每日数据总计
+     * @param dto PitcherDataDayTotalDTO
+     * @return PitcherDataDayTotalVO
+     */
+    @Override
+    public PitcherDataDayTotalVO getPitcherDataDayTotal(PitcherDataDayTotalDTO dto) {
+        return null;
+    }
+
+    /**
+     * 投手总数据
+     * @param dto PitcherDataTotalDTO
+     * @return Page<PitcherDataTotalVO>
+     */
+    @Override
+    public Page<PitcherDataTotalVO> getPitcherDataTotal(PitcherDataTotalDTO dto) {
+        return null;
+    }
+
+    /**
+     * 投手总数据总计
+     * @param dto PitcherDataTotalSumDTO
+     * @return PitcherDataTotalSumVO
+     */
+    @Override
+    public PitcherDataTotalSumVO getPitcherDataTotalSum(PitcherDataTotalSumDTO dto) {
+        return null;
+    }
+
+    /**
+     * 投手游戏每日数据
+     * @param dto PitcherGameDataDayDTO
+     * @return Page<PitcherGameDataDayVO>
+     */
+    @Override
+    public Page<PitcherGameDataDayVO> getPitcherGameDataDay(PitcherGameDataDayDTO dto) {
+        return null;
+    }
+
+    /**
+     * 投手游戏每日数据总计
+     * @param dto PitcherGameDataDayTotalDTO
+     * @return PitcherGameDataDayTotalVO
+     */
+    @Override
+    public PitcherGameDataDayTotalVO getPitcherGameDataDayTotal(PitcherGameDataDayTotalDTO dto) {
+        return null;
+    }
+
+    /**
+     * 投手游戏总数据
+     * @param dto PitcherGameDataTotalDTO
+     * @return Page<PitcherGameDataTotalVO>
+     */
+    @Override
+    public Page<PitcherGameDataTotalVO> getPitcherGameDataTotal(PitcherGameDataTotalDTO dto) {
+        return null;
+    }
+
+    /**
+     * 投手游戏总数据总计
+     * @param dto PitcherGameDataTotalSumDTO
+     * @return PitcherGameDataTotalSumVO
+     */
+    @Override
+    public PitcherGameDataTotalSumVO getPitcherGameDataTotalSum(PitcherGameDataTotalSumDTO dto) {
+        return null;
+    }
+
+}

File diff suppressed because it is too large
+ 914 - 89
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PromotionDayServiceImpl.java


Some files were not shown because too many files changed in this diff