Преглед изворни кода

修改内容:玩家活跃相关信息修改

lth пре 1 година
родитељ
комит
38a0c501e1

+ 0 - 21
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/GameServerSumDayDTO.java

@@ -38,25 +38,12 @@ public class GameServerSumDayDTO extends BasePage {
     @ApiModelProperty(value = "游戏ID")
     private Long gameId;
 
-    /**
-     * 区服ID
-     */
-    @ApiModelProperty(value = "区服ID")
-    private Long serverId;
-
-    /**
-     * 区服名称
-     */
-    @ApiModelProperty(value = "区服名称")
-    private String serverName;
-
     /**
      * SDK来源
      */
     @ApiModelProperty(value = "SDK来源")
     private String sourceSystem;
 
-
     /**
      * 排序字段
      */
@@ -69,12 +56,4 @@ public class GameServerSumDayDTO extends BasePage {
     @ApiModelProperty(notes = "排序方式:升序asc;降序desc")
     private String sortType;
 
-    /**
-     * 选择留存数据的类型
-     */
-    @ApiModelProperty(notes = """
-            选择留存数据的类型:reg -> 注册留存 ; role -> 角色留存 ; amount -> 付费留存
-            """)
-    private String activeTypes;
-
 }

+ 0 - 20
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/GameServerSumDayTotalDTO.java

@@ -37,30 +37,10 @@ public class GameServerSumDayTotalDTO {
     @ApiModelProperty(value = "游戏ID")
     private Long gameId;
 
-    /**
-     * 区服ID
-     */
-    @ApiModelProperty(value = "区服ID")
-    private Long serverId;
-
-    /**
-     * 区服名称
-     */
-    @ApiModelProperty(value = "区服名称")
-    private String serverName;
-
     /**
      * SDK来源
      */
     @ApiModelProperty(value = "SDK来源")
     private String sourceSystem;
 
-    /**
-     * 选择留存数据的类型
-     */
-    @ApiModelProperty(notes = """
-            选择留存数据的类型:reg -> 注册留存 ; role -> 角色留存 ; amount -> 付费留存
-            """)
-    private String activeTypes;
-
 }

+ 7 - 19
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameServerServiceImpl.java

@@ -317,21 +317,17 @@ public class GameServerServiceImpl implements IGameServerService {
     @Override
     public Page<GameServerSumDayVO> getGameServerDataSumDay(GameServerSumDayDTO dto) {
         //添加权限
-        com.github.sd4324530.jtuple.Tuple2<List<Long>, List<Long>> poerInfo = dataPowerComponent.getPowerInfo();
-        List<Long> gameIds = dto.getGameId() == null ? poerInfo.second : Collections.singletonList(dto.getGameId());
+        /*com.github.sd4324530.jtuple.Tuple2<List<Long>, List<Long>> poerInfo = dataPowerComponent.getPowerInfo();
+        List<Long> gameIds = dto.getGameId() == null ? poerInfo.second : Collections.singletonList(dto.getGameId());*/
         //创建查询条件
         Criteria cri = Cnd.cri();
-        if (gameIds != null) {
+        /*if (gameIds != null) {
             //拼接游戏ID查询条件
             cri.where().andInList("game_id", gameIds);
-        }
-        if (dto.getServerId() != null) {
-            //拼接区服ID查询条件
-            cri.where().andEquals("server_id", dto.getServerId());
-        }
-        if (StringUtils.isNotBlank(dto.getServerName())) {
-            //拼接区服名称查询条件
-            cri.where().andLike("server_name", dto.getServerName());
+        }*/
+        if (dto.getGameId() != null) {
+            //拼接游戏ID查询条件
+            cri.where().andEquals("game_id", dto.getGameId());
         }
         if (dto.getBeginDate() != null && dto.getEndDate() != null) {
             //拼接开服时间查询条件
@@ -394,14 +390,6 @@ public class GameServerServiceImpl implements IGameServerService {
             //拼接游戏ID查询条件
             cri.where().andEquals("game_id", dto.getGameId());
         }
-        if (dto.getServerId() != null) {
-            //拼接区服ID查询条件
-            cri.where().andEquals("server_id", dto.getServerId());
-        }
-        if (StringUtils.isNotBlank(dto.getServerName())) {
-            //拼接区服名称查询条件
-            cri.where().andLike("server_name", dto.getServerName());
-        }
         if (dto.getBeginDate() != null && dto.getEndDate() != null) {
             //拼接开服时间查询条件
             cri.where().andBetween("dt", dto.getBeginDate(), dto.getEndDate());

+ 73 - 27
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PlayerDataServiceImpl.java

@@ -604,7 +604,7 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
     private String getPlayerDataListSql() {
         return """
                 SELECT
-                *
+                	*
                 FROM (
                     select
                         a.source_system as source_system ,
@@ -628,7 +628,7 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                         IFNULL(i.amount, 0) as recharge_money ,
                         IFNULL(i.amount_count, 0) as recharge_count,
                         IFNULL(b.role_num, 0) as role_count,
-                        b.create_time as update_time ,
+                        j.create_time as update_time ,
                         b.last_recharge_time as last_recharge_time,
                         a.status as status ,
                         b.role_name as last_game_role_name ,
@@ -693,6 +693,14 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                         where status = 2
                         group by user_id , source_system
                     ) i on a.id = i.user_id and a.source_system = i.source_system
+                    LEFT JOIN (
+                    	SELECT
+                    		source_system ,
+                    		user_id ,
+                    		create_time ,
+                    		ROW_NUMBER()over(partition by user_id , source_system order by create_time desc) as num
+                    	FROM dm_game_order.t_user_login_log
+                    ) j ON a.id = j.user_id AND a.source_system = j.source_system AND j.num = 1
                 ) k
                 """;
     }
@@ -704,7 +712,7 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
     private String getPlayerDataListCountSql() {
         return """
                 SELECT
-                    COUNT(1)
+                	COUNT(1)
                 FROM (
                     select
                         a.source_system as source_system ,
@@ -728,7 +736,7 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                         IFNULL(i.amount, 0) as recharge_money ,
                         IFNULL(i.amount_count, 0) as recharge_count,
                         IFNULL(b.role_num, 0) as role_count,
-                        b.create_time as update_time ,
+                        j.create_time as update_time ,
                         b.last_recharge_time as last_recharge_time,
                         a.status as status ,
                         b.role_name as last_game_role_name ,
@@ -749,14 +757,14 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                             a.num,
                             c.role_num
                             from (
-                                    select
-                                        source_system ,
-                                        user_id ,
-                                        role_name ,
-                                        create_time,
-                                        update_time ,
-                                        ROW_NUMBER() OVER(PARTITION BY user_id,source_system order by update_time  desc) as num
-                                    from dm_game_order.t_game_user_role
+                                select
+                                    source_system ,
+                                    user_id ,
+                                    role_name ,
+                                    create_time,
+                                    update_time ,
+                                    ROW_NUMBER() OVER(PARTITION BY user_id,source_system order by update_time  desc) as num
+                                from dm_game_order.t_game_user_role
                                 ) a
                             left join (
                                 select
@@ -793,6 +801,14 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                         where status = 2
                         group by user_id , source_system
                     ) i on a.id = i.user_id and a.source_system = i.source_system
+                    LEFT JOIN (
+                    	SELECT
+                    		source_system ,
+                    		user_id ,
+                    		create_time ,
+                    		ROW_NUMBER()over(partition by user_id , source_system order by create_time desc) as num
+                    	FROM dm_game_order.t_user_login_log
+                    ) j ON a.id = j.user_id AND a.source_system = j.source_system AND j.num = 1
                 ) k
                 """;
     }
@@ -837,7 +853,7 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 		a.role_vip as role_vip_level, -- 角色vip
                 		a.os , -- 角色操作系统
                 		a.create_time as create_time, -- 角色创建时间
-                		a.update_time, -- 角色最近更新时间
+                		k.active_time as update_time, -- 角色最近更新时间
                 		g.pay_time as last_recharge_time, -- 角色最近充值时间
                 		TIMESTAMPDIFF(SECOND, b.create_time, g.pay_time) as reg_pay_time_diff, -- 最近充值距注册时间差(秒)
                 		i.active_time as last_login_time, -- 玩家最近登陆时间
@@ -891,11 +907,11 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 			source_system ,
                 			user_id,
                 			game_id,
-                			active_time,
+                			create_time as active_time,
                 			role_id ,
-                			ROW_NUMBER()over(partition by role_id ,user_id, source_system order by active_time desc) as num
-                		FROM game_dw.dw_active_log
-                	) i on a.source_system = i.source_system AND a.role_id = i.role_id AND a.user_id = i.user_id AND a.game_id = i.game_id AND i.num = 1
+                			ROW_NUMBER()over(partition by user_id, source_system order by create_time desc) as num
+                		FROM dm_game_order.t_user_login_log
+                	) i on a.source_system = i.source_system AND a.user_id = i.user_id AND i.num = 1
                 	LEFT JOIN (
                 		SELECT
                 			-- 累计充值金额、累计充值次数
@@ -908,6 +924,16 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 		WHERE status =2
                 		GROUP BY role_id , user_id , source_system
                 	) j on a.source_system = j.source_system AND a.role_id = j.role_id AND a.user_id = j.user_id
+                	LEFT JOIN (
+                		SELECT
+                			source_system ,
+                			user_id,
+                			game_id,
+                			create_time as active_time,
+                			role_id ,
+                			ROW_NUMBER()over(partition by role_id ,user_id, source_system order by create_time desc) as num
+                		FROM dm_game_order.t_user_login_log
+                	) k on a.source_system = k.source_system AND a.user_id = k.user_id AND a.role_id = k.role_id AND k.num = 1
                 ) a
                 """;
     }
@@ -952,7 +978,7 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 		a.role_vip as role_vip_level, -- 角色vip
                 		a.os , -- 角色操作系统
                 		a.create_time as create_time, -- 角色创建时间
-                		a.update_time, -- 角色最近更新时间
+                		k.active_time as update_time, -- 角色最近更新时间
                 		g.pay_time as last_recharge_time, -- 角色最近充值时间
                 		TIMESTAMPDIFF(SECOND, b.create_time, g.pay_time) as reg_pay_time_diff, -- 最近充值距注册时间差(秒)
                 		i.active_time as last_login_time, -- 玩家最近登陆时间
@@ -1006,11 +1032,11 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 			source_system ,
                 			user_id,
                 			game_id,
-                			active_time,
+                			create_time as active_time,
                 			role_id ,
-                			ROW_NUMBER()over(partition by role_id ,user_id, source_system order by active_time desc) as num
-                		FROM game_dw.dw_active_log
-                	) i on a.source_system = i.source_system AND a.role_id = i.role_id AND a.user_id = i.user_id AND a.game_id = i.game_id AND i.num = 1
+                			ROW_NUMBER()over(partition by user_id, source_system order by create_time desc) as num
+                		FROM dm_game_order.t_user_login_log
+                	) i on a.source_system = i.source_system AND a.user_id = i.user_id AND i.num = 1
                 	LEFT JOIN (
                 		SELECT
                 			-- 累计充值金额、累计充值次数
@@ -1023,6 +1049,16 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 		WHERE status =2
                 		GROUP BY role_id , user_id , source_system
                 	) j on a.source_system = j.source_system AND a.role_id = j.role_id AND a.user_id = j.user_id
+                	LEFT JOIN (
+                		SELECT
+                			source_system ,
+                			user_id,
+                			game_id,
+                			create_time as active_time,
+                			role_id ,
+                			ROW_NUMBER()over(partition by role_id ,user_id, source_system order by create_time desc) as num
+                		FROM dm_game_order.t_user_login_log
+                	) k on a.source_system = k.source_system AND a.user_id = k.user_id AND a.role_id = k.role_id AND k.num = 1
                 ) a
                 """;
     }
@@ -1068,7 +1104,7 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 		a.role_vip as role_vip_level, -- 角色vip
                 		a.os , -- 角色操作系统
                 		a.create_time as create_time, -- 角色创建时间
-                		a.update_time, -- 角色最近更新时间
+                		k.active_time as update_time, -- 角色最近更新时间
                 		g.pay_time as last_recharge_time, -- 角色最近充值时间
                 		TIMESTAMPDIFF(SECOND, b.create_time, g.pay_time) as reg_pay_time_diff, -- 最近充值距注册时间差(秒)
                 		i.active_time as last_login_time, -- 玩家最近登陆时间
@@ -1122,11 +1158,11 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 			source_system ,
                 			user_id,
                 			game_id,
-                			active_time,
+                			create_time as active_time,
                 			role_id ,
-                			ROW_NUMBER()over(partition by role_id ,user_id, source_system order by active_time desc) as num
-                		FROM game_dw.dw_active_log
-                	) i on a.source_system = i.source_system AND a.role_id = i.role_id AND a.user_id = i.user_id AND a.game_id = i.game_id AND i.num = 1
+                			ROW_NUMBER()over(partition by user_id, source_system order by create_time desc) as num
+                		FROM dm_game_order.t_user_login_log
+                	) i on a.source_system = i.source_system AND a.user_id = i.user_id AND i.num = 1
                 	LEFT JOIN (
                 		SELECT
                 			-- 累计充值金额、累计充值次数
@@ -1139,6 +1175,16 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 		WHERE status =2
                 		GROUP BY role_id , user_id , source_system
                 	) j on a.source_system = j.source_system AND a.role_id = j.role_id AND a.user_id = j.user_id
