ソースを参照

修改内容:留存数据修改逻辑

lth 1 年間 前
コミット
3c899f1848

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

@@ -105,14 +105,14 @@ public class GameDataController {
     }
 
     @ApiOperation(value = "游戏首日复充")
-    //@PreAuthorize(permissionKey = "gameData:adsGameDay:firstNewUserAgain")
+    @PreAuthorize(permissionKey = "gameData:adsGameDay:firstNewUserAgain")
     @PostMapping("/firstNewUser/again")
     public ResultVO<Page<GameDataFirstNewUserAgainVO>> getFirstNewUserAgain(@RequestBody GameDataFirstNewUserAgainDTO dto) {
         return ResultVO.ok(gameDataService.getFirstNewUserAgain(dto));
     }
 
     @ApiOperation(value = "游戏首日复充总计")
-    //@PreAuthorize(permissionKey = "gameData:adsGameDay:firstNewUserAgainTotal")
+    @PreAuthorize(permissionKey = "gameData:adsGameDay:firstNewUserAgainTotal")
     @PostMapping("/firstNewUser/again/total")
     public ResultVO<GameDataFirstNewUserAgainTotalVO> getFirstNewUserAgainTotal(@RequestBody GameDataFirstNewUserAgainTotalDTO dto) {
         return ResultVO.ok(gameDataService.getFirstNewUserAgainTotal(dto));

+ 52 - 21
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/IActiveDataServiceImpl.java

@@ -436,11 +436,19 @@ public class IActiveDataServiceImpl implements IActiveDataService {
             //处理注册留存数据
             activeDataDayNFieldMapList.forEach(dayNFieldMapList -> {
                 try {
-                    String[] temps = ((String) dayNFieldMapList.getT1().get(vo)).split("/");
-                    dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
-                            .activeNum(Long.valueOf(temps[0]))
-                            .regActiveRate(new BigDecimal(temps[1]))
-                            .build());
+                    String dataStr = (String)dayNFieldMapList.getT1().get(vo);
+                    if (StringUtils.isNotBlank(dataStr)) {
+                        String[] temps = dataStr.split("/");
+                        dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
+                                .activeNum(Long.valueOf(temps[0]))
+                                .regActiveRate(new BigDecimal(temps[1]))
+                                .build());
+                    } else {
+                        dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
+                                .activeNum(0L)
+                                .regActiveRate(BigDecimal.ZERO)
+                                .build());
+                    }
                 } catch (IllegalAccessException e) {
                     e.printStackTrace();
                 }
@@ -450,14 +458,26 @@ public class IActiveDataServiceImpl implements IActiveDataService {
             activeDataDayNFieldMapList.forEach(dayNFieldMapList -> {
                 try {
                     //  第N天的新增创角用户,第N天的老活跃用户,第N天的累计创角用户,第N天的累计活跃用户,创角留存率
-                    String[] temps = ((String) dayNFieldMapList.getT1().get(vo)).split("/");
-                    dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
-                            .newUserAmountNum(Long.valueOf(temps[0]))
-                            .oldActiveUserNum(Long.valueOf(temps[1]))
-                            .newUserTotalAmountNum(Long.valueOf(temps[2]))
-                            .newActiveUserTotalNum(Long.valueOf(temps[3]))
-                            .amountActiveRate(new BigDecimal(temps[4]))
-                            .build());
+                    String dataStr = (String)dayNFieldMapList.getT1().get(vo);
+                    //判断取出的字符串数据是否为空
+                    if (StringUtils.isNotBlank(dataStr)) {
+                        String[] temps = dataStr.split("/");
+                        dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
+                                .newUserAmountNum(Long.valueOf(temps[0]))
+                                .oldActiveUserNum(Long.valueOf(temps[1]))
+                                .newUserTotalAmountNum(Long.valueOf(temps[2]))
+                                .newActiveUserTotalNum(Long.valueOf(temps[3]))
+                                .amountActiveRate(new BigDecimal(temps[4]))
+                                .build());
+                    } else {
+                        dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
+                                .newUserAmountNum(0L)
+                                .oldActiveUserNum(0L)
+                                .newUserTotalAmountNum(0L)
+                                .newActiveUserTotalNum(0L)
+                                .amountActiveRate(BigDecimal.ZERO)
+                                .build());
+                    }
                 } catch (IllegalAccessException e) {
                     e.printStackTrace();
                 }
@@ -467,14 +487,25 @@ public class IActiveDataServiceImpl implements IActiveDataService {
             activeDataDayNFieldMapList.forEach(dayNFieldMapList -> {
                 try {
                     //第N天的新增付费用户,第N天的老活跃用户,第N天的累计付费用户,第N天的累计活跃用户,付费留存率
-                    String[] temps = ((String) dayNFieldMapList.getT1().get(vo)).split("/");
-                    dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
-                            .roleNewUserNum(Long.valueOf(temps[0]))
-                            .roleOldActiveUserNum(Long.valueOf(temps[1]))
-                            .roleNewUserTotalNum(Long.valueOf(temps[2]))
-                            .roleNewActiveUserTotalNum(Long.valueOf(temps[3]))
-                            .roleActiveRate(new BigDecimal(temps[4]))
-                            .build());
+                    String dataStr = (String)dayNFieldMapList.getT1().get(vo);
+                    if (StringUtils.isNotBlank(dataStr)) {
+                        String[] temps = dataStr.split("/");
+                        dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
+                                .roleNewUserNum(Long.valueOf(temps[0]))
+                                .roleOldActiveUserNum(Long.valueOf(temps[1]))
+                                .roleNewUserTotalNum(Long.valueOf(temps[2]))
+                                .roleNewActiveUserTotalNum(Long.valueOf(temps[3]))
+                                .roleActiveRate(new BigDecimal(temps[4]))
+                                .build());
+                    } else {
+                        dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
+                                .roleNewUserNum(0L)
+                                .roleOldActiveUserNum(0L)
+                                .roleNewUserTotalNum(0L)
+                                .roleNewActiveUserTotalNum(0L)
+                                .roleActiveRate(BigDecimal.ZERO)
+                                .build());
+                    }
                 } catch (IllegalAccessException e) {
                     e.printStackTrace();
                 }