|
@@ -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
|
|
|
""";
|
|
|
}
|
|
|
|