|  | @@ -155,36 +155,14 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |      public Page<Map> getRoleCombatRanking(RoleCombatRankingDTO dto) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //是否查询合服数据(默认查询合服数据)
 | 
	
		
			
				|  |  | -        Boolean isQueryMerge = true;
 | 
	
		
			
				|  |  | -        //是否查询父游戏数据(根据是否传递子游戏ID判断,默认查询父游戏ID)
 | 
	
		
			
				|  |  | -        Boolean isQueryParentGame = true;
 | 
	
		
			
				|  |  | -        //判断查询的条件
 | 
	
		
			
				|  |  | -        if (dto.getGameId() != null) {
 | 
	
		
			
				|  |  | -            //子游戏ID
 | 
	
		
			
				|  |  | -            isQueryParentGame = false;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | -            isQueryMerge = false;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        Boolean isQueryMerge = dto.getIsMergeServer() == null || dto.getIsMergeServer();
 | 
	
		
			
				|  |  |          //查询区服相关数据
 | 
	
		
			
				|  |  |          if (isQueryMerge) {
 | 
	
		
			
				|  |  |              //查询合服
 | 
	
		
			
				|  |  | -            if (isQueryParentGame) {
 | 
	
		
			
				|  |  | -                //查询父游戏
 | 
	
		
			
				|  |  | -                return getMergeParentData(dto);
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                //查询子游戏
 | 
	
		
			
				|  |  | -                return getMergeSonData(dto);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +            return getMergeParentData(dto);
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              //查询原始服
 | 
	
		
			
				|  |  | -            if (isQueryParentGame) {
 | 
	
		
			
				|  |  | -                //查询父游戏
 | 
	
		
			
				|  |  | -                return getOriginParentData(dto);
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                //查询子游戏
 | 
	
		
			
				|  |  | -                return getOriginSonData(dto);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +            return getOriginParentData(dto);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -235,22 +213,27 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |              //合服开服时间
 | 
	
		
			
				|  |  |              cri.where().andBetween("DATE(merge_time)", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(dto.getServerIds())) {
 | 
	
		
			
				|  |  |              //合服区服列表
 | 
	
		
			
				|  |  | -            cri.where().andInList("boss_server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +            cri.where().andIn("boss_server_id", dto.getServerIds().toArray(String[]::new));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          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");
 | 
	
		
			
				|  |  | +        //分页
 | 
	
		
			
				|  |  | +        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
 | 
	
		
			
				|  |  | +        //查询总记录数
 | 
	
		
			
				|  |  | +        Sql countSql = Sqls.create(getRoleCombatRankServerDataSqlDCount(cri));
 | 
	
		
			
				|  |  | +        countSql.setCallback(Sqls.callback.integer());
 | 
	
		
			
				|  |  | +        dao.execute(countSql);
 | 
	
		
			
				|  |  | +        pager.setRecordCount(countSql.getInt());
 | 
	
		
			
				|  |  | +        //查询出区服相关数据
 | 
	
		
			
				|  |  |          Sql sql = Sqls.create(getRoleCombatRankServerDataSqlD() + cri);
 | 
	
		
			
				|  |  |          sql.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  |          sql.setPager(pager);
 | 
	
		
			
				|  |  |          dao.execute(sql);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          //获取角色信息
 | 
	
		
			
				|  |  |          //查询条件
 | 
	
		
			
				|  |  |          Criteria criRole = Cnd.cri();
 | 
	
	
		
			
				|  | @@ -262,9 +245,9 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |              //开服时间
 | 
	
		
			
				|  |  |              criRole.where().andBetween("DATE(merge_time)", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(dto.getServerIds())) {
 | 
	
		
			
				|  |  |              //合服区服列表
 | 
	
		
			
				|  |  | -            criRole.where().andInList("boss_server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +            criRole.where().andIn("boss_server_id", dto.getServerIds().toArray(String[]::new));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  |              criRole.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
	
		
			
				|  | @@ -281,133 +264,36 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |          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 -> {
 | 
	
		
			
				|  |  | +        //获取到相关角色排名信息
 | 
	
		
			
				|  |  | +        List<Map> listRole = sqlRole.getList(Map.class).stream().map(dataMap -> {
 | 
	
		
			
				|  |  | +            //拼接主键信息
 | 
	
		
			
				|  |  |              StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | -            sb.append((String)map.get("boss_server_id"))
 | 
	
		
			
				|  |  | +            sb.append((String)dataMap.get("boss_server_id"))
 | 
	
		
			
				|  |  |                      .append("-")
 | 
	
		
			
				|  |  | -                    .append(map.get("game_id"));
 | 
	
		
			
				|  |  | +                    .append((String)dataMap.get("parent_game_id"));
 | 
	
		
			
				|  |  |              if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  |                  //含有改主键 添加数据
 | 
	
		
			
				|  |  | -                roleDataMap.get(sb.toString()).add(map);
 | 
	
		
			
				|  |  | +                roleDataMap.get(sb.toString()).add(dataMap);
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  //不含有该主键
 | 
	
		
			
				|  |  |                  List<Map<String, Object>> tempList = new ArrayList<>();
 | 
	
		
			
				|  |  | -                tempList.add(map);
 | 
	
		
			
				|  |  | +                tempList.add(dataMap);
 | 
	
		
			
				|  |  |                  roleDataMap.put(String.valueOf(sb), tempList);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            return map;
 | 
	
		
			
				|  |  | +            return dataMap;
 | 
	
		
			
				|  |  |          }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        List<Map> list = sql.getList(Map.class).stream().map(map -> {
 | 
	
		
			
				|  |  | +        //将排名信息拼接到区服信息上
 | 
	
		
			
				|  |  | +        List<Map> list = sql.getList(Map.class).stream().map(dataMap -> {
 | 
	
		
			
				|  |  | +            //主键
 | 
	
		
			
				|  |  |              StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | -            sb.append((String)map.get("boss_server_id"))
 | 
	
		
			
				|  |  | +            sb.append((String)dataMap.get("boss_server_id"))
 | 
	
		
			
				|  |  |                      .append("-")
 | 
	
		
			
				|  |  | -                    .append(map.get("game_id"));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +                    .append((String)dataMap.get("parent_game_id"));
 | 
	
		
			
				|  |  |              if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  |                  //将排名信息添加
 | 
	
		
			
				|  |  | -                map.put("role_rank_date", roleDataMap.get(sb.toString()));
 | 
	
		
			
				|  |  | +                dataMap.put("role_rank_date", roleDataMap.get(sb.toString()));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            return map;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            return dataMap;
 | 
	
		
			
				|  |  |          }).collect(Collectors.toList());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return new Page<>(list, pager);
 | 
	
	
		
			
				|  | @@ -429,17 +315,23 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |              //原始服开服时间
 | 
	
		
			
				|  |  |              cri.where().andBetween("dt", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(dto.getServerIds())) {
 | 
	
		
			
				|  |  |              //原始区服列表
 | 
	
		
			
				|  |  | -            cri.where().andInList("server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +            cri.where().andIn("server_id", dto.getServerIds().toArray(String[]::new));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          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");
 | 
	
		
			
				|  |  | +        //分页
 | 
	
		
			
				|  |  | +        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
 | 
	
		
			
				|  |  | +        //查询总记录数
 | 
	
		
			
				|  |  | +        Sql countSql = Sqls.create(getRoleCombatRankServerDataSqlBCount(cri));
 | 
	
		
			
				|  |  | +        countSql.setCallback(Sqls.callback.integer());
 | 
	
		
			
				|  |  | +        dao.execute(countSql);
 | 
	
		
			
				|  |  | +        pager.setRecordCount(countSql.getInt());
 | 
	
		
			
				|  |  | +        //区服数据
 | 
	
		
			
				|  |  |          Sql sql = Sqls.create(getRoleCombatRankServerDataSqlB() + cri);
 | 
	
		
			
				|  |  |          sql.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  |          sql.setPager(pager);
 | 
	
	
		
			
				|  | @@ -456,9 +348,9 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |              //原始服开服时间
 | 
	
		
			
				|  |  |              criRole.where().andBetween("dt", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(dto.getServerIds())) {
 | 
	
		
			
				|  |  |              //原始服区服列表
 | 
	
		
			
				|  |  | -            criRole.where().andInList("server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +            criRole.where().andIn("server_id", dto.getServerIds().toArray(String[]::new));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  |              criRole.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
	
		
			
				|  | @@ -510,103 +402,6 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |          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 主表查询条件
 | 
	
	
		
			
				|  | @@ -1311,48 +1106,6 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                  """ + criA;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    /**
 | 
	
		
			
				|  |  | -     * 原始服-子游戏维度(区服相关信息)
 | 
	
		
			
				|  |  | -     * @return String
 | 
	
		
			
				|  |  | -     */
 | 
	
		
			
				|  |  | -    private String getRoleCombatRankServerDataSqlA() {
 | 
	
		
			
				|  |  | -        return """
 | 
	
		
			
				|  |  | -                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, -- 总付费金额
 | 
	
		
			
				|  |  | -                	ROUND(IF(MAX(total_num) > 0, MAX(total_amount) / MAX(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
 | 
	
		
			
				|  |  | -                	ROUND(IF(MAX(create_role_count) > 0, MAX(total_num) / MAX(create_role_count), 0), 4) as amount_rate, -- 付费率
 | 
	
		
			
				|  |  | -                	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
 | 
	
		
			
				|  |  | -                """;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 原始服-父游戏维度(区服相关信息)
 | 
	
		
			
				|  |  |       * @return String
 | 
	
	
		
			
				|  | @@ -1360,15 +1113,16 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |      private String getRoleCombatRankServerDataSqlB() {
 | 
	
		
			
				|  |  |          return """
 | 
	
		
			
				|  |  |                  SELECT
 | 
	
		
			
				|  |  | -                	source_system,
 | 
	
		
			
				|  |  | -                	server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                	source_system, -- SDK来源
 | 
	
		
			
				|  |  |                  	parent_game_id, -- 父游戏
 | 
	
		
			
				|  |  | -                	MAX(parent_game_name) as parent_game_name, -- 合服名称
 | 
	
		
			
				|  |  | +                	MAX(parent_game_name) as parent_game_name, -- 父游戏名称
 | 
	
		
			
				|  |  | +                	server_id, -- 区服ID
 | 
	
		
			
				|  |  |                      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, -- 合服名
 | 
	
		
			
				|  |  | +                    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, -- 创角人数
 | 
	
	
		
			
				|  | @@ -1404,6 +1158,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                  		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, -- 创角人数
 | 
	
	
		
			
				|  | @@ -1429,69 +1184,84 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  | -     * 合服-子游戏维度(区服相关信息)
 | 
	
		
			
				|  |  | +     * 原始服-父游戏维度(区服相关信息)(总记录数)
 | 
	
		
			
				|  |  |       * @return String
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  | -    private String getRoleCombatRankServerDataSqlC() {
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankServerDataSqlBCount(Criteria cri) {
 | 
	
		
			
				|  |  |          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, -- 总付费金额
 | 
	
		
			
				|  |  | -                    ROUND(IF(SUM(total_num) > 0, SUM(total_amount) / SUM(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
 | 
	
		
			
				|  |  | -                    ROUND(IF(SUM(create_role_count) > 0, SUM(total_num) / SUM(create_role_count), 0), 4) as amount_rate, -- 付费率
 | 
	
		
			
				|  |  | -                    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
 | 
	
		
			
				|  |  | +                    COUNT(1)
 | 
	
		
			
				|  |  | +                FROM(
 | 
	
		
			
				|  |  | +                    SELECT
 | 
	
		
			
				|  |  | +                        source_system, -- SDK来源
 | 
	
		
			
				|  |  | +                        parent_game_id, -- 父游戏
 | 
	
		
			
				|  |  | +                        MAX(parent_game_name) as parent_game_name, -- 父游戏名称
 | 
	
		
			
				|  |  | +                        server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                        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, -- 合服名
 | 
	
		
			
				|  |  | +                        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, -- 总付费金额
 | 
	
		
			
				|  |  | +                        ROUND(IF(SUM(total_num) > 0, SUM(total_amount) / SUM(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
 | 
	
		
			
				|  |  | +                        ROUND(IF(SUM(create_role_count) > 0, SUM(total_num) / SUM(create_role_count), 0), 4) as amount_rate, -- 付费率
 | 
	
		
			
				|  |  | +                        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(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
 | 
	
		
			
				|  |  | +                """ + cri+
 | 
	
		
			
				|  |  | +                """
 | 
	
		
			
				|  |  |                  ) a
 | 
	
		
			
				|  |  |                  """;
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -1503,12 +1273,20 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |      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,
 | 
	
		
			
				|  |  | +                	a.source_system, -- SDK来源
 | 
	
		
			
				|  |  | +                	parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                	MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                	boss_server_id, -- 合服ID
 | 
	
		
			
				|  |  | +                	MAX(boss_server_name) as boss_server_name, -- 合服名
 | 
	
		
			
				|  |  |                  	MAX(merge_time) as merge_time , -- 合服时间
 | 
	
		
			
				|  |  | +                	TIMESTAMPDIFF(DAY, MAX(merge_time), NOW()) start_day, -- 开服天数
 | 
	
		
			
				|  |  | +                	MAX(sum_server_count) as sum_server_count, -- 合服次数
 | 
	
		
			
				|  |  | +                	MAX(b.main_server_id) as main_server_id, -- 主服ID
 | 
	
		
			
				|  |  | +                	MAX(b.main_server_name) as main_server_name, -- 主服名
 | 
	
		
			
				|  |  | +                	MAX(son_server_ids) as son_server_ids, -- 合服的子服ID列表
 | 
	
		
			
				|  |  | +                    MAX(source_server_ids) as source_server_ids, -- 子服ID列表
 | 
	
		
			
				|  |  | +                    MAX(source_server_ids_name) as source_server_ids_name, -- 子服名列表
 | 
	
		
			
				|  |  | +                	MAX(super_game_id) as super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  |                  	SUM(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  |                      SUM(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  |                      SUM(create_role_count) as create_role_count, -- 创角人数
 | 
	
	
		
			
				|  | @@ -1540,7 +1318,9 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                          MAX(boss_server_id) as boss_server_id, -- 合服ID
 | 
	
		
			
				|  |  |                          MAX(boss_server_name) as boss_server_name, -- 合服名
 | 
	
		
			
				|  |  |                          MAX(merge_time) as merge_time , -- 合服时间
 | 
	
		
			
				|  |  | +                        MAX(sum_server_count) as sum_server_count, -- 合服次数
 | 
	
		
			
				|  |  |                          SUM(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                        MAX(super_game_id) as super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  |                          SUM(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  |                          SUM(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  |                          SUM(role_count) as role_count, -- 角色数量
 | 
	
	
		
			
				|  | @@ -1572,7 +1352,9 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                  			MAX(boss_server_id) as boss_server_id, -- 合服ID
 | 
	
		
			
				|  |  |                  			MAX(boss_server_name) as boss_server_name, -- 合服名
 | 
	
		
			
				|  |  |                  			MAX(merge_time) as merge_time , -- 合服时间
 | 
	
		
			
				|  |  | +                			MAX(sum_server_count) as sum_server_count, -- 合服次数
 | 
	
		
			
				|  |  |                  			MAX(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                			MAX(super_game_id) as super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  |                  			MAX(new_user_count) as new_user_count, -- 新用户人数
 | 
	
		
			
				|  |  |                  			MAX(create_role_count) as create_role_count, -- 创角人数
 | 
	
		
			
				|  |  |                  			MAX(role_count) as role_count, -- 角色数量
 | 
	
	
		
			
				|  | @@ -1595,38 +1377,173 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                  	) a
 | 
	
		
			
				|  |  |                  	GROUP BY server_id, source_system , parent_game_id
 | 
	
		
			
				|  |  |                  ) a
 | 
	
		
			
				|  |  | +                LEFT JOIN (
 | 
	
		
			
				|  |  | +                	SELECT
 | 
	
		
			
				|  |  | +                		a.source_system as b_source_system,
 | 
	
		
			
				|  |  | +                		a.server_id as b_server_id,
 | 
	
		
			
				|  |  | +                		a.game_id as b_game_id,
 | 
	
		
			
				|  |  | +                		MAX(a.server_name) as server_name  ,
 | 
	
		
			
				|  |  | +                		MAX(a.main_server_id) as main_server_id,
 | 
	
		
			
				|  |  | +                		MAX(c.server_name) as main_server_name,
 | 
	
		
			
				|  |  | +                		MAX(a.son_server_ids) as son_server_ids ,
 | 
	
		
			
				|  |  | +                		GROUP_CONCAT(a.source_server_ids, ',') as source_server_ids,
 | 
	
		
			
				|  |  | +                		GROUP_CONCAT(b.server_name , ',') as source_server_ids_name
 | 
	
		
			
				|  |  | +                	FROM dm_game_order.t_game_server_merge a
 | 
	
		
			
				|  |  | +                	LEFT JOIN dm_game_order.t_game_server_merge b on a.source_system = b.source_system AND a.game_id = b.game_id AND a.source_server_ids = b.server_id
 | 
	
		
			
				|  |  | +                	LEFT JOIN (
 | 
	
		
			
				|  |  | +                		SELECT
 | 
	
		
			
				|  |  | +                			source_system ,
 | 
	
		
			
				|  |  | +                			game_id ,
 | 
	
		
			
				|  |  | +                			server_id  ,
 | 
	
		
			
				|  |  | +                			MAX(server_name) as server_name
 | 
	
		
			
				|  |  | +                		FROM dm_game_order.t_game_server_merge
 | 
	
		
			
				|  |  | +                		GROUP BY server_id ,source_system ,game_id
 | 
	
		
			
				|  |  | +                	) c on a.source_system = c.source_system AND a.game_id = c.game_id AND a.main_server_id = c.server_id
 | 
	
		
			
				|  |  | +                	group by a.server_id , a.source_system , a.game_id
 | 
	
		
			
				|  |  | +                ) b ON a.source_system = b.b_source_system AND a.super_game_id = b.b_game_id AND a.boss_server_id = b.b_server_id
 | 
	
		
			
				|  |  |                  """;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  | -     * 原始服-子游戏维度(角色排行相关信息)
 | 
	
		
			
				|  |  | +     * 合服-父游戏维度(区服相关信息)(总记录数)
 | 
	
		
			
				|  |  |       * @return String
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  | -    private String getRoleCombatRankRoleDataSqlA() {
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankServerDataSqlDCount(Criteria cri) {
 | 
	
		
			
				|  |  |          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
 | 
	
		
			
				|  |  | +                    COUNT(1)
 | 
	
		
			
				|  |  | +                FROM(
 | 
	
		
			
				|  |  | +                    SELECT
 | 
	
		
			
				|  |  | +                        a.source_system, -- SDK来源
 | 
	
		
			
				|  |  | +                        parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                        MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                        boss_server_id, -- 合服ID
 | 
	
		
			
				|  |  | +                        MAX(boss_server_name) as boss_server_name, -- 合服名
 | 
	
		
			
				|  |  | +                        MAX(merge_time) as merge_time , -- 合服时间
 | 
	
		
			
				|  |  | +                        TIMESTAMPDIFF(DAY, MAX(merge_time), NOW()) start_day, -- 开服天数
 | 
	
		
			
				|  |  | +                        MAX(sum_server_count) as sum_server_count, -- 合服次数
 | 
	
		
			
				|  |  | +                        MAX(b.main_server_id) as main_server_id, -- 主服ID
 | 
	
		
			
				|  |  | +                        MAX(b.main_server_name) as main_server_name, -- 主服名
 | 
	
		
			
				|  |  | +                        MAX(son_server_ids) as son_server_ids, -- 合服的子服ID列表
 | 
	
		
			
				|  |  | +                        MAX(source_server_ids) as source_server_ids, -- 子服ID列表
 | 
	
		
			
				|  |  | +                        MAX(source_server_ids_name) as source_server_ids_name, -- 子服名列表
 | 
	
		
			
				|  |  | +                        MAX(super_game_id) as super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                        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, -- 总付费金额
 | 
	
		
			
				|  |  | +                        ROUND(IF(SUM(total_num) > 0, SUM(total_amount) / SUM(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
 | 
	
		
			
				|  |  | +                        ROUND(IF(SUM(create_role_count) > 0, SUM(total_num) / SUM(create_role_count), 0), 4) as amount_rate, -- 付费率
 | 
	
		
			
				|  |  | +                        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 , -- 合服时间
 | 
	
		
			
				|  |  | +                            MAX(sum_server_count) as sum_server_count, -- 合服次数
 | 
	
		
			
				|  |  | +                            SUM(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                            MAX(super_game_id) as super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                            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(sum_server_count) as sum_server_count, -- 合服次数
 | 
	
		
			
				|  |  | +                                MAX(server_combat_num) as server_combat_num, -- 区服战力
 | 
	
		
			
				|  |  | +                                MAX(super_game_id) as super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                                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
 | 
	
		
			
				|  |  | +                    LEFT JOIN (
 | 
	
		
			
				|  |  | +                        SELECT
 | 
	
		
			
				|  |  | +                            a.source_system as b_source_system,
 | 
	
		
			
				|  |  | +                            a.server_id as b_server_id,
 | 
	
		
			
				|  |  | +                            a.game_id as b_game_id,
 | 
	
		
			
				|  |  | +                            MAX(a.server_name) as server_name  ,
 | 
	
		
			
				|  |  | +                            MAX(a.main_server_id) as main_server_id,
 | 
	
		
			
				|  |  | +                            MAX(c.server_name) as main_server_name,
 | 
	
		
			
				|  |  | +                            MAX(a.son_server_ids) as son_server_ids ,
 | 
	
		
			
				|  |  | +                            GROUP_CONCAT(a.source_server_ids, ',') as source_server_ids,
 | 
	
		
			
				|  |  | +                            GROUP_CONCAT(b.server_name , ',') as source_server_ids_name
 | 
	
		
			
				|  |  | +                        FROM dm_game_order.t_game_server_merge a
 | 
	
		
			
				|  |  | +                        LEFT JOIN dm_game_order.t_game_server_merge b on a.source_system = b.source_system AND a.game_id = b.game_id AND a.source_server_ids = b.server_id
 | 
	
		
			
				|  |  | +                        LEFT JOIN (
 | 
	
		
			
				|  |  | +                            SELECT
 | 
	
		
			
				|  |  | +                                source_system ,
 | 
	
		
			
				|  |  | +                                game_id ,
 | 
	
		
			
				|  |  | +                                server_id  ,
 | 
	
		
			
				|  |  | +                                MAX(server_name) as server_name
 | 
	
		
			
				|  |  | +                            FROM dm_game_order.t_game_server_merge
 | 
	
		
			
				|  |  | +                            GROUP BY server_id ,source_system ,game_id
 | 
	
		
			
				|  |  | +                        ) c on a.source_system = c.source_system AND a.game_id = c.game_id AND a.main_server_id = c.server_id
 | 
	
		
			
				|  |  | +                        group by a.server_id , a.source_system , a.game_id
 | 
	
		
			
				|  |  | +                    ) b ON a.source_system = b.b_source_system AND a.super_game_id = b.b_game_id AND a.boss_server_id = b.b_server_id
 | 
	
		
			
				|  |  | +                """ + cri +
 | 
	
		
			
				|  |  | +                """
 | 
	
		
			
				|  |  |                  ) a
 | 
	
		
			
				|  |  |                  """;
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -1638,94 +1555,67 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |      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,
 | 
	
		
			
				|  |  | +                		parent_game_id ,
 | 
	
		
			
				|  |  | +                		role_id ,
 | 
	
		
			
				|  |  |                  		role_name,
 | 
	
		
			
				|  |  | -                		role_level,
 | 
	
		
			
				|  |  | -                		combat_num,
 | 
	
		
			
				|  |  | +                		role_level ,
 | 
	
		
			
				|  |  | +                		role_vip ,
 | 
	
		
			
				|  |  | +                		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
 | 
	
		
			
				|  |  | +                	FROM (
 | 
	
		
			
				|  |  | +                		SELECT
 | 
	
		
			
				|  |  | +                			source_system ,
 | 
	
		
			
				|  |  | +                			server_id ,
 | 
	
		
			
				|  |  | +                			parent_game_id ,
 | 
	
		
			
				|  |  | +                			role_id ,
 | 
	
		
			
				|  |  | +                			MAX(role_name) as role_name,
 | 
	
		
			
				|  |  | +                			MAX(role_level) as role_level ,
 | 
	
		
			
				|  |  | +                			MAX(role_vip) as role_vip ,
 | 
	
		
			
				|  |  | +                			MAX(combat_num) as combat_num
 | 
	
		
			
				|  |  | +                		FROM game_ads.ads_role_combat_num_ranking
 | 
	
		
			
				|  |  | +                		GROUP BY role_id , source_system ,parent_game_id ,server_id
 | 
	
		
			
				|  |  | +                	) a
 | 
	
		
			
				|  |  |                  ) a
 | 
	
		
			
				|  |  |                  """;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  | -     * 合服-子游戏维度(角色排行相关信息)
 | 
	
		
			
				|  |  | +     * 合服-父游戏维度(角色排行相关信息)
 | 
	
		
			
				|  |  |       * @return String
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  | -    private String getRoleCombatRankRoleDataSqlC() {
 | 
	
		
			
				|  |  | +    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,
 | 
	
		
			
				|  |  | +                		parent_game_id ,
 | 
	
		
			
				|  |  | +                		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
 | 
	
		
			
				|  |  | +                		role_level ,
 | 
	
		
			
				|  |  | +                		role_vip ,
 | 
	
		
			
				|  |  | +                		combat_num ,
 | 
	
		
			
				|  |  | +                		ROW_NUMBER()over(partition by source_system ,boss_server_id ,parent_game_id order by combat_num desc) as rank_num
 | 
	
		
			
				|  |  | +                	FROM (
 | 
	
		
			
				|  |  | +                		SELECT
 | 
	
		
			
				|  |  | +                			source_system ,
 | 
	
		
			
				|  |  | +                			boss_server_id ,
 | 
	
		
			
				|  |  | +                			parent_game_id ,
 | 
	
		
			
				|  |  | +                			role_id ,
 | 
	
		
			
				|  |  | +                			MAX(role_name) as role_name,
 | 
	
		
			
				|  |  | +                			MAX(role_level) as role_level ,
 | 
	
		
			
				|  |  | +                			MAX(role_vip) as role_vip ,
 | 
	
		
			
				|  |  | +                			MAX(combat_num) as combat_num
 | 
	
		
			
				|  |  | +                		FROM game_ads.ads_role_combat_num_ranking
 | 
	
		
			
				|  |  | +                		GROUP BY role_id , source_system ,parent_game_id ,boss_server_id
 | 
	
		
			
				|  |  | +                	) a
 | 
	
		
			
				|  |  |                  ) a
 | 
	
		
			
				|  |  |                  """;
 | 
	
		
			
				|  |  |      }
 |