|
@@ -1049,7 +1049,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
orderCri.getOrderBy().orderBy(dto.getSortFiled(), dto.getSortType());
|
|
orderCri.getOrderBy().orderBy(dto.getSortFiled(), dto.getSortType());
|
|
}
|
|
}
|
|
//列表sql
|
|
//列表sql
|
|
- String gameCountryRoleListSql = getGameCountryRoleListSql(criA,orderCri);
|
|
|
|
|
|
+ String gameCountryRoleListSql = getGameCountryRoleListSql(criA, orderCri);
|
|
Sql sql = Sqls.create(gameCountryRoleListSql);
|
|
Sql sql = Sqls.create(gameCountryRoleListSql);
|
|
sql.setCallback(Sqls.callback.maps());
|
|
sql.setCallback(Sqls.callback.maps());
|
|
sql.setPager(pager);
|
|
sql.setPager(pager);
|
|
@@ -1110,13 +1110,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
@Override
|
|
@Override
|
|
public List<Map> ipCountList(List<String> ip) {
|
|
public List<Map> ipCountList(List<String> ip) {
|
|
Criteria criteria = Cnd.cri();
|
|
Criteria criteria = Cnd.cri();
|
|
- criteria.where().andInStrList("ip", ip);
|
|
|
|
- criteria.where().andNotIsNull("ip");
|
|
|
|
- criteria.where().andNotEquals("ip", "null");
|
|
|
|
- criteria.where().andNotEquals("ip", "");
|
|
|
|
- criteria.where().andNotIsNull("role_id");
|
|
|
|
- criteria.where().andNotEquals("role_id", "null");
|
|
|
|
- criteria.where().andNotEquals("role_id", "");
|
|
|
|
|
|
+ criteria.where().andInStrList("a.ip", ip);
|
|
|
|
+ criteria.where().andNotIsNull("a.ip");
|
|
|
|
+ criteria.where().andNotEquals("a.ip", "null");
|
|
|
|
+ criteria.where().andNotEquals("a.ip", "");
|
|
|
|
+ criteria.where().andNotIsNull("a.role_id");
|
|
|
|
+ criteria.where().andNotEquals("a.role_id", "null");
|
|
|
|
+ criteria.where().andNotEquals("a.role_id", "");
|
|
String ipCountList = getIpCountList(criteria);
|
|
String ipCountList = getIpCountList(criteria);
|
|
Sql sql = Sqls.create(ipCountList);
|
|
Sql sql = Sqls.create(ipCountList);
|
|
sql.setCallback(Sqls.callback.maps());
|
|
sql.setCallback(Sqls.callback.maps());
|
|
@@ -1126,9 +1126,16 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
|
|
|
private String getIpCountList(Criteria criteria) {
|
|
private String getIpCountList(Criteria criteria) {
|
|
return """
|
|
return """
|
|
- select ip,count(distinct role_id) as ipRoleCount from dm_game_order.t_user_login_log
|
|
|
|
|
|
+ SELECT a.ip,
|
|
|
|
+ COUNT(DISTINCT a.role_id) AS ipRoleCount,
|
|
|
|
+ COUNT(distinct b.id) AS loginCount
|
|
|
|
+ FROM dm_game_order.t_user_login_log a
|
|
|
|
+ LEFT JOIN
|
|
|
|
+ dm_game_order.t_user_login_log b
|
|
|
|
+ ON
|
|
|
|
+ a.ip = b.ip AND b.role_id = a.role_id
|
|
""" + criteria + """
|
|
""" + criteria + """
|
|
- group by ip
|
|
|
|
|
|
+ group by a.ip
|
|
""";
|
|
""";
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1143,7 +1150,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
}
|
|
}
|
|
Map map = maps.get(0);
|
|
Map map = maps.get(0);
|
|
String userCountGroup = String.valueOf(map.get("user_count_group"));
|
|
String userCountGroup = String.valueOf(map.get("user_count_group"));
|
|
- if (StringUtils.isEmpty(userCountGroup)) {
|
|
|
|
|
|
+ if (StringUtils.isEmpty(userCountGroup)|| "null".equals(userCountGroup)) {
|
|
return new ArrayList<>();
|
|
return new ArrayList<>();
|
|
}
|
|
}
|
|
return baseService.userDetailList(Arrays.stream(userCountGroup.split(",")).map(String::trim).map(Long::valueOf).collect(Collectors.toList()), dto);
|
|
return baseService.userDetailList(Arrays.stream(userCountGroup.split(",")).map(String::trim).map(Long::valueOf).collect(Collectors.toList()), dto);
|
|
@@ -1186,6 +1193,44 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
return baseService.roleDetailList(Arrays.stream(roleIdStr.split(",")).map(String::trim).collect(Collectors.toList()), dto);
|
|
return baseService.roleDetailList(Arrays.stream(roleIdStr.split(",")).map(String::trim).collect(Collectors.toList()), dto);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public List<Map> roleDetailList(List<String> roleId) {
|
|
|
|
+ Criteria criteria = Cnd.cri();
|
|
|
|
+ criteria.where().andInStrList("a.role_id", roleId);
|
|
|
|
+ criteria.where().andEquals("a.source_system","ZX_ONE");
|
|
|
|
+ criteria.where().andInList("a.game_id", Arrays.asList(35L, 36L, 10035L));
|
|
|
|
+ String roleDetailListSql = getRoleDetailListSql(criteria);
|
|
|
|
+ Sql sql = Sqls.create(roleDetailListSql);
|
|
|
|
+ sql.setCallback(Sqls.callback.maps());
|
|
|
|
+ dao.execute(sql);
|
|
|
|
+ //查询结果
|
|
|
|
+ List<Map> list = sql.getList(Map.class);
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private String getRoleDetailListSql(Criteria criteria) {
|
|
|
|
+ return """
|
|
|
|
+ select any_value(a.role_name) as roleName,
|
|
|
|
+ a.role_id as roleId,
|
|
|
|
+ any_value(combat_num) as combatNum,
|
|
|
|
+ any_value(a.os) as os,
|
|
|
|
+ SUM(IFNULL(b.amount, 0)) as roleTotalAmount,
|
|
|
|
+ any_value(c.game_name) as gameName,
|
|
|
|
+ any_value(a.server_id) as serverId,
|
|
|
|
+ any_value(a.server_name) as serverName ,
|
|
|
|
+ any_value(a.role_level) as roleLevel ,
|
|
|
|
+ any_value(a.create_time) as createTime ,
|
|
|
|
+ any_value(a.update_time) as updateTime ,
|
|
|
|
+ any_value(a.last_login_time) as lastLoginTime ,
|
|
|
|
+ any_value(a.last_recharge_time) as lastRechargeTime
|
|
|
|
+ from dm_game_order.t_game_user_role a
|
|
|
|
+ left join game_dw.dw_order_day_amount b on a.role_id = b.role_id
|
|
|
|
+ left join dm_game_order.t_game c on a.game_id = c.id and c.source_system = 'ZX_ONE'
|
|
|
|
+ """+criteria+"""
|
|
|
|
+ GROUP BY a.country, a.role_id, a.user_id, a.server_id
|
|
|
|
+ """;
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public List<Map> roleDetailList(List<String> roleId, RoleIpInfoParamDTO roleIpInfoParamDTO) {
|
|
public List<Map> roleDetailList(List<String> roleId, RoleIpInfoParamDTO roleIpInfoParamDTO) {
|
|
Criteria criteria = Cnd.cri();
|
|
Criteria criteria = Cnd.cri();
|
|
@@ -1199,6 +1244,24 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public List<Map> suspectedRoleDetailList(RoleIpInfoParamDTO dto) {
|
|
|
|
+ if (dto.getRoleId() == null) {
|
|
|
|
+ throw new BaseException("角色id不能为空");
|
|
|
|
+ }
|
|
|
|
+ List<Map> maps = baseService.ipDetailList(dto);
|
|
|
|
+ if (CollectionUtils.isEmpty(maps)) {
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ Map map = maps.get(0);
|
|
|
|
+ String suspectedRoleIds = String.valueOf(map.get("suspected_role_ids"));
|
|
|
|
+ if (StringUtils.isEmpty(suspectedRoleIds)|| "null".equals(suspectedRoleIds)) {
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ return baseService.roleDetailList(Arrays.stream(suspectedRoleIds.split(",")).map(String::trim).collect(Collectors.toList()));
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
private Criteria getUserDetailOrderSql(RoleIpInfoParamDTO dto) {
|
|
private Criteria getUserDetailOrderSql(RoleIpInfoParamDTO dto) {
|
|
Criteria criteria = Cnd.cri();
|
|
Criteria criteria = Cnd.cri();
|
|
//主表添加排序条件
|
|
//主表添加排序条件
|
|
@@ -1291,7 +1354,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
""" + criteria;
|
|
""" + criteria;
|
|
}
|
|
}
|
|
|
|
|
|
- private String getGameCountryRoleListSql(Criteria criA,Criteria orderCri) {
|
|
|
|
|
|
+ private String getGameCountryRoleListSql(Criteria criA, Criteria orderCri) {
|
|
return """
|
|
return """
|
|
select a.country as country,a.role_id as roleId,a.user_id as userId ,any_value(a.role_name) as roleName ,any_value(a.role_level) as roleLevel ,any_value(combat_num) as combatNum,
|
|
select a.country as country,a.role_id as roleId,a.user_id as userId ,any_value(a.role_name) as roleName ,any_value(a.role_level) as roleLevel ,any_value(combat_num) as combatNum,
|
|
a.server_id as serverId ,any_value(a.server_name) as serverName ,any_value(create_time) as createTime,SUM(IFNULL(b.amount,0)) as roleTotalAmount
|
|
a.server_id as serverId ,any_value(a.server_name) as serverName ,any_value(create_time) as createTime,SUM(IFNULL(b.amount,0)) as roleTotalAmount
|
|
@@ -1299,7 +1362,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
left join game_dw.dw_order_day_amount b on a.role_id = b.role_id
|
|
left join game_dw.dw_order_day_amount b on a.role_id = b.role_id
|
|
""" + criA + """
|
|
""" + criA + """
|
|
GROUP BY a.country, a.role_id, a.user_id, a.server_id
|
|
GROUP BY a.country, a.role_id, a.user_id, a.server_id
|
|
- """+ orderCri;
|
|
|
|
|
|
+ """ + orderCri;
|
|
}
|
|
}
|
|
|
|
|
|
private String getGameCountryRoleCountSql(Criteria criA) {
|
|
private String getGameCountryRoleCountSql(Criteria criA) {
|
|
@@ -1379,7 +1442,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
left join dm_game_order.t_game_user_role b on a.country = b.country and a.server_id = b.server_id
|
|
left join dm_game_order.t_game_user_role b on a.country = b.country and a.server_id = b.server_id
|
|
left join (
|
|
left join (
|
|
select role_id,ROW_NUMBER()over(partition by role_id) as num from game_dw.dw_active_log
|
|
select role_id,ROW_NUMBER()over(partition by role_id) as num from game_dw.dw_active_log
|
|
- where game_id in (35,36,10035)
|
|
|
|
|
|
+ where game_id in (35,36,10035) and server_id != '999'
|
|
and dt = Date(NOW()) ) d on b.role_id = d.role_id and d.num = 1
|
|
and dt = Date(NOW()) ) d on b.role_id = d.role_id and d.num = 1
|
|
) a
|
|
) a
|
|
""" + criA + """
|
|
""" + criA + """
|
|
@@ -1399,6 +1462,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
criA.where().andNotEquals("country", "");
|
|
criA.where().andNotEquals("country", "");
|
|
criA.where().andNotEquals("country", "null");
|
|
criA.where().andNotEquals("country", "null");
|
|
criA.where().andInList("game_id", Arrays.asList(35L, 36L, 10035L));
|
|
criA.where().andInList("game_id", Arrays.asList(35L, 36L, 10035L));
|
|
|
|
+ criA.where().andNotEquals("server_id", "999");
|
|
return """
|
|
return """
|
|
select concat(country,',',server_id)
|
|
select concat(country,',',server_id)
|
|
from dm_game_order.t_game_user_role
|
|
from dm_game_order.t_game_user_role
|
|
@@ -1559,45 +1623,81 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
|
|
|
private String getLevelListSql(Criteria criA) {
|
|
private String getLevelListSql(Criteria criA) {
|
|
return """
|
|
return """
|
|
- select
|
|
|
|
- a.country as country,
|
|
|
|
- a.role_id as roleId,
|
|
|
|
- a.role_name as roleName,
|
|
|
|
- a.user_id as userId,
|
|
|
|
- a.user_name as userName,
|
|
|
|
- a.game_id as gameId,
|
|
|
|
- a.game_name as gameName,
|
|
|
|
- a.server_id as serverId,
|
|
|
|
- a.server_name as serverName,
|
|
|
|
- a.create_time as createTime,
|
|
|
|
- a.role_level as roleLevel,
|
|
|
|
- a.level_time as levelTime,
|
|
|
|
- a.agent_id as agentId,
|
|
|
|
- b.gs_id as gsId,
|
|
|
|
- b.customer_service_id as customerServiceId,
|
|
|
|
- b.oper_user_id as operUserId,
|
|
|
|
- c.pitcher_id as pitcherId
|
|
|
|
- from ads_role_level_log a
|
|
|
|
- left join dm_game_order.t_role_operate b on a.user_id = b.user_id
|
|
|
|
- and a.role_id = b.role_id
|
|
|
|
- and a.server_id = b.server_id
|
|
|
|
- and a.game_id = b.game_id
|
|
|
|
- left join dm_game_order.t_pitcher_agent c on a.agent_id = c.id and c.source_system = 'ZX_ONE'
|
|
|
|
- """ + criA;
|
|
|
|
|
|
+ select a.country as country,
|
|
|
|
+ a.role_id as roleId,
|
|
|
|
+ a.role_name as roleName,
|
|
|
|
+ a.user_id as userId,
|
|
|
|
+ a.user_name as userName,
|
|
|
|
+ a.game_id as gameId,
|
|
|
|
+ a.game_name as gameName,
|
|
|
|
+ a.server_id as serverId,
|
|
|
|
+ a.server_name as serverName,
|
|
|
|
+ a.create_time as createTime,
|
|
|
|
+ a.role_level as roleLevel,
|
|
|
|
+ a.level_time as levelTime,
|
|
|
|
+ a.agent_id as agentId,
|
|
|
|
+ b.gs_id as gsId,
|
|
|
|
+ b.customer_service_id as customerServiceId,
|
|
|
|
+ b.oper_user_id as operUserId,
|
|
|
|
+ c.pitcher_id as pitcherId,
|
|
|
|
+ d.ip,
|
|
|
|
+ d.ip_count as ipCount,
|
|
|
|
+ d.user_count as userCount,
|
|
|
|
+ d.role_count as roleCount,
|
|
|
|
+ d.user_role_count as userRoleCount,
|
|
|
|
+ d.role_user_ip_count as roleUserIpCount,
|
|
|
|
+ IFNULL(d.suspected_count,0) as suspectedCount
|
|
|
|
+ from game_ads.ads_role_level_log a
|
|
|
|
+ left join dm_game_order.t_role_operate b on a.user_id = b.user_id
|
|
|
|
+ and a.role_id = b.role_id
|
|
|
|
+ and a.server_id = b.server_id
|
|
|
|
+ and a.game_id = b.game_id
|
|
|
|
+ left join dm_game_order.t_pitcher_agent c on a.agent_id = c.id and c.source_system = 'ZX_ONE'
|
|
|
|
+ left join game_ads.role_ip_monitor d on a.role_id = d.role_id
|
|
|
|
+ and a.user_id = d.user_id
|
|
|
|
+ and a.server_id = d.server_id
|
|
|
|
+ and a.game_id = d.game_id
|
|
|
|
+ """ + criA;
|
|
}
|
|
}
|
|
|
|
|
|
private String getLevelListCountSql(Criteria criA) {
|
|
private String getLevelListCountSql(Criteria criA) {
|
|
return """
|
|
return """
|
|
select count(1) from (
|
|
select count(1) from (
|
|
- select
|
|
|
|
- *
|
|
|
|
- from ads_role_level_log a
|
|
|
|
- left join dm_game_order.t_role_operate b on a.user_id = b.user_id
|
|
|
|
- and a.role_id = b.role_id
|
|
|
|
- and a.server_id = b.server_id
|
|
|
|
- and a.game_id = b.game_id
|
|
|
|
- left join dm_game_order.t_pitcher_agent c on a.agent_id = c.id and c.source_system = 'ZX_ONE'
|
|
|
|
- """ + criA + """
|
|
|
|
|
|
+ select a.country as country,
|
|
|
|
+ a.role_id as roleId,
|
|
|
|
+ a.role_name as roleName,
|
|
|
|
+ a.user_id as userId,
|
|
|
|
+ a.user_name as userName,
|
|
|
|
+ a.game_id as gameId,
|
|
|
|
+ a.game_name as gameName,
|
|
|
|
+ a.server_id as serverId,
|
|
|
|
+ a.server_name as serverName,
|
|
|
|
+ a.create_time as createTime,
|
|
|
|
+ a.role_level as roleLevel,
|
|
|
|
+ a.level_time as levelTime,
|
|
|
|
+ a.agent_id as agentId,
|
|
|
|
+ b.gs_id as gsId,
|
|
|
|
+ b.customer_service_id as customerServiceId,
|
|
|
|
+ b.oper_user_id as operUserId,
|
|
|
|
+ c.pitcher_id as pitcherId,
|
|
|
|
+ d.ip,
|
|
|
|
+ d.ip_count,
|
|
|
|
+ d.user_count,
|
|
|
|
+ d.role_count,
|
|
|
|
+ d.user_role_count,
|
|
|
|
+ d.role_user_ip_count
|
|
|
|
+ from
|
|
|
|
+ game_ads.ads_role_level_log a
|
|
|
|
+ left join dm_game_order.t_role_operate b on a.user_id = b.user_id
|
|
|
|
+ and a.role_id = b.role_id
|
|
|
|
+ and a.server_id = b.server_id
|
|
|
|
+ and a.game_id = b.game_id
|
|
|
|
+ left join dm_game_order.t_pitcher_agent c on a.agent_id = c.id and c.source_system = 'ZX_ONE'
|
|
|
|
+ left join game_ads.role_ip_monitor d on a.role_id = d.role_id
|
|
|
|
+ and a.user_id = d.user_id
|
|
|
|
+ and a.server_id = d.server_id
|
|
|
|
+ and a.game_id = d.game_id
|
|
|
|
+ """ + criA + """
|
|
) a
|
|
) a
|
|
""";
|
|
""";
|
|
}
|
|
}
|