|  | @@ -19,6 +19,7 @@ import org.nutz.dao.sql.Sql;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import java.util.ArrayList;
 | 
	
		
			
				|  |  |  import java.util.HashMap;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  import java.util.Map;
 | 
	
	
		
			
				|  | @@ -60,6 +61,10 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |          if (StringUtils.isNotBlank(dto.getRoleName())) {
 | 
	
		
			
				|  |  |              criA.where().andLike("role_name", dto.getRoleName());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +            //区服列表查询
 | 
	
		
			
				|  |  | +            criA.where().andInList("server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          if (dto.getCreateRoleBeginDate() != null && dto.getCreateRoleEndDate() != null) {
 | 
	
		
			
				|  |  |              //角色创建时间
 | 
	
		
			
				|  |  |              criA.where().andBetween("role_create_time", dto.getCreateRoleBeginDate(), dto.getCreateRoleEndDate());
 | 
	
	
		
			
				|  | @@ -136,30 +141,39 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public Page<Map> getRoleCombatRanking(RoleCombatRankingDTO dto) {
 | 
	
		
			
				|  |  | -        //查询条件
 | 
	
		
			
				|  |  | -        Criteria cri = Cnd.cri();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //是否查询合服数据(默认查询合服数据)
 | 
	
		
			
				|  |  | +        Boolean isQueryMerge = true;
 | 
	
		
			
				|  |  | +        //是否查询父游戏数据(根据是否传递子游戏ID判断,默认查询父游戏ID)
 | 
	
		
			
				|  |  | +        Boolean isQueryParentGame = true;
 | 
	
		
			
				|  |  | +        //判断查询的条件
 | 
	
		
			
				|  |  |          if (dto.getGameId() != null) {
 | 
	
		
			
				|  |  | -            //父游戏ID
 | 
	
		
			
				|  |  | -            cri.where().andEquals("parent_game_id", dto.getGameId());
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | -            //拼接区服开服时间
 | 
	
		
			
				|  |  | +            //子游戏ID
 | 
	
		
			
				|  |  | +            isQueryParentGame = false;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | -            cri.where().andInList("server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +            isQueryMerge = false;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (dto.getRankingNum() != null) {
 | 
	
		
			
				|  |  | -            //排名的个数
 | 
	
		
			
				|  |  | -            cri.where().andEquals("rank_num", dto.getRankingNum());
 | 
	
		
			
				|  |  | +        //查询区服相关数据
 | 
	
		
			
				|  |  | +        if (isQueryMerge) {
 | 
	
		
			
				|  |  | +            //查询合服
 | 
	
		
			
				|  |  | +            if (isQueryParentGame) {
 | 
	
		
			
				|  |  | +                //查询父游戏
 | 
	
		
			
				|  |  | +                return getMergeParentData(dto);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                //查询子游戏
 | 
	
		
			
				|  |  | +                return getMergeSonData(dto);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            //查询原始服
 | 
	
		
			
				|  |  | +            if (isQueryParentGame) {
 | 
	
		
			
				|  |  | +                //查询父游戏
 | 
	
		
			
				|  |  | +                return getOriginParentData(dto);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                //查询子游戏
 | 
	
		
			
				|  |  | +                return getOriginSonData(dto);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        Sql serverDataSql = Sqls.create(getRoleCombatRankServerDataSql());
 | 
	
		
			
				|  |  | -        serverDataSql.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | -        dao.execute(serverDataSql);
 | 
	
		
			
				|  |  | -        //执行结果
 | 
	
		
			
				|  |  | -        serverDataSql.getList(HashMap.class);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        return null;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -193,6 +207,394 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |          return dataMap;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 合服-父游戏
 | 
	
		
			
				|  |  | +     * @param dto RoleCombatRankingDTO
 | 
	
		
			
				|  |  | +     * @return Page<Map>
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private Page<Map> getMergeParentData(RoleCombatRankingDTO dto) {
 | 
	
		
			
				|  |  | +        //查询条件
 | 
	
		
			
				|  |  | +        Criteria cri = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (dto.getParentGameId() != null) {
 | 
	
		
			
				|  |  | +            //父游戏ID
 | 
	
		
			
				|  |  | +            cri.where().andEquals("parent_game_id", dto.getParentGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //合服开服时间
 | 
	
		
			
				|  |  | +            cri.where().andBetween("DATE(merge_time)", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +            //合服区服列表
 | 
	
		
			
				|  |  | +            cri.where().andInList("boss_server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  | +            cri.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //分页
 | 
	
		
			
				|  |  | +        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
 | 
	
		
			
				|  |  | +        //拼接分组条件
 | 
	
		
			
				|  |  | +        cri.getGroupBy().groupBy("source_system" , "boss_server_id" , "parent_game_id");
 | 
	
		
			
				|  |  | +        Sql sql = Sqls.create(getRoleCombatRankServerDataSqlD() + cri);
 | 
	
		
			
				|  |  | +        sql.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | +        sql.setPager(pager);
 | 
	
		
			
				|  |  | +        dao.execute(sql);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //获取角色信息
 | 
	
		
			
				|  |  | +        //查询条件
 | 
	
		
			
				|  |  | +        Criteria criRole = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (dto.getParentGameId() != null) {
 | 
	
		
			
				|  |  | +            //父游戏ID
 | 
	
		
			
				|  |  | +            criRole.where().andEquals("parent_game_id", dto.getParentGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //开服时间
 | 
	
		
			
				|  |  | +            criRole.where().andBetween("DATE(merge_time)", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +            //合服区服列表
 | 
	
		
			
				|  |  | +            criRole.where().andInList("boss_server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  | +            criRole.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getRankingNum() != null) {
 | 
	
		
			
				|  |  | +            //排名的个数
 | 
	
		
			
				|  |  | +            criRole.where().andLTE("rank_num", dto.getRankingNum());
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            //排名的个数
 | 
	
		
			
				|  |  | +            criRole.where().andLTE("rank_num", 5);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        Sql sqlRole = Sqls.create(getRoleCombatRankRoleDataSqlD() + criRole);
 | 
	
		
			
				|  |  | +        sqlRole.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | +        dao.execute(sqlRole);
 | 
	
		
			
				|  |  | +        //得到数据Map   (合服ID-父游戏ID)- (角色信息)
 | 
	
		
			
				|  |  | +        Map<String, List<Map<String, Object>>> roleDataMap = new HashMap<>();
 | 
	
		
			
				|  |  | +        //得到结果
 | 
	
		
			
				|  |  | +        List<Map> listRole = sqlRole.getList(Map.class).stream().map(map -> {
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append((String)map.get("boss_server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append((String)map.get("parent_game_id"));
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //含有改主键 添加数据
 | 
	
		
			
				|  |  | +                roleDataMap.get(sb.toString()).add(map);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                //不含有该主键
 | 
	
		
			
				|  |  | +                List<Map<String, Object>> tempList = new ArrayList<>();
 | 
	
		
			
				|  |  | +                tempList.add(map);
 | 
	
		
			
				|  |  | +                roleDataMap.put(String.valueOf(sb), tempList);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return map;
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<Map> list = sql.getList(Map.class).stream().map(map -> {
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append((String)map.get("boss_server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append((String)map.get("parent_game_id"));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //将排名信息添加
 | 
	
		
			
				|  |  | +                map.put("role_rank_date", roleDataMap.get(sb.toString()));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return map;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return new Page<>(list, pager);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 合服-子游戏
 | 
	
		
			
				|  |  | +     * @param dto RoleCombatRankingDTO
 | 
	
		
			
				|  |  | +     * @return Page<Map>
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private Page<Map> getMergeSonData(RoleCombatRankingDTO dto) {
 | 
	
		
			
				|  |  | +        //查询条件
 | 
	
		
			
				|  |  | +        Criteria cri = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (dto.getGameId() != null) {
 | 
	
		
			
				|  |  | +            //子游戏ID
 | 
	
		
			
				|  |  | +            cri.where().andEquals("game_id", dto.getGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //合服开服时间
 | 
	
		
			
				|  |  | +            cri.where().andBetween("DATE(merge_time)", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +            //合服区服列表
 | 
	
		
			
				|  |  | +            cri.where().andInList("boss_server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  | +            cri.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //分页
 | 
	
		
			
				|  |  | +        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
 | 
	
		
			
				|  |  | +        //拼接分组条件
 | 
	
		
			
				|  |  | +        cri.getGroupBy().groupBy("source_system" , "boss_server_id" , "game_id");
 | 
	
		
			
				|  |  | +        Sql sql = Sqls.create(getRoleCombatRankServerDataSqlC() + cri);
 | 
	
		
			
				|  |  | +        sql.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | +        sql.setPager(pager);
 | 
	
		
			
				|  |  | +        dao.execute(sql);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //获取角色信息
 | 
	
		
			
				|  |  | +        //查询条件
 | 
	
		
			
				|  |  | +        Criteria criRole = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (dto.getGameId() != null) {
 | 
	
		
			
				|  |  | +            //子游戏ID
 | 
	
		
			
				|  |  | +            criRole.where().andEquals("game_id", dto.getGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //合服开服时间
 | 
	
		
			
				|  |  | +            criRole.where().andBetween("DATE(merge_time)", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +            //合服区服列表
 | 
	
		
			
				|  |  | +            criRole.where().andInList("boss_server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  | +            criRole.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getRankingNum() != null) {
 | 
	
		
			
				|  |  | +            //排名的个数
 | 
	
		
			
				|  |  | +            criRole.where().andLTE("rank_num", dto.getRankingNum());
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            //排名的个数
 | 
	
		
			
				|  |  | +            criRole.where().andLTE("rank_num", 5);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        Sql sqlRole = Sqls.create(getRoleCombatRankRoleDataSqlC() + criRole);
 | 
	
		
			
				|  |  | +        sqlRole.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | +        dao.execute(sqlRole);
 | 
	
		
			
				|  |  | +        //得到数据Map   (合服ID-子游戏ID)- (角色信息)
 | 
	
		
			
				|  |  | +        Map<String, List<Map<String, Object>>> roleDataMap = new HashMap<>();
 | 
	
		
			
				|  |  | +        //得到结果
 | 
	
		
			
				|  |  | +        List<Map> listRole = sqlRole.getList(Map.class).stream().map(map -> {
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append((String)map.get("boss_server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append(map.get("game_id"));
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //含有改主键 添加数据
 | 
	
		
			
				|  |  | +                roleDataMap.get(sb.toString()).add(map);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                //不含有该主键
 | 
	
		
			
				|  |  | +                List<Map<String, Object>> tempList = new ArrayList<>();
 | 
	
		
			
				|  |  | +                tempList.add(map);
 | 
	
		
			
				|  |  | +                roleDataMap.put(String.valueOf(sb), tempList);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return map;
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<Map> list = sql.getList(Map.class).stream().map(map -> {
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append((String)map.get("boss_server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append(map.get("game_id"));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //将排名信息添加
 | 
	
		
			
				|  |  | +                map.put("role_rank_date", roleDataMap.get(sb.toString()));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return map;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return new Page<>(list, pager);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始服-父游戏
 | 
	
		
			
				|  |  | +     * @param dto
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private Page<Map> getOriginParentData(RoleCombatRankingDTO dto) {
 | 
	
		
			
				|  |  | +        //查询条件
 | 
	
		
			
				|  |  | +        Criteria cri = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (dto.getParentGameId() != null) {
 | 
	
		
			
				|  |  | +            //父游戏ID
 | 
	
		
			
				|  |  | +            cri.where().andEquals("parent_game_id", dto.getParentGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //原始服开服时间
 | 
	
		
			
				|  |  | +            cri.where().andBetween("dt", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +            //原始区服列表
 | 
	
		
			
				|  |  | +            cri.where().andInList("server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  | +            cri.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //分页
 | 
	
		
			
				|  |  | +        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
 | 
	
		
			
				|  |  | +        //拼接分组条件
 | 
	
		
			
				|  |  | +        cri.getGroupBy().groupBy("source_system" , "server_id" , "parent_game_id");
 | 
	
		
			
				|  |  | +        Sql sql = Sqls.create(getRoleCombatRankServerDataSqlB() + cri);
 | 
	
		
			
				|  |  | +        sql.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | +        sql.setPager(pager);
 | 
	
		
			
				|  |  | +        dao.execute(sql);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //获取角色信息
 | 
	
		
			
				|  |  | +        //查询条件
 | 
	
		
			
				|  |  | +        Criteria criRole = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (dto.getParentGameId() != null) {
 | 
	
		
			
				|  |  | +            //父游戏ID
 | 
	
		
			
				|  |  | +            criRole.where().andEquals("parent_game_id", dto.getParentGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //原始服开服时间
 | 
	
		
			
				|  |  | +            criRole.where().andBetween("dt", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +            //原始服区服列表
 | 
	
		
			
				|  |  | +            criRole.where().andInList("server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  | +            criRole.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getRankingNum() != null) {
 | 
	
		
			
				|  |  | +            //排名的个数
 | 
	
		
			
				|  |  | +            criRole.where().andLTE("rank_num", dto.getRankingNum());
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            //排名的个数
 | 
	
		
			
				|  |  | +            criRole.where().andLTE("rank_num", 5);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        Sql sqlRole = Sqls.create(getRoleCombatRankRoleDataSqlB() + criRole);
 | 
	
		
			
				|  |  | +        sqlRole.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | +        dao.execute(sqlRole);
 | 
	
		
			
				|  |  | +        //得到数据Map   (原始服ID-父游戏ID)- (角色信息)
 | 
	
		
			
				|  |  | +        Map<String, List<Map<String, Object>>> roleDataMap = new HashMap<>();
 | 
	
		
			
				|  |  | +        //得到结果
 | 
	
		
			
				|  |  | +        List<Map> listRole = sqlRole.getList(Map.class).stream().map(map -> {
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append(map.get("server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append((String)map.get("parent_game_id"));
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //含有改主键 添加数据
 | 
	
		
			
				|  |  | +                roleDataMap.get(sb.toString()).add(map);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                //不含有该主键
 | 
	
		
			
				|  |  | +                List<Map<String, Object>> tempList = new ArrayList<>();
 | 
	
		
			
				|  |  | +                tempList.add(map);
 | 
	
		
			
				|  |  | +                roleDataMap.put(String.valueOf(sb), tempList);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return map;
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<Map> list = sql.getList(Map.class).stream().map(map -> {
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append(map.get("server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append((String)map.get("parent_game_id"));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //将排名信息添加
 | 
	
		
			
				|  |  | +                map.put("role_rank_date", roleDataMap.get(sb.toString()));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return map;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return new Page<>(list, pager);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始服-子游戏
 | 
	
		
			
				|  |  | +     * @param dto
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private Page<Map> getOriginSonData(RoleCombatRankingDTO dto) {
 | 
	
		
			
				|  |  | +        //查询条件
 | 
	
		
			
				|  |  | +        Criteria cri = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (dto.getGameId() != null) {
 | 
	
		
			
				|  |  | +            //子游戏ID
 | 
	
		
			
				|  |  | +            cri.where().andEquals("game_id", dto.getGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //原始服开服时间
 | 
	
		
			
				|  |  | +            cri.where().andBetween("dt", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +            //原始区服列表
 | 
	
		
			
				|  |  | +            cri.where().andInList("server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  | +            cri.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //分页
 | 
	
		
			
				|  |  | +        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
 | 
	
		
			
				|  |  | +        //拼接分组条件
 | 
	
		
			
				|  |  | +        cri.getGroupBy().groupBy("source_system" , "server_id" , "game_id");
 | 
	
		
			
				|  |  | +        Sql sql = Sqls.create(getRoleCombatRankServerDataSqlA() + cri);
 | 
	
		
			
				|  |  | +        sql.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | +        sql.setPager(pager);
 | 
	
		
			
				|  |  | +        dao.execute(sql);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //获取角色信息
 | 
	
		
			
				|  |  | +        //查询条件
 | 
	
		
			
				|  |  | +        Criteria criRole = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (dto.getGameId() != null) {
 | 
	
		
			
				|  |  | +            //子游戏ID
 | 
	
		
			
				|  |  | +            criRole.where().andEquals("game_id", dto.getGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //原始服开服时间
 | 
	
		
			
				|  |  | +            criRole.where().andBetween("dt", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +            //原始服区服列表
 | 
	
		
			
				|  |  | +            criRole.where().andInList("server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  | +            criRole.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getRankingNum() != null) {
 | 
	
		
			
				|  |  | +            //排名的个数
 | 
	
		
			
				|  |  | +            criRole.where().andLTE("rank_num", dto.getRankingNum());
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            //排名的个数
 | 
	
		
			
				|  |  | +            criRole.where().andLTE("rank_num", 5);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        Sql sqlRole = Sqls.create(getRoleCombatRankRoleDataSqlA() + criRole);
 | 
	
		
			
				|  |  | +        sqlRole.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | +        dao.execute(sqlRole);
 | 
	
		
			
				|  |  | +        //得到数据Map   (原始服ID-子游戏ID)- (角色信息)
 | 
	
		
			
				|  |  | +        Map<String, List<Map<String, Object>>> roleDataMap = new HashMap<>();
 | 
	
		
			
				|  |  | +        //得到结果
 | 
	
		
			
				|  |  | +        List<Map> listRole = sqlRole.getList(Map.class).stream().map(map -> {
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append(map.get("server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append(map.get("game_id"));
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //含有改主键 添加数据
 | 
	
		
			
				|  |  | +                roleDataMap.get(sb.toString()).add(map);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                //不含有该主键
 | 
	
		
			
				|  |  | +                List<Map<String, Object>> tempList = new ArrayList<>();
 | 
	
		
			
				|  |  | +                tempList.add(map);
 | 
	
		
			
				|  |  | +                roleDataMap.put(String.valueOf(sb), tempList);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return map;
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<Map> list = sql.getList(Map.class).stream().map(map -> {
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append(map.get("server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append(map.get("game_id"));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //将排名信息添加
 | 
	
		
			
				|  |  | +                map.put("role_rank_date", roleDataMap.get(sb.toString()));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return map;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return new Page<>(list, pager);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 查询角色充值排行榜sql
 | 
	
		
			
				|  |  |       * @param criA 主表查询条件
 | 
	
	
		
			
				|  | @@ -772,7 +1174,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                              j.pitcher_id as put_user_id,
 | 
	
		
			
				|  |  |                              l.active_time as user_active_time,
 | 
	
		
			
				|  |  |                              m.user_last_recharge_game_id as user_last_recharge_game_id,
 | 
	
		
			
				|  |  | -                            n.game_name as user_last_recharge_game_name,\s
 | 
	
		
			
				|  |  | +                            n.game_name as user_last_recharge_game_name,
 | 
	
		
			
				|  |  |                              m.pay_time as user_pay_time -- 玩家最近充值时间
 | 
	
		
			
				|  |  |                          FROM
 | 
	
		
			
				|  |  |                          (
 | 
	
	
		
			
				|  | @@ -897,53 +1299,414 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                  """ + criA;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private String getRoleCombatRankServerDataSql() {
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始服-子游戏维度(区服相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankServerDataSqlA() {
 | 
	
		
			
				|  |  |          return """
 | 
	
		
			
				|  |  | -                SUM(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | -                SUM(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  | -                SUM(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  | -                SUM(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  | -                SUM(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  | -                SUM(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | -                SUM(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  | -                SUM(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  | -                SUM(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
		
			
				|  |  | -                SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
 | 
	
		
			
				|  |  | -                SUM(ba2) as ba2, -- 昨日付费金额
 | 
	
		
			
				|  |  | -                SUM(ba2_num) as ba2_num, -- 昨日付费人数
 | 
	
		
			
				|  |  | -                SUM(ba2_count) as ba2_count, -- 昨日付费次数
 | 
	
		
			
				|  |  | -                SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
 | 
	
		
			
				|  |  | -                SUM(ba3) as ba3, -- 前天付费金额
 | 
	
		
			
				|  |  | -                SUM(ba3_num) as ba3_num, -- 前天付费人数
 | 
	
		
			
				|  |  | -                SUM(ba3_count) as ba3_count, -- 前天付费次数
 | 
	
		
			
				|  |  | -                SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	source_system,
 | 
	
		
			
				|  |  | +                	server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                	MAX(`date`) as dt, -- 开服日期
 | 
	
		
			
				|  |  | +                	MAX(start_day) as start_day, -- 开服天数
 | 
	
		
			
				|  |  | +                	game_id, -- 子游戏ID
 | 
	
		
			
				|  |  | +                	MAX(game_name) as game_name, -- 子游戏名
 | 
	
		
			
				|  |  | +                	MAX(parent_game_id) as parent_game_id,
 | 
	
		
			
				|  |  | +                	MAX(parent_game_name) as parent_game_name,
 | 
	
		
			
				|  |  | +                	MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                	MAX(boss_server_id) as boss_server_id, -- 合服ID
 | 
	
		
			
				|  |  | +                	MAX(boss_server_name) as boss_server_name, -- 合服名
 | 
	
		
			
				|  |  | +                	MAX(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                	MAX(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  | +                	MAX(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  | +                	MAX(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  | +                	MAX(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  | +                	MAX(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                	MAX(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  | +                	MAX(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  | +                	MAX(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
		
			
				|  |  | +                	MAX(ba1_active_num) as ba1_active_num, -- 今日活跃人数
 | 
	
		
			
				|  |  | +                	MAX(ba2) as ba2, -- 昨日付费金额
 | 
	
		
			
				|  |  | +                	MAX(ba2_num) as ba2_num, -- 昨日付费人数
 | 
	
		
			
				|  |  | +                	MAX(ba2_count) as ba2_count, -- 昨日付费次数
 | 
	
		
			
				|  |  | +                	MAX(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
 | 
	
		
			
				|  |  | +                	MAX(ba3) as ba3, -- 前天付费金额
 | 
	
		
			
				|  |  | +                	MAX(ba3_num) as ba3_num, -- 前天付费人数
 | 
	
		
			
				|  |  | +                	MAX(ba3_count) as ba3_count, -- 前天付费次数
 | 
	
		
			
				|  |  | +                	MAX(ba3_active_num) as ba3_active_num -- 前天活跃人数
 | 
	
		
			
				|  |  | +                FROM game_ads.ads_role_combat_num_ranking
 | 
	
		
			
				|  |  |                  """;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private String getRoleCombatRankRoleDataSql() {
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始服-父游戏维度(区服相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankServerDataSqlB() {
 | 
	
		
			
				|  |  |          return """
 | 
	
		
			
				|  |  | -                SUM(parent_game_name) as parent_game_name,
 | 
	
		
			
				|  |  | -                SUM(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | -                SUM(boss_server_id) as boss_server_id, -- 合服ID
 | 
	
		
			
				|  |  | -                SUM(boss_server_name) as boss_server_name, -- 合服名
 | 
	
		
			
				|  |  | -                SUM(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | -                SUM(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  | -                SUM(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  | -                SUM(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  | -                SUM(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  | -                SUM(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | -                SUM(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  | -                SUM(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  | -                SUM(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
		
			
				|  |  | -                SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
 | 
	
		
			
				|  |  | -                SUM(ba2) as ba2, -- 昨日付费金额
 | 
	
		
			
				|  |  | -                SUM(ba2_num) as ba2_num, -- 昨日付费人数
 | 
	
		
			
				|  |  | -                SUM(ba2_count) as ba2_count, -- 昨日付费次数
 | 
	
		
			
				|  |  | -                SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
 | 
	
		
			
				|  |  | -                SUM(ba3) as ba3, -- 前天付费金额
 | 
	
		
			
				|  |  | -                SUM(ba3_num) as ba3_num, -- 前天付费人数
 | 
	
		
			
				|  |  | -                SUM(ba3_count) as ba3_count, -- 前天付费次数
 | 
	
		
			
				|  |  | -                SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	source_system,
 | 
	
		
			
				|  |  | +                	server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                	parent_game_id, -- 父游戏
 | 
	
		
			
				|  |  | +                	MAX(parent_game_name) as parent_game_name, -- 合服名称
 | 
	
		
			
				|  |  | +                    MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                    MAX(dt) as dt, -- 开服日期
 | 
	
		
			
				|  |  | +                	MAX(start_day) as start_day, -- 开服天数
 | 
	
		
			
				|  |  | +                    MAX(boss_server_id) as boss_server_id, -- 合服ID
 | 
	
		
			
				|  |  | +                    MAX(boss_server_name) as boss_server_name, -- 合服名
 | 
	
		
			
				|  |  | +                    SUM(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                    SUM(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  | +                    SUM(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  | +                    SUM(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  | +                    SUM(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  | +                    SUM(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  | +                    SUM(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
		
			
				|  |  | +                    SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
 | 
	
		
			
				|  |  | +                    SUM(ba2) as ba2, -- 昨日付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba2_num) as ba2_num, -- 昨日付费人数
 | 
	
		
			
				|  |  | +                    SUM(ba2_count) as ba2_count, -- 昨日付费次数
 | 
	
		
			
				|  |  | +                    SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
 | 
	
		
			
				|  |  | +                    SUM(ba3) as ba3, -- 前天付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba3_num) as ba3_num, -- 前天付费人数
 | 
	
		
			
				|  |  | +                    SUM(ba3_count) as ba3_count, -- 前天付费次数
 | 
	
		
			
				|  |  | +                    SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
 | 
	
		
			
				|  |  | +                FROM (
 | 
	
		
			
				|  |  | +                	-- 子查询,查询每个子游戏-区服的信息
 | 
	
		
			
				|  |  | +                	SELECT
 | 
	
		
			
				|  |  | +                		source_system,
 | 
	
		
			
				|  |  | +                		server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                		MAX(`date`) as dt, -- 开服日期
 | 
	
		
			
				|  |  | +                		MAX(start_day) as start_day, -- 开服天数
 | 
	
		
			
				|  |  | +                		game_id, -- 子游戏ID
 | 
	
		
			
				|  |  | +                		MAX(game_name) as game_name, -- 子游戏名
 | 
	
		
			
				|  |  | +                		MAX(parent_game_id) as parent_game_id,
 | 
	
		
			
				|  |  | +                		MAX(parent_game_name) as parent_game_name,
 | 
	
		
			
				|  |  | +                		MAX(game_name) as game_name,
 | 
	
		
			
				|  |  | +                		MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                		MAX(boss_server_id) as boss_server_id, -- 合服ID
 | 
	
		
			
				|  |  | +                		MAX(boss_server_name) as boss_server_name, -- 合服名
 | 
	
		
			
				|  |  | +                		MAX(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                		MAX(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  | +                		MAX(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  | +                		MAX(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  | +                		MAX(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  | +                		MAX(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                		MAX(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  | +                		MAX(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  | +                		MAX(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
		
			
				|  |  | +                		MAX(ba1_active_num) as ba1_active_num, -- 今日活跃人数
 | 
	
		
			
				|  |  | +                		MAX(ba2) as ba2, -- 昨日付费金额
 | 
	
		
			
				|  |  | +                		MAX(ba2_num) as ba2_num, -- 昨日付费人数
 | 
	
		
			
				|  |  | +                		MAX(ba2_count) as ba2_count, -- 昨日付费次数
 | 
	
		
			
				|  |  | +                		MAX(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
 | 
	
		
			
				|  |  | +                		MAX(ba3) as ba3, -- 前天付费金额
 | 
	
		
			
				|  |  | +                		MAX(ba3_num) as ba3_num, -- 前天付费人数
 | 
	
		
			
				|  |  | +                		MAX(ba3_count) as ba3_count, -- 前天付费次数
 | 
	
		
			
				|  |  | +                		MAX(ba3_active_num) as ba3_active_num -- 前天活跃人数
 | 
	
		
			
				|  |  | +                	FROM game_ads.ads_role_combat_num_ranking
 | 
	
		
			
				|  |  | +                	GROUP BY server_id, source_system , game_id
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 合服-子游戏维度(区服相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankServerDataSqlC() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	source_system,
 | 
	
		
			
				|  |  | +                	boss_server_id ,
 | 
	
		
			
				|  |  | +                	game_id,
 | 
	
		
			
				|  |  | +                	MAX(game_name) as game_name,
 | 
	
		
			
				|  |  | +                	MAX(boss_server_name) as boss_server_name,
 | 
	
		
			
				|  |  | +                	MAX(merge_time) as merge_time , -- 合服时间
 | 
	
		
			
				|  |  | +                	SUM(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                    SUM(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  | +                    SUM(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  | +                    SUM(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  | +                    SUM(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  | +                    SUM(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  | +                    SUM(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
		
			
				|  |  | +                    SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
 | 
	
		
			
				|  |  | +                    SUM(ba2) as ba2, -- 昨日付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba2_num) as ba2_num, -- 昨日付费人数
 | 
	
		
			
				|  |  | +                    SUM(ba2_count) as ba2_count, -- 昨日付费次数
 | 
	
		
			
				|  |  | +                    SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
 | 
	
		
			
				|  |  | +                    SUM(ba3) as ba3, -- 前天付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba3_num) as ba3_num, -- 前天付费人数
 | 
	
		
			
				|  |  | +                    SUM(ba3_count) as ba3_count, -- 前天付费次数
 | 
	
		
			
				|  |  | +                    SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
 | 
	
		
			
				|  |  | +                FROM (
 | 
	
		
			
				|  |  | +                	-- 子查询,查询每个子游戏-区服维度的信息
 | 
	
		
			
				|  |  | +                	SELECT
 | 
	
		
			
				|  |  | +                		source_system,
 | 
	
		
			
				|  |  | +                		server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                		game_id,
 | 
	
		
			
				|  |  | +                		MAX(game_name) as game_name,
 | 
	
		
			
				|  |  | +                		MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                		MAX(boss_server_id) as boss_server_id, -- 合服ID
 | 
	
		
			
				|  |  | +                		MAX(boss_server_name) as boss_server_name, -- 合服名
 | 
	
		
			
				|  |  | +                		MAX(merge_time) as merge_time , -- 合服时间
 | 
	
		
			
				|  |  | +                		MAX(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                		MAX(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  | +                		MAX(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  | +                		MAX(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  | +                		MAX(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  | +                		MAX(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                		MAX(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  | +                		MAX(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  | +                		MAX(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
		
			
				|  |  | +                		MAX(ba1_active_num) as ba1_active_num, -- 今日活跃人数
 | 
	
		
			
				|  |  | +                		MAX(ba2) as ba2, -- 昨日付费金额
 | 
	
		
			
				|  |  | +                		MAX(ba2_num) as ba2_num, -- 昨日付费人数
 | 
	
		
			
				|  |  | +                		MAX(ba2_count) as ba2_count, -- 昨日付费次数
 | 
	
		
			
				|  |  | +                		MAX(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
 | 
	
		
			
				|  |  | +                		MAX(ba3) as ba3, -- 前天付费金额
 | 
	
		
			
				|  |  | +                		MAX(ba3_num) as ba3_num, -- 前天付费人数
 | 
	
		
			
				|  |  | +                		MAX(ba3_count) as ba3_count, -- 前天付费次数
 | 
	
		
			
				|  |  | +                		MAX(ba3_active_num) as ba3_active_num -- 前天活跃人数
 | 
	
		
			
				|  |  | +                	FROM game_ads.ads_role_combat_num_ranking
 | 
	
		
			
				|  |  | +                	GROUP BY server_id, source_system , game_id
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 合服-父游戏维度(区服相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankServerDataSqlD() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	source_system,
 | 
	
		
			
				|  |  | +                	boss_server_id,
 | 
	
		
			
				|  |  | +                	parent_game_id,
 | 
	
		
			
				|  |  | +                	MAX(parent_game_name) as parent_game_name,
 | 
	
		
			
				|  |  | +                	MAX(boss_server_name) as boss_server_name,
 | 
	
		
			
				|  |  | +                	MAX(merge_time) as merge_time , -- 合服时间
 | 
	
		
			
				|  |  | +                	SUM(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                    SUM(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  | +                    SUM(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  | +                    SUM(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  | +                    SUM(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  | +                    SUM(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  | +                    SUM(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
		
			
				|  |  | +                    SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
 | 
	
		
			
				|  |  | +                    SUM(ba2) as ba2, -- 昨日付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba2_num) as ba2_num, -- 昨日付费人数
 | 
	
		
			
				|  |  | +                    SUM(ba2_count) as ba2_count, -- 昨日付费次数
 | 
	
		
			
				|  |  | +                    SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
 | 
	
		
			
				|  |  | +                    SUM(ba3) as ba3, -- 前天付费金额
 | 
	
		
			
				|  |  | +                    SUM(ba3_num) as ba3_num, -- 前天付费人数
 | 
	
		
			
				|  |  | +                    SUM(ba3_count) as ba3_count, -- 前天付费次数
 | 
	
		
			
				|  |  | +                    SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
 | 
	
		
			
				|  |  | +                FROM (
 | 
	
		
			
				|  |  | +                	-- 子查询,查询每个父游戏-区服维度的信息
 | 
	
		
			
				|  |  | +                	SELECT
 | 
	
		
			
				|  |  | +                		source_system,
 | 
	
		
			
				|  |  | +                		server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                		parent_game_id,
 | 
	
		
			
				|  |  | +                		MAX(parent_game_name) as parent_game_name,
 | 
	
		
			
				|  |  | +                        MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                        MAX(boss_server_id) as boss_server_id, -- 合服ID
 | 
	
		
			
				|  |  | +                        MAX(boss_server_name) as boss_server_name, -- 合服名
 | 
	
		
			
				|  |  | +                        MAX(merge_time) as merge_time , -- 合服时间
 | 
	
		
			
				|  |  | +                        SUM(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                        SUM(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  | +                        SUM(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  | +                        SUM(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  | +                        SUM(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  | +                        SUM(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                        SUM(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  | +                        SUM(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  | +                        SUM(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
		
			
				|  |  | +                        SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
 | 
	
		
			
				|  |  | +                        SUM(ba2) as ba2, -- 昨日付费金额
 | 
	
		
			
				|  |  | +                        SUM(ba2_num) as ba2_num, -- 昨日付费人数
 | 
	
		
			
				|  |  | +                        SUM(ba2_count) as ba2_count, -- 昨日付费次数
 | 
	
		
			
				|  |  | +                        SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
 | 
	
		
			
				|  |  | +                        SUM(ba3) as ba3, -- 前天付费金额
 | 
	
		
			
				|  |  | +                        SUM(ba3_num) as ba3_num, -- 前天付费人数
 | 
	
		
			
				|  |  | +                        SUM(ba3_count) as ba3_count, -- 前天付费次数
 | 
	
		
			
				|  |  | +                        SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
 | 
	
		
			
				|  |  | +                	FROM (
 | 
	
		
			
				|  |  | +                		-- 子查询,查询每个子游戏-区服维度的信息
 | 
	
		
			
				|  |  | +                		SELECT
 | 
	
		
			
				|  |  | +                			source_system,
 | 
	
		
			
				|  |  | +                			server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                			game_id, -- 子游戏ID
 | 
	
		
			
				|  |  | +                			MAX(game_name) as game_name, -- 子游戏名
 | 
	
		
			
				|  |  | +                			MAX(parent_game_id) as parent_game_id,
 | 
	
		
			
				|  |  | +                			MAX(parent_game_name) as parent_game_name,
 | 
	
		
			
				|  |  | +                			MAX(game_name) as game_name,
 | 
	
		
			
				|  |  | +                			MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                			MAX(boss_server_id) as boss_server_id, -- 合服ID
 | 
	
		
			
				|  |  | +                			MAX(boss_server_name) as boss_server_name, -- 合服名
 | 
	
		
			
				|  |  | +                			MAX(merge_time) as merge_time , -- 合服时间
 | 
	
		
			
				|  |  | +                			MAX(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                			MAX(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  | +                			MAX(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  | +                			MAX(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  | +                			MAX(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  | +                			MAX(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                			MAX(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  | +                			MAX(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  | +                			MAX(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
		
			
				|  |  | +                			MAX(ba1_active_num) as ba1_active_num, -- 今日活跃人数
 | 
	
		
			
				|  |  | +                			MAX(ba2) as ba2, -- 昨日付费金额
 | 
	
		
			
				|  |  | +                			MAX(ba2_num) as ba2_num, -- 昨日付费人数
 | 
	
		
			
				|  |  | +                			MAX(ba2_count) as ba2_count, -- 昨日付费次数
 | 
	
		
			
				|  |  | +                			MAX(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
 | 
	
		
			
				|  |  | +                			MAX(ba3) as ba3, -- 前天付费金额
 | 
	
		
			
				|  |  | +                			MAX(ba3_num) as ba3_num, -- 前天付费人数
 | 
	
		
			
				|  |  | +                			MAX(ba3_count) as ba3_count, -- 前天付费次数
 | 
	
		
			
				|  |  | +                			MAX(ba3_active_num) as ba3_active_num -- 前天活跃人数
 | 
	
		
			
				|  |  | +                		FROM game_ads.ads_role_combat_num_ranking
 | 
	
		
			
				|  |  | +                		GROUP BY server_id, source_system , game_id
 | 
	
		
			
				|  |  | +                	) a
 | 
	
		
			
				|  |  | +                	GROUP BY server_id, source_system , parent_game_id
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始服-子游戏维度(角色排行相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankRoleDataSqlA() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	*
 | 
	
		
			
				|  |  | +                FROM (
 | 
	
		
			
				|  |  | +                	SELECT
 | 
	
		
			
				|  |  | +                		`date` as dt,
 | 
	
		
			
				|  |  | +                		source_system ,
 | 
	
		
			
				|  |  | +                		server_id ,
 | 
	
		
			
				|  |  | +                		server_name ,
 | 
	
		
			
				|  |  | +                		boss_server_id ,
 | 
	
		
			
				|  |  | +                		boss_server_name ,
 | 
	
		
			
				|  |  | +                		merge_time,
 | 
	
		
			
				|  |  | +                		game_id,
 | 
	
		
			
				|  |  | +                		game_name,
 | 
	
		
			
				|  |  | +                		parent_game_id,
 | 
	
		
			
				|  |  | +                		parent_game_name,
 | 
	
		
			
				|  |  | +                		super_game_id,
 | 
	
		
			
				|  |  | +                		super_game_name,
 | 
	
		
			
				|  |  | +                		role_id,
 | 
	
		
			
				|  |  | +                		role_name,
 | 
	
		
			
				|  |  | +                		role_level,
 | 
	
		
			
				|  |  | +                		combat_num,
 | 
	
		
			
				|  |  | +                		ROW_NUMBER()over(partition by source_system ,server_id ,game_id order by combat_num desc) as rank_num
 | 
	
		
			
				|  |  | +                	FROM game_ads.ads_role_combat_num_ranking
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始服-父游戏维度(角色排行相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankRoleDataSqlB() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                *
 | 
	
		
			
				|  |  | +                FROM (
 | 
	
		
			
				|  |  | +                	SELECT
 | 
	
		
			
				|  |  | +                		`date` as dt,
 | 
	
		
			
				|  |  | +                		source_system ,
 | 
	
		
			
				|  |  | +                		server_id ,
 | 
	
		
			
				|  |  | +                		server_name ,
 | 
	
		
			
				|  |  | +                		boss_server_id ,
 | 
	
		
			
				|  |  | +                		boss_server_name ,
 | 
	
		
			
				|  |  | +                		merge_time,
 | 
	
		
			
				|  |  | +                		game_id,
 | 
	
		
			
				|  |  | +                		game_name,
 | 
	
		
			
				|  |  | +                		parent_game_id,
 | 
	
		
			
				|  |  | +                		parent_game_name,
 | 
	
		
			
				|  |  | +                		super_game_id,
 | 
	
		
			
				|  |  | +                		super_game_name,
 | 
	
		
			
				|  |  | +                		role_id,
 | 
	
		
			
				|  |  | +                		role_name,
 | 
	
		
			
				|  |  | +                		role_level,
 | 
	
		
			
				|  |  | +                		combat_num,
 | 
	
		
			
				|  |  | +                		ROW_NUMBER()over(partition by source_system ,server_id ,parent_game_id order by combat_num desc) as rank_num
 | 
	
		
			
				|  |  | +                	FROM game_ads.ads_role_combat_num_ranking
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 合服-子游戏维度(角色排行相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankRoleDataSqlC() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                *
 | 
	
		
			
				|  |  | +                FROM (
 | 
	
		
			
				|  |  | +                	SELECT
 | 
	
		
			
				|  |  | +                		`date` as dt,
 | 
	
		
			
				|  |  | +                		source_system ,
 | 
	
		
			
				|  |  | +                		server_id ,
 | 
	
		
			
				|  |  | +                		server_name ,
 | 
	
		
			
				|  |  | +                		boss_server_id ,
 | 
	
		
			
				|  |  | +                		boss_server_name ,
 | 
	
		
			
				|  |  | +                		merge_time,
 | 
	
		
			
				|  |  | +                		game_id,
 | 
	
		
			
				|  |  | +                		game_name,
 | 
	
		
			
				|  |  | +                		parent_game_id,
 | 
	
		
			
				|  |  | +                		parent_game_name,
 | 
	
		
			
				|  |  | +                		super_game_id,
 | 
	
		
			
				|  |  | +                		super_game_name,
 | 
	
		
			
				|  |  | +                		role_id,
 | 
	
		
			
				|  |  | +                		role_name,
 | 
	
		
			
				|  |  | +                		role_level,
 | 
	
		
			
				|  |  | +                		combat_num,
 | 
	
		
			
				|  |  | +                		ROW_NUMBER()over(partition by source_system ,boss_server_id ,game_id order by combat_num desc) as rank_num
 | 
	
		
			
				|  |  | +                	FROM game_ads.ads_role_combat_num_ranking
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 合服-父游戏维度(角色排行相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankRoleDataSqlD() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                 *
 | 
	
		
			
				|  |  | +                FROM (
 | 
	
		
			
				|  |  | +                 SELECT
 | 
	
		
			
				|  |  | +                     `date` as dt,
 | 
	
		
			
				|  |  | +                     source_system ,
 | 
	
		
			
				|  |  | +                     server_id ,
 | 
	
		
			
				|  |  | +                     server_name ,
 | 
	
		
			
				|  |  | +                     boss_server_id ,
 | 
	
		
			
				|  |  | +                     boss_server_name ,
 | 
	
		
			
				|  |  | +                     merge_time,
 | 
	
		
			
				|  |  | +                     game_id,
 | 
	
		
			
				|  |  | +                     game_name,
 | 
	
		
			
				|  |  | +                     parent_game_id,
 | 
	
		
			
				|  |  | +                     parent_game_name,
 | 
	
		
			
				|  |  | +                     super_game_id,
 | 
	
		
			
				|  |  | +                     super_game_name,
 | 
	
		
			
				|  |  | +                     role_id,
 | 
	
		
			
				|  |  | +                     role_name,
 | 
	
		
			
				|  |  | +                     role_level,
 | 
	
		
			
				|  |  | +                     combat_num,
 | 
	
		
			
				|  |  | +                     ROW_NUMBER()over(partition by source_system ,boss_server_id ,parent_game_id order by combat_num desc) as rank_num
 | 
	
		
			
				|  |  | +                 FROM game_ads.ads_role_combat_num_ranking
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  |                  """;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |