瀏覽代碼

:fix:GS区服增加R人数字段

zhangxianyu 1 年之前
父節點
當前提交
331937a275

+ 18 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GSServerRetentionVO.java

@@ -49,4 +49,22 @@ public class GSServerRetentionVO {
      * 付费总人数
      */
     private String totalAmountNum;
+    /**
+     * 小r人数
+     */
+    private String smallRNum;
+    /**
+     * 中r人数
+     */
+    private String mediumRNum;
+    /**
+     * 大r人数
+     */
+    private String largeRNum;
+    /**
+     * 超大r人数
+     */
+    private String superRNum;
+
+
 }

+ 25 - 9
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameServerServiceImpl.java

@@ -551,7 +551,7 @@ public class GameServerServiceImpl implements IGameServerService {
                         GSGameServerDayRVO gsGameServerDayRVO = rDataList.get(i);
                         rData = getRDataStr(gsGameServerDayRVO, vo);
                     } else {
-                        rData = "0/0/0/0";
+                        rData = "0/0/0/0/0/0/0/0";
                     }
                     value += "/" + rData;
 //                    field.set(vo, value + "/" + rData);
@@ -564,7 +564,12 @@ public class GameServerServiceImpl implements IGameServerService {
                             .smallR(split[4])
                             .mediumR(split[5])
                             .largeR(split[6])
-                            .superR(split[7]).build();
+                            .superR(split[7])
+                            .smallRNum(split[8])
+                            .mediumRNum(split[9])
+                            .largeRNum(split[10])
+                            .superRNum(split[11])
+                            .build();
                     fieldObjectList.get(i).set(vo, retentionVO);
                 } catch (IllegalAccessException e) {
                     throw new RuntimeException(e);
@@ -652,7 +657,12 @@ public class GameServerServiceImpl implements IGameServerService {
                         .smallR(split[4])
                         .mediumR(split[5])
                         .largeR(split[6])
-                        .superR(split[7]).build();
+                        .superR(split[7])
+                        .smallRNum(split[8])
+                        .mediumRNum(split[9])
+                        .largeRNum(split[10])
+                        .superRNum(split[11])
+                        .build();
                 fieldObjectList.get(i).set(vo, retentionVO);
 //                field.set(vo, value + "/" + rData);
             } catch (IllegalAccessException e) {
@@ -702,13 +712,19 @@ public class GameServerServiceImpl implements IGameServerService {
         if (rvo != null && vo.getTotalAmountNum() != null && vo.getTotalAmountNum() != 0) {
             //充值总人数
             BigDecimal totalAmountNum = new BigDecimal(vo.getTotalAmountNum());
-            BigDecimal smallR = new BigDecimal(rvo.getSmallR()).divide(totalAmountNum, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
-            BigDecimal mediumR = new BigDecimal(rvo.getMediumR()).divide(totalAmountNum, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
-            BigDecimal largeR = new BigDecimal(rvo.getLargeR()).divide(totalAmountNum, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
-            BigDecimal superR = new BigDecimal(rvo.getSuperR()).divide(totalAmountNum, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
-            return smallR + "/" + mediumR + "/" + largeR + "/" + superR;
+            //R人数
+            Long smallRCount = rvo.getSmallR();
+            Long mediumRCount = rvo.getMediumR();
+            Long largeRCont = rvo.getLargeR();
+            Long superRCount = rvo.getSuperR();
+            //R留存率
+            BigDecimal smallR = new BigDecimal(smallRCount).divide(totalAmountNum, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
+            BigDecimal mediumR = new BigDecimal(mediumRCount).divide(totalAmountNum, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
+            BigDecimal largeR = new BigDecimal(largeRCont).divide(totalAmountNum, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
+            BigDecimal superR = new BigDecimal(superRCount).divide(totalAmountNum, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
+            return smallR + "/" + mediumR + "/" + largeR + "/" + superR + "/" + smallRCount + "/" + mediumRCount + "/" + largeRCont + "/" + superRCount;
         } else {
-            return "0/0/0/0";
+            return "0/0/0/0/0/0/0/0";
         }
     }