Ver código fonte

修改内容:用户详情修改空值判断;滚服总数据接口

lth 1 ano atrás
pai
commit
1b2c1fe7e3

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

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

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

@@ -57,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;
 
     /**

+ 8 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java

@@ -3308,9 +3308,14 @@ 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);
+        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);
+        }
         //计算游戏首日复充总计
         formatFirstNewUserAgainTotal(voAgainData, usersIdTotal);
         //将两个对象的属性结合

+ 220 - 6
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameServerServiceImpl.java

@@ -20,13 +20,16 @@ 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.time.LocalDate;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author tianhua
@@ -39,7 +42,7 @@ public class GameServerServiceImpl implements IGameServerService {
 
     //存储映射的List
     private static final List<Tuple2<Field,Field>> dayNFieldMapList;
-    //private static final List<Tuple2<Field,Field>> dayNTotalFieldMapList;
+    private static final List<Tuple2<Field,Field>> dayNTotalFieldMapList;
 
     static {
         //解析游戏区服的dayN映射
@@ -75,8 +78,41 @@ public class GameServerServiceImpl implements IGameServerService {
                 }
             }
         }
-    }
 
+        //游戏区服总计dayN映射
+        Map<String, Field> fieldTotalMap = new HashMap<>();
+        List<Field> dayNTotalFieldList = new ArrayList<>();
+        Class<?> tempTotalClazz = GameServerDayVO.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) {
+                    dayNFieldMapList.add(Tuples.of(sourceField, dayNTotalField));
+                }
+            }
+        }
+    }
 
     @Autowired
     private Dao dao;
@@ -102,7 +138,7 @@ public class GameServerServiceImpl implements IGameServerService {
         if (StringUtils.isBlank(dto.getSortType())) {
             dto.setSortType(OrderByEnum.DESC.getOrderType());
         }
-        //创建查询条件
+        //创建查询条件
         Criteria cri = Cnd.cri();
         if (dto.getGameId() != null) {
             //拼接游戏ID查询条件
@@ -120,8 +156,11 @@ public class GameServerServiceImpl implements IGameServerService {
             //拼接开服时间查询条件
             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);
@@ -135,8 +174,13 @@ public class GameServerServiceImpl implements IGameServerService {
         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<>(sql.getList(GameServerDayVO.class), pager);
+        return new Page<>(list, pager);
     }
 
     /**
@@ -147,9 +191,117 @@ public class GameServerServiceImpl implements IGameServerService {
      */
     @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(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();
+            }
+
+        });
+    }
+
+    private String trendDay() {
+        StringBuilder daySql = new StringBuilder(StringUtils.EMPTY);
+
+
+        return daySql.toString();
     }
 
+
     /**
      * 游戏区服数据SQL
      * @return String
@@ -219,5 +371,67 @@ public class GameServerServiceImpl implements IGameServerService {
                 """;
     }
 
+    /**
+     * 游戏区服数据总计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,
+                    IFNULL(SUM(out_total_rate), 0) 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,
+                    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
+                """;
+    }
+
 
 }