浏览代码

修改内容:整体概况添加今日ROI;游戏每日数据添加总计;创建广告监控控制接口

lth 1 年之前
父节点
当前提交
2894471e23
共有 16 个文件被更改,包括 2278 次插入88 次删除
  1. 47 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/AdsPromotionDayController.java
  2. 11 3
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/GameDataController.java
  3. 70 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/GameDataTotalTotalDTO.java
  4. 12 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PromotionDayDTO.java
  5. 12 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PromotionDayTotalDTO.java
  6. 1 1
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsPromotionDay.java
  7. 1229 3
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameDataDayTotalVO.java
  8. 622 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameDataTotalTotalVO.java
  9. 8 2
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/OverallSummaryVO.java
  10. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PromotionDayTotalVO.java
  11. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PromotionDayVO.java
  12. 25 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IAdsPromotionDayService.java
  13. 9 10
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IGameDataService.java
  14. 166 66
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java
  15. 18 3
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/OverallSummaryServiceImpl.java
  16. 30 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PromotionDayServiceImpl.java

+ 47 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/AdsPromotionDayController.java

@@ -0,0 +1,47 @@
+package com.zanxiang.game.data.serve.controller;
+
+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.vo.PromotionDayTotalVO;
+import com.zanxiang.game.data.serve.pojo.vo.PromotionDayVO;
+import com.zanxiang.game.data.serve.service.IAdsPromotionDayService;
+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/7/27
+ * @Description
+ **/
+@Api(tags = {"广告监控"})
+@RestController
+@RequestMapping("/promotionData")
+@Slf4j
+public class AdsPromotionDayController {
+
+    @Autowired
+    private IAdsPromotionDayService adsPromotionDayService;
+
+    @ApiOperation(value = "广告监控数据")
+    //@PreAuthorize(permissionKey = "promotionData:adsPromotionDay:day")
+    @PostMapping("/day")
+    public ResultVO<Page<PromotionDayVO>> getPromotionDayData(@RequestBody PromotionDayDTO dto){
+        return ResultVO.ok(adsPromotionDayService.getPromotionDayData(dto));
+    }
+
+    @ApiOperation(value = "广告监控数据总计")
+    //@PreAuthorize(permissionKey = "promotionData:adsPromotionDay:total")
+    @PostMapping("/total")
+    public ResultVO<PromotionDayTotalVO> getPromotionDayTotalData(@RequestBody PromotionDayTotalDTO dto) {
+        return ResultVO.ok(adsPromotionDayService.getPromotionDayTotalData(dto));
+    }
+
+}

+ 11 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/GameDataController.java

@@ -36,13 +36,21 @@ public class GameDataController {
     private IGameDataService gameDataService;
 
     @ApiOperation(value = "游戏每日数据")
-    @PreAuthorize(permissionKey = "gameData:adsGameDay:day")
+    //@PreAuthorize(permissionKey = "gameData:adsGameDay:day")
     @PostMapping("/day")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameDataDayVO.class)})
     public ResultVO<Page<GameDataDayVO>> getGameDataDay(@RequestBody GameDataDayDTO dto) {
         return ResultVO.ok(gameDataService.getGameDataDay(dto));
     }
 
+    @ApiOperation(value = "游戏每日数据总计")
+    //@PreAuthorize(permissionKey = "gameData:adsGameDay:dayTotal")
+    @PostMapping("/day/total")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameDataDayVO.class)})
+    public ResultVO<GameDataDayTotalVO> getGameDataDay(@RequestBody GameDataDayTotalDTO dto) {
+        return ResultVO.ok(gameDataService.getGameDataDayTotal(dto));
+    }
+
     @ApiOperation(value = "h5游戏充值")
     @PreAuthorize(permissionKey = "gameData:adsGameDay:h5")
     @PostMapping("/h5")
@@ -50,7 +58,7 @@ public class GameDataController {
         return ResultVO.ok(gameDataService.getH5Recharge(dto));
     }
     @ApiOperation(value = "游戏总数据")
