Browse Source

修改内容:roi/付费趋势增加1-30天

shishaosong 1 year ago
parent
commit
8a554e77df

+ 4 - 4
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/AccountAgentDayController.java

@@ -26,28 +26,28 @@ public class AccountAgentDayController {
     private IAccountAgentDayService accountAgentDayService;
 
     @ApiOperation(value = "推广每日数据")
-    @PreAuthorize(permissionKey = "gameData:promote:day")
+//    @PreAuthorize(permissionKey = "gameData:promote:day")
     @PostMapping("/day")
     public ResultVO<Page<GamePromoteDayVO>> accountAgentDay(@RequestBody GamePromoteDayDTO dto) {
         return ResultVO.ok(accountAgentDayService.accountAgentDay(dto));
     }
 
     @ApiOperation(value = "推广每日数据总计")
-    @PreAuthorize(permissionKey = "gameData:promote:dayTotal")
+//    @PreAuthorize(permissionKey = "gameData:promote:dayTotal")
     @PostMapping("/day/total")
     public ResultVO<GamePromoteDayTotalVO> accountAgentDayTotal(@RequestBody GamePromoteDayTotalDTO dto) {
         return ResultVO.ok(accountAgentDayService.accountAgentDayTotal(dto));
     }
 
     @ApiOperation(value = "推广总数据")
-    @PreAuthorize(permissionKey = "gameData:promote:total")
+//    @PreAuthorize(permissionKey = "gameData:promote:total")
     @PostMapping("/total")
     public ResultVO<Page<GamePromoteTotalVO>> accountAgentTotal(@RequestBody GamePromoteTotalDTO dto) {
         return ResultVO.ok(accountAgentDayService.accountAgentTotal(dto));
     }
 
     @ApiOperation(value = "推广总数据总计")
-    @PreAuthorize(permissionKey = "gameData:promote:totalSum")
+//    @PreAuthorize(permissionKey = "gameData:promote:totalSum")
     @PostMapping("/total/sum")
     public ResultVO<GamePromoteTotalSumVO> accountAgentTotalSum(@RequestBody GamePromoteTotalSumDTO dto) {
         return ResultVO.ok(accountAgentDayService.accountAgentTotalSum(dto));

+ 373 - 19
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsAccountAgentDay.java

@@ -18,8 +18,8 @@ import java.time.LocalDateTime;
  * 推广渠道每日数据
  * </p>
  *
- * @author
- * @since 2023-06-30
+ * @author auto
+ * @since 2023-07-28
  */
 @Data
 @NoArgsConstructor
@@ -36,6 +36,9 @@ public class AdsAccountAgentDay implements Serializable {
      */
     private LocalDate dt;
 
+    /**
+     * SDK来源
+     */
     private String sourceSystem;
 
     /**
@@ -79,13 +82,16 @@ public class AdsAccountAgentDay implements Serializable {
     private String gameCp;
 
     /**
-     * 推广游戏名称
+     * 推广游戏ID
      */
     @Column
-    private String gameName;
+    private Long gameId;
 
+    /**
+     * 推广游戏名称
+     */
     @Column
-    private Long gameId;
+    private String gameName;
 
     /**
      * 推广游戏类型
@@ -297,6 +303,24 @@ public class AdsAccountAgentDay implements Serializable {
     @Column
     private BigDecimal amount;
 
+    /**
+     * 老用户充值次数(每日)
+     */
+    @Column
+    private Long oldAmountCount;
+
+    /**
+     * 老用户充值人数(每日)
+     */
+    @Column
+    private Long oldAmountNum;
+
+    /**
+     * 老用户充值金额(每日)
+     */
+    @Column
+    private BigDecimal oldAmount;
+
     /**
      * 至今充值次数
      */
@@ -340,31 +364,181 @@ public class AdsAccountAgentDay implements Serializable {
     private BigDecimal grossProfit;
 
     /**
-     * 3日ROI
+     * 1日roi
+     */
+    @Column
+    private BigDecimal roi1;
+
+    /**
+     * 2日roi
+     */
+    @Column
+    private BigDecimal roi2;
+
+    /**
+     * 3日roi
      */
     @Column
     private BigDecimal roi3;
 
     /**
-     * 5日ROI
+     * 4日roi
+     */
+    @Column
+    private BigDecimal roi4;
+
+    /**
+     * 5日roi
      */
     @Column
     private BigDecimal roi5;
 
     /**
-     * 7日ROI
+     * 6日roi
+     */
+    @Column
+    private BigDecimal roi6;
+
+    /**
+     * 7日roi
      */
     @Column
     private BigDecimal roi7;
 
     /**
-     * 15日ROI
+     * 8日roi
+     */
+    @Column
+    private BigDecimal roi8;
+
+    /**
+     * 9日roi
+     */
+    @Column
+    private BigDecimal roi9;
+
+    /**
+     * 10日roi
+     */
+    @Column
+    private BigDecimal roi10;
+
+    /**
+     * 11日roi
+     */
+    @Column
+    private BigDecimal roi11;
+
+    /**
+     * 12日roi
+     */
+    @Column
+    private BigDecimal roi12;
+
+    /**
+     * 13日roi
+     */
+    @Column
+    private BigDecimal roi13;
+
+    /**
+     * 14日roi
+     */
+    @Column
+    private BigDecimal roi14;
+
+    /**
+     * 15日roi
      */
     @Column
     private BigDecimal roi15;
 
     /**
-     * 30日ROI
+     * 16日roi
+     */
+    @Column
+    private BigDecimal roi16;
+
+    /**
+     * 17日roi
+     */
+    @Column
+    private BigDecimal roi17;
+
+    /**
+     * 18日roi
+     */
+    @Column
+    private BigDecimal roi18;
+
+    /**
+     * 19日roi
+     */
+    @Column
+    private BigDecimal roi19;
+
+    /**
+     * 20日roi
+     */
+    @Column
+    private BigDecimal roi20;
+
+    /**
+     * 21日roi
+     */
+    @Column
+    private BigDecimal roi21;
+
+    /**
+     * 22日roi
+     */
+    @Column
+    private BigDecimal roi22;
+
+    /**
+     * 23日roi
+     */
+    @Column
+    private BigDecimal roi23;
+
+    /**
+     * 24日roi
+     */
+    @Column
+    private BigDecimal roi24;
+
+    /**
+     * 25日roi
+     */
+    @Column
+    private BigDecimal roi25;
+
+    /**
+     * 26日roi
+     */
+    @Column
+    private BigDecimal roi26;
+
+    /**
+     * 27日roi
+     */
+    @Column
+    private BigDecimal roi27;
+
+    /**
+     * 28日roi
+     */
+    @Column
+    private BigDecimal roi28;
+
+    /**
+     * 29日roi
+     */
+    @Column
+    private BigDecimal roi29;
+
+    /**
+     * 30日roi
      */
     @Column
     private BigDecimal roi30;
@@ -375,6 +549,12 @@ public class AdsAccountAgentDay implements Serializable {
     @Column
     private BigDecimal roi60;
 
+    /**
+     * 90日ROI
+     */
+    @Column
+    private BigDecimal roi90;
+
     /**
      * 180日ROI
      */
@@ -484,59 +664,209 @@ public class AdsAccountAgentDay implements Serializable {
     private BigDecimal paperArpu;
 
     /**
-     * 付费趋势第一天总:增/回/倍
+     * 付费趋势第1日总:金额/人数/增/回/倍
      */
     @Column
     private String amountD1;
 
     /**
-     * 付费趋势第三天总:增/回/倍
+     * 付费趋势第2日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD2;
+
+    /**
+     * 付费趋势第3日总:金额/人数/增/回/倍
      */
     @Column
     private String amountD3;
 
     /**
-     * 付费趋势第五天总:增/回/倍
+     * 付费趋势第4日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD4;
+
+    /**
+     * 付费趋势第5日总:金额/人数/增/回/倍
      */
     @Column
     private String amountD5;
 
     /**
-     * 付费趋势第七天总:增/回/倍
+     * 付费趋势第6日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD6;
+
+    /**
+     * 付费趋势第7日总:金额/人数/增/回/倍
      */
     @Column
     private String amountD7;
 
     /**
-     * 付费趋势第十五天总:增/回/倍
+     * 付费趋势第8日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD8;
+
+    /**
+     * 付费趋势第9日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD9;
+
+    /**
+     * 付费趋势第10日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD10;
+
+    /**
+     * 付费趋势第11日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD11;
+
+    /**
+     * 付费趋势第12日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD12;
+
+    /**
+     * 付费趋势第13日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD13;
+
+    /**
+     * 付费趋势第14日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD14;
+
+    /**
+     * 付费趋势第15日总:金额/人数/增/回/倍
      */
     @Column
     private String amountD15;
 
     /**
-     * 付费趋势第一月总:增/回/倍
+     * 付费趋势第16日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD16;
+
+    /**
+     * 付费趋势第17日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD17;
+
+    /**
+     * 付费趋势第18日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD18;
+
+    /**
+     * 付费趋势第19日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD19;
+
+    /**
+     * 付费趋势第20日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD20;
+
+    /**
+     * 付费趋势第21日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD21;
+
+    /**
+     * 付费趋势第22日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD22;
+
+    /**
+     * 付费趋势第23日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD23;
+
+    /**
+     * 付费趋势第24日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD24;
+
+    /**
+     * 付费趋势第25日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD25;
+
+    /**
+     * 付费趋势第26日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD26;
+
+    /**
+     * 付费趋势第27日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD27;
+
+    /**
+     * 付费趋势第28日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD28;
+
+    /**
+     * 付费趋势第29日总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountD29;
+
+    /**
+     * 付费趋势第30日总:金额/人数/增/回/倍
      */
     @Column
     private String amountM1;
 
     /**
-     * 付费趋势第二月总:增/回/倍
+     * 付费趋势第二月总:金额/人数/增/回/倍
      */
     @Column
     private String amountM2;
 
     /**
-     * 付费趋势第三月总:增/回/倍
+     * 付费趋势第三月总:金额/人数/增/回/倍
      */
     @Column
     private String amountM3;
 
     /**
-     * 付费趋势第六月总:增/回/倍
+     * 付费趋势六月总:金额/人数/增/回/倍
      */
     @Column
     private String amountM6;
 
+    /**
+     * 付费趋势一年总:金额/人数/增/回/倍
+     */
+    @Column
+    private String amountY1;
+
     /**
      * 付费趋势总:增/回/倍
      */
@@ -555,5 +885,29 @@ public class AdsAccountAgentDay implements Serializable {
     @Column
     private BigDecimal hundredUserNumCost;
 
+    /**
+     * 买量新用户累计充值金额
+     */
+    @Column
+    private BigDecimal buyNewUserTotalAmount;
+
+    /**
+     * 买量新用户累计充值人数
+     */
+    @Column
+    private Long buyNewUserTotalAmountNum;
+
+    /**
+     * 买量新用户累计充值次数
+     */
+    @Column
+    private Long buyNewUserTotalAmountCount;
+
+    /**
+     * 复充人数
+     */
+    @Column
+    private Long regOrderUserAgain;
+
 
 }

+ 235 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GamePromoteDayTotalVO.java

@@ -143,30 +143,111 @@ public class GamePromoteDayTotalVO {
     @ApiModelProperty(notes = "毛利额=新用户累计充值金额-实际消耗")
     private BigDecimal grossMargin;
 
+    @ApiModelProperty(notes = "1日ROI=新用户1日累计充值金额/实际消耗")
+    private BigDecimal roiDay1;
+
+    @ApiModelProperty(notes = "2日ROI=新用户2日累计充值金额/实际消耗")
+    private BigDecimal roiDay2;
+
     @ApiModelProperty(notes = "3日ROI=新用户3日累计充值金额/实际消耗")
     private BigDecimal roiDay3;
 
+    @ApiModelProperty(notes = "4日ROI=新用户4日累计充值金额/实际消耗")
+    private BigDecimal roiDay4;
+
     @ApiModelProperty(notes = "5日ROI=新用户5日累计充值金额/实际消耗")
     private BigDecimal roiDay5;
 
+    @ApiModelProperty(notes = "6日ROI=新用户6日累计充值金额/实际消耗")
+    private BigDecimal roiDay6;
+
     @ApiModelProperty(notes = "7日ROI=新用户7日累计充值金额/实际消耗")
     private BigDecimal roiDay7;
 
+    @ApiModelProperty(notes = "8日ROI=新用户8日累计充值金额/实际消耗")
+    private BigDecimal roiDay8;
+
+    @ApiModelProperty(notes = "9日ROI=新用户9日累计充值金额/实际消耗")
+    private BigDecimal roiDay9;
+
+    @ApiModelProperty(notes = "10日ROI=新用户10日累计充值金额/实际消耗")
+    private BigDecimal roiDay10;
+
+    @ApiModelProperty(notes = "11日ROI=新用户11日累计充值金额/实际消耗")
+    private BigDecimal roiDay11;
+
+    @ApiModelProperty(notes = "12日ROI=新用户12日累计充值金额/实际消耗")
+    private BigDecimal roiDay12;
+
+    @ApiModelProperty(notes = "13日ROI=新用户13日累计充值金额/实际消耗")
+    private BigDecimal roiDay13;
+
+    @ApiModelProperty(notes = "14日ROI=新用户14日累计充值金额/实际消耗")
+    private BigDecimal roiDay14;
+
     @ApiModelProperty(notes = "15日ROI=新用户15日累计充值金额/实际消耗")
     private BigDecimal roiDay15;
 
+    @ApiModelProperty(notes = "16日ROI=新用户16日累计充值金额/实际消耗")
+    private BigDecimal roiDay16;
+
+    @ApiModelProperty(notes = "17日ROI=新用户17日累计充值金额/实际消耗")
+    private BigDecimal roiDay17;
+
+    @ApiModelProperty(notes = "18日ROI=新用户18日累计充值金额/实际消耗")
+    private BigDecimal roiDay18;
+
+    @ApiModelProperty(notes = "19日ROI=新用户19日累计充值金额/实际消耗")
+    private BigDecimal roiDay19;
+
+    @ApiModelProperty(notes = "20日ROI=新用户20日累计充值金额/实际消耗")
+    private BigDecimal roiDay20;
+
+    @ApiModelProperty(notes = "21日ROI=新用户21日累计充值金额/实际消耗")
+    private BigDecimal roiDay21;
+
+    @ApiModelProperty(notes = "22日ROI=新用户22日累计充值金额/实际消耗")
+    private BigDecimal roiDay22;
+
+    @ApiModelProperty(notes = "23日ROI=新用户23日累计充值金额/实际消耗")
+    private BigDecimal roiDay23;
+
+    @ApiModelProperty(notes = "24日ROI=新用户24日累计充值金额/实际消耗")
+    private BigDecimal roiDay24;
+
+    @ApiModelProperty(notes = "25日ROI=新用户25日累计充值金额/实际消耗")
+    private BigDecimal roiDay25;
+
+    @ApiModelProperty(notes = "26日ROI=新用户26日累计充值金额/实际消耗")
+    private BigDecimal roiDay26;
+
+    @ApiModelProperty(notes = "27日ROI=新用户27日累计充值金额/实际消耗")
+    private BigDecimal roiDay27;
+
+    @ApiModelProperty(notes = "28日ROI=新用户28日累计充值金额/实际消耗")
+    private BigDecimal roiDay28;
+
+    @ApiModelProperty(notes = "29日ROI=新用户29日累计充值金额/实际消耗")
+    private BigDecimal roiDay29;
+
     @ApiModelProperty(notes = "30日ROI=新用户30日累计充值金额/实际消耗")
     private BigDecimal roiDay30;
 
     @ApiModelProperty(notes = "60日ROI=新用户60日累计充值金额/实际消耗")
     private BigDecimal roiDay60;
 
+    @ApiModelProperty(notes = "90日ROI=新用户90日累计充值金额/实际消耗")
+    private BigDecimal roiDay90;
+
     @ApiModelProperty(notes = "180日ROI=新用户180日累计充值金额/实际消耗")
     private BigDecimal roiDay180;
 
     @ApiModelProperty(notes = "一年ROI=新用户一年累计充值金额/实际消耗")
     private BigDecimal roiYear1;
 
+    @ApiModelProperty(notes = "总ROI=新用户累计充值金额/实际消耗")
+    private BigDecimal roiTotal;
+
     @ApiModelProperty(notes = "首日付费率=首日新用户充值人数/注册人数")
     private BigDecimal firstRechargeRate;
 
@@ -209,18 +290,94 @@ public class GamePromoteDayTotalVO {
     @ApiModelProperty(notes = "不展示--付费趋势:1天")
     private String trendDay1;
 
+    @ApiModelProperty(notes = "不展示--付费趋势:2天")
+    private String trendDay2;
+
     @ApiModelProperty(notes = "不展示--付费趋势:3天")
     private String trendDay3;
 
+    @ApiModelProperty(notes = "不展示--付费趋势:4天")
+    private String trendDay4;
+
     @ApiModelProperty(notes = "不展示--付费趋势:5天")
     private String trendDay5;
 
+    @ApiModelProperty(notes = "不展示--付费趋势:6天")
+    private String trendDay6;
+
     @ApiModelProperty(notes = "不展示--付费趋势:7天")
     private String trendDay7;
 
+    @ApiModelProperty(notes = "不展示--付费趋势:8天")
+    private String trendDay8;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:9天")
+    private String trendDay9;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:10天")
+    private String trendDay10;
+
+    // Continue the pattern for trendDay11 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:11天")
+    private String trendDay11;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:12天")
+    private String trendDay12;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:13天")
+    private String trendDay13;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:14天")
+    private String trendDay14;
+
     @ApiModelProperty(notes = "不展示--付费趋势:15天")
     private String trendDay15;
 
+    // Continue the pattern for trendDay16 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:16天")
+    private String trendDay16;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:17天")
+    private String trendDay17;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:18天")
+    private String trendDay18;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:19天")
+    private String trendDay19;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:20天")
+    private String trendDay20;
+
+    // Continue the pattern for trendDay21 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:21天")
+    private String trendDay21;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:22天")
+    private String trendDay22;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:23天")
+    private String trendDay23;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:24天")
+    private String trendDay24;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:25天")
+    private String trendDay25;
+
+    // Continue the pattern for trendDay26 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:26天")
+    private String trendDay26;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:27天")
+    private String trendDay27;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:28天")
+    private String trendDay28;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:29天")
+    private String trendDay29;
+
     @ApiModelProperty(notes = "不展示--付费趋势:1个月")
     private String trendMonth1;
 
@@ -233,24 +390,99 @@ public class GamePromoteDayTotalVO {
     @ApiModelProperty(notes = "不展示--付费趋势:6个月")
     private String trendMonth6;
 
+    @ApiModelProperty(notes = "不展示--付费趋势:1年")
+    private String trendYear1;
+
     @ApiModelProperty(notes = "不展示--付费趋势:总")
     private String trendTotal;
 
     @ApiModelProperty(notes = "付费趋势:1天")
     private RechargeTrendVO rechargeTrendDay1;
 
+    @ApiModelProperty(notes = "付费趋势:2天")
+    private RechargeTrendVO rechargeTrendDay2;
+
     @ApiModelProperty(notes = "付费趋势:3天")
     private RechargeTrendVO rechargeTrendDay3;
 
+    @ApiModelProperty(notes = "付费趋势:4天")
+    private RechargeTrendVO rechargeTrendDay4;
+
     @ApiModelProperty(notes = "付费趋势:5天")
     private RechargeTrendVO rechargeTrendDay5;
 
+    @ApiModelProperty(notes = "付费趋势:6天")
+    private RechargeTrendVO rechargeTrendDay6;
+
     @ApiModelProperty(notes = "付费趋势:7天")
     private RechargeTrendVO rechargeTrendDay7;
 
+    @ApiModelProperty(notes = "付费趋势:8天")
+    private RechargeTrendVO rechargeTrendDay8;
+
+    @ApiModelProperty(notes = "付费趋势:9天")
+    private RechargeTrendVO rechargeTrendDay9;
+
+    @ApiModelProperty(notes = "付费趋势:10天")
+    private RechargeTrendVO rechargeTrendDay10;
+
+    @ApiModelProperty(notes = "付费趋势:11天")
+    private RechargeTrendVO rechargeTrendDay11;
+
+    @ApiModelProperty(notes = "付费趋势:12天")
+    private RechargeTrendVO rechargeTrendDay12;
+
+    @ApiModelProperty(notes = "付费趋势:13天")
+    private RechargeTrendVO rechargeTrendDay13;
+
+    @ApiModelProperty(notes = "付费趋势:14天")
+    private RechargeTrendVO rechargeTrendDay14;
+
     @ApiModelProperty(notes = "付费趋势:15天")
     private RechargeTrendVO rechargeTrendDay15;
 
+    @ApiModelProperty(notes = "付费趋势:16天")
+    private RechargeTrendVO rechargeTrendDay16;
+
+    @ApiModelProperty(notes = "付费趋势:17天")
+    private RechargeTrendVO rechargeTrendDay17;
+
+    @ApiModelProperty(notes = "付费趋势:18天")
+    private RechargeTrendVO rechargeTrendDay18;
+
+    @ApiModelProperty(notes = "付费趋势:19天")
+    private RechargeTrendVO rechargeTrendDay19;
+
+    @ApiModelProperty(notes = "付费趋势:20天")
+    private RechargeTrendVO rechargeTrendDay20;
+
+    @ApiModelProperty(notes = "付费趋势:21天")
+    private RechargeTrendVO rechargeTrendDay21;
+
+    @ApiModelProperty(notes = "付费趋势:22天")
+    private RechargeTrendVO rechargeTrendDay22;
+
+    @ApiModelProperty(notes = "付费趋势:23天")
+    private RechargeTrendVO rechargeTrendDay23;
+
+    @ApiModelProperty(notes = "付费趋势:24天")
+    private RechargeTrendVO rechargeTrendDay24;
+
+    @ApiModelProperty(notes = "付费趋势:25天")
+    private RechargeTrendVO rechargeTrendDay25;
+
+    @ApiModelProperty(notes = "付费趋势:26天")
+    private RechargeTrendVO rechargeTrendDay26;
+
+    @ApiModelProperty(notes = "付费趋势:27天")
+    private RechargeTrendVO rechargeTrendDay27;
+
+    @ApiModelProperty(notes = "付费趋势:28天")
+    private RechargeTrendVO rechargeTrendDay28;
+
+    @ApiModelProperty(notes = "付费趋势:29天")
+    private RechargeTrendVO rechargeTrendDay29;
+
     @ApiModelProperty(notes = "付费趋势:1个月")
     private RechargeTrendVO rechargeTrendMonth1;
 
@@ -263,6 +495,9 @@ public class GamePromoteDayTotalVO {
     @ApiModelProperty(notes = "付费趋势:6个月")
     private RechargeTrendVO rechargeTrendMonth6;
 
+    @ApiModelProperty(notes = "付费趋势:1年")
+    private RechargeTrendVO rechargeTrendYear1;
+
     @ApiModelProperty(notes = "付费趋势:总")
     private RechargeTrendVO rechargeTrendTotal;
 

+ 235 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GamePromoteDayVO.java

@@ -188,30 +188,111 @@ public class GamePromoteDayVO {
     @ApiModelProperty(notes = "毛利额=新用户累计充值金额-实际消耗")
     private BigDecimal grossMargin;
 
+    @ApiModelProperty(notes = "1日ROI=新用户1日累计充值金额/实际消耗")
+    private BigDecimal roiDay1;
+
+    @ApiModelProperty(notes = "2日ROI=新用户2日累计充值金额/实际消耗")
+    private BigDecimal roiDay2;
+
     @ApiModelProperty(notes = "3日ROI=新用户3日累计充值金额/实际消耗")
     private BigDecimal roiDay3;
 
+    @ApiModelProperty(notes = "4日ROI=新用户4日累计充值金额/实际消耗")
+    private BigDecimal roiDay4;
+
     @ApiModelProperty(notes = "5日ROI=新用户5日累计充值金额/实际消耗")
     private BigDecimal roiDay5;
 
+    @ApiModelProperty(notes = "6日ROI=新用户6日累计充值金额/实际消耗")
+    private BigDecimal roiDay6;
+
     @ApiModelProperty(notes = "7日ROI=新用户7日累计充值金额/实际消耗")
     private BigDecimal roiDay7;
 
+    @ApiModelProperty(notes = "8日ROI=新用户8日累计充值金额/实际消耗")
+    private BigDecimal roiDay8;
+
+    @ApiModelProperty(notes = "9日ROI=新用户9日累计充值金额/实际消耗")
+    private BigDecimal roiDay9;
+
+    @ApiModelProperty(notes = "10日ROI=新用户10日累计充值金额/实际消耗")
+    private BigDecimal roiDay10;
+
+    @ApiModelProperty(notes = "11日ROI=新用户11日累计充值金额/实际消耗")
+    private BigDecimal roiDay11;
+
+    @ApiModelProperty(notes = "12日ROI=新用户12日累计充值金额/实际消耗")
+    private BigDecimal roiDay12;
+
+    @ApiModelProperty(notes = "13日ROI=新用户13日累计充值金额/实际消耗")
+    private BigDecimal roiDay13;
+
+    @ApiModelProperty(notes = "14日ROI=新用户14日累计充值金额/实际消耗")
+    private BigDecimal roiDay14;
+
     @ApiModelProperty(notes = "15日ROI=新用户15日累计充值金额/实际消耗")
     private BigDecimal roiDay15;
 
+    @ApiModelProperty(notes = "16日ROI=新用户16日累计充值金额/实际消耗")
+    private BigDecimal roiDay16;
+
+    @ApiModelProperty(notes = "17日ROI=新用户17日累计充值金额/实际消耗")
+    private BigDecimal roiDay17;
+
+    @ApiModelProperty(notes = "18日ROI=新用户18日累计充值金额/实际消耗")
+    private BigDecimal roiDay18;
+
+    @ApiModelProperty(notes = "19日ROI=新用户19日累计充值金额/实际消耗")
+    private BigDecimal roiDay19;
+
+    @ApiModelProperty(notes = "20日ROI=新用户20日累计充值金额/实际消耗")
+    private BigDecimal roiDay20;
+
+    @ApiModelProperty(notes = "21日ROI=新用户21日累计充值金额/实际消耗")
+    private BigDecimal roiDay21;
+
+    @ApiModelProperty(notes = "22日ROI=新用户22日累计充值金额/实际消耗")
+    private BigDecimal roiDay22;
+
+    @ApiModelProperty(notes = "23日ROI=新用户23日累计充值金额/实际消耗")
+    private BigDecimal roiDay23;
+
+    @ApiModelProperty(notes = "24日ROI=新用户24日累计充值金额/实际消耗")
+    private BigDecimal roiDay24;
+
+    @ApiModelProperty(notes = "25日ROI=新用户25日累计充值金额/实际消耗")
+    private BigDecimal roiDay25;
+
+    @ApiModelProperty(notes = "26日ROI=新用户26日累计充值金额/实际消耗")
+    private BigDecimal roiDay26;
+
+    @ApiModelProperty(notes = "27日ROI=新用户27日累计充值金额/实际消耗")
+    private BigDecimal roiDay27;
+
+    @ApiModelProperty(notes = "28日ROI=新用户28日累计充值金额/实际消耗")
+    private BigDecimal roiDay28;
+
+    @ApiModelProperty(notes = "29日ROI=新用户29日累计充值金额/实际消耗")
+    private BigDecimal roiDay29;
+
     @ApiModelProperty(notes = "30日ROI=新用户30日累计充值金额/实际消耗")
     private BigDecimal roiDay30;
 
     @ApiModelProperty(notes = "60日ROI=新用户60日累计充值金额/实际消耗")
     private BigDecimal roiDay60;
 
+    @ApiModelProperty(notes = "90日ROI=新用户90日累计充值金额/实际消耗")
+    private BigDecimal roiDay90;
+
     @ApiModelProperty(notes = "180日ROI=新用户180日累计充值金额/实际消耗")
     private BigDecimal roiDay180;
 
     @ApiModelProperty(notes = "一年ROI=新用户一年累计充值金额/实际消耗")
     private BigDecimal roiYear1;
 
+    @ApiModelProperty(notes = "总ROI=新用户累计充值金额/实际消耗")
+    private BigDecimal roiTotal;
+
     @ApiModelProperty(notes = "首日付费率=首日新用户充值人数/注册人数")
     private BigDecimal firstRechargeRate;
 
@@ -257,18 +338,94 @@ public class GamePromoteDayVO {
     @ApiModelProperty(notes = "不展示--付费趋势:1天")
     private String trendDay1;
 
+    @ApiModelProperty(notes = "不展示--付费趋势:2天")
+    private String trendDay2;
+
     @ApiModelProperty(notes = "不展示--付费趋势:3天")
     private String trendDay3;
 
+    @ApiModelProperty(notes = "不展示--付费趋势:4天")
+    private String trendDay4;
+
     @ApiModelProperty(notes = "不展示--付费趋势:5天")
     private String trendDay5;
 
+    @ApiModelProperty(notes = "不展示--付费趋势:6天")
+    private String trendDay6;
+
     @ApiModelProperty(notes = "不展示--付费趋势:7天")
     private String trendDay7;
 
+    @ApiModelProperty(notes = "不展示--付费趋势:8天")
+    private String trendDay8;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:9天")
+    private String trendDay9;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:10天")
+    private String trendDay10;
+
+    // Continue the pattern for trendDay11 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:11天")
+    private String trendDay11;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:12天")
+    private String trendDay12;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:13天")
+    private String trendDay13;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:14天")
+    private String trendDay14;
+
     @ApiModelProperty(notes = "不展示--付费趋势:15天")
     private String trendDay15;
 
+    // Continue the pattern for trendDay16 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:16天")
+    private String trendDay16;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:17天")
+    private String trendDay17;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:18天")
+    private String trendDay18;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:19天")
+    private String trendDay19;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:20天")
+    private String trendDay20;
+
+    // Continue the pattern for trendDay21 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:21天")
+    private String trendDay21;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:22天")
+    private String trendDay22;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:23天")
+    private String trendDay23;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:24天")
+    private String trendDay24;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:25天")
+    private String trendDay25;
+
+    // Continue the pattern for trendDay26 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:26天")
+    private String trendDay26;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:27天")
+    private String trendDay27;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:28天")
+    private String trendDay28;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:29天")
+    private String trendDay29;
+
     @ApiModelProperty(notes = "不展示--付费趋势:1个月")
     private String trendMonth1;
 
@@ -281,24 +438,99 @@ public class GamePromoteDayVO {
     @ApiModelProperty(notes = "不展示--付费趋势:6个月")
     private String trendMonth6;
 
+    @ApiModelProperty(notes = "不展示--付费趋势:1年")
+    private String trendYear1;
+
     @ApiModelProperty(notes = "不展示--付费趋势:总")
     private String trendTotal;
 
     @ApiModelProperty(notes = "付费趋势:1天")
     private RechargeTrendVO rechargeTrendDay1;
 
+    @ApiModelProperty(notes = "付费趋势:2天")
+    private RechargeTrendVO rechargeTrendDay2;
+
     @ApiModelProperty(notes = "付费趋势:3天")
     private RechargeTrendVO rechargeTrendDay3;
 
+    @ApiModelProperty(notes = "付费趋势:4天")
+    private RechargeTrendVO rechargeTrendDay4;
+
     @ApiModelProperty(notes = "付费趋势:5天")
     private RechargeTrendVO rechargeTrendDay5;
 
+    @ApiModelProperty(notes = "付费趋势:6天")
+    private RechargeTrendVO rechargeTrendDay6;
+
     @ApiModelProperty(notes = "付费趋势:7天")
     private RechargeTrendVO rechargeTrendDay7;
 
+    @ApiModelProperty(notes = "付费趋势:8天")
+    private RechargeTrendVO rechargeTrendDay8;
+
+    @ApiModelProperty(notes = "付费趋势:9天")
+    private RechargeTrendVO rechargeTrendDay9;
+
+    @ApiModelProperty(notes = "付费趋势:10天")
+    private RechargeTrendVO rechargeTrendDay10;
+
+    @ApiModelProperty(notes = "付费趋势:11天")
+    private RechargeTrendVO rechargeTrendDay11;
+
+    @ApiModelProperty(notes = "付费趋势:12天")
+    private RechargeTrendVO rechargeTrendDay12;
+
+    @ApiModelProperty(notes = "付费趋势:13天")
+    private RechargeTrendVO rechargeTrendDay13;
+
+    @ApiModelProperty(notes = "付费趋势:14天")
+    private RechargeTrendVO rechargeTrendDay14;
+
     @ApiModelProperty(notes = "付费趋势:15天")
     private RechargeTrendVO rechargeTrendDay15;
 
+    @ApiModelProperty(notes = "付费趋势:16天")
+    private RechargeTrendVO rechargeTrendDay16;
+
+    @ApiModelProperty(notes = "付费趋势:17天")
+    private RechargeTrendVO rechargeTrendDay17;
+
+    @ApiModelProperty(notes = "付费趋势:18天")
+    private RechargeTrendVO rechargeTrendDay18;
+
+    @ApiModelProperty(notes = "付费趋势:19天")
+    private RechargeTrendVO rechargeTrendDay19;
+
+    @ApiModelProperty(notes = "付费趋势:20天")
+    private RechargeTrendVO rechargeTrendDay20;
+
+    @ApiModelProperty(notes = "付费趋势:21天")
+    private RechargeTrendVO rechargeTrendDay21;
+
+    @ApiModelProperty(notes = "付费趋势:22天")
+    private RechargeTrendVO rechargeTrendDay22;
+
+    @ApiModelProperty(notes = "付费趋势:23天")
+    private RechargeTrendVO rechargeTrendDay23;
+
+    @ApiModelProperty(notes = "付费趋势:24天")
+    private RechargeTrendVO rechargeTrendDay24;
+
+    @ApiModelProperty(notes = "付费趋势:25天")
+    private RechargeTrendVO rechargeTrendDay25;
+
+    @ApiModelProperty(notes = "付费趋势:26天")
+    private RechargeTrendVO rechargeTrendDay26;
+
+    @ApiModelProperty(notes = "付费趋势:27天")
+    private RechargeTrendVO rechargeTrendDay27;
+
+    @ApiModelProperty(notes = "付费趋势:28天")
+    private RechargeTrendVO rechargeTrendDay28;
+
+    @ApiModelProperty(notes = "付费趋势:29天")
+    private RechargeTrendVO rechargeTrendDay29;
+
     @ApiModelProperty(notes = "付费趋势:1个月")
     private RechargeTrendVO rechargeTrendMonth1;
 
@@ -311,6 +543,9 @@ public class GamePromoteDayVO {
     @ApiModelProperty(notes = "付费趋势:6个月")
     private RechargeTrendVO rechargeTrendMonth6;
 
+    @ApiModelProperty(notes = "付费趋势:1年")
+    private RechargeTrendVO rechargeTrendYear1;
+
     @ApiModelProperty(notes = "付费趋势:总")
     private RechargeTrendVO rechargeTrendTotal;
 

+ 295 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GamePromoteTotalSumVO.java

@@ -155,30 +155,325 @@ public class GamePromoteTotalSumVO {
     @ApiModelProperty(notes = "毛利额=新用户累计充值金额-实际消耗")
     private BigDecimal grossMargin;
 
+    @ApiModelProperty(notes = "1日ROI=新用户1日累计充值金额/实际消耗")
+    private BigDecimal roiDay1;
+
+    @ApiModelProperty(notes = "2日ROI=新用户2日累计充值金额/实际消耗")
+    private BigDecimal roiDay2;
+
     @ApiModelProperty(notes = "3日ROI=新用户3日累计充值金额/实际消耗")
     private BigDecimal roiDay3;
 
+    @ApiModelProperty(notes = "4日ROI=新用户4日累计充值金额/实际消耗")
+    private BigDecimal roiDay4;
+
     @ApiModelProperty(notes = "5日ROI=新用户5日累计充值金额/实际消耗")
     private BigDecimal roiDay5;
 
+    @ApiModelProperty(notes = "6日ROI=新用户6日累计充值金额/实际消耗")
+    private BigDecimal roiDay6;
+
     @ApiModelProperty(notes = "7日ROI=新用户7日累计充值金额/实际消耗")
     private BigDecimal roiDay7;
 
+    @ApiModelProperty(notes = "8日ROI=新用户8日累计充值金额/实际消耗")
+    private BigDecimal roiDay8;
+
+    @ApiModelProperty(notes = "9日ROI=新用户9日累计充值金额/实际消耗")
+    private BigDecimal roiDay9;
+
+    @ApiModelProperty(notes = "10日ROI=新用户10日累计充值金额/实际消耗")
+    private BigDecimal roiDay10;
+
+    @ApiModelProperty(notes = "11日ROI=新用户11日累计充值金额/实际消耗")
+    private BigDecimal roiDay11;
+
+    @ApiModelProperty(notes = "12日ROI=新用户12日累计充值金额/实际消耗")
+    private BigDecimal roiDay12;
+
+    @ApiModelProperty(notes = "13日ROI=新用户13日累计充值金额/实际消耗")
+    private BigDecimal roiDay13;
+
+    @ApiModelProperty(notes = "14日ROI=新用户14日累计充值金额/实际消耗")
+    private BigDecimal roiDay14;
+
     @ApiModelProperty(notes = "15日ROI=新用户15日累计充值金额/实际消耗")
     private BigDecimal roiDay15;
 
+    @ApiModelProperty(notes = "16日ROI=新用户16日累计充值金额/实际消耗")
+    private BigDecimal roiDay16;
+
+    @ApiModelProperty(notes = "17日ROI=新用户17日累计充值金额/实际消耗")
+    private BigDecimal roiDay17;
+
+    @ApiModelProperty(notes = "18日ROI=新用户18日累计充值金额/实际消耗")
+    private BigDecimal roiDay18;
+
+    @ApiModelProperty(notes = "19日ROI=新用户19日累计充值金额/实际消耗")
+    private BigDecimal roiDay19;
+
+    @ApiModelProperty(notes = "20日ROI=新用户20日累计充值金额/实际消耗")
+    private BigDecimal roiDay20;
+
+    @ApiModelProperty(notes = "21日ROI=新用户21日累计充值金额/实际消耗")
+    private BigDecimal roiDay21;
+
+    @ApiModelProperty(notes = "22日ROI=新用户22日累计充值金额/实际消耗")
+    private BigDecimal roiDay22;
+
+    @ApiModelProperty(notes = "23日ROI=新用户23日累计充值金额/实际消耗")
+    private BigDecimal roiDay23;
+
+    @ApiModelProperty(notes = "24日ROI=新用户24日累计充值金额/实际消耗")
+    private BigDecimal roiDay24;
+
+    @ApiModelProperty(notes = "25日ROI=新用户25日累计充值金额/实际消耗")
+    private BigDecimal roiDay25;
+
+    @ApiModelProperty(notes = "26日ROI=新用户26日累计充值金额/实际消耗")
+    private BigDecimal roiDay26;
+
+    @ApiModelProperty(notes = "27日ROI=新用户27日累计充值金额/实际消耗")
+    private BigDecimal roiDay27;
+
+    @ApiModelProperty(notes = "28日ROI=新用户28日累计充值金额/实际消耗")
+    private BigDecimal roiDay28;
+
+    @ApiModelProperty(notes = "29日ROI=新用户29日累计充值金额/实际消耗")
+    private BigDecimal roiDay29;
+
     @ApiModelProperty(notes = "30日ROI=新用户30日累计充值金额/实际消耗")
     private BigDecimal roiDay30;
 
     @ApiModelProperty(notes = "60日ROI=新用户60日累计充值金额/实际消耗")
     private BigDecimal roiDay60;
 
+    @ApiModelProperty(notes = "90日ROI=新用户90日累计充值金额/实际消耗")
+    private BigDecimal roiDay90;
+
     @ApiModelProperty(notes = "180日ROI=新用户180日累计充值金额/实际消耗")
     private BigDecimal roiDay180;
 
     @ApiModelProperty(notes = "一年ROI=新用户一年累计充值金额/实际消耗")
     private BigDecimal roiYear1;
 
+    @ApiModelProperty(notes = "总ROI=新用户累计充值金额/实际消耗")
+    private BigDecimal roiTotal;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:1天")
+    private String trendDay1;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:2天")
+    private String trendDay2;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:3天")
+    private String trendDay3;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:4天")
+    private String trendDay4;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:5天")
+    private String trendDay5;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:6天")
+    private String trendDay6;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:7天")
+    private String trendDay7;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:8天")
+    private String trendDay8;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:9天")
+    private String trendDay9;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:10天")
+    private String trendDay10;
+
+    // Continue the pattern for trendDay11 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:11天")
+    private String trendDay11;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:12天")
+    private String trendDay12;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:13天")
+    private String trendDay13;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:14天")
+    private String trendDay14;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:15天")
+    private String trendDay15;
+
+    // Continue the pattern for trendDay16 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:16天")
+    private String trendDay16;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:17天")
+    private String trendDay17;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:18天")
+    private String trendDay18;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:19天")
+    private String trendDay19;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:20天")
+    private String trendDay20;
+
+    // Continue the pattern for trendDay21 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:21天")
+    private String trendDay21;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:22天")
+    private String trendDay22;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:23天")
+    private String trendDay23;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:24天")
+    private String trendDay24;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:25天")
+    private String trendDay25;
+
+    // Continue the pattern for trendDay26 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:26天")
+    private String trendDay26;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:27天")
+    private String trendDay27;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:28天")
+    private String trendDay28;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:29天")
+    private String trendDay29;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:1个月")
+    private String trendMonth1;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:2个月")
+    private String trendMonth2;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:3个月")
+    private String trendMonth3;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:6个月")
+    private String trendMonth6;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:1年")
+    private String trendYear1;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:总")
+    private String trendTotal;
+
+    @ApiModelProperty(notes = "付费趋势:1天")
+    private RechargeTrendVO rechargeTrendDay1;
+
+    @ApiModelProperty(notes = "付费趋势:2天")
+    private RechargeTrendVO rechargeTrendDay2;
+
+    @ApiModelProperty(notes = "付费趋势:3天")
+    private RechargeTrendVO rechargeTrendDay3;
+
+    @ApiModelProperty(notes = "付费趋势:4天")
+    private RechargeTrendVO rechargeTrendDay4;
+
+    @ApiModelProperty(notes = "付费趋势:5天")
+    private RechargeTrendVO rechargeTrendDay5;
+
+    @ApiModelProperty(notes = "付费趋势:6天")
+    private RechargeTrendVO rechargeTrendDay6;
+
+    @ApiModelProperty(notes = "付费趋势:7天")
+    private RechargeTrendVO rechargeTrendDay7;
+
+    @ApiModelProperty(notes = "付费趋势:8天")
+    private RechargeTrendVO rechargeTrendDay8;
+
+    @ApiModelProperty(notes = "付费趋势:9天")
+    private RechargeTrendVO rechargeTrendDay9;
+
+    @ApiModelProperty(notes = "付费趋势:10天")
+    private RechargeTrendVO rechargeTrendDay10;
+
+    @ApiModelProperty(notes = "付费趋势:11天")
+    private RechargeTrendVO rechargeTrendDay11;
+
+    @ApiModelProperty(notes = "付费趋势:12天")
+    private RechargeTrendVO rechargeTrendDay12;
+
+    @ApiModelProperty(notes = "付费趋势:13天")
+    private RechargeTrendVO rechargeTrendDay13;
+
+    @ApiModelProperty(notes = "付费趋势:14天")
+    private RechargeTrendVO rechargeTrendDay14;
+
+    @ApiModelProperty(notes = "付费趋势:15天")
+    private RechargeTrendVO rechargeTrendDay15;
+
+    @ApiModelProperty(notes = "付费趋势:16天")
+    private RechargeTrendVO rechargeTrendDay16;
+
+    @ApiModelProperty(notes = "付费趋势:17天")
+    private RechargeTrendVO rechargeTrendDay17;
+
+    @ApiModelProperty(notes = "付费趋势:18天")
+    private RechargeTrendVO rechargeTrendDay18;
+
+    @ApiModelProperty(notes = "付费趋势:19天")
+    private RechargeTrendVO rechargeTrendDay19;
+
+    @ApiModelProperty(notes = "付费趋势:20天")
+    private RechargeTrendVO rechargeTrendDay20;
+
+    @ApiModelProperty(notes = "付费趋势:21天")
+    private RechargeTrendVO rechargeTrendDay21;
+
+    @ApiModelProperty(notes = "付费趋势:22天")
+    private RechargeTrendVO rechargeTrendDay22;
+
+    @ApiModelProperty(notes = "付费趋势:23天")
+    private RechargeTrendVO rechargeTrendDay23;
+
+    @ApiModelProperty(notes = "付费趋势:24天")
+    private RechargeTrendVO rechargeTrendDay24;
+
+    @ApiModelProperty(notes = "付费趋势:25天")
+    private RechargeTrendVO rechargeTrendDay25;
+
+    @ApiModelProperty(notes = "付费趋势:26天")
+    private RechargeTrendVO rechargeTrendDay26;
+
+    @ApiModelProperty(notes = "付费趋势:27天")
+    private RechargeTrendVO rechargeTrendDay27;
+
+    @ApiModelProperty(notes = "付费趋势:28天")
+    private RechargeTrendVO rechargeTrendDay28;
+
+    @ApiModelProperty(notes = "付费趋势:29天")
+    private RechargeTrendVO rechargeTrendDay29;
+
+    @ApiModelProperty(notes = "付费趋势:1个月")
+    private RechargeTrendVO rechargeTrendMonth1;
+
+    @ApiModelProperty(notes = "付费趋势:2个月")
+    private RechargeTrendVO rechargeTrendMonth2;
+
+    @ApiModelProperty(notes = "付费趋势:3个月")
+    private RechargeTrendVO rechargeTrendMonth3;
+
+    @ApiModelProperty(notes = "付费趋势:6个月")
+    private RechargeTrendVO rechargeTrendMonth6;
+
+    @ApiModelProperty(notes = "付费趋势:1年")
+    private RechargeTrendVO rechargeTrendYear1;
+
+    @ApiModelProperty(notes = "付费趋势:总")
+    private RechargeTrendVO rechargeTrendTotal;
+
     @ApiModelProperty(notes = "首日付费率=首日新用户充值人数/注册人数")
     private BigDecimal firstRechargeRate;
 

+ 295 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GamePromoteTotalVO.java

@@ -187,30 +187,325 @@ public class GamePromoteTotalVO {
     @ApiModelProperty(notes = "毛利额=新用户累计充值金额-实际消耗")
     private BigDecimal grossMargin;
 
+    @ApiModelProperty(notes = "1日ROI=新用户1日累计充值金额/实际消耗")
+    private BigDecimal roiDay1;
+
+    @ApiModelProperty(notes = "2日ROI=新用户2日累计充值金额/实际消耗")
+    private BigDecimal roiDay2;
+
     @ApiModelProperty(notes = "3日ROI=新用户3日累计充值金额/实际消耗")
     private BigDecimal roiDay3;
 
+    @ApiModelProperty(notes = "4日ROI=新用户4日累计充值金额/实际消耗")
+    private BigDecimal roiDay4;
+
     @ApiModelProperty(notes = "5日ROI=新用户5日累计充值金额/实际消耗")
     private BigDecimal roiDay5;
 
+    @ApiModelProperty(notes = "6日ROI=新用户6日累计充值金额/实际消耗")
+    private BigDecimal roiDay6;
+
     @ApiModelProperty(notes = "7日ROI=新用户7日累计充值金额/实际消耗")
     private BigDecimal roiDay7;
 
+    @ApiModelProperty(notes = "8日ROI=新用户8日累计充值金额/实际消耗")
+    private BigDecimal roiDay8;
+
+    @ApiModelProperty(notes = "9日ROI=新用户9日累计充值金额/实际消耗")
+    private BigDecimal roiDay9;
+
+    @ApiModelProperty(notes = "10日ROI=新用户10日累计充值金额/实际消耗")
+    private BigDecimal roiDay10;
+
+    @ApiModelProperty(notes = "11日ROI=新用户11日累计充值金额/实际消耗")
+    private BigDecimal roiDay11;
+
+    @ApiModelProperty(notes = "12日ROI=新用户12日累计充值金额/实际消耗")
+    private BigDecimal roiDay12;
+
+    @ApiModelProperty(notes = "13日ROI=新用户13日累计充值金额/实际消耗")
+    private BigDecimal roiDay13;
+
+    @ApiModelProperty(notes = "14日ROI=新用户14日累计充值金额/实际消耗")
+    private BigDecimal roiDay14;
+
     @ApiModelProperty(notes = "15日ROI=新用户15日累计充值金额/实际消耗")
     private BigDecimal roiDay15;
 
+    @ApiModelProperty(notes = "16日ROI=新用户16日累计充值金额/实际消耗")
+    private BigDecimal roiDay16;
+
+    @ApiModelProperty(notes = "17日ROI=新用户17日累计充值金额/实际消耗")
+    private BigDecimal roiDay17;
+
+    @ApiModelProperty(notes = "18日ROI=新用户18日累计充值金额/实际消耗")
+    private BigDecimal roiDay18;
+
+    @ApiModelProperty(notes = "19日ROI=新用户19日累计充值金额/实际消耗")
+    private BigDecimal roiDay19;
+
+    @ApiModelProperty(notes = "20日ROI=新用户20日累计充值金额/实际消耗")
+    private BigDecimal roiDay20;
+
+    @ApiModelProperty(notes = "21日ROI=新用户21日累计充值金额/实际消耗")
+    private BigDecimal roiDay21;
+
+    @ApiModelProperty(notes = "22日ROI=新用户22日累计充值金额/实际消耗")
+    private BigDecimal roiDay22;
+
+    @ApiModelProperty(notes = "23日ROI=新用户23日累计充值金额/实际消耗")
+    private BigDecimal roiDay23;
+
+    @ApiModelProperty(notes = "24日ROI=新用户24日累计充值金额/实际消耗")
+    private BigDecimal roiDay24;
+
+    @ApiModelProperty(notes = "25日ROI=新用户25日累计充值金额/实际消耗")
+    private BigDecimal roiDay25;
+
+    @ApiModelProperty(notes = "26日ROI=新用户26日累计充值金额/实际消耗")
+    private BigDecimal roiDay26;
+
+    @ApiModelProperty(notes = "27日ROI=新用户27日累计充值金额/实际消耗")
+    private BigDecimal roiDay27;
+
+    @ApiModelProperty(notes = "28日ROI=新用户28日累计充值金额/实际消耗")
+    private BigDecimal roiDay28;
+
+    @ApiModelProperty(notes = "29日ROI=新用户29日累计充值金额/实际消耗")
+    private BigDecimal roiDay29;
+
     @ApiModelProperty(notes = "30日ROI=新用户30日累计充值金额/实际消耗")
     private BigDecimal roiDay30;
 
     @ApiModelProperty(notes = "60日ROI=新用户60日累计充值金额/实际消耗")
     private BigDecimal roiDay60;
 
+    @ApiModelProperty(notes = "90日ROI=新用户90日累计充值金额/实际消耗")
+    private BigDecimal roiDay90;
+
     @ApiModelProperty(notes = "180日ROI=新用户180日累计充值金额/实际消耗")
     private BigDecimal roiDay180;
 
     @ApiModelProperty(notes = "一年ROI=新用户一年累计充值金额/实际消耗")
     private BigDecimal roiYear1;
 
+    @ApiModelProperty(notes = "总ROI=新用户累计充值金额/实际消耗")
+    private BigDecimal roiTotal;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:1天")
+    private String trendDay1;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:2天")
+    private String trendDay2;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:3天")
+    private String trendDay3;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:4天")
+    private String trendDay4;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:5天")
+    private String trendDay5;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:6天")
+    private String trendDay6;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:7天")
+    private String trendDay7;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:8天")
+    private String trendDay8;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:9天")
+    private String trendDay9;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:10天")
+    private String trendDay10;
+
+    // Continue the pattern for trendDay11 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:11天")
+    private String trendDay11;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:12天")
+    private String trendDay12;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:13天")
+    private String trendDay13;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:14天")
+    private String trendDay14;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:15天")
+    private String trendDay15;
+
+    // Continue the pattern for trendDay16 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:16天")
+    private String trendDay16;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:17天")
+    private String trendDay17;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:18天")
+    private String trendDay18;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:19天")
+    private String trendDay19;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:20天")
+    private String trendDay20;
+
+    // Continue the pattern for trendDay21 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:21天")
+    private String trendDay21;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:22天")
+    private String trendDay22;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:23天")
+    private String trendDay23;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:24天")
+    private String trendDay24;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:25天")
+    private String trendDay25;
+
+    // Continue the pattern for trendDay26 to trendDay30
+    @ApiModelProperty(notes = "不展示--付费趋势:26天")
+    private String trendDay26;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:27天")
+    private String trendDay27;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:28天")
+    private String trendDay28;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:29天")
+    private String trendDay29;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:1个月")
+    private String trendMonth1;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:2个月")
+    private String trendMonth2;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:3个月")
+    private String trendMonth3;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:6个月")
+    private String trendMonth6;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:1年")
+    private String trendYear1;
+
+    @ApiModelProperty(notes = "不展示--付费趋势:总")
+    private String trendTotal;
+
+    @ApiModelProperty(notes = "付费趋势:1天")
+    private RechargeTrendVO rechargeTrendDay1;
+
+    @ApiModelProperty(notes = "付费趋势:2天")
+    private RechargeTrendVO rechargeTrendDay2;
+
+    @ApiModelProperty(notes = "付费趋势:3天")
+    private RechargeTrendVO rechargeTrendDay3;
+
+    @ApiModelProperty(notes = "付费趋势:4天")
+    private RechargeTrendVO rechargeTrendDay4;
+
+    @ApiModelProperty(notes = "付费趋势:5天")
+    private RechargeTrendVO rechargeTrendDay5;
+
+    @ApiModelProperty(notes = "付费趋势:6天")
+    private RechargeTrendVO rechargeTrendDay6;
+
+    @ApiModelProperty(notes = "付费趋势:7天")
+    private RechargeTrendVO rechargeTrendDay7;
+
+    @ApiModelProperty(notes = "付费趋势:8天")
+    private RechargeTrendVO rechargeTrendDay8;
+
+    @ApiModelProperty(notes = "付费趋势:9天")
+    private RechargeTrendVO rechargeTrendDay9;
+
+    @ApiModelProperty(notes = "付费趋势:10天")
+    private RechargeTrendVO rechargeTrendDay10;
+
+    @ApiModelProperty(notes = "付费趋势:11天")
+    private RechargeTrendVO rechargeTrendDay11;
+
+    @ApiModelProperty(notes = "付费趋势:12天")
+    private RechargeTrendVO rechargeTrendDay12;
+
+    @ApiModelProperty(notes = "付费趋势:13天")
+    private RechargeTrendVO rechargeTrendDay13;
+
+    @ApiModelProperty(notes = "付费趋势:14天")
+    private RechargeTrendVO rechargeTrendDay14;
+
+    @ApiModelProperty(notes = "付费趋势:15天")
+    private RechargeTrendVO rechargeTrendDay15;
+
+    @ApiModelProperty(notes = "付费趋势:16天")
+    private RechargeTrendVO rechargeTrendDay16;
+
+    @ApiModelProperty(notes = "付费趋势:17天")
+    private RechargeTrendVO rechargeTrendDay17;
+
+    @ApiModelProperty(notes = "付费趋势:18天")
+    private RechargeTrendVO rechargeTrendDay18;
+
+    @ApiModelProperty(notes = "付费趋势:19天")
+    private RechargeTrendVO rechargeTrendDay19;
+
+    @ApiModelProperty(notes = "付费趋势:20天")
+    private RechargeTrendVO rechargeTrendDay20;
+
+    @ApiModelProperty(notes = "付费趋势:21天")
+    private RechargeTrendVO rechargeTrendDay21;
+
+    @ApiModelProperty(notes = "付费趋势:22天")
+    private RechargeTrendVO rechargeTrendDay22;
+
+    @ApiModelProperty(notes = "付费趋势:23天")
+    private RechargeTrendVO rechargeTrendDay23;
+
+    @ApiModelProperty(notes = "付费趋势:24天")
+    private RechargeTrendVO rechargeTrendDay24;
+
+    @ApiModelProperty(notes = "付费趋势:25天")
+    private RechargeTrendVO rechargeTrendDay25;
+
+    @ApiModelProperty(notes = "付费趋势:26天")
+    private RechargeTrendVO rechargeTrendDay26;
+
+    @ApiModelProperty(notes = "付费趋势:27天")
+    private RechargeTrendVO rechargeTrendDay27;
+
+    @ApiModelProperty(notes = "付费趋势:28天")
+    private RechargeTrendVO rechargeTrendDay28;
+
+    @ApiModelProperty(notes = "付费趋势:29天")
+    private RechargeTrendVO rechargeTrendDay29;
+
+    @ApiModelProperty(notes = "付费趋势:1个月")
+    private RechargeTrendVO rechargeTrendMonth1;
+
+    @ApiModelProperty(notes = "付费趋势:2个月")
+    private RechargeTrendVO rechargeTrendMonth2;
+
+    @ApiModelProperty(notes = "付费趋势:3个月")
+    private RechargeTrendVO rechargeTrendMonth3;
+
+    @ApiModelProperty(notes = "付费趋势:6个月")
+    private RechargeTrendVO rechargeTrendMonth6;
+
+    @ApiModelProperty(notes = "付费趋势:1年")
+    private RechargeTrendVO rechargeTrendYear1;
+
+    @ApiModelProperty(notes = "付费趋势:总")
+    private RechargeTrendVO rechargeTrendTotal;
+
     @ApiModelProperty(notes = "首日付费率=首日新用户充值人数/注册人数")
     private BigDecimal firstRechargeRate;
 

+ 3 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/RechargeTrendVO.java

@@ -27,4 +27,7 @@ public class RechargeTrendVO {
 
     @ApiModelProperty(notes = "倍")
     private BigDecimal multiples;
+
+    @ApiModelProperty(notes = "总充值金额")
+    private BigDecimal rechargeMoneyTotal;
 }

+ 437 - 154
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AccountAgentDayServiceImpl.java

@@ -104,100 +104,62 @@ public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
         dao.execute(sql);
         pager.setRecordCount(dao.count(AdsAccountAgentDay.class, cri));
         List<GamePromoteDayVO> collect = sql.getList(GamePromoteDayVO.class).stream().map(item -> {
-            String[] trendDay1 = item.getTrendDay1().split("/");
-            item.setRechargeTrendDay1(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(trendDay1[0]))
-                    .rechargeUserCount(Long.valueOf(trendDay1[1]))
-                    .increase(new BigDecimal(trendDay1[2]))
-                    .back(new BigDecimal(trendDay1[3]))
-                    .multiples(new BigDecimal(trendDay1[4]))
-                    .build());
-
-            String[] trendDay3 = item.getTrendDay3().split("/");
-            item.setRechargeTrendDay3(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(trendDay3[0]))
-                    .rechargeUserCount(Long.valueOf(trendDay3[1]))
-                    .increase(new BigDecimal(trendDay3[2]))
-                    .back(new BigDecimal(trendDay3[3]))
-                    .multiples(new BigDecimal(trendDay3[4]))
-                    .build());
-
-            String[] trendDay5 = item.getTrendDay5().split("/");
-            item.setRechargeTrendDay5(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(trendDay5[0]))
-                    .rechargeUserCount(Long.valueOf(trendDay5[1]))
-                    .increase(new BigDecimal(trendDay5[2]))
-                    .back(new BigDecimal(trendDay5[3]))
-                    .multiples(new BigDecimal(trendDay5[4]))
-                    .build());
-
-            String[] trendDay7 = item.getTrendDay7().split("/");
-            item.setRechargeTrendDay7(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(trendDay7[0]))
-                    .rechargeUserCount(Long.valueOf(trendDay7[1]))
-                    .increase(new BigDecimal(trendDay7[2]))
-                    .back(new BigDecimal(trendDay7[3]))
-                    .multiples(new BigDecimal(trendDay7[4]))
-                    .build());
-
-            String[] trendDay15 = item.getTrendDay15().split("/");
-            item.setRechargeTrendDay15(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(trendDay15[0]))
-                    .rechargeUserCount(Long.valueOf(trendDay15[1]))
-                    .increase(new BigDecimal(trendDay15[2]))
-                    .back(new BigDecimal(trendDay15[3]))
-                    .multiples(new BigDecimal(trendDay15[4]))
-                    .build());
-
-            String[] trendMonth1 = item.getTrendMonth1().split("/");
-            item.setRechargeTrendMonth1(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(trendMonth1[0]))
-                    .rechargeUserCount(Long.valueOf(trendMonth1[1]))
-                    .increase(new BigDecimal(trendMonth1[2]))
-                    .back(new BigDecimal(trendMonth1[3]))
-                    .multiples(new BigDecimal(trendMonth1[4]))
-                    .build());
-
-            String[] trendMonth2 = item.getTrendMonth2().split("/");
-            item.setRechargeTrendMonth2(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(trendMonth2[0]))
-                    .rechargeUserCount(Long.valueOf(trendMonth2[1]))
-                    .increase(new BigDecimal(trendMonth2[2]))
-                    .back(new BigDecimal(trendMonth2[3]))
-                    .multiples(new BigDecimal(trendMonth2[4]))
-                    .build());
-
-            String[] trendMonth3 = item.getTrendMonth3().split("/");
-            item.setRechargeTrendMonth3(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(trendMonth3[0]))
-                    .rechargeUserCount(Long.valueOf(trendMonth3[1]))
-                    .increase(new BigDecimal(trendMonth3[2]))
-                    .back(new BigDecimal(trendMonth3[3]))
-                    .multiples(new BigDecimal(trendMonth3[4]))
-                    .build());
-
-            String[] trendMonth6 = item.getTrendMonth6().split("/");
-            item.setRechargeTrendMonth6(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(trendMonth6[0]))
-                    .rechargeUserCount(Long.valueOf(trendMonth6[1]))
-                    .increase(new BigDecimal(trendMonth6[2]))
-                    .back(new BigDecimal(trendMonth6[3]))
-                    .multiples(new BigDecimal(trendMonth6[4]))
-                    .build());
-
-            String[] trendTotal = item.getTrendTotal().split("/");
-            item.setRechargeTrendTotal(RechargeTrendVO.builder()
-                    .rechargeMoney(new BigDecimal(trendTotal[0]))
-                    .rechargeUserCount(Long.valueOf(trendTotal[1]))
-                    .increase(new BigDecimal(trendTotal[2]))
-                    .back(new BigDecimal(trendTotal[3]))
-                    .multiples(new BigDecimal(trendTotal[4]))
-                    .build());
+            setDayRechargeTrend(item);
             return item;
         }).collect(Collectors.toList());
         return new Page<>(collect, pager);
     }
 
+    private void setDayRechargeTrend(GamePromoteDayVO item) {
+        item.setRechargeTrendDay1(getRechargeTrendVO(item.getTrendDay1()));
+        item.setRechargeTrendDay2(getRechargeTrendVO(item.getTrendDay2()));
+        item.setRechargeTrendDay3(getRechargeTrendVO(item.getTrendDay3()));
+        item.setRechargeTrendDay4(getRechargeTrendVO(item.getTrendDay4()));
+        item.setRechargeTrendDay5(getRechargeTrendVO(item.getTrendDay5()));
+        item.setRechargeTrendDay6(getRechargeTrendVO(item.getTrendDay6()));
+        item.setRechargeTrendDay7(getRechargeTrendVO(item.getTrendDay7()));
+        item.setRechargeTrendDay8(getRechargeTrendVO(item.getTrendDay8()));
+        item.setRechargeTrendDay9(getRechargeTrendVO(item.getTrendDay9()));
+        item.setRechargeTrendDay10(getRechargeTrendVO(item.getTrendDay10()));
+        item.setRechargeTrendDay11(getRechargeTrendVO(item.getTrendDay11()));
+        item.setRechargeTrendDay12(getRechargeTrendVO(item.getTrendDay12()));
+        item.setRechargeTrendDay13(getRechargeTrendVO(item.getTrendDay13()));
+        item.setRechargeTrendDay14(getRechargeTrendVO(item.getTrendDay14()));
+        item.setRechargeTrendDay15(getRechargeTrendVO(item.getTrendDay15()));
+        item.setRechargeTrendDay16(getRechargeTrendVO(item.getTrendDay16()));
+        item.setRechargeTrendDay17(getRechargeTrendVO(item.getTrendDay17()));
+        item.setRechargeTrendDay18(getRechargeTrendVO(item.getTrendDay18()));
+        item.setRechargeTrendDay19(getRechargeTrendVO(item.getTrendDay19()));
+        item.setRechargeTrendDay20(getRechargeTrendVO(item.getTrendDay20()));
+        item.setRechargeTrendDay21(getRechargeTrendVO(item.getTrendDay21()));
+        item.setRechargeTrendDay22(getRechargeTrendVO(item.getTrendDay22()));
+        item.setRechargeTrendDay23(getRechargeTrendVO(item.getTrendDay23()));
+        item.setRechargeTrendDay24(getRechargeTrendVO(item.getTrendDay24()));
+        item.setRechargeTrendDay25(getRechargeTrendVO(item.getTrendDay25()));
+        item.setRechargeTrendDay26(getRechargeTrendVO(item.getTrendDay26()));
+        item.setRechargeTrendDay27(getRechargeTrendVO(item.getTrendDay27()));
+        item.setRechargeTrendDay28(getRechargeTrendVO(item.getTrendDay28()));
+        item.setRechargeTrendDay29(getRechargeTrendVO(item.getTrendDay29()));
+
+        item.setRechargeTrendMonth1(getRechargeTrendVO(item.getTrendMonth1()));
+        item.setRechargeTrendMonth2(getRechargeTrendVO(item.getTrendMonth2()));
+        item.setRechargeTrendMonth3(getRechargeTrendVO(item.getTrendMonth3()));
+        item.setRechargeTrendMonth6(getRechargeTrendVO(item.getTrendMonth6()));
+        item.setRechargeTrendYear1(getRechargeTrendVO(item.getTrendYear1()));
+        item.setRechargeTrendTotal(getRechargeTrendVO(item.getTrendTotal()));
+    }
+
+    private RechargeTrendVO getRechargeTrendVO(String trendDay) {
+        String[] trendDayResult = trendDay.split("/");
+        return RechargeTrendVO.builder()
+                .rechargeMoney(new BigDecimal(trendDayResult[0]))
+                .rechargeUserCount(Long.valueOf(trendDayResult[1]))
+                .increase(new BigDecimal(trendDayResult[2]))
+                .back(new BigDecimal(trendDayResult[3]))
+                .multiples(new BigDecimal(trendDayResult[4]))
+                .build();
+    }
+
     @Override
     public GamePromoteDayTotalVO accountAgentDayTotal(GamePromoteDayTotalDTO dto) {
         Long sysUserId = SecurityUtil.isAdmin() ? null : SecurityUtil.getUserId();
@@ -247,7 +209,66 @@ public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
         Entity<GamePromoteDayTotalVO> entity = dao.getEntity(GamePromoteDayTotalVO.class);
         sql.setEntity(entity).setCondition(cri);
         dao.execute(sql);
-        return sql.getObject(GamePromoteDayTotalVO.class);
+        GamePromoteDayTotalVO gamePromoteDayTotalVO = sql.getObject(GamePromoteDayTotalVO.class);
+        setDayTotalRechargeTrend(gamePromoteDayTotalVO);
+        return gamePromoteDayTotalVO;
+    }
+
+    private void setDayTotalRechargeTrend(GamePromoteDayTotalVO item) {
+        BigDecimal trendDay1Money = new BigDecimal(item.getTrendDay1().split("/")[0]);
+        item.setRechargeTrendDay1(getSumRechargeTrendVO(item.getTrendDay1(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay2(getSumRechargeTrendVO(item.getTrendDay2(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay3(getSumRechargeTrendVO(item.getTrendDay3(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay4(getSumRechargeTrendVO(item.getTrendDay4(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay5(getSumRechargeTrendVO(item.getTrendDay5(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay6(getSumRechargeTrendVO(item.getTrendDay6(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay7(getSumRechargeTrendVO(item.getTrendDay7(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay8(getSumRechargeTrendVO(item.getTrendDay8(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay9(getSumRechargeTrendVO(item.getTrendDay9(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay10(getSumRechargeTrendVO(item.getTrendDay10(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay11(getSumRechargeTrendVO(item.getTrendDay11(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay12(getSumRechargeTrendVO(item.getTrendDay12(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay13(getSumRechargeTrendVO(item.getTrendDay13(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay14(getSumRechargeTrendVO(item.getTrendDay14(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay15(getSumRechargeTrendVO(item.getTrendDay15(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay16(getSumRechargeTrendVO(item.getTrendDay16(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay17(getSumRechargeTrendVO(item.getTrendDay17(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay18(getSumRechargeTrendVO(item.getTrendDay18(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay19(getSumRechargeTrendVO(item.getTrendDay19(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay20(getSumRechargeTrendVO(item.getTrendDay20(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay21(getSumRechargeTrendVO(item.getTrendDay21(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay22(getSumRechargeTrendVO(item.getTrendDay22(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay23(getSumRechargeTrendVO(item.getTrendDay23(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay24(getSumRechargeTrendVO(item.getTrendDay24(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay25(getSumRechargeTrendVO(item.getTrendDay25(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay26(getSumRechargeTrendVO(item.getTrendDay26(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay27(getSumRechargeTrendVO(item.getTrendDay27(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay28(getSumRechargeTrendVO(item.getTrendDay28(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay29(getSumRechargeTrendVO(item.getTrendDay29(), trendDay1Money, item.getCost()));
+
+        item.setRechargeTrendMonth1(getSumRechargeTrendVO(item.getTrendMonth1(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendMonth2(getSumRechargeTrendVO(item.getTrendMonth2(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendMonth3(getSumRechargeTrendVO(item.getTrendMonth3(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendMonth6(getSumRechargeTrendVO(item.getTrendMonth6(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendYear1(getSumRechargeTrendVO(item.getTrendYear1(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendTotal(getSumRechargeTrendVO(item.getTrendTotal(), trendDay1Money, item.getCost()));
+    }
+
+    private RechargeTrendVO getSumRechargeTrendVO(String trendDay, BigDecimal trendDay1Money, BigDecimal cost) {
+        String[] trendDayResult = trendDay.split("/");
+        BigDecimal dayTotalRecharge = new BigDecimal(trendDayResult[1]);
+        BigDecimal dayRecharge = new BigDecimal(trendDayResult[0]);
+        return RechargeTrendVO.builder()
+                .rechargeMoney(dayRecharge)
+                .rechargeUserCount(Long.valueOf(trendDayResult[2]))
+                .rechargeMoneyTotal(dayTotalRecharge)
+                .increase(cost.compareTo(BigDecimal.ZERO) == 0 ?
+                        BigDecimal.ZERO:dayRecharge.divide(cost,4, RoundingMode.DOWN))
+                .back(cost.compareTo(BigDecimal.ZERO) == 0 ?
+                        BigDecimal.ZERO:dayTotalRecharge.divide(cost,4, RoundingMode.DOWN))
+                .multiples(trendDay1Money.compareTo(BigDecimal.ZERO) == 0 ?
+                        BigDecimal.ZERO:dayTotalRecharge.divide(trendDay1Money,4, RoundingMode.DOWN))
+                .build();
     }
 
     @Override
@@ -348,6 +369,9 @@ public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
         showSql.setParam("rechargeEndDay", dto.getRechargeEndDay());
         //循环总数据的每条数据
         List<GamePromoteTotalVO> hasRechargeDayList = list.stream().map(item -> {
+
+            setTotalRechargeTrend(item);
+
             showSql.setParam("sourceSystem", item.getSourceSystem());
             showSql.setParam("agentId", item.getAgentId());
             showSql.setParam("accountId", item.getAccountId());
@@ -461,6 +485,46 @@ public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
         return new Page<>(hasRechargeDayList, pager);
     }
 
+    private void setTotalRechargeTrend(GamePromoteTotalVO item) {
+        BigDecimal trendDay1Money = new BigDecimal(item.getTrendDay1().split("/")[0]);
+        item.setRechargeTrendDay1(getSumRechargeTrendVO(item.getTrendDay1(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay2(getSumRechargeTrendVO(item.getTrendDay2(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay3(getSumRechargeTrendVO(item.getTrendDay3(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay4(getSumRechargeTrendVO(item.getTrendDay4(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay5(getSumRechargeTrendVO(item.getTrendDay5(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay6(getSumRechargeTrendVO(item.getTrendDay6(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay7(getSumRechargeTrendVO(item.getTrendDay7(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay8(getSumRechargeTrendVO(item.getTrendDay8(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay9(getSumRechargeTrendVO(item.getTrendDay9(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay10(getSumRechargeTrendVO(item.getTrendDay10(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay11(getSumRechargeTrendVO(item.getTrendDay11(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay12(getSumRechargeTrendVO(item.getTrendDay12(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay13(getSumRechargeTrendVO(item.getTrendDay13(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay14(getSumRechargeTrendVO(item.getTrendDay14(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay15(getSumRechargeTrendVO(item.getTrendDay15(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay16(getSumRechargeTrendVO(item.getTrendDay16(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay17(getSumRechargeTrendVO(item.getTrendDay17(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay18(getSumRechargeTrendVO(item.getTrendDay18(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay19(getSumRechargeTrendVO(item.getTrendDay19(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay20(getSumRechargeTrendVO(item.getTrendDay20(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay21(getSumRechargeTrendVO(item.getTrendDay21(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay22(getSumRechargeTrendVO(item.getTrendDay22(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay23(getSumRechargeTrendVO(item.getTrendDay23(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay24(getSumRechargeTrendVO(item.getTrendDay24(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay25(getSumRechargeTrendVO(item.getTrendDay25(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay26(getSumRechargeTrendVO(item.getTrendDay26(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay27(getSumRechargeTrendVO(item.getTrendDay27(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay28(getSumRechargeTrendVO(item.getTrendDay28(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay29(getSumRechargeTrendVO(item.getTrendDay29(), trendDay1Money, item.getCost()));
+
+        item.setRechargeTrendMonth1(getSumRechargeTrendVO(item.getTrendMonth1(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendMonth2(getSumRechargeTrendVO(item.getTrendMonth2(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendMonth3(getSumRechargeTrendVO(item.getTrendMonth3(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendMonth6(getSumRechargeTrendVO(item.getTrendMonth6(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendYear1(getSumRechargeTrendVO(item.getTrendYear1(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendTotal(getSumRechargeTrendVO(item.getTrendTotal(), trendDay1Money, item.getCost()));
+    }
+
     @Override
     public Map<LocalDate, List<AgentDayAgainVO>> accountAgentDayAgain(AgentDayAgainDTO dto) {
 
@@ -754,9 +818,50 @@ public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
                 BigDecimal.ZERO : gamePromoteTotalSumVO.getCost().divide(BigDecimal.valueOf(gamePromoteTotalSumVO.getOldUserRechargeCount()), 4, RoundingMode.DOWN));
         gamePromoteTotalSumVO.setShowRechargeCountCost(gamePromoteTotalSumVO.getShowRechargeCount() == 0 ?
                 BigDecimal.ZERO : gamePromoteTotalSumVO.getCost().divide(BigDecimal.valueOf(gamePromoteTotalSumVO.getShowRechargeCount()), 4, RoundingMode.DOWN));
+        setTotalSumRechargeTrend(gamePromoteTotalSumVO);
         return gamePromoteTotalSumVO;
     }
 
+    private void setTotalSumRechargeTrend(GamePromoteTotalSumVO item) {
+        BigDecimal trendDay1Money = new BigDecimal(item.getTrendDay1().split("/")[0]);
+        item.setRechargeTrendDay1(getSumRechargeTrendVO(item.getTrendDay1(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay2(getSumRechargeTrendVO(item.getTrendDay2(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay3(getSumRechargeTrendVO(item.getTrendDay3(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay4(getSumRechargeTrendVO(item.getTrendDay4(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay5(getSumRechargeTrendVO(item.getTrendDay5(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay6(getSumRechargeTrendVO(item.getTrendDay6(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay7(getSumRechargeTrendVO(item.getTrendDay7(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay8(getSumRechargeTrendVO(item.getTrendDay8(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay9(getSumRechargeTrendVO(item.getTrendDay9(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay10(getSumRechargeTrendVO(item.getTrendDay10(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay11(getSumRechargeTrendVO(item.getTrendDay11(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay12(getSumRechargeTrendVO(item.getTrendDay12(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay13(getSumRechargeTrendVO(item.getTrendDay13(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay14(getSumRechargeTrendVO(item.getTrendDay14(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay15(getSumRechargeTrendVO(item.getTrendDay15(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay16(getSumRechargeTrendVO(item.getTrendDay16(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay17(getSumRechargeTrendVO(item.getTrendDay17(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay18(getSumRechargeTrendVO(item.getTrendDay18(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay19(getSumRechargeTrendVO(item.getTrendDay19(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay20(getSumRechargeTrendVO(item.getTrendDay20(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay21(getSumRechargeTrendVO(item.getTrendDay21(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay22(getSumRechargeTrendVO(item.getTrendDay22(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay23(getSumRechargeTrendVO(item.getTrendDay23(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay24(getSumRechargeTrendVO(item.getTrendDay24(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay25(getSumRechargeTrendVO(item.getTrendDay25(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay26(getSumRechargeTrendVO(item.getTrendDay26(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay27(getSumRechargeTrendVO(item.getTrendDay27(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay28(getSumRechargeTrendVO(item.getTrendDay28(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendDay29(getSumRechargeTrendVO(item.getTrendDay29(), trendDay1Money, item.getCost()));
+
+        item.setRechargeTrendMonth1(getSumRechargeTrendVO(item.getTrendMonth1(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendMonth2(getSumRechargeTrendVO(item.getTrendMonth2(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendMonth3(getSumRechargeTrendVO(item.getTrendMonth3(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendMonth6(getSumRechargeTrendVO(item.getTrendMonth6(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendYear1(getSumRechargeTrendVO(item.getTrendYear1(), trendDay1Money, item.getCost()));
+        item.setRechargeTrendTotal(getSumRechargeTrendVO(item.getTrendTotal(), trendDay1Money, item.getCost()));
+    }
+
     private SimpleCriteria getSimpleCriteria(GamePromoteTotalSumDTO dto) {
         SimpleCriteria cri = Cnd.cri();
         // 组装条件
@@ -922,14 +1027,41 @@ public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
                 	first_roi AS first_recovery_rate,
                 	buy_roi AS buy_recovery_rate,
                 	gross_profit AS gross_margin,
-                	roi3 AS roi_day3,
-                	roi5 AS roi_day5,
-                	roi7 AS roi_day7,
-                	roi15 AS roi_day15,
-                	roi30 AS roi_day30,
-                	roi60 AS roi_day60,
-                	roi180 AS roi_day180,
-                	roi1yaer AS roi_year1,
+                        roi1 AS roi_day1,
+                        roi2 AS roi_day2,
+                        roi3 AS roi_day3,
+                        roi4 AS roi_day4,
+                        roi5 AS roi_day5,
+                        roi6 AS roi_day6,
+                        roi7 AS roi_day7,
+                        roi8 AS roi_day8,
+                        roi9 AS roi_day9,
+                        roi10 AS roi_day10,
+                        roi11 AS roi_day11,
+                        roi12 AS roi_day12,
+                        roi13 AS roi_day13,
+                        roi14 AS roi_day14,
+                        roi15 AS roi_day15,
+                        roi16 AS roi_day16,
+                        roi17 AS roi_day17,
+                        roi18 AS roi_day18,
+                        roi19 AS roi_day19,
+                        roi20 AS roi_day20,
+                        roi21 AS roi_day21,
+                        roi22 AS roi_day22,
+                        roi23 AS roi_day23,
+                        roi24 AS roi_day24,
+                        roi25 AS roi_day25,
+                        roi26 AS roi_day26,
+                        roi27 AS roi_day27,
+                        roi28 AS roi_day28,
+                        roi29 AS roi_day29,
+                        roi30 AS roi_day30,
+                        roi60 AS roi_day60,
+                        roi90 AS roi_day90,
+                        roi180 AS roi_day180,
+                        roi1yaer AS roi_year1,
+                        roi_total AS roiTotal,
                 	first_rate AS first_recharge_rate,
                 	buy_user_rate AS buy_user_recharge_rate,
                 	today_rate AS new_user_recharge_rate,
@@ -943,16 +1075,41 @@ public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
                 	first_arpu AS first_recharge_arpu,
                 	today_arpu AS today_recharge_arpu,
                 	paper_arpu AS show_recharge_arpu,
-                	amount_d1 AS trend_day1,
-                	amount_d3 AS trend_day3,
-                	amount_d5 AS trend_day5,
-                	amount_d7 AS trend_day7,
-                	amount_d15 AS trend_day15,
-                	amount_m1 AS trend_month1,
-                	amount_m2 AS trend_month2,
-                	amount_m3 AS trend_month3,
-                	amount_m6 AS trend_month6,
-                	amount_sum AS trend_total,
+                       amount_d1 AS trend_day1,
+                       amount_d2 AS trend_day2,
+                       amount_d3 AS trend_day3,
+                       amount_d4 AS trend_day4,
+                       amount_d5 AS trend_day5,
+                       amount_d6 AS trend_day6,
+                       amount_d7 AS trend_day7,
+                       amount_d8 AS trend_day8,
+                       amount_d9 AS trend_day9,
+                       amount_d10 AS trend_day10,
+                       amount_d11 AS trend_day11,
+                       amount_d12 AS trend_day12,
+                       amount_d13 AS trend_day13,
+                       amount_d14 AS trend_day14,
+                       amount_d15 AS trend_day15,
+                       amount_d16 AS trend_day16,
+                       amount_d17 AS trend_day17,
+                       amount_d18 AS trend_day18,
+                       amount_d19 AS trend_day19,
+                       amount_d20 AS trend_day20,
+                       amount_d21 AS trend_day21,
+                       amount_d22 AS trend_day22,
+                       amount_d23 AS trend_day23,
+                       amount_d24 AS trend_day24,
+                       amount_d25 AS trend_day25,
+                       amount_d26 AS trend_day26,
+                       amount_d27 AS trend_day27,
+                       amount_d28 AS trend_day28,
+                       amount_d29 AS trend_day29,
+                       amount_m1 AS trend_month1,
+                       amount_m2 AS trend_month2,
+                       amount_m3 AS trend_month3,
+                       amount_m6 AS trend_month6,
+                       amount_y1 AS trend_year1,
+                       amount_sum AS trend_total,
                 	round(if(first_new_user_amount_count > 0, cost / first_new_user_amount_count, 0), 4) as first_recharge_count_cost,
                 	round(if(old_amount_count > 0, cost / old_amount_count, 0), 4) as old_user_recharge_count_cost,
                 	round(if(amount_count > 0, cost / amount_count, 0), 4) as show_recharge_count_cost,
@@ -1014,36 +1171,92 @@ public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
                 	round(if(sum(cost) > 0, sum(new_user_total_amount) / sum(cost), 0), 4) as today_recovery_rate,
                 	round(if(sum(cost) > 0, sum(buy_new_user_total_amount) / sum(cost), 0), 4) as buy_recovery_rate,
                 	sum(gross_profit) as gross_margin,
-                	round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d3, '/', 1)) / sum(cost), 0), 4) as roi_day3,
-                	round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d5, '/', 1)) / sum(cost), 0), 4) as roi_day5,
-                	round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d7, '/', 1)) / sum(cost), 0), 4) as roi_day7,
-                	round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d15, '/', 1)) / sum(cost), 0), 4) as roi_day15,
-                	round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m1, '/', 1)) / sum(cost), 0), 4) as roi_day30,
-                	round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m2, '/', 1)) / sum(cost), 0), 4) as roi_day60,
-                	round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m6, '/', 1)) / sum(cost), 0), 4) as roi_day180,
-                	round(if(sum(cost) > 0, sum(SPLIT_PART(amount_y1, '/', 1)) / sum(cost), 0), 4) as roi_year1,
-                	round(if(sum(register_num) > 0, sum(first_new_user_amount_num) / sum(register_num), 0), 4) as first_recharge_rate,
-                	round(if(sum(register_num) > 0, sum(buy_new_user_total_amount_num) / sum(register_num), 0), 4) as buy_user_recharge_rate,
-                	round(if(sum(register_num) > 0, sum(first_new_user_amount_num) / sum(amount_num), 0), 4) as new_user_recharge_rate,
-                	round(if(sum(first_new_user_amount_count) > 0, sum(first_new_user_amount) / sum(first_new_user_amount_count), 0), 4) as avg_first_user_recharge,
-                	round(if(sum(buy_new_user_total_amount_count) > 0, sum(buy_new_user_total_amount) / sum(buy_new_user_total_amount_count), 0), 4) as avg_buy_user_recharge,
-                	round(if(sum(amount_count) > 0, sum(amount) / sum(amount_count), 0), 4) as avg_show_user_recharge,
-                	round(if(sum(first_new_user_amount_num) > 0, sum(cost) / sum(first_new_user_amount_num), 0), 4) as first_recharge_cost,
-                	round(if(sum(buy_new_user_total_amount_num) > 0, sum(cost) / sum(buy_new_user_total_amount_num), 0), 4) as buy_user_recharge_cost,
-                	round(if(sum(new_user_total_amount_num) > 0, sum(reg_order_user_again) / sum(new_user_total_amount_num), 0), 4) as repeat_recharge_rate,
-                	round(if(sum(register_num) > 0, sum(new_user_total_amount) / sum(register_num), 0), 4) as new_reg_arpu,
-                	round(if(sum(first_new_user_amount_num) > 0, sum(first_new_user_amount) / sum(first_new_user_amount_num), 0), 4) as first_recharge_arpu,
-                	round(if(sum(new_user_total_amount_num) > 0, sum(new_user_total_amount) / sum(new_user_total_amount_num), 0), 4) as today_recharge_arpu,
-                	round(if(sum(amount_num) > 0, sum(amount) / sum(amount_num), 0), 4) as show_recharge_arpu,
-                	round(if(sum(first_new_user_amount_count) > 0, sum(cost) / sum(first_new_user_amount_count), 0), 4) as first_recharge_count_cost,
-                	round(if(sum(old_amount_count) > 0, sum(cost) / sum(old_amount_count), 0), 4) as old_user_recharge_count_cost,
-                	round(if(sum(amount_count) > 0, sum(cost) / sum(amount_count), 0), 4) as show_recharge_count_cost,
-                	round(if(sum(new_user_total_amount_count) > 0, sum(cost) / sum(new_user_total_amount_count), 0), 4) as new_user_recharge_count_cost,
-                	sum(hundred_user_num) as hundred_user_num,
-                	round(if(sum(hundred_user_num) > 0, sum(cost) / sum(hundred_user_num), 0), 4) as hundred_user_num_cost
-                from
-                	ads_account_agent_day
-                """;
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d1, '/', 6)) / sum(cost), 0), 4) as roi_day1,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d2, '/', 6)) / sum(cost), 0), 4) as roi_day2,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d3, '/', 6)) / sum(cost), 0), 4) as roi_day3,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d4, '/', 6)) / sum(cost), 0), 4) as roi_day4,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d5, '/', 6)) / sum(cost), 0), 4) as roi_day5,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d6, '/', 6)) / sum(cost), 0), 4) as roi_day6,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d7, '/', 6)) / sum(cost), 0), 4) as roi_day7,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d8, '/', 6)) / sum(cost), 0), 4) as roi_day8,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d9, '/', 6)) / sum(cost), 0), 4) as roi_day9,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d10, '/', 6)) / sum(cost), 0), 4) as roi_day10,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d11, '/', 6)) / sum(cost), 0), 4) as roi_day11,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d12, '/', 6)) / sum(cost), 0), 4) as roi_day12,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d13, '/', 6)) / sum(cost), 0), 4) as roi_day13,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d14, '/', 6)) / sum(cost), 0), 4) as roi_day14,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d15, '/', 6)) / sum(cost), 0), 4) as roi_day15,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d16, '/', 6)) / sum(cost), 0), 4) as roi_day16,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d17, '/', 6)) / sum(cost), 0), 4) as roi_day17,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d18, '/', 6)) / sum(cost), 0), 4) as roi_day18,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d19, '/', 6)) / sum(cost), 0), 4) as roi_day19,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d20, '/', 6)) / sum(cost), 0), 4) as roi_day20,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d21, '/', 6)) / sum(cost), 0), 4) as roi_day21,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d22, '/', 6)) / sum(cost), 0), 4) as roi_day22,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d23, '/', 6)) / sum(cost), 0), 4) as roi_day23,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d24, '/', 6)) / sum(cost), 0), 4) as roi_day24,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d25, '/', 6)) / sum(cost), 0), 4) as roi_day25,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d26, '/', 6)) / sum(cost), 0), 4) as roi_day26,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d27, '/', 6)) / sum(cost), 0), 4) as roi_day27,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d28, '/', 6)) / sum(cost), 0), 4) as roi_day28,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d29, '/', 6)) / sum(cost), 0), 4) as roi_day29,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m1, '/', 6)) / sum(cost), 0), 4) as roi_day30,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m2, '/', 6)) / sum(cost), 0), 4) as roi_day60,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m3, '/', 6)) / sum(cost), 0), 4) as roi_day90,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m6, '/', 6)) / sum(cost), 0), 4) as roi_day180,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_y1, '/', 6)) / sum(cost), 0), 4) as roi_year1,
+                         """
+                +trendDay()+
+                        """
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m1 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month1,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m2 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m2, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month2,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m3 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m3, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month3,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m6 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m6, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month6,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_y1 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_y1, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_year1,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_sum , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_sum, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_total,
+                    round(if(sum(register_num) > 0, sum(first_new_user_amount_num) / sum(register_num), 0), 4) as first_recharge_rate,
+                    round(if(sum(register_num) > 0, sum(buy_new_user_total_amount_num) / sum(register_num), 0), 4) as buy_user_recharge_rate,
+                    round(if(sum(register_num) > 0, sum(first_new_user_amount_num) / sum(amount_num), 0), 4) as new_user_recharge_rate,
+                    round(if(sum(first_new_user_amount_count) > 0, sum(first_new_user_amount) / sum(first_new_user_amount_count), 0), 4) as avg_first_user_recharge,
+                    round(if(sum(buy_new_user_total_amount_count) > 0, sum(buy_new_user_total_amount) / sum(buy_new_user_total_amount_count), 0), 4) as avg_buy_user_recharge,
+                    round(if(sum(amount_count) > 0, sum(amount) / sum(amount_count), 0), 4) as avg_show_user_recharge,
+                    round(if(sum(first_new_user_amount_num) > 0, sum(cost) / sum(first_new_user_amount_num), 0), 4) as first_recharge_cost,
+                    round(if(sum(buy_new_user_total_amount_num) > 0, sum(cost) / sum(buy_new_user_total_amount_num), 0), 4) as buy_user_recharge_cost,
+                    round(if(sum(new_user_total_amount_num) > 0, sum(reg_order_user_again) / sum(new_user_total_amount_num), 0), 4) as repeat_recharge_rate,
+                    round(if(sum(register_num) > 0, sum(new_user_total_amount) / sum(register_num), 0), 4) as new_reg_arpu,
+                    round(if(sum(first_new_user_amount_num) > 0, sum(first_new_user_amount) / sum(first_new_user_amount_num), 0), 4) as first_recharge_arpu,
+                    round(if(sum(new_user_total_amount_num) > 0, sum(new_user_total_amount) / sum(new_user_total_amount_num), 0), 4) as today_recharge_arpu,
+                    round(if(sum(amount_num) > 0, sum(amount) / sum(amount_num), 0), 4) as show_recharge_arpu,
+                    round(if(sum(first_new_user_amount_count) > 0, sum(cost) / sum(first_new_user_amount_count), 0), 4) as first_recharge_count_cost,
+                    round(if(sum(old_amount_count) > 0, sum(cost) / sum(old_amount_count), 0), 4) as old_user_recharge_count_cost,
+                    round(if(sum(amount_count) > 0, sum(cost) / sum(amount_count), 0), 4) as show_recharge_count_cost,
+                    round(if(sum(new_user_total_amount_count) > 0, sum(cost) / sum(new_user_total_amount_count), 0), 4) as new_user_recharge_count_cost,
+                    sum(hundred_user_num) as hundred_user_num,
+                    round(if(sum(hundred_user_num) > 0, sum(cost) / sum(hundred_user_num), 0), 4) as hundred_user_num_cost
+                        from
+                        	ads_account_agent_day
+                        """;
+    }
+
+    private String trendDay(){
+        StringBuilder trendDay = new StringBuilder(StringUtils.EMPTY);
+        for (int day = 1; day <= 29; day++) {
+            trendDay.append("CONCAT(")
+                    .append("SUM(CAST(SPLIT_PART(amount_d")
+                    .append(day)
+                    .append(" , '/', 1) AS DECIMAL(10, 2))), ")
+                    .append("'/', ")
+                    .append("SUM(CAST(SPLIT_PART(amount_d")
+                    .append(day)
+                    .append(", '/', 6) AS DECIMAL(10, 2))), ")
+                    .append("'/', ")
+                    .append("SUM(CAST(SPLIT_PART(amount_d")
+                    .append(day)
+                    .append(", '/', 2) AS BIGINT))")
+                    .append(") AS trend_day")
+                    .append(day).append(",");
+        }
+        return trendDay.toString();
     }
 
     /**
@@ -1110,14 +1323,49 @@ public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
                 	round(if(sum(a.cost) > 0, sum(a.first_new_user_amount) / sum(a.cost), 0), 4) as first_recovery_rate,
                 	round(if(sum(a.cost) > 0, sum(a.new_user_total_amount) / sum(a.cost), 0), 4) as today_recovery_rate,
                 	sum(a.gross_profit) as gross_margin,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_d3, '/', 1)) / sum(a.cost), 0), 4) as roi_day3,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_d5, '/', 1)) / sum(a.cost), 0), 4) as roi_day5,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_d7, '/', 1)) / sum(a.cost), 0), 4) as roi_day7,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_d15, '/', 1)) / sum(a.cost), 0), 4) as roi_day15,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_m1, '/', 1)) / sum(a.cost), 0), 4) as roi_day30,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_m2, '/', 1)) / sum(a.cost), 0), 4) as roi_day60,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_m6, '/', 1)) / sum(a.cost), 0), 4) as roi_day180,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_y1, '/', 1)) / sum(a.cost), 0), 4) as roi_year1,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d1, '/', 6)) / sum(cost), 0), 4) as roi_day1,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d2, '/', 6)) / sum(cost), 0), 4) as roi_day2,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d3, '/', 6)) / sum(cost), 0), 4) as roi_day3,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d4, '/', 6)) / sum(cost), 0), 4) as roi_day4,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d5, '/', 6)) / sum(cost), 0), 4) as roi_day5,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d6, '/', 6)) / sum(cost), 0), 4) as roi_day6,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d7, '/', 6)) / sum(cost), 0), 4) as roi_day7,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d8, '/', 6)) / sum(cost), 0), 4) as roi_day8,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d9, '/', 6)) / sum(cost), 0), 4) as roi_day9,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d10, '/', 6)) / sum(cost), 0), 4) as roi_day10,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d11, '/', 6)) / sum(cost), 0), 4) as roi_day11,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d12, '/', 6)) / sum(cost), 0), 4) as roi_day12,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d13, '/', 6)) / sum(cost), 0), 4) as roi_day13,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d14, '/', 6)) / sum(cost), 0), 4) as roi_day14,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d15, '/', 6)) / sum(cost), 0), 4) as roi_day15,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d16, '/', 6)) / sum(cost), 0), 4) as roi_day16,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d17, '/', 6)) / sum(cost), 0), 4) as roi_day17,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d18, '/', 6)) / sum(cost), 0), 4) as roi_day18,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d19, '/', 6)) / sum(cost), 0), 4) as roi_day19,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d20, '/', 6)) / sum(cost), 0), 4) as roi_day20,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d21, '/', 6)) / sum(cost), 0), 4) as roi_day21,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d22, '/', 6)) / sum(cost), 0), 4) as roi_day22,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d23, '/', 6)) / sum(cost), 0), 4) as roi_day23,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d24, '/', 6)) / sum(cost), 0), 4) as roi_day24,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d25, '/', 6)) / sum(cost), 0), 4) as roi_day25,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d26, '/', 6)) / sum(cost), 0), 4) as roi_day26,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d27, '/', 6)) / sum(cost), 0), 4) as roi_day27,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d28, '/', 6)) / sum(cost), 0), 4) as roi_day28,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d29, '/', 6)) / sum(cost), 0), 4) as roi_day29,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m1, '/', 6)) / sum(cost), 0), 4) as roi_day30,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m2, '/', 6)) / sum(cost), 0), 4) as roi_day60,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m3, '/', 6)) / sum(cost), 0), 4) as roi_day90,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m6, '/', 6)) / sum(cost), 0), 4) as roi_day180,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_y1, '/', 6)) / sum(cost), 0), 4) as roi_year1,
+                          """
+                            +trendDay()+
+                          """
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m1 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month1,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m2 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m2, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month2,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m3 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m3, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month3,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m6 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m6, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month6,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_y1 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_y1, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_year1,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_sum , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_sum, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_total,
                 	round(if(sum(a.register_num) > 0, sum(a.first_new_user_amount_num) / sum(a.register_num), 0), 4) as first_recharge_rate,
                 	round(if(sum(a.register_num) > 0, sum(a.new_user_total_amount_num) / sum(a.register_num), 0), 4) as today_recharge_rate,
                 	round(if(sum(a.first_new_user_amount_count) > 0, sum(a.first_new_user_amount) / sum(a.first_new_user_amount_count), 0), 4) as avg_first_user_recharge,
@@ -1198,14 +1446,49 @@ public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
                 	round(if(sum(a.cost) > 0, sum(a.first_new_user_amount) / sum(a.cost), 0), 4) as first_recovery_rate,
                 	round(if(sum(a.cost) > 0, sum(a.new_user_total_amount) / sum(a.cost), 0), 4) as today_recovery_rate,
                 	sum(a.gross_profit) as gross_margin,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_d3, '/', 1)) / sum(a.cost), 0), 4) as roi_day3,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_d5, '/', 1)) / sum(a.cost), 0), 4) as roi_day5,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_d7, '/', 1)) / sum(a.cost), 0), 4) as roi_day7,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_d15, '/', 1)) / sum(a.cost), 0), 4) as roi_day15,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_m1, '/', 1)) / sum(a.cost), 0), 4) as roi_day30,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_m2, '/', 1)) / sum(a.cost), 0), 4) as roi_day60,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_m6, '/', 1)) / sum(a.cost), 0), 4) as roi_day180,
-                	round(if(sum(a.cost) > 0, sum(a.SPLIT_PART(a.amount_y1, '/', 1)) / sum(a.cost), 0), 4) as roi_year1,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d1, '/', 6)) / sum(cost), 0), 4) as roi_day1,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d2, '/', 6)) / sum(cost), 0), 4) as roi_day2,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d3, '/', 6)) / sum(cost), 0), 4) as roi_day3,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d4, '/', 6)) / sum(cost), 0), 4) as roi_day4,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d5, '/', 6)) / sum(cost), 0), 4) as roi_day5,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d6, '/', 6)) / sum(cost), 0), 4) as roi_day6,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d7, '/', 6)) / sum(cost), 0), 4) as roi_day7,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d8, '/', 6)) / sum(cost), 0), 4) as roi_day8,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d9, '/', 6)) / sum(cost), 0), 4) as roi_day9,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d10, '/', 6)) / sum(cost), 0), 4) as roi_day10,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d11, '/', 6)) / sum(cost), 0), 4) as roi_day11,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d12, '/', 6)) / sum(cost), 0), 4) as roi_day12,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d13, '/', 6)) / sum(cost), 0), 4) as roi_day13,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d14, '/', 6)) / sum(cost), 0), 4) as roi_day14,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d15, '/', 6)) / sum(cost), 0), 4) as roi_day15,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d16, '/', 6)) / sum(cost), 0), 4) as roi_day16,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d17, '/', 6)) / sum(cost), 0), 4) as roi_day17,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d18, '/', 6)) / sum(cost), 0), 4) as roi_day18,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d19, '/', 6)) / sum(cost), 0), 4) as roi_day19,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d20, '/', 6)) / sum(cost), 0), 4) as roi_day20,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d21, '/', 6)) / sum(cost), 0), 4) as roi_day21,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d22, '/', 6)) / sum(cost), 0), 4) as roi_day22,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d23, '/', 6)) / sum(cost), 0), 4) as roi_day23,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d24, '/', 6)) / sum(cost), 0), 4) as roi_day24,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d25, '/', 6)) / sum(cost), 0), 4) as roi_day25,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d26, '/', 6)) / sum(cost), 0), 4) as roi_day26,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d27, '/', 6)) / sum(cost), 0), 4) as roi_day27,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d28, '/', 6)) / sum(cost), 0), 4) as roi_day28,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_d29, '/', 6)) / sum(cost), 0), 4) as roi_day29,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m1, '/', 6)) / sum(cost), 0), 4) as roi_day30,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m2, '/', 6)) / sum(cost), 0), 4) as roi_day60,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m3, '/', 6)) / sum(cost), 0), 4) as roi_day90,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_m6, '/', 6)) / sum(cost), 0), 4) as roi_day180,
+                         round(if(sum(cost) > 0, sum(SPLIT_PART(amount_y1, '/', 6)) / sum(cost), 0), 4) as roi_year1,
+                        """
+                +trendDay()+
+                        """
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m1 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month1,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m2 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m2, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month2,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m3 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m3, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month3,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_m6 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m6, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_month6,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_y1 , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_y1, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_year1,
+                         CONCAT(SUM(CAST(SPLIT_PART(amount_sum , '/', 1) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_sum, '/', 6) AS DECIMAL(10, 2))),'/',SUM(CAST(SPLIT_PART(amount_m1, '/', 2) AS BIGINT))) AS trend_total,
                 	round(if(sum(a.register_num) > 0, sum(a.first_new_user_amount_num) / sum(a.register_num), 0), 4) as first_recharge_rate,
                 	round(if(sum(a.register_num) > 0, sum(a.new_user_total_amount_num) / sum(a.register_num), 0), 4) as today_recharge_rate,
                 	round(if(sum(a.first_new_user_amount_count) > 0, sum(a.first_new_user_amount) / sum(a.first_new_user_amount_count), 0), 4) as avg_first_user_recharge,