Ver código fonte

Merge branch 'package' of GameCenter/game-center into master

root 1 ano atrás
pai
commit
2f6e46c78b

+ 1 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameOceanengineOrderLogServiceImpl.java

@@ -238,6 +238,7 @@ public class GameOceanengineOrderLogServiceImpl extends ServiceImpl<GameOceaneng
         }
         BackStatusEnum backStatus = BackStatusEnum.NO;
         if (doBack) {
+            orderLog.setBackMoney(backMoney);
             backStatus = doCallback(orderLog);
         }
         return update(new LambdaUpdateWrapper<GameOceanengineOrderLog>()

+ 1 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentMiniGameOrderServiceImpl.java

@@ -242,6 +242,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
         }
         BackStatusEnum backStatus = BackStatusEnum.NO;
         if (doBack) {
+            orderLog.setBackMoney(backMoney);
             backStatus = gameTencentMiniGameBackLogService.orderBack(orderLog);
         }
         return update(new LambdaUpdateWrapper<GameTencentMiniGameOrder>()

+ 1 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentOrderServiceImpl.java

@@ -251,6 +251,7 @@ public class GameTencentOrderServiceImpl extends ServiceImpl<GameTencentOrderMap
         }
         BackStatusEnum backStatus = BackStatusEnum.NO;
         if (doBack) {
+            orderLog.setBackMoney(backMoney);
             backStatus = doCallback(orderLog);
         }
         return update(new LambdaUpdateWrapper<GameTencentOrder>()

+ 7 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/PlayerDataController.java

@@ -49,6 +49,13 @@ public class PlayerDataController {
         return ResultVO.ok(playerDataService.getPlayerRoleDataList(dto));
     }
 
+    @ApiOperation("玩家角色列表总计一栏")
+    @PreAuthorize(permissionKey = "playerData:role:total")
+    @PostMapping("/role/total")
+    public ResultVO<Map> getPlayerRoleTotalData(@RequestBody PlayerRoleDataListDTO dto) {
+        return ResultVO.ok(playerDataService.getPlayerRoleTotalData(dto));
+    }
+
     @ApiOperation("玩家登陆日志列表")
     @PreAuthorize(permissionKey = "playerData:player:loginLog")
     @PostMapping("/login/list")

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IPlayerDataService.java

@@ -31,6 +31,13 @@ public interface IPlayerDataService {
      */
     Page<PlayerRoleDataVO> getPlayerRoleDataList(PlayerRoleDataListDTO dto);
 
+    /**
+     * 玩家角色列表总计一栏
+     * @param dto PlayerRoleDataListDTO
+     * @return Map
+     */
+    Map getPlayerRoleTotalData(PlayerRoleDataListDTO dto);
+
     /**
      * 玩家登陆日志列表
      * @param dto PlayerLoginLogDataListDTO
@@ -44,4 +51,6 @@ public interface IPlayerDataService {
      * @return Page<Map>
      */
     Page<Map> getPlayerBannedDataList(PlayerBannedListDTO dto);
+
+
 }

+ 321 - 105
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PlayerDataServiceImpl.java

@@ -338,6 +338,111 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
         return new Page<>(list, pager);
     }
 
