Ver código fonte

:feat:GS区服添加gs名称字段,和gs搜索条件

zhangxianyu 1 ano atrás
pai
commit
b06aa8eb3e

+ 44 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/GameUserConfigController.java

@@ -0,0 +1,44 @@
+package com.zanxiang.game.data.serve.controller;
+
+import com.zanxiang.erp.security.annotation.PreAuthorize;
+import com.zanxiang.game.data.serve.pojo.dto.GameUserConfigListDTO;
+import com.zanxiang.game.data.serve.pojo.vo.GameUserConfigListVO;
+import com.zanxiang.game.data.serve.service.IGameUserConfigService;
+import com.zanxiang.game.data.serve.utils.Page;
+import com.zanxiang.module.util.pojo.ResultVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * packageName com.zanxiang.game.data.serve.controller
+ *
+ * @author ZhangXianyu
+ * @date 2024/4/18
+ * @description 有效创角配置管理
+ */
+@Api(tags = "有效创角配置管理")
+@RestController
+@RequestMapping("/gameUserConfig")
+@Slf4j
+public class GameUserConfigController {
+
+    @Resource
+    private IGameUserConfigService gameUserConfigService;
+
+    @ApiOperation(value = "有效创角配置列表")
+    @PreAuthorize(permissionKey = "roleManage:validRoleConfig:list")
+    @PostMapping(value = "/list")
+    public ResultVO<Page<GameUserConfigListVO>> validRoleConfigList(@Validated @RequestBody GameUserConfigListDTO dto) {
+        return ResultVO.ok(gameUserConfigService.validRoleConfigList(dto));
+    }
+
+}

+ 2 - 6
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/RoleManageController.java

@@ -74,12 +74,8 @@ public class RoleManageController {
         return ResultVO.ok(roleManageService.getSendMsgResultList(msgTaskResultDto));
         return ResultVO.ok(roleManageService.getSendMsgResultList(msgTaskResultDto));
     }
     }
 
 
-    @ApiOperation(value = "有效创角配置列表")
-    @PreAuthorize(permissionKey = "roleManage:validRoleConfig:list")
-    @PostMapping(value = "/validRoleConfig/list")
-    public ResultVO<Page<GameUserConfigListVO>> validRoleConfigList(@Validated @RequestBody GameUserConfigListDTO dto) {
-        return ResultVO.ok(roleManageService.validRoleConfigList(dto));
-    }
+
+
 
 
 
 
 }
 }

+ 3 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GSGameServerDayVO.java

@@ -42,6 +42,9 @@ public class GSGameServerDayVO implements Serializable {
     @ApiModelProperty(value = "gsIds")
     @ApiModelProperty(value = "gsIds")
     private String gsIds;
     private String gsIds;
 
 
+    @ApiModelProperty(value = "gs名称")
+    private String gsNames;
+
 
 
     @ApiModelProperty(value = "新用户人数")
     @ApiModelProperty(value = "新用户人数")
     private Long totalRegNum;
     private Long totalRegNum;

+ 15 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IGameUserConfigService.java

@@ -0,0 +1,15 @@
+package com.zanxiang.game.data.serve.service;
+
+import com.zanxiang.game.data.serve.pojo.dto.GameUserConfigListDTO;
+import com.zanxiang.game.data.serve.pojo.vo.GameUserConfigListVO;
+import com.zanxiang.game.data.serve.utils.Page;
+
+public interface IGameUserConfigService {
+
+    /**
+     * 有效创角配置列表
+     * @param dto
+     * @return
+     */
+    Page<GameUserConfigListVO> validRoleConfigList(GameUserConfigListDTO dto);
+}

+ 1 - 6
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IRoleManageService.java

@@ -44,10 +44,5 @@ public interface IRoleManageService {
      */
      */
     Page<SendMsgResultVO> getSendMsgResultList(MsgTaskResultDTO msgTaskResultDto);
     Page<SendMsgResultVO> getSendMsgResultList(MsgTaskResultDTO msgTaskResultDto);
 
 
-    /**
-     * 有效创角配置列表
-     * @param dto
-     * @return
-     */
-    Page<GameUserConfigListVO> validRoleConfigList(GameUserConfigListDTO dto);
+
 }
 }

