Procházet zdrojové kódy

:feat:1、游戏每月留存 2、游戏每月留存总计

zhangxianyu před 3 měsíci
rodič
revize
4ae35015bf

+ 49 - 11
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/IActiveDataServiceImpl.java

@@ -1141,9 +1141,9 @@ public class IActiveDataServiceImpl implements IActiveDataService {
         //创建sql查询数据
         Sql sql;
         if (dto.getGameDimension() == 1L) {
-            sql = Sqls.create(getActiveDataMonthSql(dto.getTableTypes(), queryTableName, cri) + orderByCri);
+            sql = Sqls.create(getActiveDataMonthSql(dto.getTableTypes(),dto.getActiveTypes(), queryTableName, cri) + orderByCri);
         } else {
-            sql = Sqls.create(getActiveDataMonthSqlForParent(dto.getTableTypes(), queryTableName, cri) + orderByCri);
+            sql = Sqls.create(getActiveDataMonthSqlForParent(dto.getTableTypes(),dto.getActiveTypes(), queryTableName, cri) + orderByCri);
         }
         //设置自定义回传类型
         sql.setCallback(Sqls.callback.entities());
@@ -2609,16 +2609,23 @@ public class IActiveDataServiceImpl implements IActiveDataService {
      * @param cri       查询条件
      * @return String
      */
-    private String getActiveDataMonthSql(String type, String tableName, Criteria cri) {
+    private String getActiveDataMonthSql(String type, String activeTypes,String tableName, Criteria cri) {
+        boolean isReg = "reg".equals(activeTypes);
         if ("buy".equals(type)) {
+            String regNumField = "buy_reg_num as reg_num,";
+            if(!isReg){
+                regNumField = "";
+            }
             return """
-                    SELECT 
+                    SELECT
                                                         dt,
                                                         source_system,
                                                         game_id,
                                                         game_name,
                                                         game_classify,
-                                                        buy_reg_num as reg_num,
+                                                        """
+                                                        +regNumField+
+                                                        """
                                                         buy_m1 as m1,
                                                         buy_m2 as m2,
                                                         buy_m3 as m3,
@@ -2645,6 +2652,10 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                                                         buy_m24 as m24
                                                     FROM """ +" " + tableName + cri;
         } else if ("nature".equals(type)) {
+            String regNumField = "nature_reg_num as reg_num,";
+            if(!isReg){
+                regNumField = "";
+            }
             return """
                     SELECT
                                                         dt,
@@ -2652,7 +2663,9 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                                                         game_id,
                                                         game_name,
                                                         game_classify,
-                                                        nature_reg_num as reg_num,
+                                                        """
+                                                        +regNumField+
+                                                        """
                                                         nature_m1 as m1,
                                                         nature_m2 as m2,
                                                         nature_m3 as m3,
@@ -2679,6 +2692,10 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                                                         nature_m24 as m24
                                                     FROM """ + " "+tableName + cri;
         }
+        String regNumField = "reg_num,";
+        if(!isReg){
+            regNumField = "";
+        }
         //总量 total
         return """
                     SELECT
@@ -2687,7 +2704,9 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                                                         game_id,
                                                         game_name,
                                                         game_classify,
-                                                        reg_num,
+                                                        """
+                                                        +regNumField+
+                                                        """
                                                         total_m1 as m1,
                                                         total_m2 as m2,
                                                         total_m3 as m3,
@@ -3240,8 +3259,13 @@ public class IActiveDataServiceImpl implements IActiveDataService {
      * @param cri       查询条件
      * @return String
      */
-    private String getActiveDataMonthSqlForParent(String type, String tableName, Criteria cri) {
+    private String getActiveDataMonthSqlForParent(String type,String activeTypes, String tableName, Criteria cri) {
+        boolean isReg = "reg".equals(activeTypes);
         if ("buy".equals(type)) {
+            String regNumField = "buy_reg_num as reg_num,";
+            if(!isReg){
+                regNumField = "";
+            }
             return """
                     SELECT
                                                         dt,
@@ -3249,7 +3273,9 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                                                         parent_game_id as game_id,
                                                         parent_game_name as game_name,
                                                         parent_game_name_classify as game_classify,
-                                                        buy_reg_num as reg_num,
+                                                        """
+                                                            +regNumField+
+                                                        """
                                                         buy_m1 as m1,
                                                         buy_m2 as m2,
                                                         buy_m3 as m3,
@@ -3276,6 +3302,10 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                                                         buy_m24 as m24
                                                     FROM """ + " " + tableName + cri;
         } else if ("nature".equals(type)) {
+            String regNumField = "nature_reg_num as reg_num,";
+            if(!isReg){
+                regNumField = "";
+            }
             return """
                     SELECT
                                                         dt,
@@ -3283,7 +3313,9 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                                                         parent_game_id as game_id,
                                                         parent_game_name as game_name,
                                                         parent_game_name_classify as game_classify,
-                                                        nature_reg_num as reg_num,
+                                                        """
+                                                        +regNumField+
+                                                        """
                                                         nature_m1 as m1,
                                                         nature_m2 as m2,
                                                         nature_m3 as m3,
@@ -3310,6 +3342,10 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                                                         nature_m24 as m24
                                                     FROM """ + " " + tableName + cri;
         }
+        String regNumField = "reg_num,";
+        if(!isReg){
+            regNumField = "";
+        }
         //总量 total
         return """
                     SELECT
@@ -3318,7 +3354,9 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                                                         parent_game_id as game_id,
                                                         parent_game_name as game_name,
                                                         parent_game_name_classify as game_classify,
-                                                        reg_num,
+                                                        """
+                                                        +regNumField+
+                                                        """
                                                         total_m1 as m1,
                                                         total_m2 as m2,
                                                         total_m3 as m3,