+    @Override
+    public Map getPlayerRoleTotalData(PlayerRoleDataListDTO dto) {
+        //查询条件
+        Criteria cri = Cnd.cri();
+        if (dto.getUserId() != null) {
+            cri.where().andEquals("user_id", dto.getUserId());
+        }
+        if (StringUtils.isNotBlank(dto.getUserName())) {
+            //玩家账号
+            cri.where().andEquals("username", dto.getUserName());
+        }
+        if (StringUtils.isNotBlank(dto.getNickname())) {
+            //玩家昵称
+            cri.where().andLike("nickname", dto.getNickname());
+        }
+        if (StringUtils.isNotBlank(dto.getRegIp())) {
+            //玩家注册IP
+            cri.where().andEquals("reg_ip", dto.getRegIp());
+        }
+        if (StringUtils.isNotBlank(dto.getServerName())) {
+            //游戏区服
+            cri.where().andLike("server_name", dto.getServerName());
+        }
+        if (StringUtils.isNotBlank(dto.getRoleName())) {
+            cri.where().andLike("role_name", dto.getRoleName());
+        }
+        if (StringUtils.isNotBlank(dto.getRoleId())) {
+            cri.where().andEquals("role_id", dto.getRoleId());
+        }
+        if (dto.getCpId() != null) {
+            cri.where().andEquals("cp_id", dto.getCpId());
+        }
+        if (dto.getGameId() != null) {
+            cri.where().andEquals("game_id", dto.getGameId());
+        }
+        if (dto.getGameCategoryId() != null) {
+            //游戏应用类型
+            cri.where().andEquals("game_category_id", dto.getGameCategoryId());
+        }
+        if (StringUtils.isNotBlank(dto.getAccountId())) {
+            //推广账号ID
+            cri.where().andEquals("account_id", dto.getAccountId());
+        }
+        if (dto.getChannelId() != null) {
+            //渠道ID
+            cri.where().andEquals("agent_id", dto.getChannelId());
+        }
+        if (StringUtils.isNotBlank(dto.getPitcherId())) {
+            cri.where().andEquals("pitcher_id", dto.getPitcherId());
+        }
+        if (StringUtils.isNotBlank(dto.getOs())) {
+            cri.where().andEquals("os", dto.getOs());
+        }
+        //判断是否充值
+        if (BooleanUtils.isFalse(dto.getIsRecharge())) {
+            //未充值 充值金额为0
+            cri.where().andEquals("recharge_money", 0);
+        }
+        if (BooleanUtils.isTrue(dto.getIsRecharge())) {
+            //充值金额大于0
+            cri.where().andNotEquals("recharge_money", 0);
+        }
+        if (dto.getVipLevel() != null) {
+            cri.where().andEquals("role_vip_level", dto.getVipLevel());
+        }
+        if (dto.getRoleLevelMin() != null) {
+            //玩家最小等级
+            cri.where().andGTE("role_level", dto.getRoleLevelMin());
+        }
+        if (dto.getRoleLevelMax() != null) {
+            //玩家最大等级
+            cri.where().andLTE("role_level", dto.getRoleLevelMax());
+        }
+        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
+            //角色创建时间
+            cri.where().andBetween("DATE(create_time)", dto.getBeginDate(), dto.getEndDate());
+        }
+        if (dto.getRechargeBeginDate() != null && dto.getRechargeEndDate() != null) {
+            //最近充值时间
+            cri.where().andBetween("DATE(last_recharge_time)", dto.getRechargeBeginDate(), dto.getRechargeEndDate());
+        }
+        if (dto.getRegTimeBeginDate() != null && dto.getRegTimeEndDate() != null) {
+            //玩家注册时间
+            cri.where().andBetween("DATE(reg_time)", dto.getRegTimeBeginDate(), dto.getRegTimeEndDate());
+        }
+        if (dto.getRegPayIntervalTimeMin() != null) {
+            //充值到注册的最小间隔时间(分)
+            cri.where().andGTE("TIMESTAMPDIFF(MINUTE, reg_time, last_recharge_time)", dto.getRegPayIntervalTimeMin());
+        }
+        if (dto.getRegPayIntervalTimeMax() != null) {
+            //充值到注册的最大间隔时间(分)
+            cri.where().andLTE("TIMESTAMPDIFF(MINUTE, reg_time, last_recharge_time)", dto.getRegPayIntervalTimeMax());
+        }
+        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
+            cri.where().andEquals("source_system", dto.getSourceSystem());
+        }
+        //查询sql
+        Sql sql = Sqls.create(getUserRoleDataTotalSql() + cri);
+        sql.setCallback(Sqls.callback.map());
+        //执行sql 得到结果
+        dao.execute(sql);
+
+        return sql.getObject(Map.class);
+    }
+
     /**
      * 玩家登陆日志列表
      * @param dto PlayerLoginLogDataListDTO
@@ -733,12 +838,13 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 			-- 角色最近充值时间、角色最近充值金额
                 			source_system,
                 			role_id,
+                			user_id,
                 			real_amount,
                 			pay_time,
-                			ROW_NUMBER()over(partition by role_id , source_system order by pay_time desc) as num
+                			ROW_NUMBER()over(partition by role_id , user_id , source_system order by pay_time desc) as num
                 		FROM dm_game_order.t_game_order
                 		WHERE status =2
-                	) g on a.source_system = g.source_system AND a.role_id = g.role_id AND g.num = 1
+                	) g on a.source_system = g.source_system AND a.role_id = g.role_id AND a.user_id = g.user_id AND g.num = 1
                 	LEFT JOIN (
                 		SELECT
                 			a.source_system,
@@ -766,20 +872,21 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 			game_id,
                 			active_time,
                 			role_id ,
-                			ROW_NUMBER()over(partition by role_id , source_system order by active_time desc) as num
+                			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
                 	LEFT JOIN (
                 		SELECT
                 			-- 累计充值金额、累计充值次数
                 	    	role_id,
+                	    	user_id ,
                 	    	source_system,
                 	    	SUM(real_amount) as amount ,
                 	    	COUNT(user_id) as amount_count
                 		FROM dm_game_order.t_game_order
                 		WHERE status =2
-                		GROUP BY role_id , source_system
-                	) j on a.source_system = j.source_system AND a.role_id = j.role_id
+                		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
                 ) a
                 """;
     }
@@ -791,107 +898,216 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
     private String getUserRoleDataListCountSql() {
         return """
                 SELECT
-                    COUNT(1)
+                	COUNT(1)
                 FROM (
-                    SELECT
-                    	*
-                    FROM (
-                    	SELECT
-                    		a.id, -- 主键id
-                    		a.source_system , -- SDK来源
-                    		a.user_id , -- 玩家ID
-                    		b.username , -- 玩家账号
-                    		b.nickname , -- 玩家昵称
-                    		b.ip as reg_ip, -- 玩家注册IP
-                    		b.create_time as reg_time, -- 玩家注册时间
-                    		b.agent_id , -- 注册渠道ID
-                    		IF(b.agent_id = 0, '自然量', c.agent_name) as agent_name , -- 注册渠道名
-                    		c.pitcher_id , -- 投手ID
-                    		d.zx_pitcher_name as pitcher_name, -- 投手名
-                    		c.account_id , -- 推广账号ID
-                    		c.account_name , -- 推广账号名
-                    		c.account_type , -- 推广账号类型
-                    		a.game_id , -- 角色注册游戏ID
-                    		e.game_name , -- 游戏名
-                    		e.classify as game_category_id, -- 游戏应用类型
-                    		e.cp_id , -- cpID
-                    		f.cp_name , -- cp名字
-                    		h.server_id , -- 角色注册区服ID
-                    		h.server_name , -- 区服名
-                    		h.origin_server_id , -- 原始区服ID
-                    		h.origin_server_name as source_server_name, -- 原始区服名
-                    		a.role_id , -- 角色ID
-                    		a.role_name , -- 角色名
-                    		a.role_level , -- 角色等级
-                    		a.combat_num as role_power, -- 角色攻击力
-                    		a.role_vip as role_vip_level, -- 角色vip
-                    		a.os , -- 角色操作系统
-                    		a.create_time as create_time, -- 角色创建时间
-                    		a.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, -- 玩家最近登陆时间
-                    		j.amount as recharge_money, -- 角色充值金额
-                    		j.amount_count as recharge_count -- 角色充值次数
-                    	FROM dm_game_order.t_game_user_role a
-                    	LEFT JOIN dm_game_order.t_game_user b on a.source_system = b.source_system AND a.user_id = b.id
-                    	LEFT JOIN dm_game_order.t_pitcher_agent c on b.source_system = c.source_system AND b.agent_id = c.id
-                    	LEFT JOIN dm_game_order.t_pitcher_map d on c.source_system = d.source_system AND c.pitcher_id = d.zx_pitcher_id
-                    	LEFT JOIN dm_game_order.t_game e on a.source_system = e.source_system AND a.game_id = e.id
-                    	LEFT JOIN dm_game_order.t_cp f on e.source_system = f.source_system AND e.cp_id = f.id
-                    	LEFT JOIN (
-                    		SELECT
-                    			-- 角色最近充值时间、角色最近充值金额
-                    			source_system,
-                    			role_id,
-                    			real_amount,
-                    			pay_time,
-                    			ROW_NUMBER()over(partition by role_id , source_system order by pay_time desc) as num
-                    		FROM dm_game_order.t_game_order
-                    		WHERE status =2
-                    	) g on a.source_system = g.source_system AND a.role_id = g.role_id AND g.num = 1
-                    	LEFT JOIN (
-                    		SELECT
-                    			a.source_system,
-                    			a.game_id, -- 子游戏ID
-                    			a.server_id, -- 区服ID
-                    			a.server_name, -- 区服名(冠名后)
-                    			ifnull(b.server_id,a.server_id) as origin_server_id, -- 原始区服ID
-                    			ifnull(b.server_name,a.server_name) as origin_server_name -- 原始区服名
-                    		from (
-                    			SELECT
-                    				a.game_id ,
-                    				a.server_id ,
-                    				a.server_name ,
-                    				b.super_game_id,
-                    				a.source_system
-                    			FROM dm_game_order.t_game_server a
-                    			LEFT JOIN dm_game_order.t_game b on a.source_system = b.source_system AND a.game_id = b.id
-                    		)a LEFT JOIN dm_game_order.t_game_server_merge b
-                    		on a.source_system = b.source_system AND a.super_game_id = b.game_id AND a.server_id = b.server_id
-                    	) h on a.source_system = h.source_system AND a.server_id = h.server_id AND a.game_id = h.game_id
-                    	LEFT JOIN (
-                    		SELECT
-                    			source_system ,
-                    			user_id,
-                    			game_id,
-                    			active_time,
-                    			role_id ,
-                    			ROW_NUMBER()over(partition by role_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
-                    	LEFT JOIN (
-                    		SELECT
-                    			-- 累计充值金额、累计充值次数
-                    	    	role_id,
-                    	    	source_system,
-                    	    	SUM(real_amount) as amount ,
-                    	    	COUNT(user_id) as amount_count
-                    		FROM dm_game_order.t_game_order
-                    		WHERE status =2
-                    		GROUP BY role_id , source_system
-                    	) j on a.source_system = j.source_system AND a.role_id = j.role_id
-                    ) a
+                	SELECT
+                		a.id, -- 主键id
+                		a.source_system , -- SDK来源
+                		a.user_id , -- 玩家ID
+                		b.username , -- 玩家账号
+                		b.nickname , -- 玩家昵称
+                		b.ip as reg_ip, -- 玩家注册IP
+                		b.create_time as reg_time, -- 玩家注册时间
+                		b.agent_id , -- 注册渠道ID
+                		IF(b.agent_id = 0, '自然量', c.agent_name) as agent_name , -- 注册渠道名
+                		c.pitcher_id , -- 投手ID
+                		d.zx_pitcher_name as pitcher_name, -- 投手名
+                		c.account_id , -- 推广账号ID
+                		c.account_name , -- 推广账号名
+                		c.account_type , -- 推广账号类型
+                		a.game_id , -- 角色注册游戏ID
+                		e.game_name , -- 游戏名
+                		e.classify as game_category_id, -- 游戏应用类型
+                		e.cp_id , -- cpID
+                		f.cp_name , -- cp名字
+                		h.server_id , -- 角色注册区服ID
+                		h.server_name , -- 区服名
+                		h.origin_server_id , -- 原始区服ID
+                		h.origin_server_name as source_server_name, -- 原始区服名
+                		a.role_id , -- 角色ID
+                		a.role_name , -- 角色名
+                		a.role_level , -- 角色等级
+                		a.combat_num as role_power, -- 角色攻击力
+                		a.role_vip as role_vip_level, -- 角色vip
+                		a.os , -- 角色操作系统
+                		a.create_time as create_time, -- 角色创建时间
+                		a.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, -- 玩家最近登陆时间
+                		j.amount as recharge_money, -- 角色充值金额
+                		j.amount_count as recharge_count -- 角色充值次数
+                	FROM dm_game_order.t_game_user_role a
+                	LEFT JOIN dm_game_order.t_game_user b on a.source_system = b.source_system AND a.user_id = b.id
+                	LEFT JOIN dm_game_order.t_pitcher_agent c on b.source_system = c.source_system AND b.agent_id = c.id
+                	LEFT JOIN dm_game_order.t_pitcher_map d on c.source_system = d.source_system AND c.pitcher_id = d.zx_pitcher_id
+                	LEFT JOIN dm_game_order.t_game e on a.source_system = e.source_system AND a.game_id = e.id
+                	LEFT JOIN dm_game_order.t_cp f on e.source_system = f.source_system AND e.cp_id = f.id
+                	LEFT JOIN (
+                		SELECT
+                			-- 角色最近充值时间、角色最近充值金额
+                			source_system,
+                			role_id,
+                			user_id,
+                			real_amount,
+                			pay_time,
+                			ROW_NUMBER()over(partition by role_id , user_id , source_system order by pay_time desc) as num
+                		FROM dm_game_order.t_game_order
+                		WHERE status =2
+                	) g on a.source_system = g.source_system AND a.role_id = g.role_id AND a.user_id = g.user_id AND g.num = 1
+                	LEFT JOIN (
+                		SELECT
+                			a.source_system,
+                			a.game_id, -- 子游戏ID
+                			a.server_id, -- 区服ID
+                			a.server_name, -- 区服名(冠名后)
+                			ifnull(b.server_id,a.server_id) as origin_server_id, -- 原始区服ID
+                			ifnull(b.server_name,a.server_name) as origin_server_name -- 原始区服名
+                		from (
+                			SELECT
+                				a.game_id ,
+                				a.server_id ,
+                				a.server_name ,
+                				b.super_game_id,
+                				a.source_system
+                			FROM dm_game_order.t_game_server a
+                			LEFT JOIN dm_game_order.t_game b on a.source_system = b.source_system AND a.game_id = b.id
+                		)a LEFT JOIN dm_game_order.t_game_server_merge b
+                		on a.source_system = b.source_system AND a.super_game_id = b.game_id AND a.server_id = b.server_id
+                	) h on a.source_system = h.source_system AND a.server_id = h.server_id AND a.game_id = h.game_id
+                	LEFT JOIN (
+                		SELECT
+                			source_system ,
+                			user_id,
+                			game_id,
+                			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
+                	LEFT JOIN (
+                		SELECT
+                			-- 累计充值金额、累计充值次数
+                	    	role_id,
+                	    	user_id ,
+                	    	source_system,
+                	    	SUM(real_amount) as amount ,
+                	    	COUNT(user_id) as amount_count
+                		FROM dm_game_order.t_game_order
+                		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
+                ) a
+                """;
+    }
+
+    /**
+     * 玩家角色列表总计一栏sql
+     * @return String
+     */
+    private String getUserRoleDataTotalSql() {
+        return """
+                SELECT
+                	SUM(recharge_money) as recharge_money,
+                 	SUM(recharge_count) as recharge_count
+                FROM (
+                	SELECT
+                		a.id, -- 主键id
+                		a.source_system , -- SDK来源
+                		a.user_id , -- 玩家ID
+                		b.username , -- 玩家账号
+                		b.nickname , -- 玩家昵称
+                		b.ip as reg_ip, -- 玩家注册IP
+                		b.create_time as reg_time, -- 玩家注册时间
+                		b.agent_id , -- 注册渠道ID
+                		IF(b.agent_id = 0, '自然量', c.agent_name) as agent_name , -- 注册渠道名
+                		c.pitcher_id , -- 投手ID
+                		d.zx_pitcher_name as pitcher_name, -- 投手名
+                		c.account_id , -- 推广账号ID
+                		c.account_name , -- 推广账号名
+                		c.account_type , -- 推广账号类型
+                		a.game_id , -- 角色注册游戏ID
+                		e.game_name , -- 游戏名
+                		e.classify as game_category_id, -- 游戏应用类型
+                		e.cp_id , -- cpID
+                		f.cp_name , -- cp名字
+                		h.server_id , -- 角色注册区服ID
+                		h.server_name , -- 区服名
+                		h.origin_server_id , -- 原始区服ID
+                		h.origin_server_name as source_server_name, -- 原始区服名
+                		a.role_id , -- 角色ID
+                		a.role_name , -- 角色名
+                		a.role_level , -- 角色等级
+                		a.combat_num as role_power, -- 角色攻击力
+                		a.role_vip as role_vip_level, -- 角色vip
+                		a.os , -- 角色操作系统
+                		a.create_time as create_time, -- 角色创建时间
+                		a.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, -- 玩家最近登陆时间
+                		j.amount as recharge_money, -- 角色充值金额
+                		j.amount_count as recharge_count -- 角色充值次数
+                	FROM dm_game_order.t_game_user_role a
+                	LEFT JOIN dm_game_order.t_game_user b on a.source_system = b.source_system AND a.user_id = b.id
+                	LEFT JOIN dm_game_order.t_pitcher_agent c on b.source_system = c.source_system AND b.agent_id = c.id
+                	LEFT JOIN dm_game_order.t_pitcher_map d on c.source_system = d.source_system AND c.pitcher_id = d.zx_pitcher_id
+                	LEFT JOIN dm_game_order.t_game e on a.source_system = e.source_system AND a.game_id = e.id
+                	LEFT JOIN dm_game_order.t_cp f on e.source_system = f.source_system AND e.cp_id = f.id
+                	LEFT JOIN (
+                		SELECT
+                			-- 角色最近充值时间、角色最近充值金额
+                			source_system,
+                			role_id,
+                			user_id,
+                			real_amount,
+                			pay_time,
+                			ROW_NUMBER()over(partition by role_id , user_id , source_system order by pay_time desc) as num
+                		FROM dm_game_order.t_game_order
+                		WHERE status =2
+                	) g on a.source_system = g.source_system AND a.role_id = g.role_id AND a.user_id = g.user_id AND g.num = 1
+                	LEFT JOIN (
+                		SELECT
+                			a.source_system,
+                			a.game_id, -- 子游戏ID
+                			a.server_id, -- 区服ID
+                			a.server_name, -- 区服名(冠名后)
+                			ifnull(b.server_id,a.server_id) as origin_server_id, -- 原始区服ID
+                			ifnull(b.server_name,a.server_name) as origin_server_name -- 原始区服名
+                		from (
+                			SELECT
+                				a.game_id ,
+                				a.server_id ,
+                				a.server_name ,
+                				b.super_game_id,
+                				a.source_system
+                			FROM dm_game_order.t_game_server a
+                			LEFT JOIN dm_game_order.t_game b on a.source_system = b.source_system AND a.game_id = b.id
+                		)a LEFT JOIN dm_game_order.t_game_server_merge b
+                		on a.source_system = b.source_system AND a.super_game_id = b.game_id AND a.server_id = b.server_id
+                	) h on a.source_system = h.source_system AND a.server_id = h.server_id AND a.game_id = h.game_id
+                	LEFT JOIN (
+                		SELECT
+                			source_system ,
+                			user_id,
+                			game_id,
+                			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
+                	LEFT JOIN (
+                		SELECT
+                			-- 累计充值金额、累计充值次数
+                	    	role_id,
+                	    	user_id ,
+                	    	source_system,
+                	    	SUM(real_amount) as amount ,
+                	    	COUNT(user_id) as amount_count
+                		FROM dm_game_order.t_game_order
+                		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
                 ) a
                 """;
     }

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

@@ -654,7 +654,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
             cri.getOrderBy().orderBy(dto.getSortFiled(), dto.getSortType());
         } else {
             //默认排序
-            cri.getOrderBy().orderBy("dt", dto.getSortType());
+            cri.getOrderBy().orderBy("min_server_start_days", dto.getSortType());
             cri.getOrderBy().orderBy("server_combat_num", dto.getSortType());
         }
         //查询出区服相关数据