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