From 31bbda443a2bbc0fafce7128799c950eeb9f4fd1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 28 十一月 2024 19:10:18 +0800
Subject: [PATCH] 10162 后台优化(特殊账号针对270服合服特殊处理;特殊账号查流向只查本服ID,目前已处理充值查询)

---
 Account/User.php |   43 ++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/Account/User.php b/Account/User.php
index 3467e3f..48232b4 100644
--- a/Account/User.php
+++ b/Account/User.php
@@ -400,12 +400,14 @@
 	}
 
 	//鏍规嵁鎸囧畾鐨剆pid鑾峰彇瀵瑰簲鏈嶅姟鍣ㄥ垪琛ㄩ厤缃�
-	public function GetServersCfg($spid)
+	public function GetServersCfg($spid, $checkSpecial = true)
 	{
 		$ConfigFile = dirname(__FILE__) . "\Server\Server_" . $spid . ".ini";
 		if (file_exists($ConfigFile)) {
 			$serversCfg = parse_ini_file($ConfigFile, true);
-
+			if (!$checkSpecial) {
+				return $serversCfg;
+			}
 			$UserAccount = $this->userData["UserAccount"];
 			\CommFunc\GetConfig("ServerInfo", "SpecialServerIDStart", $SpecialServerIDStart);
 			\CommFunc\GetConfig("ServerInfo", "SpecialAccountList", $SpecialAccountList);
@@ -442,11 +444,29 @@
 			return $this->serversArray;
 		}
 		$spid = $this->GetSPID();
-		$serversCfg = $this->GetServersCfg($spid);
+		$serversCfg = $this->GetServersCfg($spid, false);
 		if (!count($serversCfg)) {
 			return $serversCfg;
 		}
 		$this->serversArray = $serversCfg;
+
+		$UserAccount = $this->userData["UserAccount"];
+		\CommFunc\GetConfig("ServerInfo", "SpecialServerIDStart", $SpecialServerIDStart);
+		\CommFunc\GetConfig("ServerInfo", "SpecialAccountList", $SpecialAccountList);
+		$SpecialAccountList = explode(",", $SpecialAccountList);
+		$SpecialServerIDStart = intval($SpecialServerIDStart);
+		$isSpecialUser = in_array($UserAccount, $SpecialAccountList);
+		$specialServerID = 270; // 270鏈嶇壒娈婂鐞嗭紝琚悎鍒�270浠ュ墠鐨勬湇浜�
+		$specialMainServerID = 0; // 鐗规畩鏈嶆墍灞炰富鏈�
+		if ($isSpecialUser) {
+			foreach ($serversCfg as $info) {
+				$ServerID = intval($info["ServerID"]);
+				if ($ServerID == $specialServerID && $info["MainServer"]) {
+					$specialMainServerID = intval($info["MainServer"]);
+					break;
+				}
+			}
+		}
 
 		# 缁熻鍚堟湇鍒楄〃
 		$mixServerArray = array();
@@ -462,6 +482,13 @@
 				$mixServerArray[$mainServerID] = array("MixServerIDList" => array(), "MixServerStr" => "");
 			}
 			array_push($mixServerArray[$mainServerID]["MixServerIDList"], intval($serverInfo["ServerID"]));
+		}
+
+		if ($isSpecialUser) {
+			if ($specialMainServerID) {
+				// 鐗规畩鏈嶅彧鏄剧ず杩欎袱涓湇
+				$mixServerArray[$specialMainServerID] = array("MixServerIDList" => array($specialMainServerID, $specialServerID), "MixServerStr" => "");
+			}
 		}
 
 		# 缈昏瘧鍚堟湇瀛楃涓蹭俊鎭�
@@ -515,6 +542,16 @@
 			$this->serversArray[$serverName]["MixServerIDList"] = $mixServerInfo["MixServerIDList"];
 			$this->serversArray[$serverName]["MixServerStr"] = $mixServerInfo["MixServerStr"];
 		}
+
+		// 鐗规畩璐﹀彿锛屽彧鑳界湅鎸囧畾鏈嶅強浠ヤ笂
+		if ($isSpecialUser) {
+			foreach ($this->serversArray as $key => $info) {
+				$serverID = intval($info["ServerID"]);
+				if ($serverID < $SpecialServerIDStart && $serverID != $specialMainServerID) {
+					unset($this->serversArray[$key]);
+				}
+			}
+		}
 		return $this->serversArray;
 	}
 

--
Gitblit v1.8.0