+ 27 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameServerServiceImpl.java

@@ -1,6 +1,8 @@
 package com.zanxiang.game.data.serve.service.impl;
 package com.zanxiang.game.data.serve.service.impl;
 
 
 import com.google.common.base.CaseFormat;
 import com.google.common.base.CaseFormat;
+import com.zanxiang.erp.base.ErpServer;
+import com.zanxiang.erp.base.rpc.ISysUserRpc;
 import com.zanxiang.game.data.serve.component.DataPowerComponent;
 import com.zanxiang.game.data.serve.component.DataPowerComponent;
 import com.zanxiang.game.data.serve.pojo.dto.*;
 import com.zanxiang.game.data.serve.pojo.dto.*;
 import com.zanxiang.game.data.serve.pojo.entity.AdsGameServerDay;
 import com.zanxiang.game.data.serve.pojo.entity.AdsGameServerDay;
@@ -11,15 +13,19 @@ import com.zanxiang.game.data.serve.pojo.enums.OrderByEnum;
 import com.zanxiang.game.data.serve.pojo.vo.*;
 import com.zanxiang.game.data.serve.pojo.vo.*;
 import com.zanxiang.game.data.serve.service.IGameServerService;
 import com.zanxiang.game.data.serve.service.IGameServerService;
 import com.zanxiang.game.data.serve.utils.Page;
 import com.zanxiang.game.data.serve.utils.Page;
+import com.zanxiang.module.util.pojo.ResultVO;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.nutz.dao.Cnd;
 import org.nutz.dao.Cnd;
 import org.nutz.dao.Dao;
 import org.nutz.dao.Dao;
 import org.nutz.dao.Sqls;
 import org.nutz.dao.Sqls;
 import org.nutz.dao.pager.Pager;
 import org.nutz.dao.pager.Pager;
 import org.nutz.dao.sql.Criteria;
 import org.nutz.dao.sql.Criteria;
 import org.nutz.dao.sql.Sql;
 import org.nutz.dao.sql.Sql;
+import org.nutz.dao.util.cri.SqlExpression;
+import org.nutz.dao.util.cri.Static;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import reactor.util.function.Tuple2;
 import reactor.util.function.Tuple2;