-    @PreAuthorize(permissionKey = "gameData:adsGameDay:total")
+    //@PreAuthorize(permissionKey = "gameData:adsGameDay:total")
     @PostMapping("/total")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameDataTotalVO.class)})
     public ResultVO<Page<GameDataTotalVO>> getGameDataTotal(@RequestBody GameDataTotalDTO dto) {
@@ -65,7 +73,7 @@ public class GameDataController {
     }
 
     @ApiOperation(value = "游戏每日复充数据")
-    @PreAuthorize(permissionKey = "gameData:adsGameDay:again")
+    //@PreAuthorize(permissionKey = "gameData:adsGameDay:again")
     @PostMapping("/again")
     public ResultVO<Map<LocalDate, List<GameDataAgainDayVO>>> getGameDataAgainDay(@RequestBody GameDataAgainDayDTO dto) throws Exception {
         return ResultVO.ok(gameDataService.getGameDataAgainDay(dto));

+ 70 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/GameDataTotalTotalDTO.java

@@ -0,0 +1,70 @@
+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/12
+ * @Description 游戏总数据前端查询参数实体
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class GameDataTotalTotalDTO {
+
+    /**
+     * 推广游戏名称
+     */
+    @ApiModelProperty(notes = "游戏名称")
+    private String gameName;
+
+    /**
+     * 游戏ID
+     */
+    @ApiModelProperty(notes = "游戏ID")
+    private Long gameId;
+
+    /**
+     * 推广游戏应用类别
+     */
+    @ApiModelProperty(notes = "游戏类别")
+    private Long gameClassify;
+
+    /**
+     * 注册时间(开始)
+     */
+    @ApiModelProperty(notes = "注册开始时间")
+    private LocalDate registeredBeginDate;
+
+    /**
+     * 注册时间(结束)
+     */
+    @ApiModelProperty(notes = "注册结束时间")
+    private LocalDate registeredEndDate;
+
+    /**
+     * 充值时间(开始)
+     */
+    @ApiModelProperty(notes = "充值开始时间")
+    private LocalDate rechargeBeginDate;
+
+    /**
+     * 充值时间(结束)
+     */
+    @ApiModelProperty(notes = "充值结束时间")
+    private LocalDate rechargeEndDate;
+
+    /**
+     * SDK来源
+     */
+    @ApiModelProperty(value = "SDK来源")
+    private String sourceSystem;
+
+}

+ 12 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PromotionDayDTO.java

@@ -0,0 +1,12 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+/**
+ * @author tianhua
+ * @time 2023/7/27
+ * @Description 前端传递的查询参数实体
+ **/
+public class PromotionDayDTO {
+
+
+
+}

+ 12 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PromotionDayTotalDTO.java

@@ -0,0 +1,12 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+/**
+ * @author tianhua
+ * @time 2023/7/27
+ * @Description 前端传递的查询参数实体
+ **/
+public class PromotionDayTotalDTO {
+
+
+
+}

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

@@ -25,7 +25,7 @@ import java.time.LocalDate;
 @AllArgsConstructor
 @Builder
 @Table(AdsPlayerRechargeRanking.TABLE_NAME)
-@PK({"dt","sourceSystem", "promotion_id","project_id"})
+@PK({"dt", "sourceSystem", "promotion_id", "project_id"})
 public class AdsPromotionDay implements Serializable {
 
     private static final long serialVersionUID = 1L;

+ 1229 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameDataDayTotalVO.java

@@ -6,6 +6,8 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.math.BigDecimal;
+
 /**
  * @author tianhua
  * @time 2023/7/26
@@ -18,9 +20,1233 @@ import lombok.NoArgsConstructor;
 public class GameDataDayTotalVO {
 
     /**
-     * 游戏ID
+     * 消耗
+     */
+    @ApiModelProperty(value = "消耗")
+    private BigDecimal cost;
+
+    /**
+     * 买量注册人数
+     */
+    @ApiModelProperty(value = "注册人数(买量)")
+    private Long buyRegNum;
+
+    /**
+     * 自然量注册人数
+     */
+    @ApiModelProperty(value = "注册人数(自然量)")
+    private Long natureRegNum;
+
+    /**
+     * 注册人数(总)
+     */
+    @ApiModelProperty(value = "注册人数(总量)")
+    private Long regNum;
+
+    /**
+     * 首日新用户充值次数(买量)
+     */
+    @ApiModelProperty(value = "首日新用户充值次数(买量)")
+    private Long buyFirstNewUserAmountCount;
+
+    /**
+     * 首日新用户充值人数(买量)
+     */
+    @ApiModelProperty(value = "首日新用户充值人数(买量)")
+    private Long buyFirstNewUserAmountNum;
+
+    /**
+     * 首日新用户充值金额(买量)
+     */
+    @ApiModelProperty(value = "首日新用户充值金额(买量)")
+    private BigDecimal buyFirstNewUserAmount;
+
+    /**
+     * 老用户充值次数(买量)
+     */
+    @ApiModelProperty(value = "老用户充值次数(买量)")
+    private Long buyOldUserCount;
+
+    /**
+     * 老用户充值人数(买量)
+     */
+    @ApiModelProperty(value = "老用户充值人数(买量)")
+    private Long buyOldUserNum;
+
+    /**
+     * 老用户充值金额(买量)
+     */
+    @ApiModelProperty(value = "老用户充值金额(买量)")
+    private BigDecimal buyOldUserAmount;
+
+    /**
+     * 账面充值次数(买量)
+     */
+    @ApiModelProperty(value = "账面充值次数(买量)")
+    private Long buyAmountCount;
+
+    /**
+     * 账面充值人数(买量)
+     */
+    @ApiModelProperty(value = "账面充值人数(买量)")
+    private Long buyAmountNum;
+
+    /**
+     * 账面充值金额(买量)
+     */
+    @ApiModelProperty(value = "账面充值金额(买量)")
+    private BigDecimal buyAmount;
+
+    /**
+     * 新用户累计充值次数(买量)
+     */
+    @ApiModelProperty(value = "新用户累计充值次数(买量)")
+    private Long buyNewUserTotalAmountCount;
+
+    /**
+     * 新用户累计充值人数(买量)
+     */
+    @ApiModelProperty(value = "新用户累计充值人数(买量)")
+    private Long buyNewUserTotalAmountNum;
+
+    /**
+     * 新用户累计充值金额(买量)
+     */
+    @ApiModelProperty(value = "新用户累计充值金额(买量)")
+    private BigDecimal buyNewUserTotalAmount;
+
+    /**
+     * 首日付费率(买量)
+     */
+    @ApiModelProperty(value = "首日付费率(买量)")
+    private BigDecimal buyFirstRoi;
+
+    /**
+     * 当天付费率(买量)
+     */
+    @ApiModelProperty(value = "当天付费率(买量)")
+    private BigDecimal buyTodayRoi;
+
+    /**
+     * 新用户付费比(买量)
+     */
+    @ApiModelProperty(value = "新用户付费比(买量)")
+    private BigDecimal buyNewUserRate;
+
+    /**
+     * 首日客单价(买量)
+     */
+    @ApiModelProperty(value = "首日客单价(买量)")
+    private BigDecimal buyFirstAvgAmount;
+
+    /**
+     * 当天客单价(买量)
+     */
+    @ApiModelProperty(value = "当天客单价(买量)")
+    private BigDecimal buyTodayAvgAmount;
+
+    /**
+     * 账面客单价(买量)
+     */
+    @ApiModelProperty(value = "账面客单价(买量)")
+    private BigDecimal buyAvgAmount;
+
+    /**
+     * 复充率(买量)
+     */
+    @ApiModelProperty(value = "复充率(买量)")
+    private BigDecimal buyUserAgainRate;
+
+    /**
+     * 新增注册ARPU(买量)
+     */
+    @ApiModelProperty(value = "新增注册ARPU(买量)")
+    private BigDecimal buyRegUserArpu;
+
+    /**
+     * 首日付费ARPU(买量)
+     */
+    @ApiModelProperty(value = "首日付费ARPU(买量)")
+    private BigDecimal buyFirstAmountArpu;
+
+    /**
+     * 当天付费ARPU(买量)
+     */
+    @ApiModelProperty(value = "当天付费ARPU(买量)")
+    private BigDecimal buyTodayAmountArpu;
+
+    /**
+     * 账面ARPU(买量)
+     */
+    @ApiModelProperty(value = "账面ARPU(买量)")
+    private BigDecimal buyAmountArpu;
+
+    /**
+     * 首日新用户充值次数(自然量)
+     */
+    @ApiModelProperty(value = "首日新用户充值次数(自然量)")
+    private Long natureFirstNewUserAmountCount;
+
+    /**
+     * 首日新用户充值人数(自然量)
+     */
+    @ApiModelProperty(value = "首日新用户充值人数(自然量)")
+    private Long natureFirstNewUserAmountNum;
+
+    /**
+     * 首日新用户充值金额(自然量)
+     */
+    @ApiModelProperty(value = "首日新用户充值金额(自然量)")
+    private BigDecimal natureFirstNewUserAmount;
+
+    /**
+     * 老用户充值次数(自然量)
+     */
+    @ApiModelProperty(value = "老用户充值次数(自然量)")
+    private Long natureOldUserCount;
+
+    /**
+     * 老用户充值人数(自然量)
+     */
+    @ApiModelProperty(value = "老用户充值人数(自然量)")
+    private Long natureOldUserNum;
+
+    /**
+     * 老用户充值金额(自然量)
+     */
+    @ApiModelProperty(value = "老用户充值金额(自然量)")
+    private BigDecimal natureOldUserAmount;
+
+    /**
+     * 账面充值次数(自然量)
+     */
+    @ApiModelProperty(value = "账面充值次数(自然量)")
+    private Long natureAmountCount;
+
+    /**
+     * 账面充值人数(自然量)
+     */
+    @ApiModelProperty(value = "账面充值人数(自然量)")
+    private Long natureAmountNum;
+
+    /**
+     * 账面充值金额(自然量)
+     */
+    @ApiModelProperty(value = "账面充值金额(自然量)")
+    private BigDecimal natureAmount;
+
+    /**
+     * 新用户累计充值次数(自然量)
+     */
+    @ApiModelProperty(value = "新用户累计充值次数(自然量)")
+    private Long natureNewUserTotalAmountCount;
+
+    /**
+     * 新用户累计充值人数(自然量)
+     */
+    @ApiModelProperty(value = "新用户累计充值人数(自然量)")
+    private Long natureNewUserTotalAmountNum;
+
+    /**
+     * 新用户累计充值金额(自然量)
+     */
+    @ApiModelProperty(value = "新用户累计充值金额(自然量)")
+    private BigDecimal natureNewUserTotalAmount;
+
+    /**
+     * 首日付费率(自然量)
+     */
+    @ApiModelProperty(value = "首日付费率(自然量)")
+    private BigDecimal natureFirstRoi;
+
+    /**
+     * 当天付费率(自然量)
+     */
+    @ApiModelProperty(value = "当天付费率(自然量)")
+    private BigDecimal natureTodayRoi;
+
+    /**
+     * 新用户付费比(自然量)
+     */
+    @ApiModelProperty(value = "新用户付费比(自然量)")
+    private BigDecimal natureNewUserRate;
+
+    /**
+     * 首日客单价(自然量)
+     */
+    @ApiModelProperty(value = "首日客单价(自然量)")
+    private BigDecimal natureFirstAvgAmount;
+
+    /**
+     * 当天客单价(自然量)
+     */
+    @ApiModelProperty(value = "当天客单价(自然量)")
+    private BigDecimal natureTodayAvgAmount;
+
+    /**
+     * 账面客单价(自然量)
+     */
+    @ApiModelProperty(value = "账面客单价(自然量)")
+    private BigDecimal natureAvgAmount;
+
+    /**
+     * 复充率(自然量)
+     */
+    @ApiModelProperty(value = "复充率(自然量)")
+    private BigDecimal natureUserAgainRate;
+
+    /**
+     * 新增注册ARPU(自然量)
+     */
+    @ApiModelProperty(value = "新增注册ARPU(自然量)")
+    private BigDecimal natureRegUserArpu;
+
+    /**
+     * 首日付费ARPU(自然量)
+     */
+    @ApiModelProperty(value = "首日付费ARPU(自然量)")
+    private BigDecimal natureFirstAmountArpu;
+
+    /**
+     * 当天付费ARPU(自然量)
+     */
+    @ApiModelProperty(value = "当天付费ARPU(自然量)")
+    private BigDecimal natureTodayAmountArpu;
+
+    /**
+     * 账面ARPU(自然量)
+     */
+    @ApiModelProperty(value = "账面ARPU(自然量)")
+    private BigDecimal natureAmountArpu;
+
+    /**
+     * 首日新用户充值次数(总量)
+     */
+    @ApiModelProperty(value = "首日新用户充值次数(总量)")
+    private Long firstNewUserAmountCount;
+
+    /**
+     * 首日新用户充值人数(总量)
+     */
+    @ApiModelProperty(value = "首日新用户充值人数(总量)")
+    private Long firstNewUserAmountNum;
+
+    /**
+     * 首日新用户充值金额(总量)
+     */
+    @ApiModelProperty(value = "首日新用户充值金额(总量)")
+    private BigDecimal firstNewUserAmount;
+
+    /**
+     * 老用户充值次数(总量)
+     */
+    @ApiModelProperty(value = "老用户充值次数(总量)")
+    private Long oldUserCount;
+
+    /**
+     * 老用户充值人数(总量)
+     */
+    @ApiModelProperty(value = "老用户充值人数(总量)")
+    private Long oldUserNum;
+
+    /**
+     * 老用户充值金额(总量)
+     */
+    @ApiModelProperty(value = "老用户充值金额(总量)")
+    private BigDecimal oldUserAmount;
+
+    /**
+     * 账面充值次数(总量)
+     */
+    @ApiModelProperty(value = "账面充值次数(总量)")
+    private Long amountCount;
+
+    /**
+     * 账面充值人数(总量)
+     */
+    @ApiModelProperty(value = "账面充值人数(总量)")
+    private Long amountNum;
+
+    /**
+     * 账面充值金额(总量)
+     */
+    @ApiModelProperty(value = "账面充值金额(总量)")
+    private BigDecimal amount;
+
+    /**
+     * 新用户累计充值次数(总量)
+     */
+    @ApiModelProperty(value = "新用户累计充值次数(总量)")
+    private Long newUserTotalAmountCount;
+
+    /**
+     * 新用户累计充值人数(总量)
+     */
+    @ApiModelProperty(value = "新用户累计充值人数(总量)")
+    private Long newUserTotalAmountNum;
+
+    /**
+     * 新用户累计充值金额(总量)
+     */
+    @ApiModelProperty(value = "新用户累计充值金额(总量)")
+    private BigDecimal newUserTotalAmount;
+
+    /**
+     * 首日付费率(总量)
+     */
+    @ApiModelProperty(value = "首日付费率(总量)")
+    private BigDecimal firstRoi;
+
+    /**
+     * 当天付费率(总量)
+     */
+    @ApiModelProperty(value = "当天付费率(总量)")
+    private BigDecimal todayRoi;
+
+    /**
+     * 新用户付费比(总量)
+     */
+    @ApiModelProperty(value = "新用户付费比(总量)")
+    private BigDecimal newUserRate;
+
+    /**
+     * 首日客单价(总量)
+     */
+    @ApiModelProperty(value = "首日客单价(总量)")
+    private BigDecimal firstAvgAmount;
+
+    /**
+     * 当天客单价(总量)
+     */
+    @ApiModelProperty(value = "当天客单价(总量)")
+    private BigDecimal todayAvgAmount;
+
+    /**
+     * 账面客单价(总量)
+     */
+    @ApiModelProperty(value = "账面客单价(总量)")
+    private BigDecimal avgAmount;
+
+    /**
+     * 复充率(总量)
+     */
+    @ApiModelProperty(value = "复充率(总量)")
+    private BigDecimal userAgainRate;
+
+    /**
+     * 新增注册ARPU(总量)
+     */
+    @ApiModelProperty(value = "新增注册ARPU(总量)")
+    private BigDecimal regUserArpu;
+
+    /**
+     * 首日付费ARPU(总量)
+     */
+    @ApiModelProperty(value = "首日付费ARPU(总量)")
+    private BigDecimal firstAmountArpu;
+
+    /**
+     * 当天付费ARPU(总量)
+     */
+    @ApiModelProperty(value = "当天付费ARPU(总量)")
+    private BigDecimal todayAmountArpu;
+
+    /**
+     * 账面ARPU(总量)
+     */
+    @ApiModelProperty(value = "账面ARPU(总量)")
+    private BigDecimal amountArpu;
+
+    /**
+     * 付费趋势:1天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:1天(买量)金额/人数/增/回/倍")
+    private String buyAmountD1;
+
+    /**
+     * 付费趋势:2天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:2天(买量)金额/人数/增/回/倍")
+    private String buyAmountD2;
+
+    /**
+     * 付费趋势:3天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:3天(买量)金额/人数/增/回/倍")
+    private String buyAmountD3;
+
+    /**
+     * 付费趋势:4天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:4天(买量)金额/人数/增/回/倍")
+    private String buyAmountD4;
+
+    /**
+     * 付费趋势:5天(买量)金额/人数/增/回/倍
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:5天(买量)金额/人数/增/回/倍")
+    private String buyAmountD5;
+
+    /**
+     * 付费趋势:6天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:6天(买量)金额/人数/增/回/倍")
+    private String buyAmountD6;
+
+    /**
+     * 付费趋势:7天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:7天(买量)金额/人数/增/回/倍")
+    private String buyAmountD7;
+
+    /**
+     * 付费趋势:8天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:8天(买量)金额/人数/增/回/倍")
+    private String buyAmountD8;
+
+    /**
+     * 付费趋势:9天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:9天(买量)金额/人数/增/回/倍")
+    private String buyAmountD9;
+
+    /**
+     * 付费趋势:10天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:10天(买量)金额/人数/增/回/倍")
+    private String buyAmountD10;
+
+    /**
+     * 付费趋势:11天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:11天(买量)金额/人数/增/回/倍")
+    private String buyAmountD11;
+
+    /**
+     * 付费趋势:12天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:12天(买量)金额/人数/增/回/倍")
+    private String buyAmountD12;
+
+    /**
+     * 付费趋势:13天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:13天(买量)金额/人数/增/回/倍")
+    private String buyAmountD13;
+
+    /**
+     * 付费趋势:14天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:14天(买量)金额/人数/增/回/倍")
+    private String buyAmountD14;
+
+    /**
+     * 付费趋势:15天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:15天(买量)金额/人数/增/回/倍")
+    private String buyAmountD15;
+
+    /**
+     * 付费趋势:16天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:16天(买量)金额/人数/增/回/倍")
+    private String buyAmountD16;
+
+    /**
+     * 付费趋势:17天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:17天(买量)金额/人数/增/回/倍")
+    private String buyAmountD17;
+
+    /**
+     * 付费趋势:18天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:18天(买量)金额/人数/增/回/倍")
+    private String buyAmountD18;
+
+    /**
+     * 付费趋势:19天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:19天(买量)金额/人数/增/回/倍")
+    private String buyAmountD19;
+
+    /**
+     * 付费趋势:20天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:20天(买量)金额/人数/增/回/倍")
+    private String buyAmountD20;
+
+    /**
+     * 付费趋势:21天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:21天(买量)金额/人数/增/回/倍")
+    private String buyAmountD21;
+
+    /**
+     * 付费趋势:22天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:22天(买量)金额/人数/增/回/倍")
+    private String buyAmountD22;
+
+    /**
+     * 付费趋势:23天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:23天(买量)金额/人数/增/回/倍")
+    private String buyAmountD23;
+
+    /**
+     * 付费趋势:24天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:24天(买量)金额/人数/增/回/倍")
+    private String buyAmountD24;
+
+    /**
+     * 付费趋势:25天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:25天(买量)金额/人数/增/回/倍")
+    private String buyAmountD25;
+
+    /**
+     * 付费趋势:26天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:26天(买量)金额/人数/增/回/倍")
+    private String buyAmountD26;
+
+    /**
+     * 付费趋势:27天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:27天(买量)金额/人数/增/回/倍")
+    private String buyAmountD27;
+
+    /**
+     * 付费趋势:28天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:28天(买量)金额/人数/增/回/倍")
+    private String buyAmountD28;
+
+    /**
+     * 付费趋势:29天(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:29天(买量)金额/人数/增/回/倍")
+    private String buyAmountD29;
+
+    /**
+     * 付费趋势:1个月(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:1个月(买量)金额/人数/增/回/倍")
+    private String buyAmountM1;
+
+    /**
+     * 付费趋势:2个月(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:2个月(买量)金额/人数/增/回/倍")
+    private String buyAmountM2;
+
+    /**
+     * 付费趋势:3个月(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:3个月(买量)金额/人数/增/回/倍")
+    private String buyAmountM3;
+
+    /**
+     * 付费趋势:6个月(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:6个月(买量)金额/人数/增/回/倍")
+    private String buyAmountM6;
+
+    /**
+     * 付费趋势:总(买量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:总(买量)金额/人数/增/回/倍")
+    private String buyAmountSum;
+
+    /**
+     * 付费趋势:1天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:1天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD1;
+
+    /**
+     * 付费趋势:2天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:2天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD2;
+
+    /**
+     * 付费趋势:3天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:3天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD3;
+
+    /**
+     * 付费趋势:4天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:4天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD4;
+
+    /**
+     * 付费趋势:5天(自然量)金额/人数/增/回/倍
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:5天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD5;
+
+    /**
+     * 付费趋势:6天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:6天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD6;
+
+    /**
+     * 付费趋势:7天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:7天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD7;
+
+    /**
+     * 付费趋势:8天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:8天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD8;
+
+    /**
+     * 付费趋势:9天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:9天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD9;
+
+    /**
+     * 付费趋势:10天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:10天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD10;
+
+    /**
+     * 付费趋势:11天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:11天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD11;
+
+    /**
+     * 付费趋势:12天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:12天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD12;
+
+    /**
+     * 付费趋势:13天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:13天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD13;
+
+    /**
+     * 付费趋势:14天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:14天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD14;
+
+    /**
+     * 付费趋势:15天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:15天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD15;
+
+    /**
+     * 付费趋势:16天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:16天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD16;
+
+    /**
+     * 付费趋势:17天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:17天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD17;
+
+    /**
+     * 付费趋势:18天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:18天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD18;
+
+    /**
+     * 付费趋势:19天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:19天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD19;
+
+    /**
+     * 付费趋势:20天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:20天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD20;
+
+    /**
+     * 付费趋势:21天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:21天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD21;
+
+    /**
+     * 付费趋势:22天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:22天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD22;
+
+    /**
+     * 付费趋势:23天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:23天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD23;
+
+    /**
+     * 付费趋势:24天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:24天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD24;
+
+    /**
+     * 付费趋势:25天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:25天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD25;
+
+    /**
+     * 付费趋势:26天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:26天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD26;
+
+    /**
+     * 付费趋势:27天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:27天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD27;
+
+    /**
+     * 付费趋势:28天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:28天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD28;
+
+    /**
+     * 付费趋势:29天(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:29天(自然量)金额/人数/增/回/倍")
+    private String natureAmountD29;
+
+    /**
+     * 付费趋势:1个月(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:1个月(自然量)金额/人数/增/回/倍")
+    private String natureAmountM1;
+
+    /**
+     * 付费趋势:2个月(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:2个月(自然量)金额/人数/增/回/倍")
+    private String natureAmountM2;
+
+    /**
+     * 付费趋势:3个月(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:3个月(自然量)金额/人数/增/回/倍")
+    private String natureAmountM3;
+
+    /**
+     * 付费趋势:6个月(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:6个月(自然量)金额/人数/增/回/倍")
+    private String natureAmountM6;
+
+    /**
+     * 付费趋势:总(自然量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:总(自然量)金额/人数/增/回/倍")
+    private String natureAmountSum;
+
+    /**
+     * 付费趋势:1天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:1天(总量)金额/人数/增/回/倍")
+    private String amountD1;
+
+    /**
+     * 付费趋势:2天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:2天(总量)金额/人数/增/回/倍")
+    private String amountD2;
+
+    /**
+     * 付费趋势:3天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:3天(总量)金额/人数/增/回/倍")
+    private String amountD3;
+
+    /**
+     * 付费趋势:4天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:4天(总量)金额/人数/增/回/倍")
+    private String amountD4;
+
+    /**
+     * 付费趋势:5天(总量)金额/人数/增/回/倍
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:5天(总量)金额/人数/增/回/倍")
+    private String amountD5;
+
+    /**
+     * 付费趋势:6天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:6天(总量)金额/人数/增/回/倍")
+    private String amountD6;
+
+    /**
+     * 付费趋势:7天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:7天(总量)金额/人数/增/回/倍")
+    private String amountD7;
+
+    /**
+     * 付费趋势:8天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:8天(总量)金额/人数/增/回/倍")
+    private String amountD8;
+
+    /**
+     * 付费趋势:9天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:9天(总量)金额/人数/增/回/倍")
+    private String amountD9;
+
+    /**
+     * 付费趋势:10天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:10天(总量)金额/人数/增/回/倍")
+    private String amountD10;
+
+    /**
+     * 付费趋势:11天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:11天(总量)金额/人数/增/回/倍")
+    private String amountD11;
+
+    /**
+     * 付费趋势:12天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:12天(总量)金额/人数/增/回/倍")
+    private String amountD12;
+
+    /**
+     * 付费趋势:13天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:13天(总量)金额/人数/增/回/倍")
+    private String amountD13;
+
+    /**
+     * 付费趋势:14天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:14天(总量)金额/人数/增/回/倍")
+    private String amountD14;
+
+    /**
+     * 付费趋势:15天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:15天(总量)金额/人数/增/回/倍")
+    private String amountD15;
+
+    /**
+     * 付费趋势:16天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:16天(总量)金额/人数/增/回/倍")
+    private String amountD16;
+
+    /**
+     * 付费趋势:17天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:17天(总量)金额/人数/增/回/倍")
+    private String amountD17;
+
+    /**
+     * 付费趋势:18天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:18天(总量)金额/人数/增/回/倍")
+    private String amountD18;
+
+    /**
+     * 付费趋势:19天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:19天(总量)金额/人数/增/回/倍")
+    private String amountD19;
+
+    /**
+     * 付费趋势:20天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:20天(总量)金额/人数/增/回/倍")
+    private String amountD20;
+
+    /**
+     * 付费趋势:21天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:21天(总量)金额/人数/增/回/倍")
+    private String amountD21;
+
+    /**
+     * 付费趋势:22天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:22天(总量)金额/人数/增/回/倍")
+    private String amountD22;
+
+    /**
+     * 付费趋势:23天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:23天(总量)金额/人数/增/回/倍")
+    private String amountD23;
+
+    /**
+     * 付费趋势:24天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:24天(总量)金额/人数/增/回/倍")
+    private String amountD24;
+
+    /**
+     * 付费趋势:25天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:25天(总量)金额/人数/增/回/倍")
+    private String amountD25;
+
+    /**
+     * 付费趋势:26天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:26天(总量)金额/人数/增/回/倍")
+    private String amountD26;
+
+    /**
+     * 付费趋势:27天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:27天(总量)金额/人数/增/回/倍")
+    private String amountD27;
+
+    /**
+     * 付费趋势:28天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:28天(总量)金额/人数/增/回/倍")
+    private String amountD28;
+
+    /**
+     * 付费趋势:29天(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:29天(总量)金额/人数/增/回/倍")
+    private String amountD29;
+
+    /**
+     * 付费趋势:1个月(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:1个月(总量)金额/人数/增/回/倍")
+    private String amountM1;
+
+    /**
+     * 付费趋势:2个月(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:2个月(总量)金额/人数/增/回/倍")
+    private String amountM2;
+
+    /**
+     * 付费趋势:3个月(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:3个月(总量)金额/人数/增/回/倍")
+    private String amountM3;
+
+    /**
+     * 付费趋势:6个月(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:6个月(总量)金额/人数/增/回/倍")
+    private String amountM6;
+
+    /**
+     * 付费趋势:总(总量)金额/人数/增/回/倍(不展示)
+     */
+    @ApiModelProperty(value = "(不展示)付费趋势:总(总量)金额/人数/增/回/倍")
+    private String amountSum;
+
+    /**
+     * 付费趋势:1天(买量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:1天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD1Trend;
+
+    /**
+     * 付费趋势:3天(买量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:3天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD3Trend;
+
+    /**
+     * 付费趋势:5天(买量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:5天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD5Trend;
+
+    /**
+     * 付费趋势:7天(买量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:7天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD7Trend;
+
+    /**
+     * 付费趋势:15天(买量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:15天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD15Trend;
+
+    /**
+     * 付费趋势:1个月(买量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:1个月(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountM1Trend;
+
+    /**
+     * 付费趋势:2个月(买量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:2个月(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountM2Trend;
+
+    /**
+     * 付费趋势:3个月(买量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:3个月(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountM3Trend;
+
+    /**
+     * 付费趋势:6个月(买量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:6个月(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountM6Trend;
+
+    /**
+     * 付费趋势:总(买量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:总(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountSumTrend;
+
+    /**
+     * 付费趋势:1天(自然量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:1天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD1Trend;
+
+    /**
+     * 付费趋势:3天(自然量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:3天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD3Trend;
+
+    /**
+     * 付费趋势:5天(自然量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:5天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD5Trend;
+
+    /**
+     * 付费趋势:7天(自然量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:7天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD7Trend;
+
+    /**
+     * 付费趋势:15天(自然量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:15天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD15Trend;
+
+    /**
+     * 付费趋势:1个月(自然量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:1个月(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountM1Trend;
+
+    /**
+     * 付费趋势:2个月(自然量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:2个月(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountM2Trend;
+
+    /**
+     * 付费趋势:3个月(自然量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:3个月(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountM3Trend;
+
+    /**
+     * 付费趋势:6个月(自然量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:6个月(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountM6Trend;
+
+    /**
+     * 付费趋势:总(自然量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:总(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountSumTrend;
+
+    /**
+     * 付费趋势:1天(总量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:1天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD1Trend;
+
+    /**
+     * 付费趋势:3天(总量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:3天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD3Trend;
+
+    /**
+     * 付费趋势:5天(总量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:5天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD5Trend;
+
+    /**
+     * 付费趋势:7天(总量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:7天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD7Trend;
+
+    /**
+     * 付费趋势:15天(总量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:15天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD15Trend;
+
+    /**
+     * 付费趋势:1个月(总量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:1个月(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountM1Trend;
+
+    /**
+     * 付费趋势:2个月(总量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:2个月(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountM2Trend;
+
+    /**
+     * 付费趋势:3个月(总量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:3个月(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountM3Trend;
+
+    /**
+     * 付费趋势:6个月(总量)金额/人数/增/回/倍(展示数据)
+     */
+    @ApiModelProperty(value = "付费趋势:6个月(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountM6Trend;
+
+    /**
+     * 付费趋势:总(总量)金额/人数/增/回/倍(展示数据)
      */
-    @ApiModelProperty(value = "游戏ID")
-    private Long gameId;
+    @ApiModelProperty(value = "付费趋势:总(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountSumTrend;
 
 }

+ 622 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameDataTotalTotalVO.java

@@ -0,0 +1,622 @@
+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/12
+ * @Description 返回给前端的游戏总数据总计实体
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class GameDataTotalTotalVO {
+
+    /**
+     * 消耗
+     */
+    @ApiModelProperty(value = "消耗")
+    private BigDecimal cost;
+
+    /**
+     * 买量注册人数
+     */
+    @ApiModelProperty(value = "注册人数(买量)")
+    private Long buyRegNum;
+
+    /**
+     * 自然量注册人数
+     */
+    @ApiModelProperty(value = "注册人数(自然量)")
+    private Long natureRegNum;
+
+    /**
+     * 注册人数(总)
+     */
+    @ApiModelProperty(value = "注册人数(总量)")
+    private Long regNum;
+
+    /**
+     * 新用户充值次数(买量)
+     */
+    @ApiModelProperty(value = "新用户充值次数(买量)")
+    private Long buyNewUserAmountCount;
+
+    /**
+     * 新用户充值人数(买量)
+     */
+    @ApiModelProperty(value = "新用户充值人数(买量)")
+    private Long buyNewUserAmountNum;
+
+    /**
+     * 新用户充值金额(买量)
+     */
+    @ApiModelProperty(value = "新用户充值金额(买量)")
+    private BigDecimal buyNewUserAmount;
+
+    /**
+     * 首日新用户充值次数(买量)
+     */
+    @ApiModelProperty(value = "首日新用户充值次数(买量)")
+    private Long buyFirstNewUserAmountCount;
+
+    /**
+     * 首日新用户充值人数(买量)
+     */
+    @ApiModelProperty(value = "首日新用户充值人数(买量)")
+    private Long buyFirstNewUserAmountNum;
+
+    /**
+     * 首日新用户充值金额(买量)
+     */
+    @ApiModelProperty(value = "首日新用户充值金额(买量)")
+    private BigDecimal buyFirstNewUserAmount;
+
+    /**
+     * 老用户充值次数(买量)
+     */
+    @ApiModelProperty(value = "老用户充值次数(买量)")
+    private Long buyOldUserCount;
+
+    /**
+     * 老用户充值人数(买量)
+     */
+    @ApiModelProperty(value = "老用户充值人数(买量)")
+    private Long buyOldUserNum;
+
+    /**
+     * 老用户充值金额(买量)
+     */
+    @ApiModelProperty(value = "老用户充值金额(买量)")
+    private BigDecimal buyOldUserAmount;
+
+    /**
+     * 账面充值次数(买量)
+     */
+    @ApiModelProperty(value = "账面充值次数(买量)")
+    private Long buyAmountCount;
+
+    /**
+     * 账面充值人数(买量)
+     */
+    @ApiModelProperty(value = "账面充值人数(买量)")
+    private Long buyAmountNum;
+
+    /**
+     * 账面充值金额(买量)
+     */
+    @ApiModelProperty(value = "账面充值金额(买量)")
+    private BigDecimal buyAmount;
+
+    /**
+     * 新用户累计充值次数(买量)
+     */
+    @ApiModelProperty(value = "新用户累计充值次数(买量)")
+    private Long buyNewUserTotalAmountCount;
+
+    /**
+     * 新用户累计充值人数(买量)
+     */
+    @ApiModelProperty(value = "新用户累计充值人数(买量)")
+    private Long buyNewUserTotalAmountNum;
+
+    /**
+     * 新用户累计充值金额(买量)
+     */
+    @ApiModelProperty(value = "新用户累计充值金额(买量)")
+    private BigDecimal buyNewUserTotalAmount;
+
+    /**
+     * 首日付费率(买量)
+     */
+    @ApiModelProperty(value = "首日付费率(买量)")
+    private BigDecimal buyFirstRoi;
+
+    /**
+     * 当天付费率(买量)
+     */
+    @ApiModelProperty(value = "当天付费率(买量)")
+    private BigDecimal buyTodayRoi;
+
+    /**
+     * 新用户付费率(买量)
+     */
+    @ApiModelProperty(value = "新用户付费率(买量)")
+    private BigDecimal buyNewUserRoi;
+
+    /**
+     * 新用户付费比(买量)
+     */
+    @ApiModelProperty(value = "新用户付费比(买量)")
+    private BigDecimal buyNewUserRate;
+
+    /**
+     * 首日客单价(买量)
+     */
+    @ApiModelProperty(value = "首日客单价(买量)")
+    private BigDecimal buyFirstAvgAmount;
+
+    /**
+     * 当天客单价(买量)
+     */
+    @ApiModelProperty(value = "当天客单价(买量)")
+    private BigDecimal buyTodayAvgAmount;
+
+    /**
+     * 账面客单价(买量)
+     */
+    @ApiModelProperty(value = "账面客单价(买量)")
+    private BigDecimal buyAvgAmount;
+
+    /**
+     * 新用户客单价(买量)
+     */
+    @ApiModelProperty(value = "新用户客单价(买量)")
+    private BigDecimal buyNewUserAvgAmount;
+
+    /**
+     * 复充率(买量)
+     */
+    @ApiModelProperty(value = "复充率(买量)")
+    private BigDecimal buyUserAgainRate;
+
+    /**
+     * 新用户复充率(买量)
+     */
+    @ApiModelProperty(value = "新用户复充率(买量)")
+    private BigDecimal buyNewUserAgainRate;
+
+    /**
+     * 当天复充率(买量)
+     */
+    @ApiModelProperty(value = "当天复充率(买量)")
+    private BigDecimal buyTodayAgainRate;
+
+    /**
+     * 新用户复充人数(买量)(前端不需要显示)
+     */
+    @ApiModelProperty(value = "新用户复充人数(买量)(前端不需要显示)")
+    private Long buyNewUserAgainNum;
+
+    /**
+     * 新增注册ARPU(买量)
+     */
+    @ApiModelProperty(value = "新增注册ARPU(买量)")
+    private BigDecimal buyRegUserArpu;
+
+    /**
+     * 首日付费ARPU(买量)
+     */
+    @ApiModelProperty(value = "首日付费ARPU(买量)")
+    private BigDecimal buyFirstAmountArpu;
+
+    /**
+     * 当天付费ARPU(买量)
+     */
+    @ApiModelProperty(value = "当天付费ARPU(买量)")
+    private BigDecimal buyTodayAmountArpu;
+
+    /**
+     * 账面ARPU(买量)
+     */
+    @ApiModelProperty(value = "账面ARPU(买量)")
+    private BigDecimal buyAmountArpu;
+
+    /**
+     * 新用户付费ARPU(买量)
+     */
+    @ApiModelProperty(value = "新用户付费ARPU(买量)")
+    private BigDecimal buyNewUserAmountArpu;
+
+    /**
+     * 新用户充值次数(自然量)
+     */
+    @ApiModelProperty(value = "新用户充值次数(自然量)")
+    private Long natureNewUserAmountCount;
+
+    /**
+     * 新用户充值人数(自然量)
+     */
+    @ApiModelProperty(value = "新用户充值人数(自然量)")
+    private Long natureNewUserAmountNum;
+
+    /**
+     * 新用户充值金额(自然量)
+     */
+    @ApiModelProperty(value = "新用户充值金额(自然量)")
+    private BigDecimal natureNewUserAmount;
+
+    /**
+     * 首日新用户充值次数(自然量)
+     */
+    @ApiModelProperty(value = "首日新用户充值次数(自然量)")
+    private Long natureFirstNewUserAmountCount;
+
+    /**
+     * 首日新用户充值人数(自然量)
+     */
+    @ApiModelProperty(value = "首日新用户充值人数(自然量)")
+    private Long natureFirstNewUserAmountNum;
+
+    /**
+     * 首日新用户充值金额(自然量)
+     */
+    @ApiModelProperty(value = "首日新用户充值金额(自然量)")
+    private BigDecimal natureFirstNewUserAmount;
+
+    /**
+     * 老用户充值次数(自然量)
+     */
+    @ApiModelProperty(value = "老用户充值次数(自然量)")
+    private Long natureOldUserCount;
+
+    /**
+     * 老用户充值人数(自然量)
+     */
+    @ApiModelProperty(value = "老用户充值人数(自然量)")
+    private Long natureOldUserNum;
+
+    /**
+     * 老用户充值金额(自然量)
+     */
+    @ApiModelProperty(value = "老用户充值金额(自然量)")
+    private BigDecimal natureOldUserAmount;
+
+    /**
+     * 账面充值次数(自然量)
+     */
+    @ApiModelProperty(value = "账面充值次数(自然量)")
+    private Long natureAmountCount;
+
+    /**
+     * 账面充值人数(自然量)
+     */
+    @ApiModelProperty(value = "账面充值人数(自然量)")
+    private Long natureAmountNum;
+
+    /**
+     * 账面充值金额(自然量)
+     */
+    @ApiModelProperty(value = "账面充值金额(自然量)")
+    private BigDecimal natureAmount;
+
+    /**
+     * 新用户累计充值次数(自然量)
+     */
+    @ApiModelProperty(value = "新用户累计充值次数(自然量)")
+    private Long natureNewUserTotalAmountCount;
+
+    /**
+     * 新用户累计充值人数(自然量)
+     */
+    @ApiModelProperty(value = "新用户累计充值人数(自然量)")
+    private Long natureNewUserTotalAmountNum;
+
+    /**
+     * 新用户累计充值金额(自然量)
+     */
+    @ApiModelProperty(value = "新用户累计充值金额(自然量)")
+    private BigDecimal natureNewUserTotalAmount;
+
+    /**
+     * 首日付费率(自然量)
+     */
+    @ApiModelProperty(value = "首日付费率(自然量)")
+    private BigDecimal natureFirstRoi;
+
+    /**
+     * 当天付费率(自然量)
+     */
+    @ApiModelProperty(value = "当天付费率(自然量)")
+    private BigDecimal natureTodayRoi;
+
+    /**
+     * 新用户付费率(自然量)
+     */
+    @ApiModelProperty(value = "新用户付费率(自然量)")
+    private BigDecimal natureNewUserRoi;
+
+    /**
+     * 新用户付费比(自然量)
+     */
+    @ApiModelProperty(value = "新用户付费比(自然量)")
+    private BigDecimal natureNewUserRate;
+
+    /**
+     * 首日客单价(自然量)
+     */
+    @ApiModelProperty(value = "首日客单价(自然量)")
+    private BigDecimal natureFirstAvgAmount;
+
+    /**
+     * 当天客单价(自然量)
+     */
+    @ApiModelProperty(value = "当天客单价(自然量)")
+    private BigDecimal natureTodayAvgAmount;
+
+    /**
+     * 账面客单价(自然量)
+     */
+    @ApiModelProperty(value = "账面客单价(自然量)")
+    private BigDecimal natureAvgAmount;
+
+    /**
+     * 新用户客单价(自然量)
+     */
+    @ApiModelProperty(value = "新用户客单价(自然量)")
+    private BigDecimal natureNewUserAvgAmount;
+
+    /**
+     * 复充率(自然量)
+     */
+    @ApiModelProperty(value = "复充率(自然量)")
+    private BigDecimal natureUserAgainRate;
+
+    /**
+     * 新用户复充率(自然量)
+     */
+    @ApiModelProperty(value = "新用户复充率(自然量)")
+    private BigDecimal natureNewUserAgainRate;
+
+    /**
+     * 当天复充率(自然量)
+     */
+    @ApiModelProperty(value = "当天复充率(自然量)")
+    private BigDecimal natureTodayAgainRate;
+
+    /**
+     * 新用户复充人数(自然量)(前端不需要显示)
+     */
+    @ApiModelProperty(value = "新用户复充人数(自然量)(前端不需要显示)")
+    private Long natureNewUserAgainNum;
+
+    /**
+     * 新增注册ARPU(自然量)
+     */
+    @ApiModelProperty(value = "新增注册ARPU(自然量)")
+    private BigDecimal natureRegUserArpu;
+
+    /**
+     * 首日付费ARPU(自然量)
+     */
+    @ApiModelProperty(value = "首日付费ARPU(自然量)")
+    private BigDecimal natureFirstAmountArpu;
+
+    /**
+     * 当天付费ARPU(自然量)
+     */
+    @ApiModelProperty(value = "当天付费ARPU(自然量)")
+    private BigDecimal natureTodayAmountArpu;
+
+    /**
+     * 账面ARPU(自然量)
+     */
+    @ApiModelProperty(value = "账面ARPU(自然量)")
+    private BigDecimal natureAmountArpu;
+
+    /**
+     * 新用户付费ARPU(自然量)
+     */
+    @ApiModelProperty(value = "新用户付费ARPU(自然量)")
+    private BigDecimal natureNewUserAmountArpu;
+
+    /**
+     * 新用户充值次数(总量)
+     */
+    @ApiModelProperty(value = "新用户充值次数(总量)")
+    private Long newUserAmountCount;
+
+    /**
+     * 新用户充值人数(总量)
+     */
+    @ApiModelProperty(value = "新用户充值人数(总量)")
+    private Long newUserAmountNum;
+
+    /**
+     * 新用户充值金额(总量)
+     */
+    @ApiModelProperty(value = "新用户充值金额(总量)")
+    private BigDecimal newUserAmount;
+
+    /**
+     * 首日新用户充值次数(总量)
+     */
+    @ApiModelProperty(value = "首日新用户充值次数(总量)")
+    private Long firstNewUserAmountCount;
+
+    /**
+     * 首日新用户充值人数(总量)
+     */
+    @ApiModelProperty(value = "首日新用户充值人数(总量)")
+    private Long firstNewUserAmountNum;
+
+    /**
+     * 首日新用户充值金额(总量)
+     */
+    @ApiModelProperty(value = "首日新用户充值金额(总量)")
+    private BigDecimal firstNewUserAmount;
+
+    /**
+     * 老用户充值次数(总量)
+     */
+    @ApiModelProperty(value = "老用户充值次数(总量)")
+    private Long oldUserCount;
+
+    /**
+     * 老用户充值人数(总量)
+     */
+    @ApiModelProperty(value = "老用户充值人数(总量)")
+    private Long oldUserNum;
+
+    /**
+     * 老用户充值金额(总量)
+     */
+    @ApiModelProperty(value = "老用户充值金额(总量)")
+    private BigDecimal oldUserAmount;
+
+    /**
+     * 账面充值次数(总量)
+     */
+    @ApiModelProperty(value = "账面充值次数(总量)")
+    private Long amountCount;
+
+    /**
+     * 账面充值人数(总量)
+     */
+    @ApiModelProperty(value = "账面充值人数(总量)")
+    private Long amountNum;
+
+    /**
+     * 账面充值金额(总量)
+     */
+    @ApiModelProperty(value = "账面充值金额(总量)")
+    private BigDecimal amount;
+
+    /**
+     * 新用户累计充值次数(总量)
+     */
+    @ApiModelProperty(value = "新用户累计充值次数(总量)")
+    private Long newUserTotalAmountCount;
+
+    /**
+     * 新用户累计充值人数(总量)
+     */
+    @ApiModelProperty(value = "新用户累计充值人数(总量)")
+    private Long newUserTotalAmountNum;
+
+    /**
+     * 新用户累计充值金额(总量)
+     */
+    @ApiModelProperty(value = "新用户累计充值金额(总量)")
+    private BigDecimal newUserTotalAmount;
+
+    /**
+     * 首日付费率(总量)
+     */
+    @ApiModelProperty(value = "首日付费率(总量)")
+    private BigDecimal firstRoi;
+
+    /**
+     * 当天付费率(总量)
+     */
+    @ApiModelProperty(value = "当天付费率(总量)")
+    private BigDecimal todayRoi;
+
+    /**
+     * 新用户付费率(总量)
+     */
+    @ApiModelProperty(value = "新用户付费率(总量)")
+    private BigDecimal newUserRoi;
+
+    /**
+     * 新用户付费比(总量)
+     */
+    @ApiModelProperty(value = "新用户付费比(总量)")
+    private BigDecimal newUserRate;
+
+    /**
+     * 首日客单价(总量)
+     */
+    @ApiModelProperty(value = "首日客单价(总量)")
+    private BigDecimal firstAvgAmount;
+
+    /**
+     * 当天客单价(总量)
+     */
+    @ApiModelProperty(value = "当天客单价(总量)")
+    private BigDecimal todayAvgAmount;
+
+    /**
+     * 账面客单价(总量)
+     */
+    @ApiModelProperty(value = "账面客单价(总量)")
+    private BigDecimal avgAmount;
+
+    /**
+     * 新用户客单价(总量)
+     */
+    @ApiModelProperty(value = "新用户客单价(总量)")
+    private BigDecimal newUserAvgAmount;
+
+    /**
+     * 复充率(总量)
+     */
+    @ApiModelProperty(value = "复充率(总量)")
+    private BigDecimal userAgainRate;
+
+    /**
+     * 新用户复充率(总量)
+     */
+    @ApiModelProperty(value = "新用户复充率(总量)")
+    private BigDecimal newUserAgainRate;
+
+    /**
+     * 当天复充率(总量)
+     */
+    @ApiModelProperty(value = "当天复充率(总量)")
+    private BigDecimal todayAgainRate;
+
+    /**
+     * 新用户复充人数(总量)(前端不需要显示)
+     */
+    @ApiModelProperty(value = "新用户复充人数(总量)(前端不需要显示)")
+    private Long newUserAgainNum;
+
+    /**
+     * 新增注册ARPU(总量)
+     */
+    @ApiModelProperty(value = "新增注册ARPU(总量)")
+    private BigDecimal regUserArpu;
+
+    /**
+     * 首日付费ARPU(总量)
+     */
+    @ApiModelProperty(value = "首日付费ARPU(总量)")
+    private BigDecimal firstAmountArpu;
+
+    /**
+     * 当天付费ARPU(总量)
+     */
+    @ApiModelProperty(value = "当天付费ARPU(总量)")
+    private BigDecimal todayAmountArpu;
+
+    /**
+     * 账面ARPU(总量)
+     */
+    @ApiModelProperty(value = "账面ARPU(总量)")
+    private BigDecimal amountArpu;
+
+    /**
+     * 新用户付费ARPU(总量)
+     */
+    @ApiModelProperty(value = "新用户付费ARPU(总量)")
+    private BigDecimal newUserAmountArpu;
+
+}

+ 8 - 2
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/OverallSummaryVO.java

@@ -128,9 +128,15 @@ public class OverallSummaryVO {
     private BigDecimal totalRoi;
 
     /**
-     * 首日回本率
+     * 总数据首日Roi
      */
-    @ApiModelProperty(value = "首日回本率")
+    @ApiModelProperty(value = "首日Roi")
+    private BigDecimal totalFirstRoi;
+
+    /**
+     * 今日回本率
+     */
+    @ApiModelProperty(value = "今日回本率")
     private BigDecimal firstRoi;
 
     /**

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

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+/**
+ * @author tianhua
+ * @time 2023/7/27
+ * @Description 广告监控数据总计
+ **/
+public class PromotionDayTotalVO {
+}

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

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+/**
+ * @author tianhua
+ * @time 2023/7/27
+ * @Description 广告监控数据
+ **/
+public class PromotionDayVO {
+}

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

@@ -0,0 +1,25 @@
+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.vo.PromotionDayTotalVO;
+import com.zanxiang.game.data.serve.pojo.vo.PromotionDayVO;
+import com.zanxiang.game.data.serve.utils.Page;
+
+public interface IAdsPromotionDayService {
+
+    /**
+     * 广告监控数据
+     * @param dto
+     * @return
+     */
+    Page<PromotionDayVO> getPromotionDayData(PromotionDayDTO dto);
+
+    /**
+     * 广告监控数据总计
+     * @param dto
+     * @return
+     */
+    PromotionDayTotalVO getPromotionDayTotalData(PromotionDayTotalDTO dto);
+
+}

+ 9 - 10
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IGameDataService.java

@@ -1,15 +1,7 @@
 package com.zanxiang.game.data.serve.service;
 
-import com.zanxiang.game.data.serve.pojo.dto.GameDataAgainDayDTO;
-import com.zanxiang.game.data.serve.pojo.dto.GameDataDayDTO;
-import com.zanxiang.game.data.serve.pojo.dto.GameDataH5DTO;
-import com.zanxiang.game.data.serve.pojo.dto.GameDataTotalDTO;
-import com.zanxiang.game.data.serve.pojo.dto.GameDataWaterDTO;
-import com.zanxiang.game.data.serve.pojo.vo.GameDataAgainDayVO;
-import com.zanxiang.game.data.serve.pojo.vo.GameDataDayVO;
-import com.zanxiang.game.data.serve.pojo.vo.GameDataH5VO;
-import com.zanxiang.game.data.serve.pojo.vo.GameDataTotalVO;
-import com.zanxiang.game.data.serve.pojo.vo.GameDataWaterVO;
+import com.zanxiang.game.data.serve.pojo.dto.*;
+import com.zanxiang.game.data.serve.pojo.vo.*;
 import com.zanxiang.game.data.serve.utils.Page;
 
 import java.time.LocalDate;
@@ -25,6 +17,13 @@ public interface IGameDataService {
      */
     Page<GameDataDayVO> getGameDataDay(GameDataDayDTO dto);
 
+    /**
+     * 游戏每日数据总计
+     * @param dto
+     * @return
+     */
+    GameDataDayTotalVO getGameDataDayTotal(GameDataDayTotalDTO dto);
+
     /**
      * 游戏总数据
      * @param dto

+ 166 - 66
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java

@@ -131,7 +131,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(buyAmountD3[1]))
                     .increase(new BigDecimal(buyAmountD3[2]))
                     .back(new BigDecimal(buyAmountD3[3]))
-                    .multiples(new BigDecimal(buyAmountD3[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(buyAmountD3[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] buyAmountD5 = vo.getBuyAmountD5().split("/");
@@ -140,7 +140,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(buyAmountD5[1]))
                     .increase(new BigDecimal(buyAmountD5[2]))
                     .back(new BigDecimal(buyAmountD5[3]))
-                    .multiples(new BigDecimal(buyAmountD5[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(buyAmountD5[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] buyAmountD7 = vo.getBuyAmountD7().split("/");
@@ -149,7 +149,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(buyAmountD7[1]))
                     .increase(new BigDecimal(buyAmountD7[2]))
                     .back(new BigDecimal(buyAmountD7[3]))
-                    .multiples(new BigDecimal(buyAmountD7[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(buyAmountD7[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] buyAmountD15 = vo.getBuyAmountD15().split("/");
@@ -158,7 +158,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(buyAmountD15[1]))
                     .increase(new BigDecimal(buyAmountD15[2]))
                     .back(new BigDecimal(buyAmountD15[3]))
-                    .multiples(new BigDecimal(buyAmountD15[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(buyAmountD15[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] buyAmountM1 = vo.getBuyAmountM1().split("/");
@@ -167,7 +167,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(buyAmountM1[1]))
                     .increase(new BigDecimal(buyAmountM1[2]))
                     .back(new BigDecimal(buyAmountM1[3]))
-                    .multiples(new BigDecimal(buyAmountM1[4]).setScale(2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(buyAmountM1[4]).setScale(2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] buyAmountM2 = vo.getBuyAmountM2().split("/");
@@ -176,7 +176,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(buyAmountM2[1]))
                     .increase(new BigDecimal(buyAmountM2[2]))
                     .back(new BigDecimal(buyAmountM2[3]))
-                    .multiples(new BigDecimal(buyAmountM2[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(buyAmountM2[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] buyAmountM3 = vo.getBuyAmountM3().split("/");
@@ -185,7 +185,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(buyAmountM3[1]))
                     .increase(new BigDecimal(buyAmountM3[2]))
                     .back(new BigDecimal(buyAmountM3[3]))
-                    .multiples(new BigDecimal(buyAmountM3[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(buyAmountM3[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] buyAmountM6 = vo.getBuyAmountM6().split("/");
@@ -194,7 +194,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(buyAmountM6[1]))
                     .increase(new BigDecimal(buyAmountM6[2]))
                     .back(new BigDecimal(buyAmountM6[3]))
-                    .multiples(new BigDecimal(buyAmountM6[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(buyAmountM6[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] buyAmountSum = vo.getBuyAmountSum().split("/");
@@ -203,7 +203,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(buyAmountSum[1]))
                     .increase(new BigDecimal(buyAmountSum[2]))
                     .back(new BigDecimal(buyAmountSum[3]))
-                    .multiples(new BigDecimal(buyAmountSum[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(buyAmountSum[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             //自然量数据
@@ -213,7 +213,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(natureAmountD1[1]))
                     .increase(new BigDecimal(natureAmountD1[2]))
                     .back(new BigDecimal(natureAmountD1[3]))
-                    .multiples(new BigDecimal(natureAmountD1[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(natureAmountD1[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] natureAmountD3 = vo.getNatureAmountD3().split("/");
@@ -222,7 +222,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(natureAmountD3[1]))
                     .increase(new BigDecimal(natureAmountD3[2]))
                     .back(new BigDecimal(natureAmountD3[3]))
-                    .multiples(new BigDecimal(natureAmountD3[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(natureAmountD3[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] natureAmountD5 = vo.getNatureAmountD5().split("/");
@@ -231,7 +231,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(natureAmountD5[1]))
                     .increase(new BigDecimal(natureAmountD5[2]))
                     .back(new BigDecimal(natureAmountD5[3]))
-                    .multiples(new BigDecimal(natureAmountD5[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(natureAmountD5[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] natureAmountD7 = vo.getNatureAmountD7().split("/");
@@ -240,7 +240,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(natureAmountD7[1]))
                     .increase(new BigDecimal(natureAmountD7[2]))
                     .back(new BigDecimal(natureAmountD7[3]))
-                    .multiples(new BigDecimal(natureAmountD7[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(natureAmountD7[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] natureAmountD15 = vo.getNatureAmountD15().split("/");
@@ -249,7 +249,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(natureAmountD15[1]))
                     .increase(new BigDecimal(natureAmountD15[2]))
                     .back(new BigDecimal(natureAmountD15[3]))
-                    .multiples(new BigDecimal(natureAmountD15[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(natureAmountD15[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] natureAmountM1 = vo.getNatureAmountM1().split("/");
@@ -258,7 +258,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(natureAmountM1[1]))
                     .increase(new BigDecimal(natureAmountM1[2]))
                     .back(new BigDecimal(natureAmountM1[3]))
-                    .multiples(new BigDecimal(natureAmountM1[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(natureAmountM1[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] natureAmountM2 = vo.getNatureAmountM2().split("/");
@@ -267,7 +267,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(natureAmountM2[1]))
                     .increase(new BigDecimal(natureAmountM2[2]))
                     .back(new BigDecimal(natureAmountM2[3]))
-                    .multiples(new BigDecimal(natureAmountM2[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(natureAmountM2[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] natureAmountM3 = vo.getNatureAmountM3().split("/");
@@ -276,7 +276,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(natureAmountM3[1]))
                     .increase(new BigDecimal(natureAmountM3[2]))
                     .back(new BigDecimal(natureAmountM3[3]))
-                    .multiples(new BigDecimal(natureAmountM3[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(natureAmountM3[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] natureAmountM6 = vo.getNatureAmountM6().split("/");
@@ -285,7 +285,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(natureAmountM6[1]))
                     .increase(new BigDecimal(natureAmountM6[2]))
                     .back(new BigDecimal(natureAmountM6[3]))
-                    .multiples(new BigDecimal(natureAmountM6[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(natureAmountM6[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] natureAmountSum = vo.getNatureAmountSum().split("/");
@@ -294,7 +294,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(natureAmountSum[1]))
                     .increase(new BigDecimal(natureAmountSum[2]))
                     .back(new BigDecimal(natureAmountSum[3]))
-                    .multiples(new BigDecimal(natureAmountSum[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(natureAmountSum[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             //总量数据
@@ -315,7 +315,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(amountD3[1]))
                     .increase(new BigDecimal(amountD3[2]))
                     .back(new BigDecimal(amountD3[3]))
-                    .multiples(new BigDecimal(amountD3[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(amountD3[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] amountD5 = vo.getAmountD5().split("/");
@@ -324,7 +324,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(amountD5[1]))
                     .increase(new BigDecimal(amountD5[2]))
                     .back(new BigDecimal(amountD5[3]))
-                    .multiples(new BigDecimal(amountD5[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(amountD5[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] amountD7 = vo.getAmountD7().split("/");
@@ -333,7 +333,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(amountD7[1]))
                     .increase(new BigDecimal(amountD7[2]))
                     .back(new BigDecimal(amountD7[3]))
-                    .multiples(new BigDecimal(amountD7[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(amountD7[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] amountD15 = vo.getAmountD15().split("/");
@@ -342,7 +342,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(amountD15[1]))
                     .increase(new BigDecimal(amountD15[2]))
                     .back(new BigDecimal(amountD15[3]))
-                    .multiples(new BigDecimal(amountD15[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(amountD15[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] amountM1 = vo.getAmountM1().split("/");
@@ -351,7 +351,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(amountM1[1]))
                     .increase(new BigDecimal(amountM1[2]))
                     .back(new BigDecimal(amountM1[3]))
-                    .multiples(new BigDecimal(amountM1[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(amountM1[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] amountM2 = vo.getAmountM2().split("/");
@@ -360,7 +360,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(amountM2[1]))
                     .increase(new BigDecimal(amountM2[2]))
                     .back(new BigDecimal(amountM2[3]))
-                    .multiples(new BigDecimal(amountM2[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(amountM2[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] amountM3 = vo.getAmountM3().split("/");
@@ -369,7 +369,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(amountM3[1]))
                     .increase(new BigDecimal(amountM3[2]))
                     .back(new BigDecimal(amountM3[3]))
-                    .multiples(new BigDecimal(amountM3[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(amountM3[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] amountM6 = vo.getAmountM6().split("/");
@@ -378,7 +378,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(amountM6[1]))
                     .increase(new BigDecimal(amountM6[2]))
                     .back(new BigDecimal(amountM6[3]))
-                    .multiples(new BigDecimal(amountM6[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(amountM6[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             String[] amountSum = vo.getAmountSum().split("/");
@@ -387,7 +387,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(amountSum[1]))
                     .increase(new BigDecimal(amountSum[2]))
                     .back(new BigDecimal(amountSum[3]))
-                    .multiples(new BigDecimal(amountSum[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(amountSum[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
 
             return vo;
@@ -399,6 +399,7 @@ public class GameDataServiceImpl implements IGameDataService {
 
     /**
      * 游戏每日数据总计
+     *
      * @param dto 前端传递的查询条件
      * @return 返回给前端的总计数据实体
      */
@@ -406,7 +407,7 @@ public class GameDataServiceImpl implements IGameDataService {
 
         //如果没有传入查询时间默认查询当天
         if (dto.getRegisteredBeginDate() == null || dto.getRegisteredEndDate() == null) {
-            dto.setRegisteredEndDate(LocalDate.now());
+            dto.setRegisteredBeginDate(LocalDate.now());
             dto.setRegisteredEndDate(LocalDate.now());
         }
         //新增查询条件
@@ -428,12 +429,15 @@ public class GameDataServiceImpl implements IGameDataService {
             cri.where().andBetween("dt", dto.getRegisteredBeginDate(), dto.getRegisteredEndDate());
         }
 
-        //Sql gameDataDayTotalsql =
-
-
-
+        //创建sql
+        Sql gameDataDayTotalsql = Sqls.create(gameDataDayTotalSql() + cri);
+        //设置自定义回传对象
+        gameDataDayTotalsql.setCallback(Sqls.callback.entity());
+        gameDataDayTotalsql.setEntity(dao.getEntity(GameDataDayTotalVO.class));
+        //执行sql
+        dao.execute(gameDataDayTotalsql);
 
-        return null;
+        return gameDataDayTotalsql.getObject(GameDataDayTotalVO.class);
     }
 
     /**
@@ -642,6 +646,15 @@ public class GameDataServiceImpl implements IGameDataService {
         return new Page<>(gameDataTotalVOList, pager);
     }
 
+    /**
+     * 游戏总数据总计
+     * @param dto 前端传递的查询参数
+     * @return 返回给前端额数据
+     */
+    public GameDataTotalTotalVO getGameDataTotalTotal(GameDataTotalTotalDTO dto) {
+        return null;
+    }
+
     /**
      * 每日流水贡献
      *
@@ -988,35 +1001,29 @@ public class GameDataServiceImpl implements IGameDataService {
      * @return DayN数据
      */
     private DayN getDayNByTableName(Map<String, Object> dayNMap, String tableName) {
-        Sql dayNSql;
+
+        //创建查询条件
+        Criteria cri = Cnd.cri();
+        if (dayNMap.get("registerBeginDate") != null && dayNMap.get("registerEndDate") != null) {
+            //拼接充值时间查询条件
+            cri.where().andBetween("dt", dayNMap.get("registerBeginDate"), dayNMap.get("registerEndDate"));
+        }
+        if (dayNMap.get("gameId") != null) {
+            //拼接游戏ID查询条件
+            cri.where().andEquals("game_id", dayNMap.get("gameId"));
+        }
         if (dayNMap.get("sourceSystem") != null) {
-            //构架SQL语句,查询相关DayN表获取相关充值数据
-            dayNSql = Sqls.create(
-                    """
-                            SELECT
-                                dayN
-                            FROM
-                                $tableName
-                            where
-                                dt between @registerBeginDate and @registerEndDate
-                                and game_id = @gameId
-                                and source_system = @sourceSystem
-                            """
-            );
-        } else {
-            //构架SQL语句,查询相关DayN表获取相关充值数据
-            dayNSql = Sqls.create(
-                    """
-                            SELECT
-                                dayN
-                            FROM
-                                $tableName
-                            where
-                                dt between @registerBeginDate and @registerEndDate
-                                and game_id = @gameId
-                            """
-            );
+            //拼接SDK来源查询条件
+            cri.where().andEquals("source_system", dayNMap.get("sourceSystem"));
         }
+
+        Sql dayNSql = Sqls.create("""
+                SELECT
+                    dayN
+                FROM
+                    $tableName
+                """ + cri);
+
         //sql语句传入参数
         dayNSql.setParams(dayNMap);
         //给定查询的表名
@@ -1054,11 +1061,11 @@ public class GameDataServiceImpl implements IGameDataService {
                         //充值的金额
                         BigDecimal chargeMoney = new BigDecimal(oldValues[0]).add(new BigDecimal(resValues[0]));
                         //充值的次数
-                        Long count = Long.valueOf(oldValues[1]) + Long.valueOf(resValues[1]);
+                        long count = Long.parseLong(oldValues[1]) + Long.parseLong(resValues[1]);
                         //充值的人数
-                        Long num = Long.valueOf(oldValues[2]) + Long.valueOf(resValues[2]);
+                        long num = Long.parseLong(oldValues[2]) + Long.parseLong(resValues[2]);
                         //新用户复充人数
-                        Long againNum = Long.valueOf(oldValues[3]) + Long.valueOf(resValues[3]);
+                        long againNum = Long.parseLong(oldValues[3]) + Long.parseLong(resValues[3]);
                         //合并成字符串 更新dayN的值
                         String newValue = chargeMoney + "-" + count + "-" + num + "-" + againNum;
                         resMap.put("dayN", newValue);
@@ -1082,7 +1089,7 @@ public class GameDataServiceImpl implements IGameDataService {
     /**
      * 通过反射来获取Cn的值
      *
-     * @param vo 数据库查询出来的原始数据对象实体
+     * @param vo  数据库查询出来的原始数据对象实体
      * @param num 1-9
      * @return Cn
      */
@@ -1140,7 +1147,7 @@ public class GameDataServiceImpl implements IGameDataService {
                     .rechargeUserCount(Long.valueOf(strs[1]))
                     .increase(new BigDecimal(strs[2]))
                     .back(new BigDecimal(strs[3]))
-                    .multiples(new BigDecimal(strs[4]).setScale(2,RoundingMode.HALF_UP))
+                    .multiples(new BigDecimal(strs[4]).setScale(2, RoundingMode.HALF_UP))
                     .build());
         } catch (Exception e) {
             e.printStackTrace();
@@ -1433,6 +1440,99 @@ public class GameDataServiceImpl implements IGameDataService {
                 """;
     }
 
+    /**
+     * 游戏每日数据总计sql
+     *
+     * @return String
+     */
+    private String gameDataDayTotalSql() {
+        return """
+                SELECT
+                SUM(cost) cost,
+                                
+                SUM(buy_reg_num) buy_reg_num,
+                SUM(nature_reg_num) nature_reg_num,
+                SUM(reg_num) reg_num,
+                                
+                SUM(buy_first_new_user_amount_count) buy_first_new_user_amount_count,
+                SUM(buy_first_new_user_amount_num) buy_first_new_user_amount_num,
+                SUM(buy_first_new_user_amount) buy_first_new_user_amount,
+                SUM(buy_old_user_count) buy_old_user_count,
+                SUM(buy_old_user_num) buy_old_user_num,
+                SUM(buy_old_user_amount) buy_old_user_amount,
+                SUM(buy_amount_count) buy_amount_count,
+                SUM(buy_amount_num) buy_amount_num,
+                SUM(buy_amount) buy_amount,
+                SUM(buy_new_user_total_amount_count) buy_new_user_total_amount_count,
+                SUM(buy_new_user_total_amount_num) buy_new_user_total_amount_num,
+                SUM(buy_new_user_total_amount) buy_new_user_total_amount,
+                round(if(SUM(buy_reg_num) > 0 , SUM(buy_first_new_user_amount_num) / SUM(buy_reg_num) ,0), 4) buy_first_roi,
+                round(if(SUM(buy_reg_num) > 0, SUM(buy_new_user_total_amount_num) / SUM(buy_reg_num), 0) ,4) buy_today_roi,
+                round(if(SUM(buy_amount_num) > 0 , SUM(buy_first_new_user_amount_num) / SUM(buy_amount_num) ,0), 4) buy_new_user_rate,
+                round(if(SUM(buy_first_new_user_amount_count) > 0, SUM(buy_first_new_user_amount) / SUM(buy_first_new_user_amount_count), 0), 2) buy_first_avg_amount,
+                round(if(SUM(buy_new_user_total_amount_count) > 0, SUM(buy_new_user_total_amount) / SUM(buy_new_user_total_amount_count), 0), 2) buy_today_avg_amount,
+                round(if(SUM(buy_amount_count) > 0, SUM(buy_amount) / SUM(buy_amount_count), 0), 2) buy_avg_amount,
+                round(if(SUM(buy_new_user_total_amount_num) > 0, SUM(buy_reg_order_user_again) / SUM(buy_new_user_total_amount_num), 0), 4) buy_user_again_rate,
+                round(if(SUM(buy_reg_num) > 0, SUM(buy_new_user_total_amount) / SUM(buy_reg_num), 0), 2) buy_reg_user_arpu,
+                round(if(SUM(buy_first_new_user_amount_num) > 0 , SUM(buy_first_new_user_amount) / SUM(buy_first_new_user_amount_num), 0), 2) buy_first_amount_arpu,
+                round(if(SUM(buy_new_user_total_amount_num) > 0 , SUM(buy_new_user_total_amount) / SUM(buy_new_user_total_amount_num), 0), 2) buy_today_amount_arpu,
+                round(if(SUM(buy_amount_num) > 0, SUM(buy_amount) / SUM(buy_amount_num), 0), 2) buy_amount_arpu,
+
+                SUM(nature_first_new_user_amount_count) nature_first_new_user_amount_count,
+                SUM(nature_first_new_user_amount_num) nature_first_new_user_amount_num,
+                SUM(nature_first_new_user_amount) nature_first_new_user_amount,
+                SUM(nature_old_user_count) nature_old_user_count,
+                SUM(nature_old_user_num) nature_old_user_num,
+                SUM(nature_old_user_amount) nature_old_user_amount,
+                SUM(nature_amount_count) nature_amount_count,
+                SUM(nature_amount_num) nature_amount_num,
+                SUM(nature_amount) nature_amount,
+                SUM(nature_new_user_total_amount_count) nature_new_user_total_amount_count,
+                SUM(nature_new_user_total_amount_num) nature_new_user_total_amount_num,
+                SUM(nature_new_user_total_amount) nature_new_user_total_amount,
+                round(if(SUM(nature_reg_num) > 0 , SUM(nature_first_new_user_amount_num) / SUM(nature_reg_num) ,0), 4) nature_first_roi,
+                round(if(SUM(nature_reg_num) > 0, SUM(nature_new_user_total_amount_num) / SUM(nature_reg_num), 0) ,4) nature_today_roi,
+                round(if(SUM(nature_amount_num) > 0 , SUM(nature_first_new_user_amount_num) / SUM(nature_amount_num) ,0), 4) nature_new_user_rate,
+                round(if(SUM(nature_first_new_user_amount_count) > 0, SUM(nature_first_new_user_amount) / SUM(nature_first_new_user_amount_count), 0), 2) nature_first_avg_amount,
+                round(if(SUM(nature_new_user_total_amount_count) > 0, SUM(nature_new_user_total_amount) / SUM(nature_new_user_total_amount_count), 0), 2) nature_today_avg_amount,
+                round(if(SUM(nature_amount_count) > 0, SUM(nature_amount) / SUM(nature_amount_count), 0), 2) nature_avg_amount,
+                round(if(SUM(nature_new_user_total_amount_num) > 0, SUM(nature_reg_order_user_again) / SUM(nature_new_user_total_amount_num), 0), 4) nature_user_again_rate,
+                round(if(SUM(nature_reg_num) > 0, SUM(nature_new_user_total_amount) / SUM(nature_reg_num), 0), 2) nature_reg_user_arpu,
+                round(if(SUM(nature_first_new_user_amount_num) > 0 , SUM(nature_first_new_user_amount) / SUM(nature_first_new_user_amount_num), 0), 2) nature_first_amount_arpu,
+                round(if(SUM(nature_new_user_total_amount_num) > 0 , SUM(nature_new_user_total_amount) / SUM(nature_new_user_total_amount_num), 0), 2) nature_today_amount_arpu,
+                round(if(SUM(nature_amount_num) > 0, SUM(nature_amount) / SUM(nature_amount_num), 0), 2) nature_amount_arpu,
+                                
+                SUM(first_new_user_amount_count) first_new_user_amount_count,
+                SUM(first_new_user_amount_num) first_new_user_amount_num,
+                SUM(first_new_user_amount) first_new_user_amount,
+                SUM(old_user_count) old_user_count,
+                SUM(old_user_num) old_user_num,
+                SUM(old_user_amount) old_user_amount,
+                SUM(amount_count) amount_count,
+                SUM(amount_num) amount_num,
+                SUM(amount) amount,
+                SUM(new_user_total_amount_count) new_user_total_amount_count,
+                SUM(new_user_total_amount_num) new_user_total_amount_num,
+                SUM(new_user_total_amount) new_user_total_amount,
+                round(if(SUM(reg_num) > 0 , SUM(first_new_user_amount_num) / SUM(reg_num) ,0), 4) first_roi,
+                round(if(SUM(reg_num) > 0, SUM(new_user_total_amount_num) / SUM(reg_num), 0) ,4) today_roi,
+                round(if(SUM(amount_num) > 0 , SUM(first_new_user_amount_num) / SUM(amount_num) ,0), 4) new_user_rate,
+                round(if(SUM(first_new_user_amount_count) > 0, SUM(first_new_user_amount) / SUM(first_new_user_amount_count), 0), 2) first_avg_amount,
+                round(if(SUM(new_user_total_amount_count) > 0, SUM(new_user_total_amount) / SUM(new_user_total_amount_count), 0), 2) today_avg_amount,
+                round(if(SUM(amount_count) > 0, SUM(amount) / SUM(amount_count), 0), 2) avg_amount,
+                round(if(SUM(new_user_total_amount_num) > 0, SUM(reg_order_user_again) / SUM(new_user_total_amount_num), 0), 4) user_again_rate,
+                round(if(SUM(reg_num) > 0, SUM(new_user_total_amount) / SUM(reg_num), 0), 2) reg_user_arpu,
+                round(if(SUM(first_new_user_amount_num) > 0 , SUM(first_new_user_amount) / SUM(first_new_user_amount_num), 0), 2) first_amount_arpu,
+                round(if(SUM(new_user_total_amount_num) > 0 , SUM(new_user_total_amount) / SUM(new_user_total_amount_num), 0), 2) today_amount_arpu,
+                round(if(SUM(amount_num) > 0, SUM(amount) / SUM(amount_num), 0), 2) amount_arpu
+                                
+                FROM
+                ads_game_day
+                 
+                                
+                """;
+    }
+
     /**
      * 游戏总数据SQL
      *

+ 18 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/OverallSummaryServiceImpl.java

@@ -1,6 +1,5 @@
 package com.zanxiang.game.data.serve.service.impl;
 
-import com.zanxiang.erp.security.util.SecurityUtil;
 import com.zanxiang.game.data.serve.pojo.dto.OverallSummaryDTO;
 import com.zanxiang.game.data.serve.pojo.vo.OverallSummaryAmountLineDataVO;
 import com.zanxiang.game.data.serve.pojo.vo.OverallSummaryCostLineDataVO;
@@ -111,7 +110,12 @@ public class OverallSummaryServiceImpl implements IOverallSummaryService {
         //计算总回本数据
         overallSummaryVO.setTotalRoi(overallSummaryVO.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
                 overallSummaryVO.getTotalAmount().divide(overallSummaryVO.getTotalCost(), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)));
-        //计算首日Roi
+        //计算总数据的首日Roi
+        //计算所有的首日新用户充值
+        BigDecimal totalFirstNewUserAmount = getResultBySql("today_first_new_user_amount-ads_overall_summary_amount", totalCri);
+        overallSummaryVO.setTotalFirstRoi(overallSummaryVO.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
+                totalFirstNewUserAmount.divide(overallSummaryVO.getTotalCost(), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)));
+        //计算今日Roi
         //计算当天首日新用户充值
         BigDecimal todayFirstNewUserAmount = getResultBySql("today_first_new_user_amount-ads_overall_summary_amount", todayCri);
         overallSummaryVO.setFirstRoi(overallSummaryVO.getTodayTotalCost().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
@@ -222,7 +226,7 @@ public class OverallSummaryServiceImpl implements IOverallSummaryService {
             //拼接查询 sdk 来源条件
             cri.where().andEquals("source_system", dto.getSourceSystem());
         }
-        //前端传递 pitcherId 根据 pitcherId 查询
+        /*//前端传递 pitcherId 根据 pitcherId 查询
         if (dto.getPitcherId() != null) {
             //拼接投手查询条件
             cri.where().andEquals("pitcher_id", dto.getPitcherId());
@@ -232,8 +236,19 @@ public class OverallSummaryServiceImpl implements IOverallSummaryService {
         } else {
             //前端没有传递 pitcherId 并且不是管理员 只能看自己的数据
             cri.where().andEquals("pitcher_id", SecurityUtil.getUserId());
+        }*/
+
+        //前端传递 pitcherId 根据 pitcherId 查询
+        if (dto.getPitcherId() != null) {
+            //拼接投手查询条件
+            cri.where().andEquals("pitcher_id", dto.getPitcherId());
+        } else {
+            //前端没有传递 pitcherId 并且不是管理员 只能看自己的数据
+            cri.where().andNotEquals("pitcher_id", -2);
         }
 
+
+
         //根据参数拼接条件
         switch (queryDays) {
             //前一天时间

+ 30 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PromotionDayServiceImpl.java

@@ -0,0 +1,30 @@
+package com.zanxiang.game.data.serve.service.impl;
+
+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.vo.PromotionDayTotalVO;
+import com.zanxiang.game.data.serve.pojo.vo.PromotionDayVO;
+import com.zanxiang.game.data.serve.service.IAdsPromotionDayService;
+import com.zanxiang.game.data.serve.utils.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author tianhua
+ * @time 2023/7/27
+ * @Description
+ **/
+@Service
+@Slf4j
+public class PromotionDayServiceImpl implements IAdsPromotionDayService {
+
+    @Override
+    public Page<PromotionDayVO> getPromotionDayData(PromotionDayDTO dto) {
+        return null;
+    }
+
+    @Override
+    public PromotionDayTotalVO getPromotionDayTotalData(PromotionDayTotalDTO dto) {
+        return null;
+    }
+}