Переглянути джерело

修改内容:游戏数据-游戏,用户排行榜;订单明细;推广每日数据

shishaosong 2 роки тому
батько
коміт
b178d93fef

+ 0 - 23
game-data/game-data-serve/pom.xml

@@ -139,27 +139,4 @@
             <version>1.2.6</version>
         </dependency>
     </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>com.github.shalousun</groupId>
-                <artifactId>smart-doc-maven-plugin</artifactId>
-                <version>2.6.0</version>
-                <configuration>
-                    <!--指定生成文档使用的配置文件-->
-                    <configFile>./src/main/resources/smart-doc.json</configFile>
-                </configuration>
-                <executions>
-                    <execution>
-                        <!--不需要在编译项目时自动生成文档可注释phase-->
-                        <phase>compile</phase>
-                        <goals>
-                            <goal>html</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
 </project>

+ 195 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/PromoteAgentStatDay.java

@@ -589,5 +589,200 @@ public class PromoteAgentStatDay implements Serializable {
      */
     private Long adPlanCountToday;
 
+    /**
+     * 3日新用户累计充值金额
+     */
+    private BigDecimal newUserRechargeMoneyDay3;
+
+    /**
+     * 5日新用户累计充值金额
+     */
+    private BigDecimal newUserRechargeMoneyDay5;
+
+    /**
+     * 7日新用户累计充值金额
+     */
+    private BigDecimal newUserRechargeMoneyDay7;
+
+    /**
+     * 15日新用户累计充值金额
+     */
+    private BigDecimal newUserRechargeMoneyDay15;
+
+    /**
+     * 30日新用户累计充值金额
+     */
+    private BigDecimal newUserRechargeMoneyDay30;
+
+    /**
+     * 60日新用户累计充值金额
+     */
+    private BigDecimal newUserRechargeMoneyDay60;
+
+    /**
+     * 90日新用户累计充值金额
+     */
+    private BigDecimal newUserRechargeMoneyDay90;
+
+    /**
+     * 180日新用户累计充值金额
+     */
+    private BigDecimal newUserRechargeMoneyDay180;
+
+    /**
+     * 365日新用户累计充值金额
+     */
+    private BigDecimal newUserRechargeMoneyDay365;
+
+    /**
+     * 1日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay1;
+
+    /**
+     * 2日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay2;
+
+    /**
+     * 3日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay3;
+
+    /**
+     * 4日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay4;
+
+    /**
+     * 5日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay5;
+
+    /**
+     * 6日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay6;
+
+    /**
+     * 7日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay7;
+
+    /**
+     * 14日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay14;
+
+    /**
+     * 15日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay15;
+
+    /**
+     * 29日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay29;
+
+    /**
+     * 30日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay30;
+
+    /**
+     * 59日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay59;
+
+    /**
+     * 60日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay60;
+
+    /**
+     * 89日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay89;
+
+    /**
+     * 90日新用户当日充值
+     */
+    private BigDecimal newUserRechargeMoneyDcDay90;
+
+    /**
+     * 1日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay1;
+
+    /**
+     * 2日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay2;
+
+    /**
+     * 3日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay3;
+
+    /**
+     * 4日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay4;
+
+    /**
+     * 5日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay5;
+
+    /**
+     * 6日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay6;
+
+    /**
+     * 7日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay7;
+
+    /**
+     * 14日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay14;
+
+    /**
+     * 15日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay15;
+
+    /**
+     * 29日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay29;
+
+    /**
+     * 30日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay30;
+
+    /**
+     * 59日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay59;
+
+    /**
+     * 60日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay60;
+
+    /**
+     * 89日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay89;
+
+    /**
+     * 90日新用户当日人数
+     */
+    private Long newUserRechargeUserDcDay90;
+
 
 }

+ 124 - 10
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GamePromoteVO.java

