|  | @@ -8,6 +8,7 @@ import com.zanxiang.game.data.serve.pojo.enums.OrderByEnum;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.data.serve.service.IRoleManageService;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.data.serve.utils.Page;
 | 
	
		
			
				|  |  |  import lombok.extern.slf4j.Slf4j;
 | 
	
		
			
				|  |  | +import org.apache.commons.collections4.CollectionUtils;
 | 
	
		
			
				|  |  |  import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  |  import org.apache.dubbo.config.annotation.DubboReference;
 | 
	
		
			
				|  |  |  import org.nutz.dao.Cnd;
 | 
	
	
		
			
				|  | @@ -19,6 +20,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;
 | 
	
	
		
			
				|  | @@ -46,11 +48,19 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public Page<Map> getRoleRechargeRanking(RoleRechargeRankingDTO dto) {
 | 
	
		
			
				|  |  | +        //默认查询不合服的数据
 | 
	
		
			
				|  |  | +        if (dto.getIsMergeServer() == null) {
 | 
	
		
			
				|  |  | +            dto.setIsMergeServer(Boolean.FALSE);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          //创建查询条件 给主表使用
 | 
	
		
			
				|  |  |          Criteria criA = Cnd.cri();
 | 
	
		
			
				|  |  |          if (dto.getGameId() != null) {
 | 
	
		
			
				|  |  |              criA.where().andEquals("role_reg_game_id", dto.getGameId());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        if (dto.getParentGameId() != null) {
 | 
	
		
			
				|  |  | +            //角色注册父游戏
 | 
	
		
			
				|  |  | +            criA.where().andEquals("role_reg_parent_game_id", dto.getParentGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  |              criA.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -60,9 +70,17 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |          if (StringUtils.isNotBlank(dto.getRoleName())) {
 | 
	
		
			
				|  |  |              criA.where().andLike("role_name", dto.getRoleName());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(dto.getServerIds()) && !dto.getIsMergeServer()) {
 | 
	
		
			
				|  |  | +            //区服列表查询,不合服的区服
 | 
	
		
			
				|  |  | +            criA.where().andIn("server_id", dto.getServerIds().toArray(String[]::new));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(dto.getServerIds()) && dto.getIsMergeServer()) {
 | 
	
		
			
				|  |  | +            //合服区服列表查询
 | 
	
		
			
				|  |  | +            criA.where().andIn("merge_server_id", dto.getServerIds().toArray(String[]::new));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          if (dto.getCreateRoleBeginDate() != null && dto.getCreateRoleEndDate() != null) {
 | 
	
		
			
				|  |  |              //角色创建时间
 | 
	
		
			
				|  |  | -            criA.where().andBetween("role_create_time", dto.getCreateRoleBeginDate(), dto.getCreateRoleEndDate());
 | 
	
		
			
				|  |  | +            criA.where().andBetween("DATE(role_create_time)", dto.getCreateRoleBeginDate(), dto.getCreateRoleEndDate());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (dto.getVipLevel() != null) {
 | 
	
		
			
				|  |  |              criA.where().andEquals("vip_level", dto.getVipLevel());
 | 
	
	
		
			
				|  | @@ -71,28 +89,35 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |              criA.where().andEquals("is_send_mail", dto.getIsSendMail());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (dto.getIsChange() != null) {
 | 
	
		
			
				|  |  | -            criA.where().andEquals("is_change", dto.getIsChange());
 | 
	
		
			
				|  |  | +            //是否转端
 | 
	
		
			
				|  |  | +            criA.where().andEquals("is_change_game_type", dto.getIsChange());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (StringUtils.isNotBlank(dto.getWeChatCompany())) {
 | 
	
		
			
				|  |  | -            criA.where().andLike("we_chat_company", dto.getWeChatCompany());
 | 
	
		
			
				|  |  | +            //企业微信号
 | 
	
		
			
				|  |  | +            criA.where().andLike("add_corp_user_id", dto.getWeChatCompany());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (StringUtils.isNotBlank(dto.getWeChat())) {
 | 
	
		
			
				|  |  | -            criA.where().andLike("we_chat", dto.getWeChat());
 | 
	
		
			
				|  |  | +            //客户微信
 | 
	
		
			
				|  |  | +            criA.where().andLike("user_wechat", dto.getWeChat());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (StringUtils.isNotBlank(dto.getPhone())) {
 | 
	
		
			
				|  |  | -            criA.where().andEquals("phone", dto.getPhone());
 | 
	
		
			
				|  |  | +            //客户手机号
 | 
	
		
			
				|  |  | +            criA.where().andEquals("user_phone", dto.getPhone());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (dto.getGsId() != null) {
 | 
	
		
			
				|  |  |              criA.where().andEquals("gs_id", dto.getGsId());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (dto.getPitcherId() != null) {
 | 
	
		
			
				|  |  | -            criA.where().andEquals("pitcher_id", dto.getPitcherId());
 | 
	
		
			
				|  |  | +            //投手
 | 
	
		
			
				|  |  | +            criA.where().andEquals("put_user_id", dto.getPitcherId());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (dto.getOperatorId() != null) {
 | 
	
		
			
				|  |  | -            criA.where().andEquals("operator_id", dto.getOperatorId());
 | 
	
		
			
				|  |  | +            //运营
 | 
	
		
			
				|  |  | +            criA.where().andEquals("oper_user_id", dto.getOperatorId());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (dto.getCustomerServerId() != null) {
 | 
	
		
			
				|  |  | -            criA.where().andEquals("customer_server_id", dto.getCustomerServerId());
 | 
	
		
			
				|  |  | +            //客服
 | 
	
		
			
				|  |  | +            criA.where().andEquals("customer_service_id", dto.getCustomerServerId());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          //给充值时间查询条件
 | 
	
		
			
				|  |  |          Criteria criTodayAmount = Cnd.cri();
 | 
	
	
		
			
				|  | @@ -136,30 +161,32 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public Page<Map> getRoleCombatRanking(RoleCombatRankingDTO dto) {
 | 
	
		
			
				|  |  | -        //查询条件
 | 
	
		
			
				|  |  | -        Criteria cri = Cnd.cri();
 | 
	
		
			
				|  |  | -        if (dto.getGameId() != null) {
 | 
	
		
			
				|  |  | -            //父游戏ID
 | 
	
		
			
				|  |  | -            cri.where().andEquals("parent_game_id", dto.getGameId());
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | -            //拼接区服开服时间
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | -            cri.where().andInList("server_id", dto.getServerIds());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //是否查询合服数据(默认查询不合服数据)
 | 
	
		
			
				|  |  | +        Boolean isQueryMerge = dto.getIsMergeServer() != null && dto.getIsMergeServer();
 | 
	
		
			
				|  |  | +        //是否查询超父游戏数据(默认查询父游戏数据)
 | 
	
		
			
				|  |  | +        Boolean isSuperParentGame = false;
 | 
	
		
			
				|  |  | +        if (dto.getSuperParentGameId() != null) {
 | 
	
		
			
				|  |  | +            isSuperParentGame = true;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (dto.getRankingNum() != null) {
 | 
	
		
			
				|  |  | -            //排名的个数
 | 
	
		
			
				|  |  | -            cri.where().andEquals("rank_num", dto.getRankingNum());
 | 
	
		
			
				|  |  | +        //查询区服相关数据
 | 
	
		
			
				|  |  | +        if (isQueryMerge) {
 | 
	
		
			
				|  |  | +            if (isSuperParentGame) {
 | 
	
		
			
				|  |  | +                //查询合服-超父
 | 
	
		
			
				|  |  | +                return getMergeSuperParentData(dto);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                //查询合服-父游戏
 | 
	
		
			
				|  |  | +                return getMergeParentData(dto);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            if (isSuperParentGame) {
 | 
	
		
			
				|  |  | +                //查询原始服-超父
 | 
	
		
			
				|  |  | +                return getOriginSuperParentData(dto);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                //查询原始服-父游戏
 | 
	
		
			
				|  |  | +                return getOriginParentData(dto);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        Sql serverDataSql = Sqls.create(getRoleCombatRankServerDataSql());
 | 
	
		
			
				|  |  | -        serverDataSql.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | -        dao.execute(serverDataSql);
 | 
	
		
			
				|  |  | -        //执行结果
 | 
	
		
			
				|  |  | -        serverDataSql.getList(HashMap.class);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        return null;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -193,6 +220,478 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |          return dataMap;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始服-父游戏
 | 
	
		
			
				|  |  | +     * @param dto RoleCombatRankingDTO
 | 
	
		
			
				|  |  | +     * @return Page<Map>
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    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 (CollectionUtils.isNotEmpty(dto.getServerIds())) {
 | 
	
		
			
				|  |  | +            //原始区服列表
 | 
	
		
			
				|  |  | +            cri.where().andIn("server_id", dto.getServerIds().toArray(String[]::new));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  | +            cri.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //拼接分组条件
 | 
	
		
			
				|  |  | +        cri.getGroupBy().groupBy("source_system" , "server_id" , "boss_server_id" , "parent_game_id" , "super_game_id");
 | 
	
		
			
				|  |  | +        //分页
 | 
	
		
			
				|  |  | +        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
 | 
	
		
			
				|  |  | +        //查询总记录数
 | 
	
		
			
				|  |  | +        Sql countSql = Sqls.create(getRoleCombatRankServerDataSqlACount(cri));
 | 
	
		
			
				|  |  | +        countSql.setCallback(Sqls.callback.integer());
 | 
	
		
			
				|  |  | +        dao.execute(countSql);
 | 
	
		
			
				|  |  | +        pager.setRecordCount(countSql.getInt());
 | 
	
		
			
				|  |  | +        //排序条件
 | 
	
		
			
				|  |  | +        if (StringUtils.isBlank(dto.getSortType())) {
 | 
	
		
			
				|  |  | +            dto.setSortType(OrderByEnum.DESC.getOrderType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSortFiled())) {
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy(dto.getSortFiled(), dto.getSortType());
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            //默认排序
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy("dt", dto.getSortType());
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy("server_combat_num", dto.getSortType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //区服数据
 | 
	
		
			
				|  |  | +        Sql sql = Sqls.create(getRoleCombatRankServerDataSqlA() + 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 (CollectionUtils.isNotEmpty(dto.getServerIds())) {
 | 
	
		
			
				|  |  | +            //原始服区服列表
 | 
	
		
			
				|  |  | +            criRole.where().andIn("server_id", dto.getServerIds().toArray(String[]::new));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        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-父游戏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("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(map.get("server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .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> 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 (CollectionUtils.isNotEmpty(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());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //拼接分组条件
 | 
	
		
			
				|  |  | +        cri.getGroupBy().groupBy("source_system" , "boss_server_id" , "parent_game_id" , "super_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());
 | 
	
		
			
				|  |  | +        //排序条件
 | 
	
		
			
				|  |  | +        if (StringUtils.isBlank(dto.getSortType())) {
 | 
	
		
			
				|  |  | +            dto.setSortType(OrderByEnum.DESC.getOrderType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSortFiled())) {
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy(dto.getSortFiled(), dto.getSortType());
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            //默认排序
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy("merge_time", dto.getSortType());
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy("server_combat_num", dto.getSortType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //查询出区服相关数据
 | 
	
		
			
				|  |  | +        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("DATE(merge_time)", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(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());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        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(dataMap -> {
 | 
	
		
			
				|  |  | +            //拼接主键信息
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append((String)dataMap.get("boss_server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append((String)dataMap.get("parent_game_id"));
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //含有改主键 添加数据
 | 
	
		
			
				|  |  | +                roleDataMap.get(sb.toString()).add(dataMap);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                //不含有该主键
 | 
	
		
			
				|  |  | +                List<Map<String, Object>> tempList = new ArrayList<>();
 | 
	
		
			
				|  |  | +                tempList.add(dataMap);
 | 
	
		
			
				|  |  | +                roleDataMap.put(String.valueOf(sb), tempList);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return dataMap;
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        //将排名信息拼接到区服信息上
 | 
	
		
			
				|  |  | +        List<Map> list = sql.getList(Map.class).stream().map(dataMap -> {
 | 
	
		
			
				|  |  | +            //主键
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append((String)dataMap.get("boss_server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append((String)dataMap.get("parent_game_id"));
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //将排名信息添加
 | 
	
		
			
				|  |  | +                dataMap.put("role_rank_date", roleDataMap.get(sb.toString()));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //清除"null"字符串
 | 
	
		
			
				|  |  | +            if ("null".equals(dataMap.get("son_server_ids"))) {
 | 
	
		
			
				|  |  | +                dataMap.put("son_server_ids", StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if ("null".equals(dataMap.get("source_server_ids"))) {
 | 
	
		
			
				|  |  | +                dataMap.put("source_server_ids", StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return dataMap;
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return new Page<>(list, pager);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始服-超父游戏
 | 
	
		
			
				|  |  | +     * @param dto RoleCombatRankingDTO
 | 
	
		
			
				|  |  | +     * @return Page<Map>
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private Page<Map> getOriginSuperParentData(RoleCombatRankingDTO dto) {
 | 
	
		
			
				|  |  | +        //查询条件
 | 
	
		
			
				|  |  | +        Criteria cri = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (dto.getParentGameId() != null) {
 | 
	
		
			
				|  |  | +            //超父游戏ID
 | 
	
		
			
				|  |  | +            cri.where().andEquals("super_game_id", dto.getParentGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //原始服开服时间
 | 
	
		
			
				|  |  | +            cri.where().andBetween("dt", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(dto.getServerIds())) {
 | 
	
		
			
				|  |  | +            //原始区服列表
 | 
	
		
			
				|  |  | +            cri.where().andIn("server_id", dto.getServerIds().toArray(String[]::new));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  | +            cri.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //拼接分组条件
 | 
	
		
			
				|  |  | +        cri.getGroupBy().groupBy("source_system" , "server_id" , "boss_server_id" , "super_game_id");
 | 
	
		
			
				|  |  | +        //分页
 | 
	
		
			
				|  |  | +        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
 | 
	
		
			
				|  |  | +        //查询总记录数
 | 
	
		
			
				|  |  | +        Sql countSql = Sqls.create(getRoleCombatRankServerDataSqlCCount(cri));
 | 
	
		
			
				|  |  | +        countSql.setCallback(Sqls.callback.integer());
 | 
	
		
			
				|  |  | +        dao.execute(countSql);
 | 
	
		
			
				|  |  | +        pager.setRecordCount(countSql.getInt());
 | 
	
		
			
				|  |  | +        //排序条件
 | 
	
		
			
				|  |  | +        if (StringUtils.isBlank(dto.getSortType())) {
 | 
	
		
			
				|  |  | +            dto.setSortType(OrderByEnum.DESC.getOrderType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSortFiled())) {
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy(dto.getSortFiled(), dto.getSortType());
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            //默认排序
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy("dt", dto.getSortType());
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy("server_combat_num", dto.getSortType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //区服数据
 | 
	
		
			
				|  |  | +        Sql sql = Sqls.create(getRoleCombatRankServerDataSqlC() + cri);
 | 
	
		
			
				|  |  | +        sql.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | +        sql.setPager(pager);
 | 
	
		
			
				|  |  | +        dao.execute(sql);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //获取角色信息
 | 
	
		
			
				|  |  | +        //查询条件
 | 
	
		
			
				|  |  | +        Criteria criRole = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (dto.getParentGameId() != null) {
 | 
	
		
			
				|  |  | +            //超父游戏ID
 | 
	
		
			
				|  |  | +            criRole.where().andEquals("super_game_id", dto.getParentGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //原始服开服时间
 | 
	
		
			
				|  |  | +            criRole.where().andBetween("dt", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(dto.getServerIds())) {
 | 
	
		
			
				|  |  | +            //原始服区服列表
 | 
	
		
			
				|  |  | +            criRole.where().andIn("server_id", dto.getServerIds().toArray(String[]::new));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        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(map.get("server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append((String)map.get("super_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("super_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> getMergeSuperParentData(RoleCombatRankingDTO dto) {
 | 
	
		
			
				|  |  | +        //查询条件
 | 
	
		
			
				|  |  | +        Criteria cri = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (dto.getSuperParentGameId() != null) {
 | 
	
		
			
				|  |  | +            //超父游戏ID
 | 
	
		
			
				|  |  | +            cri.where().andEquals("super_game_id", dto.getSuperParentGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //合服开服时间
 | 
	
		
			
				|  |  | +            cri.where().andBetween("DATE(merge_time)", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(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());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //拼接分组条件
 | 
	
		
			
				|  |  | +        cri.getGroupBy().groupBy("source_system" , "boss_server_id" , "super_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());
 | 
	
		
			
				|  |  | +        //排序条件
 | 
	
		
			
				|  |  | +        if (StringUtils.isBlank(dto.getSortType())) {
 | 
	
		
			
				|  |  | +            dto.setSortType(OrderByEnum.DESC.getOrderType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSortFiled())) {
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy(dto.getSortFiled(), dto.getSortType());
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            //默认排序
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy("merge_time", dto.getSortType());
 | 
	
		
			
				|  |  | +            cri.getOrderBy().orderBy("server_combat_num", dto.getSortType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //查询出区服相关数据
 | 
	
		
			
				|  |  | +        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("super_game_id", dto.getSuperParentGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
 | 
	
		
			
				|  |  | +            //开服时间
 | 
	
		
			
				|  |  | +            criRole.where().andBetween("DATE(merge_time)", dto.getBeginDate(), dto.getEndDate());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(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());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        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(dataMap -> {
 | 
	
		
			
				|  |  | +            //拼接主键信息
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append((String)dataMap.get("boss_server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append((String)dataMap.get("super_game_id"));
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //含有改主键 添加数据
 | 
	
		
			
				|  |  | +                roleDataMap.get(sb.toString()).add(dataMap);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                //不含有该主键
 | 
	
		
			
				|  |  | +                List<Map<String, Object>> tempList = new ArrayList<>();
 | 
	
		
			
				|  |  | +                tempList.add(dataMap);
 | 
	
		
			
				|  |  | +                roleDataMap.put(String.valueOf(sb), tempList);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return dataMap;
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        //将排名信息拼接到区服信息上
 | 
	
		
			
				|  |  | +        List<Map> list = sql.getList(Map.class).stream().map(dataMap -> {
 | 
	
		
			
				|  |  | +            //主键
 | 
	
		
			
				|  |  | +            StringBuilder sb = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            sb.append((String)dataMap.get("boss_server_id"))
 | 
	
		
			
				|  |  | +                    .append("-")
 | 
	
		
			
				|  |  | +                    .append((String)dataMap.get("super_game_id"));
 | 
	
		
			
				|  |  | +            if (roleDataMap.get(sb.toString()) != null) {
 | 
	
		
			
				|  |  | +                //将排名信息添加
 | 
	
		
			
				|  |  | +                dataMap.put("role_rank_date", roleDataMap.get(sb.toString()));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //清除"null"字符串
 | 
	
		
			
				|  |  | +            if ("null".equals(dataMap.get("son_server_ids"))) {
 | 
	
		
			
				|  |  | +                dataMap.put("son_server_ids", StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if ("null".equals(dataMap.get("source_server_ids"))) {
 | 
	
		
			
				|  |  | +                dataMap.put("source_server_ids", StringUtils.EMPTY);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return dataMap;
 | 
	
		
			
				|  |  | +        }).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return new Page<>(list, pager);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 查询角色充值排行榜sql
 | 
	
		
			
				|  |  |       * @param criA 主表查询条件
 | 
	
	
		
			
				|  | @@ -237,7 +736,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                    		r.server_name as merge_server_name, -- 角色所在合服名
 | 
	
		
			
				|  |  |                  		IFNULL(f.real_amount, 0) as role_last_amount, -- 角色最近充值金额
 | 
	
		
			
				|  |  |                  		f.pay_time as role_last_pay_time, -- 角色最近充值时间
 | 
	
		
			
				|  |  | -                		g.active_time as role_active_time, -- 角色最近活跃时间
 | 
	
		
			
				|  |  | +                		g.update_time as role_active_time, -- 角色最近活跃时间
 | 
	
		
			
				|  |  |                  		IFNULL(h.real_amount, 0) as role_first_amount, -- 角色首次充值金额
 | 
	
		
			
				|  |  |                  		p.today_amount as today_amount, -- 角色当天充值金额
 | 
	
		
			
				|  |  |                  		TIMESTAMPDIFF(SECOND, a.create_time, f.pay_time) as role_reg_pay_time, -- 角色创建充值时间差(秒)
 | 
	
	
		
			
				|  | @@ -259,16 +758,16 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                  		i.user_pay_time as user_pay_time, -- 玩家最近充值时间
 | 
	
		
			
				|  |  |                  		TIMESTAMPDIFF(SECOND, i.user_create_time, i.user_pay_time) as user_reg_pay_time, -- 玩家注册充值时间差(秒)
 | 
	
		
			
				|  |  |                  		TIMESTAMPDIFF(SECOND, i.user_pay_time, NOW()) as user_pay_until_now, -- 玩家最近充值距今(秒)
 | 
	
		
			
				|  |  | -                		j.is_send_mail as is_send_mail, -- 是否发送邮件
 | 
	
		
			
				|  |  | +                		IFNULL(j.is_send_mail, 0) as is_send_mail, -- 是否发送邮件
 | 
	
		
			
				|  |  |                  		j.send_gift_id as send_gift_id, -- 最新发送礼包id
 | 
	
		
			
				|  |  |                  		k.gift_name as gift_name, -- 礼包名
 | 
	
		
			
				|  |  | -                		j.is_change_game_type as is_change_game_type, -- 是否转端 1-是;0-否
 | 
	
		
			
				|  |  | -                		j.is_add_corp_wechat as is_add_corp_wechat, -- 是否添加企微 1-是; 0-否
 | 
	
		
			
				|  |  | +                		IFNULL(j.is_change_game_type, 0) as is_change_game_type, -- 是否转端 1-是;0-否
 | 
	
		
			
				|  |  | +                		IFNULL(j.is_add_corp_wechat, 0) as is_add_corp_wechat, -- 是否添加企微 1-是; 0-否
 | 
	
		
			
				|  |  |                  		j.add_corp_user_id as add_corp_user_id, -- 企微号
 | 
	
		
			
				|  |  |                  		j.user_wechat as user_wechat, -- 客户微信号
 | 
	
		
			
				|  |  |                  		j.user_phone as user_phone, -- 客户手机号
 | 
	
		
			
				|  |  | -                		j.is_remove_game as is_remove_game, -- 是否退游 1-是;0-否
 | 
	
		
			
				|  |  | -                		j.is_wake_up as is_wake_up, -- 是否唤醒 1-是;0-否
 | 
	
		
			
				|  |  | +                		IFNULL(j.is_remove_game, 0) as is_remove_game, -- 是否退游 1-是;0-否
 | 
	
		
			
				|  |  | +                		IFNULL(j.is_wake_up, 0) as is_wake_up, -- 是否唤醒 1-是;0-否
 | 
	
		
			
				|  |  |                  		j.remark as remark, -- 备注
 | 
	
		
			
				|  |  |                  		j.gs_id as gs_id, -- GS_ID
 | 
	
		
			
				|  |  |                  		j.customer_service_id as customer_service_id, -- 客服ID
 | 
	
	
		
			
				|  | @@ -354,12 +853,12 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                  	) f on a.source_system = f.source_system AND a.role_id = f.role_id AND f.num = 1
 | 
	
		
			
				|  |  |                  	LEFT JOIN (
 | 
	
		
			
				|  |  |                  		-- 角色最近活跃时间
 | 
	
		
			
				|  |  | -                		SELECT
 | 
	
		
			
				|  |  | -                			source_system,
 | 
	
		
			
				|  |  | -                			role_id,
 | 
	
		
			
				|  |  | -                			active_time,
 | 
	
		
			
				|  |  | -                			ROW_NUMBER()over(partition by role_id , source_system order by active_time desc) as num
 | 
	
		
			
				|  |  | -                		FROM dm_game_order.t_active_log
 | 
	
		
			
				|  |  | +                  		SELECT
 | 
	
		
			
				|  |  | +                  		    source_system,
 | 
	
		
			
				|  |  | +                  		    role_id,
 | 
	
		
			
				|  |  | +                  		    update_time,
 | 
	
		
			
				|  |  | +                  		    ROW_NUMBER() OVER(PARTITION BY role_id , source_system order by update_time desc) as num
 | 
	
		
			
				|  |  | +                  		from dm_game_order.t_game_user_role
 | 
	
		
			
				|  |  |                  	) g on a.source_system = g.source_system AND a.role_id = g.role_id AND g.num = 1
 | 
	
		
			
				|  |  |                  	LEFT JOIN (
 | 
	
		
			
				|  |  |                  		SELECT
 | 
	
	
		
			
				|  | @@ -418,9 +917,9 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                              i.agent_id as agent_id,
 | 
	
		
			
				|  |  |                              IF(i.agent_id = 0 , '自然量', j.agent_name) as agent_name,
 | 
	
		
			
				|  |  |                              j.pitcher_id as put_user_id,
 | 
	
		
			
				|  |  | -                            l.active_time as user_active_time,
 | 
	
		
			
				|  |  | +                            l.update_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, 
 | 
	
		
			
				|  |  | +                            n.game_name as user_last_recharge_game_name,
 | 
	
		
			
				|  |  |                              m.pay_time as user_pay_time -- 玩家最近充值时间
 | 
	
		
			
				|  |  |                          FROM
 | 
	
		
			
				|  |  |                          (
 | 
	
	
		
			
				|  | @@ -465,15 +964,15 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                              SELECT
 | 
	
		
			
				|  |  |                                  association_user_id,
 | 
	
		
			
				|  |  |                                  b.source_system,
 | 
	
		
			
				|  |  | -                                b.active_time,
 | 
	
		
			
				|  |  | -                                ROW_NUMBER()over(partition by association_user_id, b.source_system order by active_time desc) as num
 | 
	
		
			
				|  |  | +                                b.update_time,
 | 
	
		
			
				|  |  | +                                ROW_NUMBER()over(partition by association_user_id, b.source_system order by b.update_time desc) as num
 | 
	
		
			
				|  |  |                              FROM dm_game_order.t_game_user a
 | 
	
		
			
				|  |  |                              RIGHT JOIN (
 | 
	
		
			
				|  |  |                                  SELECT
 | 
	
		
			
				|  |  | -                                    source_system,
 | 
	
		
			
				|  |  | +                                    source_system ,
 | 
	
		
			
				|  |  |                                      user_id,
 | 
	
		
			
				|  |  | -                                    active_time
 | 
	
		
			
				|  |  | -                                FROM dm_game_order.t_active_log
 | 
	
		
			
				|  |  | +                                    update_time
 | 
	
		
			
				|  |  | +                                FROM dm_game_order.t_game_user_role
 | 
	
		
			
				|  |  |                              ) b ON a.source_system = b.source_system AND a.id = b.user_id
 | 
	
		
			
				|  |  |                          ) l ON i.association_user_id = l.association_user_id AND i.source_system = l.source_system AND l.num = 1
 | 
	
		
			
				|  |  |                          LEFT JOIN (
 | 
	
	
		
			
				|  | @@ -589,7 +1088,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                          r.server_name as merge_server_name, -- 角色所在合服名
 | 
	
		
			
				|  |  |                          IFNULL(f.real_amount, 0) as role_last_amount, -- 角色最近充值金额
 | 
	
		
			
				|  |  |                          f.pay_time as role_last_pay_time, -- 角色最近充值时间
 | 
	
		
			
				|  |  | -                        g.active_time as role_active_time, -- 角色最近活跃时间
 | 
	
		
			
				|  |  | +                        g.update_time as role_active_time, -- 角色最近活跃时间
 | 
	
		
			
				|  |  |                          IFNULL(h.real_amount, 0) as role_first_amount, -- 角色首次充值金额
 | 
	
		
			
				|  |  |                          p.today_amount as today_amount, -- 角色当天充值金额
 | 
	
		
			
				|  |  |                          TIMESTAMPDIFF(SECOND, a.create_time, f.pay_time) as role_reg_pay_time, -- 角色创建充值时间差(秒)
 | 
	
	
		
			
				|  | @@ -611,16 +1110,16 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                          i.user_pay_time as user_pay_time, -- 玩家最近充值时间
 | 
	
		
			
				|  |  |                          TIMESTAMPDIFF(SECOND, i.user_create_time, i.user_pay_time) as user_reg_pay_time, -- 玩家注册充值时间差(秒)
 | 
	
		
			
				|  |  |                          TIMESTAMPDIFF(SECOND, i.user_pay_time, NOW()) as user_pay_until_now, -- 玩家最近充值距今(秒)
 | 
	
		
			
				|  |  | -                        j.is_send_mail as is_send_mail, -- 是否发送邮件
 | 
	
		
			
				|  |  | +                        IFNULL(j.is_send_mail, 0) as is_send_mail, -- 是否发送邮件
 | 
	
		
			
				|  |  |                          j.send_gift_id as send_gift_id, -- 最新发送礼包id
 | 
	
		
			
				|  |  |                          k.gift_name as gift_name, -- 礼包名
 | 
	
		
			
				|  |  | -                        j.is_change_game_type as is_change_game_type, -- 是否转端 1-是;0-否
 | 
	
		
			
				|  |  | -                        j.is_add_corp_wechat as is_add_corp_wechat, -- 是否添加企微 1-是; 0-否
 | 
	
		
			
				|  |  | +                        IFNULL(j.is_change_game_type, 0) as is_change_game_type, -- 是否转端 1-是;0-否
 | 
	
		
			
				|  |  | +                        IFNULL(j.is_add_corp_wechat, 0) as is_add_corp_wechat, -- 是否添加企微 1-是; 0-否
 | 
	
		
			
				|  |  |                          j.add_corp_user_id as add_corp_user_id, -- 企微号
 | 
	
		
			
				|  |  |                          j.user_wechat as user_wechat, -- 客户微信号
 | 
	
		
			
				|  |  |                          j.user_phone as user_phone, -- 客户手机号
 | 
	
		
			
				|  |  | -                        j.is_remove_game as is_remove_game, -- 是否退游 1-是;0-否
 | 
	
		
			
				|  |  | -                        j.is_wake_up as is_wake_up, -- 是否唤醒 1-是;0-否
 | 
	
		
			
				|  |  | +                        IFNULL(j.is_remove_game, 0) as is_remove_game, -- 是否退游 1-是;0-否
 | 
	
		
			
				|  |  | +                        IFNULL(j.is_wake_up, 0) as is_wake_up, -- 是否唤醒 1-是;0-否
 | 
	
		
			
				|  |  |                          j.remark as remark, -- 备注
 | 
	
		
			
				|  |  |                          j.gs_id as gs_id, -- GS_ID
 | 
	
		
			
				|  |  |                          j.customer_service_id as customer_service_id, -- 客服ID
 | 
	
	
		
			
				|  | @@ -709,9 +1208,9 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                          SELECT
 | 
	
		
			
				|  |  |                              source_system,
 | 
	
		
			
				|  |  |                              role_id,
 | 
	
		
			
				|  |  | -                            active_time,
 | 
	
		
			
				|  |  | -                            ROW_NUMBER()over(partition by role_id , source_system order by active_time desc) as num
 | 
	
		
			
				|  |  | -                        FROM dm_game_order.t_active_log
 | 
	
		
			
				|  |  | +                            update_time,
 | 
	
		
			
				|  |  | +                            ROW_NUMBER() OVER(PARTITION BY role_id , source_system order by update_time desc) as num
 | 
	
		
			
				|  |  | +                        from dm_game_order.t_game_user_role
 | 
	
		
			
				|  |  |                      ) g on a.source_system = g.source_system AND a.role_id = g.role_id AND g.num = 1
 | 
	
		
			
				|  |  |                      LEFT JOIN (
 | 
	
		
			
				|  |  |                          SELECT
 | 
	
	
		
			
				|  | @@ -770,9 +1269,9 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                              i.agent_id as agent_id,
 | 
	
		
			
				|  |  |                              IF(i.agent_id = 0 , '自然量', j.agent_name) as agent_name,
 | 
	
		
			
				|  |  |                              j.pitcher_id as put_user_id,
 | 
	
		
			
				|  |  | -                            l.active_time as user_active_time,
 | 
	
		
			
				|  |  | +                            l.update_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
 | 
	
		
			
				|  |  |                          (
 | 
	
	
		
			
				|  | @@ -817,15 +1316,15 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                              SELECT
 | 
	
		
			
				|  |  |                                  association_user_id,
 | 
	
		
			
				|  |  |                                  b.source_system,
 | 
	
		
			
				|  |  | -                                b.active_time,
 | 
	
		
			
				|  |  | -                                ROW_NUMBER()over(partition by association_user_id, b.source_system order by active_time desc) as num
 | 
	
		
			
				|  |  | +                                b.update_time,
 | 
	
		
			
				|  |  | +                                ROW_NUMBER()over(partition by association_user_id, b.source_system order by b.update_time desc) as num
 | 
	
		
			
				|  |  |                              FROM dm_game_order.t_game_user a
 | 
	
		
			
				|  |  |                              RIGHT JOIN (
 | 
	
		
			
				|  |  |                                  SELECT
 | 
	
		
			
				|  |  | -                                    source_system,
 | 
	
		
			
				|  |  | +                                    source_system ,
 | 
	
		
			
				|  |  |                                      user_id,
 | 
	
		
			
				|  |  | -                                    active_time
 | 
	
		
			
				|  |  | -                                FROM dm_game_order.t_active_log
 | 
	
		
			
				|  |  | +                                    update_time
 | 
	
		
			
				|  |  | +                                FROM dm_game_order.t_game_user_role
 | 
	
		
			
				|  |  |                              ) b ON a.source_system = b.source_system AND a.id = b.user_id
 | 
	
		
			
				|  |  |                          ) l ON i.association_user_id = l.association_user_id AND i.source_system = l.source_system AND l.num = 1
 | 
	
		
			
				|  |  |                          LEFT JOIN (
 | 
	
	
		
			
				|  | @@ -897,53 +1396,1129 @@ 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,
 | 
	
		
			
				|  |  | +                	parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                	MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                	super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                	MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                	server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                	MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                	MAX(dt) as dt, -- 开服时间
 | 
	
		
			
				|  |  | +                	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, -- 区服战力
 | 
	
		
			
				|  |  | +                    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,
 | 
	
		
			
				|  |  | +                		game_id, -- 子游戏ID
 | 
	
		
			
				|  |  | +                		MAX(game_name) as game_name, -- 子游戏名
 | 
	
		
			
				|  |  | +                		parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                		MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                		super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                		MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                		server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                		MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                		MAX(`date`) as dt, -- 开服日期
 | 
	
		
			
				|  |  | +                		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(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 game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  |                  """;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private String getRoleCombatRankRoleDataSql() {
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始服-父游戏维度(区服相关信息)(总记录数)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankServerDataSqlACount(Criteria cri) {
 | 
	
		
			
				|  |  |          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
 | 
	
		
			
				|  |  | +                    COUNT(1)
 | 
	
		
			
				|  |  | +                FROM(
 | 
	
		
			
				|  |  | +                    SELECT
 | 
	
		
			
				|  |  | +                    	-- 查询每个父游戏-原始区服维度的信息
 | 
	
		
			
				|  |  | +                    	source_system,
 | 
	
		
			
				|  |  | +                    	parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                    	MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                    	super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                    	MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                    	server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                    	MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                    	MAX(dt) as dt, -- 开服时间
 | 
	
		
			
				|  |  | +                    	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, -- 区服战力
 | 
	
		
			
				|  |  | +                        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,
 | 
	
		
			
				|  |  | +                    		game_id, -- 子游戏ID
 | 
	
		
			
				|  |  | +                    		MAX(game_name) as game_name, -- 子游戏名
 | 
	
		
			
				|  |  | +                    		parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                    		MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                    		super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                    		MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                    		server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                    		MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                    		MAX(`date`) as dt, -- 开服日期
 | 
	
		
			
				|  |  | +                    		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(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 game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                    ) a
 | 
	
		
			
				|  |  | +                """ + cri+
 | 
	
		
			
				|  |  | +                """
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 合服-父游戏维度(区服相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankServerDataSqlB() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	-- 查询每个父游戏-合服服维度的信息
 | 
	
		
			
				|  |  | +                	source_system,
 | 
	
		
			
				|  |  | +                	parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                	MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                	super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                	MAX(super_game_name) as super_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, -- 子服名列表
 | 
	
		
			
				|  |  | +                	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,
 | 
	
		
			
				|  |  | +                		game_id, -- 子游戏ID
 | 
	
		
			
				|  |  | +                		MAX(game_name) as game_name, -- 子游戏名
 | 
	
		
			
				|  |  | +                		parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                		MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                		super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                		MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                		server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                		MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                		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(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 game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                ) 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 getRoleCombatRankServerDataSqlBCount(Criteria cri) {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                    COUNT(1)
 | 
	
		
			
				|  |  | +                FROM(
 | 
	
		
			
				|  |  | +                    SELECT
 | 
	
		
			
				|  |  | +                    	-- 查询每个父游戏-合服服维度的信息
 | 
	
		
			
				|  |  | +                    	source_system,
 | 
	
		
			
				|  |  | +                    	parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                    	MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                    	super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                    	MAX(super_game_name) as super_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, -- 子服名列表
 | 
	
		
			
				|  |  | +                    	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,
 | 
	
		
			
				|  |  | +                    		game_id, -- 子游戏ID
 | 
	
		
			
				|  |  | +                    		MAX(game_name) as game_name, -- 子游戏名
 | 
	
		
			
				|  |  | +                    		parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                    		MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                    		super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                    		MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                    		server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                    		MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                    		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(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 game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                    ) 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
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始服-超父游戏维度(区服相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankServerDataSqlC() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	-- 查询每个超父游戏-原始区服维度的信息
 | 
	
		
			
				|  |  | +                	source_system,
 | 
	
		
			
				|  |  | +                	super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                	MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                	server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                	MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                	MAX(dt) as dt, -- 开服日期
 | 
	
		
			
				|  |  | +                	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, -- 区服战力
 | 
	
		
			
				|  |  | +                    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,
 | 
	
		
			
				|  |  | +                		parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                		MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                		super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                		MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                		server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                		MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                		MAX(dt) as dt, -- 开服日期
 | 
	
		
			
				|  |  | +                		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, -- 区服战力
 | 
	
		
			
				|  |  | +                	    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,
 | 
	
		
			
				|  |  | +                			game_id, -- 子游戏ID
 | 
	
		
			
				|  |  | +                			MAX(game_name) as game_name, -- 子游戏名
 | 
	
		
			
				|  |  | +                			parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                			MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                			super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                			MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                			server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                			MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                			MAX(`date`) as dt, -- 开服日期
 | 
	
		
			
				|  |  | +                			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(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 game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                	) a GROUP BY parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始服-超父游戏维度(区服相关信息)(总记录数)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankServerDataSqlCCount(Criteria cri) {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                    COUNT(1)
 | 
	
		
			
				|  |  | +                FROM(
 | 
	
		
			
				|  |  | +                    SELECT
 | 
	
		
			
				|  |  | +                    	-- 查询每个超父游戏-原始区服维度的信息
 | 
	
		
			
				|  |  | +                    	source_system,
 | 
	
		
			
				|  |  | +                    	super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                    	MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                    	server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                    	MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                    	MAX(dt) as dt, -- 开服日期
 | 
	
		
			
				|  |  | +                    	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, -- 区服战力
 | 
	
		
			
				|  |  | +                        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,
 | 
	
		
			
				|  |  | +                    		parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                    		MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                    		super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                    		MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                    		server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                    		MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                    		MAX(dt) as dt, -- 开服日期
 | 
	
		
			
				|  |  | +                    		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, -- 区服战力
 | 
	
		
			
				|  |  | +                    	    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,
 | 
	
		
			
				|  |  | +                    			game_id, -- 子游戏ID
 | 
	
		
			
				|  |  | +                    			MAX(game_name) as game_name, -- 子游戏名
 | 
	
		
			
				|  |  | +                    			parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                    			MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                    			super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                    			MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                    			server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                    			MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                    			MAX(`date`) as dt, -- 开服日期
 | 
	
		
			
				|  |  | +                    			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(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 game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                    	) a GROUP BY parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                    ) a
 | 
	
		
			
				|  |  | +                """ + cri+
 | 
	
		
			
				|  |  | +                """
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 合服-超父游戏维度(区服相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankServerDataSqlD() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	-- 查询每个超父游戏-合服维度的信息
 | 
	
		
			
				|  |  | +                	source_system,
 | 
	
		
			
				|  |  | +                	super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                	MAX(super_game_name) as super_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, -- 子服名列表
 | 
	
		
			
				|  |  | +                	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,
 | 
	
		
			
				|  |  | +                		super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                		MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                		server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                		MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                		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, -- 区服战力
 | 
	
		
			
				|  |  | +                	    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,
 | 
	
		
			
				|  |  | +                			parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                			MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                			super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                			MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                			server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                			MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                			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, -- 区服战力
 | 
	
		
			
				|  |  | +                		    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,
 | 
	
		
			
				|  |  | +                				game_id, -- 子游戏ID
 | 
	
		
			
				|  |  | +                				MAX(game_name) as game_name, -- 子游戏名
 | 
	
		
			
				|  |  | +                				parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                				MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                				super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                				MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                				server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                				MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                				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(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 game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                		) a GROUP BY parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                	) a GROUP BY super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                ) 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 getRoleCombatRankServerDataSqlDCount(Criteria cri) {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                    COUNT(1)
 | 
	
		
			
				|  |  | +                FROM(
 | 
	
		
			
				|  |  | +                    SELECT
 | 
	
		
			
				|  |  | +                    	-- 查询每个超父游戏-合服维度的信息
 | 
	
		
			
				|  |  | +                    	source_system,
 | 
	
		
			
				|  |  | +                    	super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                    	MAX(super_game_name) as super_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, -- 子服名列表
 | 
	
		
			
				|  |  | +                    	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,
 | 
	
		
			
				|  |  | +                    		super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                    		MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                    		server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                    		MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                    		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, -- 区服战力
 | 
	
		
			
				|  |  | +                    	    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,
 | 
	
		
			
				|  |  | +                    			parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                    			MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                    			super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                    			MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                    			server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                    			MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                    			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, -- 区服战力
 | 
	
		
			
				|  |  | +                    		    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,
 | 
	
		
			
				|  |  | +                    				game_id, -- 子游戏ID
 | 
	
		
			
				|  |  | +                    				MAX(game_name) as game_name, -- 子游戏名
 | 
	
		
			
				|  |  | +                    				parent_game_id, -- 父游戏ID
 | 
	
		
			
				|  |  | +                    				MAX(parent_game_name) as parent_game_name, -- 父游戏名
 | 
	
		
			
				|  |  | +                    				super_game_id , -- 超父游戏ID
 | 
	
		
			
				|  |  | +                    				MAX(super_game_name) as super_game_name , -- 超父游戏名
 | 
	
		
			
				|  |  | +                    				server_id, -- 区服ID
 | 
	
		
			
				|  |  | +                    				MAX(server_name) as server_name, -- 区服名
 | 
	
		
			
				|  |  | +                    				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(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 game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                    		) a GROUP BY parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                    	) a GROUP BY super_game_id ,server_id ,boss_server_id ,source_system
 | 
	
		
			
				|  |  | +                    ) 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
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始区服-父游戏维度(角色排行相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankRoleDataSqlA() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	*
 | 
	
		
			
				|  |  | +                FROM (
 | 
	
		
			
				|  |  | +                	SELECT
 | 
	
		
			
				|  |  | +                		source_system ,
 | 
	
		
			
				|  |  | +                		server_id ,
 | 
	
		
			
				|  |  | +                		boss_server_id,
 | 
	
		
			
				|  |  | +                		parent_game_id ,
 | 
	
		
			
				|  |  | +                		super_game_id ,
 | 
	
		
			
				|  |  | +                		dt,
 | 
	
		
			
				|  |  | +                		merge_time,
 | 
	
		
			
				|  |  | +                		role_id ,
 | 
	
		
			
				|  |  | +                		role_name,
 | 
	
		
			
				|  |  | +                		role_level ,
 | 
	
		
			
				|  |  | +                		role_vip ,
 | 
	
		
			
				|  |  | +                		combat_num ,
 | 
	
		
			
				|  |  | +                		ROW_NUMBER()over(partition by source_system ,server_id ,boss_server_id, parent_game_id, super_game_id order by combat_num desc) as rank_num
 | 
	
		
			
				|  |  | +                	FROM (
 | 
	
		
			
				|  |  | +                		SELECT
 | 
	
		
			
				|  |  | +                			source_system ,
 | 
	
		
			
				|  |  | +                			server_id ,
 | 
	
		
			
				|  |  | +                			boss_server_id,
 | 
	
		
			
				|  |  | +                			parent_game_id ,
 | 
	
		
			
				|  |  | +                			super_game_id ,
 | 
	
		
			
				|  |  | +                			MAX(`date`) as dt,
 | 
	
		
			
				|  |  | +                			MAX(merge_time) as merge_time ,
 | 
	
		
			
				|  |  | +                			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 ,super_game_id, server_id, boss_server_id
 | 
	
		
			
				|  |  | +                	) a
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 合服-父游戏维度(角色排行相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankRoleDataSqlB() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	*
 | 
	
		
			
				|  |  | +                FROM (
 | 
	
		
			
				|  |  | +                	SELECT
 | 
	
		
			
				|  |  | +                		source_system ,
 | 
	
		
			
				|  |  | +                		boss_server_id ,
 | 
	
		
			
				|  |  | +                		parent_game_id ,
 | 
	
		
			
				|  |  | +                		super_game_id ,
 | 
	
		
			
				|  |  | +                		merge_time,
 | 
	
		
			
				|  |  | +                		role_id ,
 | 
	
		
			
				|  |  | +                		role_name,
 | 
	
		
			
				|  |  | +                		role_level ,
 | 
	
		
			
				|  |  | +                		role_vip ,
 | 
	
		
			
				|  |  | +                		combat_num ,
 | 
	
		
			
				|  |  | +                		ROW_NUMBER()over(partition by source_system ,boss_server_id ,parent_game_id, super_game_id order by combat_num desc) as rank_num
 | 
	
		
			
				|  |  | +                	FROM (
 | 
	
		
			
				|  |  | +                		SELECT
 | 
	
		
			
				|  |  | +                			source_system ,
 | 
	
		
			
				|  |  | +                			boss_server_id ,
 | 
	
		
			
				|  |  | +                			parent_game_id ,
 | 
	
		
			
				|  |  | +                			super_game_id ,
 | 
	
		
			
				|  |  | +                			MAX(merge_time) as merge_time ,
 | 
	
		
			
				|  |  | +                			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 ,super_game_id, boss_server_id
 | 
	
		
			
				|  |  | +                	) a
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 原始区服-超父游戏维度(角色排行相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankRoleDataSqlC() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	*
 | 
	
		
			
				|  |  | +                FROM (
 | 
	
		
			
				|  |  | +                	SELECT
 | 
	
		
			
				|  |  | +                		source_system ,
 | 
	
		
			
				|  |  | +                		server_id ,
 | 
	
		
			
				|  |  | +                		super_game_id ,
 | 
	
		
			
				|  |  | +                		dt,
 | 
	
		
			
				|  |  | +                		merge_time,
 | 
	
		
			
				|  |  | +                		role_id ,
 | 
	
		
			
				|  |  | +                		role_name,
 | 
	
		
			
				|  |  | +                		role_level ,
 | 
	
		
			
				|  |  | +                		role_vip ,
 | 
	
		
			
				|  |  | +                		combat_num ,
 | 
	
		
			
				|  |  | +                		ROW_NUMBER()over(partition by source_system ,server_id ,super_game_id order by combat_num desc) as rank_num
 | 
	
		
			
				|  |  | +                	FROM (
 | 
	
		
			
				|  |  | +                		SELECT
 | 
	
		
			
				|  |  | +                			source_system ,
 | 
	
		
			
				|  |  | +                			server_id ,
 | 
	
		
			
				|  |  | +                			super_game_id ,
 | 
	
		
			
				|  |  | +                			MAX(`date`) as dt,
 | 
	
		
			
				|  |  | +                			MAX(merge_time) as merge_time ,
 | 
	
		
			
				|  |  | +                			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 ,super_game_id, server_id
 | 
	
		
			
				|  |  | +                	) a
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  | +                """;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 合服-超父游戏维度(角色排行相关信息)
 | 
	
		
			
				|  |  | +     * @return String
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private String getRoleCombatRankRoleDataSqlD() {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                SELECT
 | 
	
		
			
				|  |  | +                	*
 | 
	
		
			
				|  |  | +                FROM (
 | 
	
		
			
				|  |  | +                	SELECT
 | 
	
		
			
				|  |  | +                		source_system ,
 | 
	
		
			
				|  |  | +                		boss_server_id ,
 | 
	
		
			
				|  |  | +                		super_game_id ,
 | 
	
		
			
				|  |  | +                		merge_time,
 | 
	
		
			
				|  |  | +                		role_id ,
 | 
	
		
			
				|  |  | +                		role_name,
 | 
	
		
			
				|  |  | +                		role_level ,
 | 
	
		
			
				|  |  | +                		role_vip ,
 | 
	
		
			
				|  |  | +                		combat_num ,
 | 
	
		
			
				|  |  | +                		ROW_NUMBER()over(partition by source_system ,boss_server_id ,super_game_id order by combat_num desc) as rank_num
 | 
	
		
			
				|  |  | +                	FROM (
 | 
	
		
			
				|  |  | +                		SELECT
 | 
	
		
			
				|  |  | +                			source_system ,
 | 
	
		
			
				|  |  | +                			boss_server_id ,
 | 
	
		
			
				|  |  | +                			super_game_id ,
 | 
	
		
			
				|  |  | +                			MAX(merge_time) as merge_time ,
 | 
	
		
			
				|  |  | +                			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 ,super_game_id, boss_server_id
 | 
	
		
			
				|  |  | +                	) a
 | 
	
		
			
				|  |  | +                ) a
 | 
	
		
			
				|  |  |                  """;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |