Prechádzať zdrojové kódy

feat:角色等级列表-增加投手,运营 gs 客服和渠道

zhangxianyu 2 mesiacov pred
rodič
commit
57eaf87857

+ 12 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/RoleLevelParamDTO.java

@@ -59,4 +59,16 @@ public class RoleLevelParamDTO extends BasePage {
    @ApiModelProperty(value = "等级上报最大值")
    private LocalDateTime levelTimeMax;
 
+   @ApiModelProperty(value = "gsId")
+   private Long gsId;
+
+   @ApiModelProperty(value = "投手id")
+   private Long pitcherId;
+
+   @ApiModelProperty(value = "客服id")
+   private Long customerServiceId;
+
+   @ApiModelProperty(value = "运营id")
+   private Long operUserId;
+
 }

+ 92 - 32
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RoleManageServiceImpl.java

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