zhanwencai 1 vuosi sitten
vanhempi
sitoutus
f1b8645f62

+ 4 - 1
webServer/src/config/sdk.sql

@@ -46,4 +46,7 @@ CREATE TABLE `game_enter_server` (
   `server_id` varchar(50) NOT NULL DEFAULT '' COMMENT '区服id',
   `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '进区时间',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='进区记录表';
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='进区记录表';
+
+ALTER TABLE game_server ADD white_list varchar(1000) NOT NULL DEFAULT '';
+

+ 32 - 2
webServer/src/controller/ApiController.ts

@@ -3,7 +3,6 @@ import {
     RefreshToken,
     PackageName,
     ProductId,
-    IosUrl,
     SandboxIosUrl,
     Account,
     ClientSecret,
@@ -659,7 +658,38 @@ class ApiController {
     async getServerList(ctx) {
         let tag = ctx.query.tag || 'default'
         const servers = (await Server.getServerList(tag))
-        ctx.body = servers
+        let data = []
+        let ip = ctx.request.ip
+        if (ip.startsWith('::ffff:')) {
+            ip = ip.substring('::ffff:'.length);
+        }
+
+        logger.info("区服接口", { "ip": ctx.request.ip })
+        if (servers.length > 0) {
+            servers.forEach(function (element) {
+                let status = element.status
+                if (status == 0 && element.white_list) {
+                    const list = element.white_list.split(",");
+
+                    if (list.length > 0) {
+                        if (list.includes(ip)) {
+                            status = 1
+                        }
+                    }
+                }
+
+                data.push({
+                    "id": element.server_id,
+                    "name": element.name,
+                    "ip": element.ip,
+                    "port": element.port,
+                    "tips": element.tips,
+                    "status": status,
+                })
+            });
+        }
+
+        ctx.body = data
     }
 
     async getAllServerList(ctx) {

+ 1 - 1
webServer/src/model/ServerModel.ts

@@ -3,7 +3,7 @@ import { query } from '../sql/query'; // 确保路径是正确的
 class ServerModel {
     //获取
     async getServerList(tag: any) {
-        return await query(`SELECT id,status,name,ip,port,tips FROM game_server WHERE tag = ?`, [tag])
+        return await query(`SELECT id,status,name,ip,port,tips,white_list FROM game_server WHERE tag = ?`, [tag])
     }
     async getServerListById(tag: any, id: any) {
         return await query(`SELECT *  FROM game_enter_server WHERE  id = ? `, [id])