+                	LEFT JOIN (
+                		SELECT
+                			source_system ,
+                			user_id,
+                			game_id,
+                			create_time as active_time,
+                			role_id ,
+                			ROW_NUMBER()over(partition by role_id ,user_id, source_system order by create_time desc) as num
+                		FROM dm_game_order.t_user_login_log
+                	) k on a.source_system = k.source_system AND a.user_id = k.user_id AND a.role_id = k.role_id AND k.num = 1
                 ) a
                 """;
     }

+ 30 - 28
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RoleManageServiceImpl.java

@@ -928,11 +928,12 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 	LEFT JOIN (
                 		-- 角色最近活跃时间
                   		SELECT
-                  		    source_system,
-                  		    role_id,
-                  		    update_time,
-                  		    ROW_NUMBER() OVER(PARTITION BY role_id , source_system order by update_time desc) as num
-                  		from dm_game_order.t_game_user_role
+                  			source_system ,
+                  			role_id ,
+                  			create_time as update_time ,
+                  			ROW_NUMBER()over(partition by role_id , source_system order by create_time desc) as num
+                  		FROM dm_game_order.t_user_login_log
+                  		WHERE role_id != 'null'
                 	) g on a.source_system = g.source_system AND a.role_id = g.role_id AND g.num = 1
                 	LEFT JOIN (
                 		SELECT
@@ -1035,19 +1036,19 @@ public class RoleManageServiceImpl implements IRoleManageService {
                         ) k ON i.user_reg_game_id = k.id AND i.source_system = k.source_system
                         LEFT JOIN (
                             -- 玩家最近活跃时间
-                            SELECT
-                                association_user_id,
-                                b.source_system,
-                                b.update_time,
-                                ROW_NUMBER()over(partition by association_user_id, b.source_system order by b.update_time desc) as num
-                            FROM dm_game_order.t_game_user a
-                            RIGHT JOIN (
-                                SELECT
-                                    source_system ,
-                                    user_id,
-                                    update_time
-                                FROM dm_game_order.t_game_user_role
-                            ) b ON a.source_system = b.source_system AND a.id = b.user_id
+                			SELECT
+                			    association_user_id,
+                			    b.source_system,
+                			    b.create_time as update_time,
+                			    ROW_NUMBER()over(partition by association_user_id, b.source_system order by b.create_time desc) as num
+                			FROM dm_game_order.t_game_user a
+                			LEFT JOIN (
+                			    SELECT
+                			    	source_system ,
+                			    	user_id,
+                			    	create_time
+                			    FROM dm_game_order.t_user_login_log
+                			) b ON a.source_system = b.source_system AND a.id = b.user_id
                         ) l ON i.association_user_id = l.association_user_id AND i.source_system = l.source_system AND l.num = 1
                         LEFT JOIN (
                             -- 玩家最近充值游戏、玩家最近充值时间
@@ -1299,11 +1300,12 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     LEFT JOIN (
                         -- 角色最近活跃时间
                         SELECT
-                            source_system,
-                            role_id,
-                            update_time,
-                            ROW_NUMBER() OVER(PARTITION BY role_id , source_system order by update_time desc) as num
-                        from dm_game_order.t_game_user_role
+                            source_system ,
+                            role_id ,
+                            create_time as update_time ,
+                            ROW_NUMBER()over(partition by role_id , source_system order by create_time desc) as num
+                        FROM dm_game_order.t_user_login_log
+                        WHERE role_id != 'null'
                     ) g on a.source_system = g.source_system AND a.role_id = g.role_id AND g.num = 1
                     LEFT JOIN (
                         SELECT
@@ -1409,15 +1411,15 @@ public class RoleManageServiceImpl implements IRoleManageService {
                             SELECT
                                 association_user_id,
                                 b.source_system,
-                                b.update_time,
-                                ROW_NUMBER()over(partition by association_user_id, b.source_system order by b.update_time desc) as num
+                                b.create_time as update_time,
+                                ROW_NUMBER()over(partition by association_user_id, b.source_system order by b.create_time desc) as num
                             FROM dm_game_order.t_game_user a
-                            RIGHT JOIN (
+                            LEFT JOIN (
                                 SELECT
                                     source_system ,
                                     user_id,
-                                    update_time
-                                FROM dm_game_order.t_game_user_role
+                                    create_time
+                                FROM dm_game_order.t_user_login_log
                             ) b ON a.source_system = b.source_system AND a.id = b.user_id
                         ) l ON i.association_user_id = l.association_user_id AND i.source_system = l.source_system AND l.num = 1
                         LEFT JOIN (