@@ -41,6 +47,9 @@ import java.util.stream.Collectors;
 @Service
 @Service
 public class GameServerServiceImpl implements IGameServerService {
 public class GameServerServiceImpl implements IGameServerService {
 
 
+    @DubboReference(providedBy = ErpServer.SERVER_DUBBO_NAME)
+    private ISysUserRpc sysUserRpc;
+
     //存储映射的List
     //存储映射的List
     private static final List<Tuple2<Field, Field>> dayNFieldMapList;
     private static final List<Tuple2<Field, Field>> dayNFieldMapList;
     private static final List<Tuple2<Field, Field>> dayNTotalFieldMapList;
     private static final List<Tuple2<Field, Field>> dayNTotalFieldMapList;
@@ -539,7 +548,15 @@ public class GameServerServiceImpl implements IGameServerService {
                 .filter(field -> field.getName().contains("daRetention"))
                 .filter(field -> field.getName().contains("daRetention"))
                 .peek(field -> field.setAccessible(true))
                 .peek(field -> field.setAccessible(true))
                 .toList();
                 .toList();
-
+        //把所有gsIds取出来用,拼起来
+        String gsIds = vos.stream().map(GSGameServerDayVO::getGsIds).collect(Collectors.joining(","));
+        ResultVO<Map<Long, String>> userMap = null;
+        if(StringUtils.isNotEmpty(gsIds)){
+            //转换为Long类型
+            List<Long> userIds = Arrays.stream(gsIds.split(",")).map(Long::parseLong).toList();
+            //发送RPC接口查询所有用户
+             userMap = sysUserRpc.getUserNameByIds(userIds);
+        }
         for (GSGameServerDayVO vo : vos) {
         for (GSGameServerDayVO vo : vos) {
             List<GSGameServerDayRVO> rDataList = collect.get(vo.getSourceSystem() + vo.getServerId() + vo.getParentGameId());
             List<GSGameServerDayRVO> rDataList = collect.get(vo.getSourceSystem() + vo.getServerId() + vo.getParentGameId());
             for (int i = 0; i < fieldList.size(); i++) {
             for (int i = 0; i < fieldList.size(); i++) {
@@ -575,6 +592,12 @@ public class GameServerServiceImpl implements IGameServerService {
                     throw new RuntimeException(e);
                     throw new RuntimeException(e);
                 }
                 }
             }
             }
+            if(userMap != null && userMap.getData() != null&&StringUtils.isNotEmpty(vo.getGsIds())){
+                Map<Long, String> data = userMap.getData();
+                List<Long> userIds = Arrays.stream(vo.getGsIds().split(",")).map(Long::parseLong).toList();
+                String gsNames = userIds.stream().map(data::get).collect(Collectors.joining(","));
+                vo.setGsNames(gsNames);
+            }
 
 
         }
         }
         return new Page<>(vos, pager);
         return new Page<>(vos, pager);
@@ -793,6 +816,9 @@ public class GameServerServiceImpl implements IGameServerService {
         if (StringUtils.isNotEmpty(dto.getServerName())) {
         if (StringUtils.isNotEmpty(dto.getServerName())) {
             cri.where().andLike("a.server_name", dto.getServerName());
             cri.where().andLike("a.server_name", dto.getServerName());
         }
         }
+        if(dto.getGsId()!=null){
+            cri.where().and(new Static("find_in_set("+dto.getGsId()+",a.gs_ids)"));
+        }
         return cri;
         return cri;
     }
     }
 
 

+ 129 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameUserConfigServiceImpl.java

@@ -0,0 +1,129 @@
+package com.zanxiang.game.data.serve.service.impl;
+
+import com.zanxiang.game.data.serve.pojo.dto.GameDTO;
+import com.zanxiang.game.data.serve.pojo.dto.GameUserConfigListDTO;
+import com.zanxiang.game.data.serve.pojo.vo.GameUserConfigListVO;
+import com.zanxiang.game.data.serve.service.IGameUserConfigService;
+import com.zanxiang.game.data.serve.utils.Page;
+import org.apache.commons.lang3.StringUtils;
+import org.nutz.dao.Cnd;
+import org.nutz.dao.Dao;
+import org.nutz.dao.Sqls;
+import org.nutz.dao.pager.Pager;
+import org.nutz.dao.sql.Criteria;
+import org.nutz.dao.sql.Sql;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * packageName com.zanxiang.game.data.serve.service.impl
+ *
+ * @author ZhangXianyu
+ * @date 2024/4/18
+ * @description TODO
+ */
+@Service
+public class GameUserConfigServiceImpl implements IGameUserConfigService {
+
+    @Autowired
+    private Dao dao;
+
+    @Override
+    public Page<GameUserConfigListVO> validRoleConfigList(GameUserConfigListDTO dto) {
+        Criteria criA = Cnd.cri();
+        if (dto.getGameId() != null) {
+            criA.where().andEquals("role_id", dto.getGameId());
+        }
+        if (StringUtils.isNotEmpty(dto.getSourceSystem())) {
+            criA.where().andEquals("source_system", dto.getSourceSystem());
+        }
+        //分页对象
+        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
+        //查询总记录数
+        Sql countSql = Sqls.create(getGameUserConfigTotalSql() + criA);
+        countSql.setCallback(Sqls.callback.integer());
+        dao.execute(countSql);
+        pager.setRecordCount(countSql.getInt());
+
+        //创建sql
+        Sql sql = Sqls.create(getGameUserConfigSql(criA));
+        sql.setCallback(Sqls.callback.entities());
+        sql.setEntity(dao.getEntity(GameUserConfigListVO.class));
+        sql.setPager(pager);
+        dao.execute(sql);
+        //查询结果
+        List<GameUserConfigListVO> list = sql.getList(GameUserConfigListVO.class);
+        Map<Long, GameDTO> parentGameMap = getGameMap();
+        list.forEach(item -> {
+            GameDTO gameDTO = parentGameMap.get(item.getGameId());
+            if (gameDTO != null) {
+                item.setGameName(gameDTO.getGameName());
+            }
+        });
+        return new Page<>(list, pager);
+    }
+
+    public String getGameUserConfigSql(Criteria criA) {
+        String sql = """
+                select 
+                 source_system,
+                 id,
+                 game_id,
+                 role_level,
+                 create_time,
+                 update_time
+                 from 
+                 dm_game_order.t_game_user_config   
+                 """ + criA + """
+                    order by create_time desc
+                """;
+        return sql;
+    }
+
+
+    public String getGameUserConfigTotalSql() {
+        String sql = """
+                select count(*) from dm_game_order.t_game_user_config
+                """;
+        return sql;
+    }
+
+
+    /**
+     * 获取游戏列表
+     */
+    private Map<Long, GameDTO> getGameMap() {
+        Sql sql = Sqls.create(getGameSql());
+        sql.setCallback(Sqls.callback.entities());
+        sql.setEntity(dao.getEntity(GameDTO.class));
+        dao.execute(sql);
+        List<GameDTO> gameDtoList = sql.getList(GameDTO.class);
+        //将游戏拼成map key为游戏id,value为游戏名称
+        return gameDtoList.stream().collect(Collectors.toMap(GameDTO::getId, Function.identity()));
+    }
+
+    /**
+     * 查询游戏sql
+     *
+     * @return String
+     */
+    private String getGameSql() {
+        return """
+                 SELECT
+                            -- 游戏名称、游戏类型、父游戏id、超父游戏id
+                            source_system,
+                            id,
+                            game_name,
+                            classify,
+                            parent_id,
+                            super_game_id
+                        FROM dm_game_order.t_game
+                        where source_system = 'ZX_ONE'
+                """;
+    }
+}

+ 0 - 58
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RoleManageServiceImpl.java

@@ -851,65 +851,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
         }
         }
     }
     }
 
 
