|
@@ -927,57 +927,99 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
dao.execute(sql);
|
|
|
//查询结果
|
|
|
List<Map> list = sql.getList(Map.class);
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ List<String> keys = Arrays.asList("putUserId", "operUserId", "gsId", "customerServiceId");
|
|
|
+ List<Long> userIds = new ArrayList<>();
|
|
|
+ for (Map map : list) {
|
|
|
+ //把投手id和运营id和GSID和客服人员ID 转成List
|
|
|
+ for (String key : keys) {
|
|
|
+ if (map.get(key) != null) {
|
|
|
+ userIds.add(Long.valueOf(map.get(key).toString()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //去重userIds
|
|
|
+ userIds = userIds.stream().distinct().collect(Collectors.toList());
|
|
|
+ //发送RPC接口查询所有用户
|
|
|
+ ResultVO<Map<Long, String>> userMap = sysUserRpc.getUserNameByIds(userIds);
|
|
|
+ for (Map map : list) {
|
|
|
+ //投手名
|
|
|
+ updateUserName(map, "putUserId", "putUserName", userMap);
|
|
|
+ //运营人员名
|
|
|
+ updateUserName(map, "operUserId", "operUserName", userMap);
|
|
|
+ //GS人员名
|
|
|
+ updateUserName(map, "gsId", "gsName", userMap);
|
|
|
+ //客服人员名
|
|
|
+ updateUserName(map, "customerServiceId", "customerServiceName", userMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
return new Page<>(list, pager);
|
|
|
}
|
|
|
|
|
|
private Criteria getSqlByQuery(RoleLevelParamDTO dto) {
|
|
|
Criteria criA = Cnd.cri();
|
|
|
- if(CollectionUtils.isNotEmpty(dto.getUserId())){
|
|
|
+ if(dto.getGsId()!=null){
|
|
|
+ //gsId
|
|
|
+ criA.where().andEquals("b.gs_id", dto.getGsId());
|
|
|
+ }
|
|
|
+ if(dto.getPitcherId()!=null){
|
|
|
+ //投手id
|
|
|
+ criA.where().andEquals("c.pitcher_id", dto.getPitcherId());
|
|
|
+ }
|
|
|
+ if(dto.getCustomerServiceId()!=null){
|
|
|
+ //客服id
|
|
|
+ criA.where().andEquals("b.customer_service_id", dto.getCustomerServiceId());
|
|
|
+ }
|
|
|
+ if(dto.getOperUserId()!=null){
|
|
|
+ //运营id
|
|
|
+ criA.where().andEquals("b.oper_user_id", dto.getOperUserId());
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(dto.getUserId())) {
|
|
|
//玩家id
|
|
|
- criA.where().andInList("user_id", dto.getUserId());
|
|
|
+ criA.where().andInList("a.user_id", dto.getUserId());
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(dto.getUserName())) {
|
|
|
//玩家名称
|
|
|
- criA.where().andLike("user_name", dto.getUserName());
|
|
|
+ criA.where().andLike("a.user_name", dto.getUserName());
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(dto.getServerName())) {
|
|
|
//区服名称
|
|
|
- criA.where().andLike("server_name", dto.getServerName());
|
|
|
+ criA.where().andLike("a.server_name", dto.getServerName());
|
|
|
}
|
|
|
- if(CollectionUtils.isNotEmpty(dto.getServerId())){
|
|
|
+ if (CollectionUtils.isNotEmpty(dto.getServerId())) {
|
|
|
//区服id
|
|
|
- criA.where().andInStrList("server_id", dto.getServerId());
|
|
|
+ criA.where().andInStrList("a.server_id", dto.getServerId());
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(dto.getGameName())) {
|
|
|
//游戏名称
|
|
|
- criA.where().andLike("game_name", dto.getGameName());
|
|
|
+ criA.where().andLike("a.game_name", dto.getGameName());
|
|
|
}
|
|
|
- if(CollectionUtils.isNotEmpty(dto.getGameId())){
|
|
|
+ if (CollectionUtils.isNotEmpty(dto.getGameId())) {
|
|
|
//游戏id
|
|
|
- criA.where().andInList("game_id", dto.getGameId());
|
|
|
+ criA.where().andInList("a.game_id", dto.getGameId());
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(dto.getRoleId())) {
|
|
|
//角色id
|
|
|
- criA.where().andEquals("role_id", dto.getRoleId());
|
|
|
+ criA.where().andEquals("a.role_id", dto.getRoleId());
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(dto.getRoleName())) {
|
|
|
//角色名称
|
|
|
- criA.where().andLike("role_name", dto.getRoleName());
|
|
|
+ criA.where().andLike("a.role_name", dto.getRoleName());
|
|
|
}
|
|
|
//角色等级区间筛选
|
|
|
if (dto.getRoleLevelMin() != null) {
|
|
|
- criA.where().andGTE("role_level", dto.getRoleLevelMin());
|
|
|
+ criA.where().andGTE("a.role_level", dto.getRoleLevelMin());
|
|
|
}
|
|
|
if (dto.getRoleLevelMax() != null) {
|
|
|
- criA.where().andLTE("role_level", dto.getRoleLevelMax());
|
|
|
+ criA.where().andLTE("a.role_level", dto.getRoleLevelMax());
|
|
|
}
|
|
|
//角色创建时间
|
|
|
if (dto.getCreateTimeMin() != null && dto.getCreateTimeMax() != null) {
|
|
|
- criA.where().andBetween("create_time", dto.getCreateTimeMin(), dto.getCreateTimeMax());
|
|
|
+ criA.where().andBetween("a.create_time", dto.getCreateTimeMin(), dto.getCreateTimeMax());
|
|
|
}
|
|
|
//等级上报时间
|
|
|
if (dto.getLevelTimeMin() != null && dto.getLevelTimeMax() != null) {
|
|
|
- criA.where().andBetween("level_time", dto.getLevelTimeMin(), dto.getLevelTimeMax());
|
|
|
+ criA.where().andBetween("a.level_time", dto.getLevelTimeMin(), dto.getLevelTimeMax());
|
|
|
}
|
|
|
|
|
|
return criA;
|
|
@@ -985,28 +1027,46 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
|
|
|
private String getLevelListSql(Criteria criA) {
|
|
|
return """
|
|
|
- select
|
|
|
- role_id as roleId,
|
|
|
- role_name as roleName,
|
|
|
- user_id as userId,
|
|
|
- user_name as userName,
|
|
|
- game_id as gameId,
|
|
|
- game_name as gameName,
|
|
|
- server_id as serverId,
|
|
|
- server_name as serverName,
|
|
|
- create_time as createTime,
|
|
|
- role_level as roleLevel,
|
|
|
- level_time as levelTime
|
|
|
- from ads_role_level_log
|
|
|
+ select
|
|
|
+ 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;
|
|
|
}
|
|
|
|
|
|
private String getLevelListCountSql(Criteria criA) {
|
|
|
return """
|
|
|
- select
|
|
|
- count(1)
|
|
|
- from ads_role_level_log
|
|
|
- """ + criA;
|
|
|
+ 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 + """
|
|
|
+ ) a
|
|
|
+ """;
|
|
|
}
|
|
|
|
|
|
|