@@ -78,7 +78,7 @@ public class GamePromoteVO implements Serializable {
     @ApiModelProperty(notes = "转化量")
     private Long convertCount;
 
-    @ApiModelProperty(notes = "转化率(目标转化率)=转化量/点击量*100%")
+    @ApiModelProperty(notes = "转化率(目标转化率)=转化量/点击量100%")
     private BigDecimal convertRate;
 
     @ApiModelProperty(notes = "平均转化成本=实际消耗/转化量")
@@ -90,13 +90,13 @@ public class GamePromoteVO implements Serializable {
     @ApiModelProperty(notes = "深度转化成本=实际消耗/深度转化量")
     private BigDecimal deepConvertCost;
 
-    @ApiModelProperty(notes = "深度转化率=深度转化量/转化量*100%")
+    @ApiModelProperty(notes = "深度转化率=深度转化量/转化量100%")
     private BigDecimal deepConvertRate;
 
-    @ApiModelProperty(notes = "千次曝光成本=实际消耗/曝光量*1000")
+    @ApiModelProperty(notes = "千次曝光成本=实际消耗/曝光量1000")
     private BigDecimal thousandViewCost;
 
-    @ApiModelProperty(notes = "点击率=点击量/曝光量*100%")
+    @ApiModelProperty(notes = "点击率=点击量/曝光量100%")
     private BigDecimal clickRate;
 
     @ApiModelProperty(notes = "平均点击均价=实际消耗/点击量")
@@ -135,7 +135,7 @@ public class GamePromoteVO implements Serializable {
     @ApiModelProperty(notes = "应用激活成本=实际消耗/激活数")
     private BigDecimal appActiveCost;
 
-    @ApiModelProperty(notes = "应用激活率=激活数/点击数*100%")
+    @ApiModelProperty(notes = "应用激活率=激活数/点击数100%")
     private BigDecimal appActiveRate;
 
     @ApiModelProperty(notes = "注册人数")
@@ -177,7 +177,7 @@ public class GamePromoteVO implements Serializable {
     @ApiModelProperty(notes = "新用户创角率=新用户累计创角人数/注册人数")
     private BigDecimal firstUserCreateRoleRate;
 
-    @ApiModelProperty(notes = "当天激活活跃用户LTV=(新用户累计充值/Σ活跃人数)*(累计充值人数/Σ活跃人数)")
+    @ApiModelProperty(notes = "当天激活活跃用户LTV=(新用户累计充值/Σ活跃人数)(累计充值人数/Σ活跃人数)")
     private BigDecimal todayActiveUserLTV;
 
     @ApiModelProperty(notes = "游戏当日广告变现ROI=当日LTV/所选时间的消耗")
@@ -318,13 +318,13 @@ public class GamePromoteVO implements Serializable {
     @ApiModelProperty(notes = "付费趋势:2个月")
     private RechargeTrendVO twoMonthRechargeTrend;
 
-    @ApiModelProperty(notes = "付费趋势:个月")
+    @ApiModelProperty(notes = "付费趋势:3个月")
     private RechargeTrendVO threeMonthRechargeTrend;
 
     @ApiModelProperty(notes = "付费趋势:总")
     private RechargeTrendVO totalRechargeTrend;
 
-    @ApiModelProperty(notes = "LTV数据:1天--(充值金额/活跃人数)*(充值人数/活跃人数)")
+    @ApiModelProperty(notes = "LTV数据:1天--(充值金额/活跃人数)(充值人数/活跃人数)")
     private BigDecimal oneDayLTV;
 
     @ApiModelProperty(notes = "LTV数据:3天")
@@ -342,7 +342,7 @@ public class GamePromoteVO implements Serializable {
     @ApiModelProperty(notes = "LTV数据:2个月")
     private BigDecimal twoMonthLTV;
 
-    @ApiModelProperty(notes = "LTV数据:个月")
+    @ApiModelProperty(notes = "LTV数据:3个月")
     private BigDecimal threeMonthLTV;
 
     @ApiModelProperty(notes = "LTV数据:总")
@@ -366,9 +366,123 @@ public class GamePromoteVO implements Serializable {
     @ApiModelProperty(notes = "留存率:2个月")
     private RetentionTrendVO twoMonthRetentionRate;
 
-    @ApiModelProperty(notes = "留存率:个月")
+    @ApiModelProperty(notes = "留存率:3个月")
     private RetentionTrendVO threeMonthRetentionRate;
 
     @ApiModelProperty(notes = "留存率:总")
     private RetentionTrendVO totalRetentionRate;
+    
+    @ApiModelProperty(notes = "--非展示字段--:1日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay1;
+    
+    @ApiModelProperty(notes = "--非展示字段--:2日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay2;
+    
+    @ApiModelProperty(notes = "--非展示字段--:3日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay3;
+    
+    @ApiModelProperty(notes = "--非展示字段--:4日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay4;
+
+    @ApiModelProperty(notes = "--非展示字段--:5日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay5;
+
+    @ApiModelProperty(notes = "--非展示字段--:6日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay6;
+
+    @ApiModelProperty(notes = "--非展示字段--:7日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay7;
+
+    @ApiModelProperty(notes = "--非展示字段--:14日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay14;
+
+    @ApiModelProperty(notes = "--非展示字段--:15日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay15;
+
+    @ApiModelProperty(notes = "--非展示字段--:29日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay29;
+
+    @ApiModelProperty(notes = "--非展示字段--:30日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay30;
+
+    @ApiModelProperty(notes = "--非展示字段--:59日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay59;
+
+    @ApiModelProperty(notes = "--非展示字段--:60日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay60;
+
+    @ApiModelProperty(notes = "--非展示字段--:89日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay89;
+
+    @ApiModelProperty(notes = "--非展示字段--:90日新用户当日充值")
+    private BigDecimal newUserRechargeMoneyDcDay90;
+
+    @ApiModelProperty(notes = "--非展示字段--:1日新用户当日人数")
+    private Long newUserRechargeUserDcDay1;
+
+    @ApiModelProperty(notes = "--非展示字段--:2日新用户当日人数")
+    private Long newUserRechargeUserDcDay2;
+
+    @ApiModelProperty(notes = "--非展示字段--:3日新用户当日人数")
+    private Long newUserRechargeUserDcDay3;
+
+    @ApiModelProperty(notes = "--非展示字段--:4日新用户当日人数")
+    private Long newUserRechargeUserDcDay4;
+
+    @ApiModelProperty(notes = "--非展示字段--:5日新用户当日人数")
+    private Long newUserRechargeUserDcDay5;
+
+    @ApiModelProperty(notes = "--非展示字段--:6日新用户当日人数")
+    private Long newUserRechargeUserDcDay6;
+
+    @ApiModelProperty(notes = "--非展示字段--:7日新用户当日人数")
+    private Long newUserRechargeUserDcDay7;
+
+    @ApiModelProperty(notes = "--非展示字段--:14日新用户当日人数")
+    private Long newUserRechargeUserDcDay14;
+
+    @ApiModelProperty(notes = "--非展示字段--:15日新用户当日人数")
+    private Long newUserRechargeUserDcDay15;
+
+    @ApiModelProperty(notes = "--非展示字段--:29日新用户当日人数")
+    private Long newUserRechargeUserDcDay29;
+
+    @ApiModelProperty(notes = "--非展示字段--:30日新用户当日人数")
+    private Long newUserRechargeUserDcDay30;
+
+    @ApiModelProperty(notes = "--非展示字段--:59日新用户当日人数")
+    private Long newUserRechargeUserDcDay59;
+
+    @ApiModelProperty(notes = "--非展示字段--:60日新用户当日人数")
+    private Long newUserRechargeUserDcDay60;
+    
+    @ApiModelProperty(notes = "--非展示字段--:89日新用户当日人数")
+    private Long newUserRechargeUserDcDay89;
+    
+    @ApiModelProperty(notes = "--非展示字段--:90日新用户当日人数")
+    private Long newUserRechargeUserDcDay90;
+
+    @ApiModelProperty(notes = "--非展示字段--:3日新用户累计充值金额")
+    private BigDecimal newUserRechargeMoneyDay3;
+
+    @ApiModelProperty(notes = "--非展示字段--:5日新用户累计充值金额")
+    private BigDecimal newUserRechargeMoneyDay5;
+
+    @ApiModelProperty(notes = "--非展示字段--:7日新用户累计充值金额")
+    private BigDecimal newUserRechargeMoneyDay7;
+
+    @ApiModelProperty(notes = "--非展示字段--:15日新用户累计充值金额")
+    private BigDecimal newUserRechargeMoneyDay15;
+
+    @ApiModelProperty(notes = "--非展示字段--:30日新用户累计充值金额")
+    private BigDecimal newUserRechargeMoneyDay30;
+
+    @ApiModelProperty(notes = "--非展示字段--:60日新用户累计充值金额")
+    private BigDecimal newUserRechargeMoneyDay60;
+
+    @ApiModelProperty(notes = "--非展示字段--:90日新用户累计充值金额")
+    private BigDecimal newUserRechargeMoneyDay90;
+
+    @ApiModelProperty(notes = "--非展示字段--:所有消耗")
+    private BigDecimal totalCost;
 }

+ 1 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameOrderServiceImpl.java

@@ -45,7 +45,7 @@ public class GameOrderServiceImpl extends ServiceImpl<GameOrderMapper, GameOrder
     @Override
     public GameOrderDetailVO getOrderDetail(GameOrderDetailDTO dto) {
         Long sysUserId = SecurityUtil.isAdmin() ? null : SecurityUtil.getUserId();
-        sysUserId = null == dto.getSysUserId() ? sysUserId : dto.getSysUserId();
+        sysUserId = null == sysUserId ? null : dto.getSysUserId();
         dto.setSysUserId(sysUserId);
         IPage<OrderDetailVO> orderDetail = getBaseMapper().getOrderDetail(dto.toPage(), dto);
         TotalDataVO amountSum = getBaseMapper().getAmountSum(dto);

+ 1 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameServiceImpl.java

@@ -36,7 +36,7 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements IG
     @Override
     public IPage<GameRankingRechargeGameVO> getGameRechargeRank(GameRankingDTO dto) {
         Long sysUserId = SecurityUtil.isAdmin() ? null : SecurityUtil.getUserId();
-        sysUserId = null == dto.getSysUserId() ? sysUserId : dto.getSysUserId();
+        sysUserId = null == sysUserId ? null : dto.getSysUserId();
         dto.setSysUserId(sysUserId);
         IPage<GameRankingRechargeGameVO> gameRankingRechargeVO = getBaseMapper().getGameRankingRechargeVO(dto.toPage(), dto);
         gameRankingRechargeVO.getRecords().forEach(item -> {

+ 1 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameUserServiceImpl.java

@@ -35,7 +35,7 @@ public class GameUserServiceImpl extends ServiceImpl<GameUserMapper, GameUser> i
     @Override
     public IPage<GameRankingRechargeUserVO> getUserRechargeRank(GameRankingDTO dto) {
         Long sysUserId = SecurityUtil.isAdmin() ? null : SecurityUtil.getUserId();
-        sysUserId = null == dto.getSysUserId() ? sysUserId : dto.getSysUserId();
+        sysUserId = null == sysUserId ? null : dto.getSysUserId();
         dto.setSysUserId(sysUserId);
         IPage<GameRankingRechargeUserVO> gameRankingRechargeVO = gameUserStatDayMapper.getGameUserRankingRechargeVO(dto.toPage(), dto);
         gameRankingRechargeVO.getRecords().forEach(item -> {

+ 93 - 2
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PromoteAgentStatDayServiceImpl.java

@@ -6,10 +6,14 @@ import com.zanxiang.game.data.serve.pojo.dto.GamePromoteDTO;
 import com.zanxiang.game.data.serve.pojo.entity.PromoteAgentStatDay;
 import com.zanxiang.game.data.serve.dao.mapper.PromoteAgentStatDayMapper;
 import com.zanxiang.game.data.serve.pojo.vo.GamePromoteVO;
+import com.zanxiang.game.data.serve.pojo.vo.RechargeTrendVO;
 import com.zanxiang.game.data.serve.service.IPromoteAgentStatDayService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
 /**
  * <p>
  * 游戏推广渠道日报表 服务实现类
@@ -24,9 +28,96 @@ public class PromoteAgentStatDayServiceImpl extends ServiceImpl<PromoteAgentStat
     @Override
     public IPage<GamePromoteVO> getDayData(GamePromoteDTO dto) {
         Long sysUserId = SecurityUtil.isAdmin() ? null : SecurityUtil.getUserId();
-        sysUserId = null == dto.getSysUserId() ? sysUserId : dto.getSysUserId();
+        sysUserId = null == sysUserId ? null : dto.getSysUserId();
         dto.setSysUserId(sysUserId);
-        IPage<GamePromoteVO> page = getBaseMapper().getDayDate(dto.toPage(),dto);
+        IPage<GamePromoteVO> page = getBaseMapper().getDayDate(dto.toPage(), dto);
+        page.getRecords().forEach(item -> {
+            //回收趋势
+            item.setOneDayRechargeTrend(RechargeTrendVO.builder()
+                    .rechargeCount(item.getNewUserRechargeUserDcDay1())
+                    .rechargeMoney(item.getNewUserRechargeMoneyDcDay1())
+                    .addPayBack(BigDecimal.valueOf(0))
+                    .payBack(BigDecimal.valueOf(0))
+                    .newUserRechargeRate(item.getNewUserRechargeMoneyDcDay1().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDcDay1().divide(item.getNewUserRechargeMoneyDcDay1(), 4, RoundingMode.DOWN))
+                    .build());
+
+            item.setThreeDayRechargeTrend(RechargeTrendVO.builder()
+                    .rechargeCount(item.getNewUserRechargeUserDcDay3())
+                    .rechargeMoney(item.getNewUserRechargeMoneyDcDay3())
+                    .addPayBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : (item.getNewUserRechargeMoneyDcDay3().subtract(item.getNewUserRechargeMoneyDcDay2())).divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .payBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDcDay3().divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .newUserRechargeRate(item.getNewUserRechargeMoneyDcDay1().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDay3().divide(item.getNewUserRechargeMoneyDcDay1(), 4, RoundingMode.DOWN))
+                    .build());
+
+            item.setSevenDayRechargeTrend(RechargeTrendVO.builder()
+                    .rechargeCount(item.getNewUserRechargeUserDcDay7())
+                    .rechargeMoney(item.getNewUserRechargeMoneyDcDay7())
+                    .addPayBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : (item.getNewUserRechargeMoneyDcDay7().subtract(item.getNewUserRechargeMoneyDcDay6())).divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .payBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDcDay7().divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .newUserRechargeRate(item.getNewUserRechargeMoneyDcDay1().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDay7().divide(item.getNewUserRechargeMoneyDcDay1(), 4, RoundingMode.DOWN))
+                    .build());
+
+            item.setFifteenDayRechargeTrend(RechargeTrendVO.builder()
+                    .rechargeCount(item.getNewUserRechargeUserDcDay15())
+                    .rechargeMoney(item.getNewUserRechargeMoneyDcDay15())
+                    .addPayBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : (item.getNewUserRechargeMoneyDcDay15().subtract(item.getNewUserRechargeMoneyDcDay14())).divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .payBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDcDay15().divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .newUserRechargeRate(item.getNewUserRechargeMoneyDcDay1().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDay15().divide(item.getNewUserRechargeMoneyDcDay1(), 4, RoundingMode.DOWN))
+                    .build());
+
+            item.setOneMonthRechargeTrend(RechargeTrendVO.builder()
+                    .rechargeCount(item.getNewUserRechargeUserDcDay30())
+                    .rechargeMoney(item.getNewUserRechargeMoneyDcDay30())
+                    .addPayBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : (item.getNewUserRechargeMoneyDcDay30().subtract(item.getNewUserRechargeMoneyDcDay29())).divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .payBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDcDay30().divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .newUserRechargeRate(item.getNewUserRechargeMoneyDcDay1().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDay30().divide(item.getNewUserRechargeMoneyDcDay1(), 4, RoundingMode.DOWN))
+                    .build());
+
+            item.setTwoMonthRechargeTrend(RechargeTrendVO.builder()
+                    .rechargeCount(item.getNewUserRechargeUserDcDay60())
+                    .rechargeMoney(item.getNewUserRechargeMoneyDcDay60())
+                    .addPayBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : (item.getNewUserRechargeMoneyDcDay60().subtract(item.getNewUserRechargeMoneyDcDay59())).divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .payBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDcDay60().divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .newUserRechargeRate(item.getNewUserRechargeMoneyDcDay1().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDay60().divide(item.getNewUserRechargeMoneyDcDay1(), 4, RoundingMode.DOWN))
+                    .build());
+
+            item.setThreeMonthRechargeTrend(RechargeTrendVO.builder()
+                    .rechargeCount(item.getNewUserRechargeUserDcDay90())
+                    .rechargeMoney(item.getNewUserRechargeMoneyDcDay90())
+                    .addPayBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : (item.getNewUserRechargeMoneyDcDay90().subtract(item.getNewUserRechargeMoneyDcDay89())).divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .payBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDcDay90().divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .newUserRechargeRate(item.getNewUserRechargeMoneyDcDay1().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoneyDay90().divide(item.getNewUserRechargeMoneyDcDay1(), 4, RoundingMode.DOWN))
+                    .build());
+
+            item.setThreeMonthRechargeTrend(RechargeTrendVO.builder()
+                    .rechargeCount(item.getNewUserRechargeUser())
+                    .rechargeMoney(item.getNewUserRechargeMoney())
+                    .addPayBack(item.getTotalCost().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : (item.getNewUserRechargeMoneyDcDay90().subtract(item.getNewUserRechargeMoneyDcDay89())).divide(item.getTotalCost(), 4, RoundingMode.DOWN))
+                    .payBack(BigDecimal.valueOf(0))
+                    .newUserRechargeRate(item.getNewUserRechargeMoneyDcDay1().compareTo(BigDecimal.ZERO) == 0 ?
+                            BigDecimal.valueOf(0) : item.getNewUserRechargeMoney().divide(item.getNewUserRechargeMoneyDcDay1(), 4, RoundingMode.DOWN))
+                    .build());
+        });
         return page;
     }
 }

+ 49 - 3
game-data/game-data-serve/src/main/resources/mapper/PromoteAgentStatDayMapper.xml

@@ -74,7 +74,14 @@
         if(costReal == 0,0,floor(toFloat64(firstUserRechargeMoney)/toFloat64(costReal), 4)) as firstRecoveryRate,
         if(costReal == 0,0,floor(toFloat64(newUserRechargeMoney)/toFloat64(costReal), 4)) as buyRecoveryRate,
         newUserRechargeMoney-costReal as grossMargin,
-<!--        threeDayROI-->
+        if(costReal == 0,0,floor(toFloat64(new_user_recharge_money_day3)/toFloat64(costReal), 4)) as threeDayROI,
+        if(costReal == 0,0,floor(toFloat64(new_user_recharge_money_day5)/toFloat64(costReal), 4)) as fiveDayROI,
+        if(costReal == 0,0,floor(toFloat64(new_user_recharge_money_day7)/toFloat64(costReal), 4)) as sevenDayROI,
+        if(costReal == 0,0,floor(toFloat64(new_user_recharge_money_day15)/toFloat64(costReal), 4)) as fifteenDayROI,
+        if(costReal == 0,0,floor(toFloat64(new_user_recharge_money_day30)/toFloat64(costReal), 4)) as thirtyDayROI,
+        if(costReal == 0,0,floor(toFloat64(new_user_recharge_money_day60)/toFloat64(costReal), 4)) as sixtyDayROI,
+        if(costReal == 0,0,floor(toFloat64(new_user_recharge_money_day180)/toFloat64(costReal), 4)) as oneHundredAndEightyDayROI,
+        if(costReal == 0,0,floor(toFloat64(new_user_recharge_money_day365)/toFloat64(costReal), 4)) as oneYearROI,
         if(regUserCount == 0,0,floor(firstUserRechargeUser/regUserCount, 4)) as firstRechargeRate,
         if(regUserCount == 0,0,floor(newUserRechargeUser/regUserCount, 4)) as buyUserRechargeRate,
         if(showRechargeUser == 0,0,floor(firstUserRechargeUser/showRechargeUser, 4)) as newUserRechargeRate,
@@ -90,8 +97,47 @@
         if(activeUserCount == 0,0,floor(toFloat64(firstUserRechargeMoney)/activeUserCount, 4)) as activeARPU,
         if(firstUserRechargeUser == 0,0,floor(toFloat64(firstUserRechargeMoney)/firstUserRechargeUser, 4)) as firstRechargeARPU,
         if(newUserRechargeUser == 0,0,floor(toFloat64(newUserRechargeMoney)/newUserRechargeUser, 4)) as todayRechargeARPU,
-        if(showRechargeUser == 0,0,floor(toFloat64(showRechargeMoney)/showRechargeUser, 4)) as showRechargeARPU
-<!--        oneDayRechargeTrend-->
+        if(showRechargeUser == 0,0,floor(toFloat64(showRechargeMoney)/showRechargeUser, 4)) as showRechargeARPU,
+        new_user_recharge_money_dc_day1 as newUserRechargeMoneyDcDay1,
+        new_user_recharge_money_dc_day2 as newUserRechargeMoneyDcDay2,
+        new_user_recharge_money_dc_day3 as newUserRechargeMoneyDcDay3,
+        new_user_recharge_money_dc_day4 as newUserRechargeMoneyDcDay4,
+        new_user_recharge_money_dc_day5 as newUserRechargeMoneyDcDay5,
+        new_user_recharge_money_dc_day6 as newUserRechargeMoneyDcDay6,
+        new_user_recharge_money_dc_day7 as newUserRechargeMoneyDcDay7,
+        new_user_recharge_money_dc_day14 as newUserRechargeMoneyDcDay14,
+        new_user_recharge_money_dc_day15 as newUserRechargeMoneyDcDay15,
+        new_user_recharge_money_dc_day29 as newUserRechargeMoneyDcDay29,
+        new_user_recharge_money_dc_day30 as newUserRechargeMoneyDcDay30,
+        new_user_recharge_money_dc_day59 as newUserRechargeMoneyDcDay59,
+        new_user_recharge_money_dc_day60 as newUserRechargeMoneyDcDay60,
+        new_user_recharge_money_dc_day89 as newUserRechargeMoneyDcDay89,
+        new_user_recharge_money_dc_day90 as newUserRechargeMoneyDcDay90,
+        new_user_recharge_user_dc_day1 as newUserRechargeUserDcDay1,
+        new_user_recharge_user_dc_day2 as newUserRechargeUserDcDay2,
+        new_user_recharge_user_dc_day3 as newUserRechargeUserDcDay3,
+        new_user_recharge_user_dc_day4 as newUserRechargeUserDcDay4,
+        new_user_recharge_user_dc_day5 as newUserRechargeUserDcDay5,
+        new_user_recharge_user_dc_day6 as newUserRechargeUserDcDay6,
+        new_user_recharge_user_dc_day7 as newUserRechargeUserDcDay7,
+        new_user_recharge_user_dc_day14 as newUserRechargeUserDcDay14,
+        new_user_recharge_user_dc_day15 as newUserRechargeUserDcDay15,
+        new_user_recharge_user_dc_day29 as newUserRechargeUserDcDay29,
+        new_user_recharge_user_dc_day30 as newUserRechargeUserDcDay30,
+        new_user_recharge_user_dc_day59 as newUserRechargeUserDcDay59,
+        new_user_recharge_user_dc_day60 as newUserRechargeUserDcDay60,
+        new_user_recharge_user_dc_day89 as newUserRechargeUserDcDay89,
+        new_user_recharge_user_dc_day90 as newUserRechargeUserDcDay90,
+        new_user_recharge_money_day3 as newUserRechargeMoneyDay3,
+        new_user_recharge_money_day5 as newUserRechargeMoneyDay5,
+        new_user_recharge_money_day7 as newUserRechargeMoneyDay7,
+        new_user_recharge_money_day15 as newUserRechargeMoneyDay15,
+        new_user_recharge_money_day30 as newUserRechargeMoneyDay30,
+        new_user_recharge_money_day60 as newUserRechargeMoneyDay60,
+        new_user_recharge_money_day90 as newUserRechargeMoneyDay90,
+        cost as totalCost
+<!--        oneDayLTV-->
+<!--        oneDayRetentionRate-->
         from t_promote_agent_stat_day
         <where>
             <if test="dto.sysUserId != null and dto.sysUserId != ''">

+ 0 - 7
game-data/game-data-serve/src/main/resources/smart-doc.json

@@ -1,7 +0,0 @@
-{
-  "serverUrl": "http://127.0.0.1",
-  "isStrict": false,
-  "allInOne": true,
-  "outPath": "src/main/resources/static/doc",
-  "projectName": "game-data"
-}