浏览代码

每日游戏数据

wcc 1 年之前
父节点
当前提交
1e0508114f

+ 262 - 121
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameDataDayVO.java

@@ -153,11 +153,11 @@ public class GameDataDayVO {
     @ApiModelProperty(value = "首日付费率(买量)")
     private BigDecimal buyFirstRoi;
 
-    /**
-     * 当天付费率(买量)
-     */
+    @ApiModelProperty(value = "首日付费率(买量)")
+    private BigDecimal buyFirstAmountRate;
+
     @ApiModelProperty(value = "当天付费率(买量)")
-    private BigDecimal buyTodayRoi;
+    private BigDecimal buyTodayAmountRate;
 
     /**
      * 新用户付费比(买量)
@@ -288,14 +288,14 @@ public class GameDataDayVO {
     /**
      * 首日付费率(自然量)
      */
-    @ApiModelProperty(value = "首日付费率(自然量)")
+    @ApiModelProperty(value = "首日roi(自然量)")
     private BigDecimal natureFirstRoi;
 
-    /**
-     * 当天付费率(自然量)
-     */
+    @ApiModelProperty(value = "首日付费率(自然量)")
+    private BigDecimal natureFirstAmountRate;
+
     @ApiModelProperty(value = "当天付费率(自然量)")
-    private BigDecimal natureTodayRoi;
+    private BigDecimal natureTodayAmountRate;
 
     /**
      * 新用户付费比(自然量)
@@ -429,11 +429,11 @@ public class GameDataDayVO {
     @ApiModelProperty(value = "首日付费率(总量)")
     private BigDecimal firstRoi;
 
-    /**
-     * 当天付费率(总量)
-     */
-    @ApiModelProperty(value = "当天付费率(总)")
-    private BigDecimal todayRoi;
+    @ApiModelProperty(value = "首日付费率(总)")
+    private BigDecimal firstAmountRate;
+
+    @ApiModelProperty(value = "当天付费率(总)")
+    private BigDecimal todayAmountRate;
 
     /**
      * 新用户付费比(总量)
@@ -687,6 +687,9 @@ public class GameDataDayVO {
     @ApiModelProperty(value = "(不展示)付费趋势:6个月(买量)金额/人数/增/回/倍")
     private String buyAmountM6;
 
+    @ApiModelProperty(value = "付费趋势总:金额/人数/增/回/倍(买量)")
+    private String buyAmountY1;
+
     /**
      * 付费趋势:总(买量)金额/人数/增/回/倍(不展示)
      */
@@ -885,12 +888,12 @@ public class GameDataDayVO {
     @ApiModelProperty(value = "(不展示)付费趋势:3个月(自然量)金额/人数/增/回/倍")
     private String natureAmountM3;
 
-    /**
-     * 付费趋势:6个月(自然量)金额/人数/增/回/倍(不展示)
-     */
     @ApiModelProperty(value = "(不展示)付费趋势:6个月(自然量)金额/人数/增/回/倍")
     private String natureAmountM6;
 
+    @ApiModelProperty(value = "(不展示)付费趋势:1年(自然量)金额/人数/增/回/倍")
+    private String natureAmountY1;
+
     /**
      * 付费趋势:总(自然量)金额/人数/增/回/倍(不展示)
      */
@@ -1089,195 +1092,333 @@ public class GameDataDayVO {
     @ApiModelProperty(value = "(不展示)付费趋势:3个月(总量)金额/人数/增/回/倍")
     private String amountM3;
 
-    /**
-     * 付费趋势:6个月(总量)金额/人数/增/回/倍(不展示)
-     */
     @ApiModelProperty(value = "(不展示)付费趋势:6个月(总量)金额/人数/增/回/倍")
     private String amountM6;
 
+    @ApiModelProperty(value = "(不展示)付费趋势:1年(总量)金额/人数/增/回/倍")
+    private String amountY1;
+
     /**
      * 付费趋势:总(总量)金额/人数/增/回/倍(不展示)
      */
     @ApiModelProperty(value = "(不展示)付费趋势:总(总量)金额/人数/增/回/倍")
     private String amountSum;
 
-    /**
-     * 付费趋势:1天(买量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:1天(买量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
     private RechargeTrendVO buyAmountD1Trend;
 
-    /**
-     * 付费趋势:3天(买量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:3天(买量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD2Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
     private RechargeTrendVO buyAmountD3Trend;
 
-    /**
-     * 付费趋势:5天(买量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:5天(买量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD4Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
     private RechargeTrendVO buyAmountD5Trend;
 
-    /**
-     * 付费趋势:7天(买量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:7天(买量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD6Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
     private RechargeTrendVO buyAmountD7Trend;
 
-    /**
-     * 付费趋势:15天(买量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:15天(买量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD8Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD9Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD10Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD11Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD12Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD13Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD14Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
     private RechargeTrendVO buyAmountD15Trend;
 
-    /**
-     * 付费趋势:1个月(买量)金额/人数/增/回/倍(展示数据)
-     */
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD16Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD17Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD18Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD19Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD20Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD21Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD22Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD23Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD24Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD25Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD26Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD27Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD28Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountD29Trend;
+
     @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 = "付费趋势:1年(买量)金额/人数/增/回/倍")
+    private RechargeTrendVO buyAmountY1Trend;
+
     @ApiModelProperty(value = "付费趋势:总(买量)金额/人数/增/回/倍")
     private RechargeTrendVO buyAmountSumTrend;
 
-    /**
-     * 付费趋势:1天(自然量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:1天(自然量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
     private RechargeTrendVO natureAmountD1Trend;
 
-    /**
-     * 付费趋势:3天(自然量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:3天(自然量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD2Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
     private RechargeTrendVO natureAmountD3Trend;
 
-    /**
-     * 付费趋势:5天(自然量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:5天(自然量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD4Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
     private RechargeTrendVO natureAmountD5Trend;
 
-    /**
-     * 付费趋势:7天(自然量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:7天(自然量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD6Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
     private RechargeTrendVO natureAmountD7Trend;
 
-    /**
-     * 付费趋势:15天(自然量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:15天(自然量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD8Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD9Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD10Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD11Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD12Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD13Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD14Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
     private RechargeTrendVO natureAmountD15Trend;
 
-    /**
-     * 付费趋势:1个月(自然量)金额/人数/增/回/倍(展示数据)
-     */
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD16Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD17Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD18Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD19Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD20Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD21Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD22Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD23Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD24Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD25Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD26Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD27Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD28Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountD29Trend;
+
     @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 = "付费趋势:1年(自然量)金额/人数/增/回/倍")
+    private RechargeTrendVO natureAmountY1Trend;
+
     /**
      * 付费趋势:总(自然量)金额/人数/增/回/倍(展示数据)
      */
     @ApiModelProperty(value = "付费趋势:总(自然量)金额/人数/增/回/倍")
     private RechargeTrendVO natureAmountSumTrend;
 
-    /**
-     * 付费趋势:1天(总量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:1天(总量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
     private RechargeTrendVO amountD1Trend;
 
-    /**
-     * 付费趋势:3天(总量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:3天(总量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD2Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
     private RechargeTrendVO amountD3Trend;
 
-    /**
-     * 付费趋势:5天(总量)金额/人数/增/回/倍(展示数据)
-     */
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD4Trend;
+
     @ApiModelProperty(value = "付费趋势:5天(总量)金额/人数/增/回/倍")
     private RechargeTrendVO amountD5Trend;
 
-    /**
-     * 付费趋势:7天(总量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:7天(总量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD6Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
     private RechargeTrendVO amountD7Trend;
 
-    /**
-     * 付费趋势:15天(总量)金额/人数/增/回/倍(展示数据)
-     */
-    @ApiModelProperty(value = "付费趋势:15天(总量)金额/人数/增/回/倍")
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD8Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD9Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD10Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD11Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD12Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD13Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD14Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
     private RechargeTrendVO amountD15Trend;
 
-    /**
-     * 付费趋势:1个月(总量)金额/人数/增/回/倍(展示数据)
-     */
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD16Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD17Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD18Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD19Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD20Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD21Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD22Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD23Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD24Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD25Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD26Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD27Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD28Trend;
+
+    @ApiModelProperty(value = "付费趋势:1~29天(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountD29Trend;
+
     @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 = "付费趋势:1年(总量)金额/人数/增/回/倍")
+    private RechargeTrendVO amountY1Trend;
+
     @ApiModelProperty(value = "付费趋势:总(总量)金额/人数/增/回/倍")
     private RechargeTrendVO amountSumTrend;
 

+ 136 - 280
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java

@@ -31,9 +31,12 @@ import org.springframework.beans.BeanWrapperImpl;
 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.beans.PropertyDescriptor;
 import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDate;
@@ -48,6 +51,36 @@ import java.util.stream.Collectors;
 @Service
 @Slf4j
 public class GameDataServiceImpl implements IGameDataService {
+    private static final List<Tuple2<Field, Field>> dayNFieldMapList;
+    static  {
+        Map<String, Field> fieldMap = new HashMap<>();
+        List<Field> dayNFieldList = new ArrayList<>();
+        Class<?> tempClazz = GameDataDayVO.class;
+        while (tempClazz != null) {
+            Field[] fields = tempClazz.getDeclaredFields();
+            for (Field field : fields) {
+                if (Modifier.isFinal(field.getModifiers()) || Modifier.isStatic(field.getModifiers())) {
+                    continue;
+                }
+                fieldMap.put(field.getName(), field);
+                if (field.getType() == RechargeTrendVO.class) {
+                    dayNFieldList.add(field);
+                }
+            }
+            tempClazz = tempClazz.getSuperclass();
+        }
+        if(dayNFieldList.isEmpty()) {
+            dayNFieldMapList  = Collections.emptyList();
+        } else {
+            dayNFieldMapList = new ArrayList<>(dayNFieldList.size());
+            for(Field dayNField : dayNFieldList) {
+                Field sourceField = fieldMap.get(dayNField.getName().replace("Trend", ""));
+                if(sourceField != null) {
+                    dayNFieldMapList.add(Tuples.of(sourceField, dayNField));
+                }
+            }
+        }
+    }
 
     @Autowired
     private Dao dao;
@@ -113,283 +146,7 @@ public class GameDataServiceImpl implements IGameDataService {
         pager.setRecordCount(dao.count(AdsGameDay.class, cri));
 
         List<GameDataDayVO> gameDataDayVOList = list.stream().map(vo -> {
-            //买量数据
-            /*String[] buyAmountD1 = vo.getBuyAmountD1().split("/");
-            vo.setBuyAmountD1Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(buyAmountD1[0]))
-                    .rechargeUserCount(Long.valueOf(buyAmountD1[1]))
-                    .increase(new BigDecimal(buyAmountD1[2]))
-                    .back(new BigDecimal(buyAmountD1[3]))
-                    .multiples(new BigDecimal(buyAmountD1[4]))
-                    .build());*/
-            setAgainContentByNum(vo, "D1", "buy");
-
-
-            String[] buyAmountD3 = vo.getBuyAmountD3().split("/");
-            vo.setBuyAmountD3Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(buyAmountD3[0]))
-                    .rechargeUserCount(Long.valueOf(buyAmountD3[1]))
-                    .increase(new BigDecimal(buyAmountD3[2]))
-                    .back(new BigDecimal(buyAmountD3[3]))
-                    .multiples(new BigDecimal(buyAmountD3[4]))
-                    .build());
-
-            String[] buyAmountD5 = vo.getBuyAmountD5().split("/");
-            vo.setBuyAmountD5Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(buyAmountD5[0]))
-                    .rechargeUserCount(Long.valueOf(buyAmountD5[1]))
-                    .increase(new BigDecimal(buyAmountD5[2]))
-                    .back(new BigDecimal(buyAmountD5[3]))
-                    .multiples(new BigDecimal(buyAmountD5[4]))
-                    .build());
-
-            String[] buyAmountD7 = vo.getBuyAmountD7().split("/");
-            vo.setBuyAmountD7Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(buyAmountD7[0]))
-                    .rechargeUserCount(Long.valueOf(buyAmountD7[1]))
-                    .increase(new BigDecimal(buyAmountD7[2]))
-                    .back(new BigDecimal(buyAmountD7[3]))
-                    .multiples(new BigDecimal(buyAmountD7[4]))
-                    .build());
-
-            String[] buyAmountD15 = vo.getBuyAmountD15().split("/");
-            vo.setBuyAmountD15Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(buyAmountD15[0]))
-                    .rechargeUserCount(Long.valueOf(buyAmountD15[1]))
-                    .increase(new BigDecimal(buyAmountD15[2]))
-                    .back(new BigDecimal(buyAmountD15[3]))
-                    .multiples(new BigDecimal(buyAmountD15[4]))
-                    .build());
-
-            String[] buyAmountM1 = vo.getBuyAmountM1().split("/");
-            vo.setBuyAmountM1Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(buyAmountM1[0]))
-                    .rechargeUserCount(Long.valueOf(buyAmountM1[1]))
-                    .increase(new BigDecimal(buyAmountM1[2]))
-                    .back(new BigDecimal(buyAmountM1[3]))
-                    .multiples(new BigDecimal(buyAmountM1[4]))
-                    .build());
-
-            String[] buyAmountM2 = vo.getBuyAmountM2().split("/");
-            vo.setBuyAmountM2Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(buyAmountM2[0]))
-                    .rechargeUserCount(Long.valueOf(buyAmountM2[1]))
-                    .increase(new BigDecimal(buyAmountM2[2]))
-                    .back(new BigDecimal(buyAmountM2[3]))
-                    .multiples(new BigDecimal(buyAmountM2[4]))
-                    .build());
-
-            String[] buyAmountM3 = vo.getBuyAmountM3().split("/");
-            vo.setBuyAmountM3Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(buyAmountM3[0]))
-                    .rechargeUserCount(Long.valueOf(buyAmountM3[1]))
-                    .increase(new BigDecimal(buyAmountM3[2]))
-                    .back(new BigDecimal(buyAmountM3[3]))
-                    .multiples(new BigDecimal(buyAmountM3[4]))
-                    .build());
-
-            String[] buyAmountM6 = vo.getBuyAmountM6().split("/");
-            vo.setBuyAmountM6Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(buyAmountM6[0]))
-                    .rechargeUserCount(Long.valueOf(buyAmountM6[1]))
-                    .increase(new BigDecimal(buyAmountM6[2]))
-                    .back(new BigDecimal(buyAmountM6[3]))
-                    .multiples(new BigDecimal(buyAmountM6[4]))
-                    .build());
-
-            String[] buyAmountSum = vo.getBuyAmountSum().split("/");
-            vo.setBuyAmountSumTrend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(buyAmountSum[0]))
-                    .rechargeUserCount(Long.valueOf(buyAmountSum[1]))
-                    .increase(new BigDecimal(buyAmountSum[2]))
-                    .back(new BigDecimal(buyAmountSum[3]))
-                    .multiples(new BigDecimal(buyAmountSum[4]))
-                    .build());
-
-            //自然量数据
-            String[] natureAmountD1 = vo.getNatureAmountD1().split("/");
-            vo.setNatureAmountD1Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(natureAmountD1[0]))
-                    .rechargeUserCount(Long.valueOf(natureAmountD1[1]))
-                    .increase(new BigDecimal(natureAmountD1[2]))
-                    .back(new BigDecimal(natureAmountD1[3]))
-                    .multiples(new BigDecimal(natureAmountD1[4]))
-                    .build());
-
-            String[] natureAmountD3 = vo.getNatureAmountD3().split("/");
-            vo.setNatureAmountD3Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(natureAmountD3[0]))
-                    .rechargeUserCount(Long.valueOf(natureAmountD3[1]))
-                    .increase(new BigDecimal(natureAmountD3[2]))
-                    .back(new BigDecimal(natureAmountD3[3]))
-                    .multiples(new BigDecimal(natureAmountD3[4]))
-                    .build());
-
-            String[] natureAmountD5 = vo.getNatureAmountD5().split("/");
-            vo.setNatureAmountD5Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(natureAmountD5[0]))
-                    .rechargeUserCount(Long.valueOf(natureAmountD5[1]))
-                    .increase(new BigDecimal(natureAmountD5[2]))
-                    .back(new BigDecimal(natureAmountD5[3]))
-                    .multiples(new BigDecimal(natureAmountD5[4]))
-                    .build());
-
-            String[] natureAmountD7 = vo.getNatureAmountD7().split("/");
-            vo.setNatureAmountD7Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(natureAmountD7[0]))
-                    .rechargeUserCount(Long.valueOf(natureAmountD7[1]))
-                    .increase(new BigDecimal(natureAmountD7[2]))
-                    .back(new BigDecimal(natureAmountD7[3]))
-                    .multiples(new BigDecimal(natureAmountD7[4]))
-                    .build());
-
-            String[] natureAmountD15 = vo.getNatureAmountD15().split("/");
-            vo.setNatureAmountD15Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(natureAmountD15[0]))
-                    .rechargeUserCount(Long.valueOf(natureAmountD15[1]))
-                    .increase(new BigDecimal(natureAmountD15[2]))
-                    .back(new BigDecimal(natureAmountD15[3]))
-                    .multiples(new BigDecimal(natureAmountD15[4]))
-                    .build());
-
-            String[] natureAmountM1 = vo.getNatureAmountM1().split("/");
-            vo.setNatureAmountM1Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(natureAmountM1[0]))
-                    .rechargeUserCount(Long.valueOf(natureAmountM1[1]))
-                    .increase(new BigDecimal(natureAmountM1[2]))
-                    .back(new BigDecimal(natureAmountM1[3]))
-                    .multiples(new BigDecimal(natureAmountM1[4]))
-                    .build());
-
-            String[] natureAmountM2 = vo.getNatureAmountM2().split("/");
-            vo.setNatureAmountM2Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(natureAmountM2[0]))
-                    .rechargeUserCount(Long.valueOf(natureAmountM2[1]))
-                    .increase(new BigDecimal(natureAmountM2[2]))
-                    .back(new BigDecimal(natureAmountM2[3]))
-                    .multiples(new BigDecimal(natureAmountM2[4]))
-                    .build());
-
-            String[] natureAmountM3 = vo.getNatureAmountM3().split("/");
-            vo.setNatureAmountM3Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(natureAmountM3[0]))
-                    .rechargeUserCount(Long.valueOf(natureAmountM3[1]))
-                    .increase(new BigDecimal(natureAmountM3[2]))
-                    .back(new BigDecimal(natureAmountM3[3]))
-                    .multiples(new BigDecimal(natureAmountM3[4]))
-                    .build());
-
-            String[] natureAmountM6 = vo.getNatureAmountM6().split("/");
-            vo.setNatureAmountM6Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(natureAmountM6[0]))
-                    .rechargeUserCount(Long.valueOf(natureAmountM6[1]))
-                    .increase(new BigDecimal(natureAmountM6[2]))
-                    .back(new BigDecimal(natureAmountM6[3]))
-                    .multiples(new BigDecimal(natureAmountM6[4]))
-                    .build());
-
-            String[] natureAmountSum = vo.getNatureAmountSum().split("/");
-            vo.setNatureAmountSumTrend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(natureAmountSum[0]))
-                    .rechargeUserCount(Long.valueOf(natureAmountSum[1]))
-                    .increase(new BigDecimal(natureAmountSum[2]))
-                    .back(new BigDecimal(natureAmountSum[3]))
-                    .multiples(new BigDecimal(natureAmountSum[4]))
-                    .build());
-
-            //总量数据
-            /*String[] amountD1 = vo.getAmountD1().split("/");
-            vo.setAmountD1Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(amountD1[0]))
-                    .rechargeUserCount(Long.valueOf(amountD1[1]))
-                    .increase(new BigDecimal(amountD1[2]))
-                    .back(new BigDecimal(amountD1[3]))
-                    .multiples(new BigDecimal(amountD1[4]).setScale(2,RoundingMode.HALF_UP))
-                    .build());*/
-            setAgainContentByNum(vo, "D1", "");
-
-
-            String[] amountD3 = vo.getAmountD3().split("/");
-            vo.setAmountD3Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(amountD3[0]))
-                    .rechargeUserCount(Long.valueOf(amountD3[1]))
-                    .increase(new BigDecimal(amountD3[2]))
-                    .back(new BigDecimal(amountD3[3]))
-                    .multiples(new BigDecimal(amountD3[4]))
-                    .build());
-
-            String[] amountD5 = vo.getAmountD5().split("/");
-            vo.setAmountD5Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(amountD5[0]))
-                    .rechargeUserCount(Long.valueOf(amountD5[1]))
-                    .increase(new BigDecimal(amountD5[2]))
-                    .back(new BigDecimal(amountD5[3]))
-                    .multiples(new BigDecimal(amountD5[4]))
-                    .build());
-
-            String[] amountD7 = vo.getAmountD7().split("/");
-            vo.setAmountD7Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(amountD7[0]))
-                    .rechargeUserCount(Long.valueOf(amountD7[1]))
-                    .increase(new BigDecimal(amountD7[2]))
-                    .back(new BigDecimal(amountD7[3]))
-                    .multiples(new BigDecimal(amountD7[4]))
-                    .build());
-
-            String[] amountD15 = vo.getAmountD15().split("/");
-            vo.setAmountD15Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(amountD15[0]))
-                    .rechargeUserCount(Long.valueOf(amountD15[1]))
-                    .increase(new BigDecimal(amountD15[2]))
-                    .back(new BigDecimal(amountD15[3]))
-                    .multiples(new BigDecimal(amountD15[4]))
-                    .build());
-
-            String[] amountM1 = vo.getAmountM1().split("/");
-            vo.setAmountM1Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(amountM1[0]))
-                    .rechargeUserCount(Long.valueOf(amountM1[1]))
-                    .increase(new BigDecimal(amountM1[2]))
-                    .back(new BigDecimal(amountM1[3]))
-                    .multiples(new BigDecimal(amountM1[4]))
-                    .build());
-
-            String[] amountM2 = vo.getAmountM2().split("/");
-            vo.setAmountM2Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(amountM2[0]))
-                    .rechargeUserCount(Long.valueOf(amountM2[1]))
-                    .increase(new BigDecimal(amountM2[2]))
-                    .back(new BigDecimal(amountM2[3]))
-                    .multiples(new BigDecimal(amountM2[4]))
-                    .build());
-
-            String[] amountM3 = vo.getAmountM3().split("/");
-            vo.setAmountM3Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(amountM3[0]))
-                    .rechargeUserCount(Long.valueOf(amountM3[1]))
-                    .increase(new BigDecimal(amountM3[2]))
-                    .back(new BigDecimal(amountM3[3]))
-                    .multiples(new BigDecimal(amountM3[4]))
-                    .build());
-
-            String[] amountM6 = vo.getAmountM6().split("/");
-            vo.setAmountM6Trend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(amountM6[0]))
-                    .rechargeUserCount(Long.valueOf(amountM6[1]))
-                    .increase(new BigDecimal(amountM6[2]))
-                    .back(new BigDecimal(amountM6[3]))
-                    .multiples(new BigDecimal(amountM6[4]))
-                    .build());
-
-            String[] amountSum = vo.getAmountSum().split("/");
-            vo.setAmountSumTrend(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(amountSum[0]))
-                    .rechargeUserCount(Long.valueOf(amountSum[1]))
-                    .increase(new BigDecimal(amountSum[2]))
-                    .back(new BigDecimal(amountSum[3]))
-                    .multiples(new BigDecimal(amountSum[4]))
-                    .build());
-
+            formatDayN(vo);
             return vo;
         }).collect(Collectors.toList());
 