-    @Override
-    public Page<GameUserConfigListVO> validRoleConfigList(GameUserConfigListDTO dto) {
-        Criteria criA = Cnd.cri();
-        if (dto.getGameId() != null) {
-            criA.where().andEquals("role_id", dto.getGameId());
-        }
-        if (StringUtils.isNotEmpty(dto.getSourceSystem())) {
-            criA.where().andEquals("source_system", dto.getSourceSystem());
-        }
-        //分页对象
-        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
-        //查询总记录数
-        Sql countSql = Sqls.create(getGameUserConfigTotalSql() + criA);
-        countSql.setCallback(Sqls.callback.integer());
-        dao.execute(countSql);
-        pager.setRecordCount(countSql.getInt());
 
 
-        //创建sql
-        Sql sql = Sqls.create(getGameUserConfigSql(criA));
-        sql.setCallback(Sqls.callback.entities());
-        sql.setEntity(dao.getEntity(GameUserConfigListVO.class));
-        sql.setPager(pager);
-        dao.execute(sql);
-        //查询结果
-        List<GameUserConfigListVO> list = sql.getList(GameUserConfigListVO.class);
-        Map<Long, GameDTO> parentGameMap = getParentGameMap();
-        list.forEach(item -> {
-            GameDTO gameDTO = parentGameMap.get(item.getGameId());
-            if (gameDTO != null) {
-                item.setGameName(gameDTO.getGameName());
-            }
-        });
-        return new Page<>(list, pager);
-    }
-
-    public String getGameUserConfigSql(Criteria criA) {
-        String sql = """
-                select 
-                 source_system,
-                 id,
-                 game_id,
-                 role_level,
-                 create_time,
-                 update_time
-                 from 
-                 dm_game_order.t_game_user_config   
-                 """ + criA + """
-                    order by create_time desc
-                """;
-        return sql;
-    }
-
-
-    public String getGameUserConfigTotalSql() {
-        String sql = """
-                select count(*) from dm_game_order.t_game_user_config
-                """;
-        return sql;
-    }
 
 
     /**
     /**
      * 补充查询发送消息任务结果sql
      * 补充查询发送消息任务结果sql