@@ -648,6 +405,7 @@ public class GameDataServiceImpl implements IGameDataService {
 
     /**
      * 游戏总数据总计
+     *
      * @param dto 前端传递的查询参数
      * @return 返回给前端额数据
      */
@@ -1112,6 +870,26 @@ public class GameDataServiceImpl implements IGameDataService {
         }
     }
 
+    private void formatDayN(GameDataDayVO vo) {
+        if(CollectionUtils.isEmpty(dayNFieldMapList)) {
+            return;
+        }
+        dayNFieldMapList.forEach(dayNFieldMap -> {
+            try {
+                String[] temps = ((String) dayNFieldMap.getT1().get(vo)).split("/");
+                dayNFieldMap.getT2().set(vo, RechargeTrendVO.builder()
+                        .rechargeMoney(new BigDecimal(temps[0]))
+                        .rechargeUserCount(Long.valueOf(temps[1]))
+                        .increase(new BigDecimal(temps[2]))
+                        .back(new BigDecimal(temps[3]))
+                        .multiples(new BigDecimal(temps[4]))
+                        .build());
+            } catch (IllegalAccessException e) {
+                throw new RuntimeException(e);
+            }
+        });
+    }
+
     /**
      * 通过反射使用set方法 得到复充趋势的值
      *
@@ -1346,7 +1124,8 @@ public class GameDataServiceImpl implements IGameDataService {
                     buy_new_user_total_amount_num,
                     buy_new_user_total_amount,
                     buy_first_roi,
-                    buy_today_roi,
+                    buy_first_amount_rate,
+                    buy_today_amount_rate,
                     buy_new_user_rate,
                     buy_first_avg_amount,
                     buy_today_avg_amount,
@@ -1357,14 +1136,39 @@ public class GameDataServiceImpl implements IGameDataService {
                     buy_today_amount_arpu,
                     buy_amount_arpu,
                     buy_amount_d1,
+                    buy_amount_d2,
                     buy_amount_d3,
+                    buy_amount_d4,
                     buy_amount_d5,
+                    buy_amount_d6,
                     buy_amount_d7,
+                    buy_amount_d8,
+                    buy_amount_d9,
+                    buy_amount_d10,
+                    buy_amount_d11,
+                    buy_amount_d12,
+                    buy_amount_d13,
+                    buy_amount_d14,
                     buy_amount_d15,
+                    buy_amount_d16,
+                    buy_amount_d17,
+                    buy_amount_d18,
+                    buy_amount_d19,
+                    buy_amount_d20,
+                    buy_amount_d21,
+                    buy_amount_d22,
+                    buy_amount_d23,
+                    buy_amount_d24,
+                    buy_amount_d25,
+                    buy_amount_d26,
+                    buy_amount_d27,
+                    buy_amount_d28,
+                    buy_amount_d29,
                     buy_amount_m1,
                     buy_amount_m2,
                     buy_amount_m3,
                     buy_amount_m6,
+                    buy_amount_y1,
                     buy_amount_sum,
                         
                     nature_first_new_user_amount_count,
@@ -1380,7 +1184,8 @@ public class GameDataServiceImpl implements IGameDataService {
                     nature_new_user_total_amount_num,
                     nature_new_user_total_amount,
                     nature_first_roi,
-                    nature_today_roi,
+                    nature_first_amount_rate,
+                    nature_today_amount_rate,
                     nature_new_user_rate,
                     nature_first_avg_amount,
                     nature_today_avg_amount,
@@ -1391,14 +1196,39 @@ public class GameDataServiceImpl implements IGameDataService {
                     nature_today_amount_arpu,
                     nature_amount_arpu,
                     nature_amount_d1,
+                    nature_amount_d2,
                     nature_amount_d3,
+                    nature_amount_d4,
                     nature_amount_d5,
+                    nature_amount_d6,
                     nature_amount_d7,
+                    nature_amount_d8,
+                    nature_amount_d9,
+                    nature_amount_d10,
+                    nature_amount_d11,
+                    nature_amount_d12,
+                    nature_amount_d13,
+                    nature_amount_d14,
                     nature_amount_d15,
+                    nature_amount_d16,
+                    nature_amount_d17,
+                    nature_amount_d18,
+                    nature_amount_d19,
+                    nature_amount_d20,
+                    nature_amount_d21,
+                    nature_amount_d22,
+                    nature_amount_d23,
+                    nature_amount_d24,
+                    nature_amount_d25,
+                    nature_amount_d26,
+                    nature_amount_d27,
+                    nature_amount_d28,
+                    nature_amount_d29,
                     nature_amount_m1,
                     nature_amount_m2,
                     nature_amount_m3,
                     nature_amount_m6,
+                    nature_amount_y1,
                     nature_amount_sum,
                         
                     first_new_user_amount_count,
@@ -1414,7 +1244,8 @@ public class GameDataServiceImpl implements IGameDataService {
                     new_user_total_amount_num,
                     new_user_total_amount,
                     first_roi,
-                    today_roi,
+                    first_amount_rate,
+                    today_amount_rate,
                     new_user_rate,
                     first_avg_amount,
                     today_avg_amount,
@@ -1425,14 +1256,39 @@ public class GameDataServiceImpl implements IGameDataService {
                     today_amount_arpu,
                     amount_arpu,
                     amount_d1,
+                    amount_d2,
                     amount_d3,
+                    amount_d4,
                     amount_d5,
+                    amount_d6,
                     amount_d7,
+                    amount_d8,
+                    amount_d9,
+                    amount_d10,
+                    amount_d11,
+                    amount_d12,
+                    amount_d13,
+                    amount_d14,
                     amount_d15,
+                    amount_d16,
+                    amount_d17,
+                    amount_d18,
+                    amount_d19,
+                    amount_d20,
+                    amount_d21,
+                    amount_d22,
+                    amount_d23,
+                    amount_d24,
+                    amount_d25,
+                    amount_d26,
+                    amount_d27,
+                    amount_d28,
+                    amount_d29,
                     amount_m1,
                     amount_m2,
                     amount_m3,
                     amount_m6,
+                    amount_y1,
                     amount_sum
                     
                 FROM