10162 后台优化(开放入口增加检查开服天及版本号;非手动开新服默认为推荐服,其他服设置为不推荐;)
3个文件已修改
1个文件已添加
84 ■■■■■ 已修改文件
Server/config.ini 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
serverops/checkOpenServer.php 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
serverops/serverEdit.php 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
task/minuteLoop.php 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Server/config.ini
@@ -17,5 +17,5 @@
;权限2
[Popedom_2]
key=VERCbmNrbFZQVDE9
pack_types=GMT_ItemExpiation,GMT_MoneyExpiation,GMT_AddNewGuyCard,GMT_CardTypeInfo,GMT_NewGuyCardInfo,GMT_CTG,GMT_FreshmanGuide,GMT_BourseOnOff,GMT_AddEntireCompensation,GMT_AddPersonalCompensation,GMT_SetOpenServerTime,GMT_CompensationQuery,GMT_CompensationMgr,GMT_MediaCard,GMT_CrossServerMaintain,GMT_CrossClientServerMaintain,GMT_AddAuctionItem,GMT_AddTitle,GMT_CompensationQueryPersonal,GMT_CrossActServerIDChange,GMT_DelPlayerMoney,GMT_DelPlayerItem,GMT_RefixWorldLV,GMT_Execfile,GMT_SetGMLevel,GMT_CrossBattleChampionSet,GMT_AddPayCoin,GMT_ReloadPymongo,GMT_Worship,GMT_Face
pack_types=GMT_ItemExpiation,GMT_MoneyExpiation,GMT_AddNewGuyCard,GMT_CardTypeInfo,GMT_NewGuyCardInfo,GMT_CTG,GMT_FreshmanGuide,GMT_BourseOnOff,GMT_AddEntireCompensation,GMT_AddPersonalCompensation,GMT_SetOpenServerTime,GMT_CompensationQuery,GMT_CompensationMgr,GMT_MediaCard,GMT_CrossServerMaintain,GMT_CrossClientServerMaintain,GMT_AddAuctionItem,GMT_AddTitle,GMT_CompensationQueryPersonal,GMT_CrossActServerIDChange,GMT_DelPlayerMoney,GMT_DelPlayerItem,GMT_RefixWorldLV,GMT_Execfile,GMT_SetGMLevel,GMT_CrossBattleChampionSet,GMT_AddPayCoin,GMT_ReloadPymongo,GMT_Worship,GMT_Face,GMT_CheckOpenServer
serverops/checkOpenServer.php
New file
@@ -0,0 +1,24 @@
<?php
include_once "/Common/Logging.php";
include_once "/Common/CommFunc.php";
$channel = $_GET["channel"];
$serverID = intval($_GET["serverID"]);
\Logging\CreateLogging("serverops.checkOpenServer.php");
\Logging\LogInfo("_GET:" . print_r($_GET, true));
// 检查服务器开服相关是否正常,如开服天、版本号等
$packData = array();
$retList = \CommFunc\SendGMTToGameServers(True, "GMT_CheckOpenServer", $packData, $channel, array($serverID));
\Logging\LogInfo("retList:" . print_r($retList, true));
if (!is_array($retList)) {
    echo "{}";
    exit;
}
$ret = json_decode($retList[$serverID], true);
if (!$ret || !array_key_exists("ResultType", $ret)) {
    echo "{}";
    exit;
}
echo json_encode($ret["ResultMsg"]);
serverops/serverEdit.php
@@ -136,7 +136,7 @@
            <tr>
                <td class="formTableTDName">开放状态: </td>
                <td class="formTableTDValue">
                    <select name="Statue">
                    <select name="Statue" onchange="OnSelectStatue(this.value)">
                        <?php
                        $selected = array_key_exists("Statue", $editInfo)  ? $editInfo["Statue"] : \ServerOPS\ServerStatue::InternalOpen;
                        foreach (\ServerOPS\ServerStatue::$StatueName as $key => $value) {
@@ -148,6 +148,7 @@
                        }
                        ?>
                    </select>
                    <div id="StatueOpenTips" />
                </td>
            </tr>
            <tr>
@@ -229,7 +230,41 @@
    </form>
    <script type='text/javascript' src='/js/calendar.js'></script>
    <script type='text/javascript' src="/js/common.js"></script>
    <script type="text/javascript">
        function OnSelectStatue(Statue) {
            var openServerTips = document.getElementById("StatueOpenTips");
            if (Statue != 1) {
                openServerTips.innerHTML = "";
                return
            }
            var channel = '<?php echo $channel ?>';
            var serverID = '<?php echo $ServerID ?>';
            ajaxRequest("checkOpenServer.php?channel=" + channel + "&serverID=" + serverID,
                function(xmlhttp) {
                    var br = getbr();
                    var res = JSON.parse(xmlhttp.responseText);
                    var errMsg = res.errMsg;
                    var errTips = "无法请求服务器开服状态,请检查服务器是否正常";
                    if (errMsg == "OpenServerDayError") {
                        errTips = "服务器非开服第一天,开服天:" + res["openServerDay"];
                    } else if (errMsg == "VersionError") {
                        errTips = "服务器版本异常,服务器版本:" + res["curVersion"] + ",中心版本:" + res["centerVersion"];
                    } else if (errMsg == "OK") {
                        errTips = "";
                    }
                    if (errTips != "") {
                        openServerTips.insertAdjacentHTML("beforeEnd", "<font color='red'>" + errTips + "</font>");
                        openServerTips.errTips = 1;
                    } else {
                        openServerTips.insertAdjacentHTML("beforeEnd", "服务器正常,可开放入口!");
                        openServerTips.errTips = 0;
                    }
                },
            );
        }
        function CheckSubmit() {
            if (!document.getElementById("ServerID").value || document.getElementById("ServerID").value <= 0) {
                alert("请输入大于0服务器ID!");
@@ -267,6 +302,12 @@
                document.getElementById('GamePort').focus();
                return false;
            }
            var openServerTips = document.getElementById("StatueOpenTips");
            if (openServerTips.errTips == 1) {
                if (!window.confirm("该服务器不是新服开服环境,确定开放入口?")) {
                    return false;
                }
            }
            return true;
        }
    </script>
task/minuteLoop.php
@@ -205,15 +205,30 @@
            \Logging\LogError("game server clearState error." . print_r($serverInfo, true));
            continue;
        }
        // 进一步检查最新服务器开服状态是否正常
        $checkUrl = 'http://' . $_SERVER['HTTP_HOST'] . "/serverops/checkOpenServer.php";
        $retStr = \CommFunc\DoGet($checkUrl, array("channel" => $Channel, "serverID" => $ServerID));
        $checkRet = json_decode($retStr, true);
        if (!isset($checkRet) || !array_key_exists("errMsg", $checkRet) || $checkRet["errMsg"] != "OK") {
            \Logging\LogError("checkOpenServer error. Channel:" . $Channel . " ServerID:" . $ServerID . " ret:" . print_r($checkRet, true));
            continue;
        }
        $JsonBranch = $serverInfo["JsonBranch"];
        $find = array("Channel" => $Channel, "ServerID" => $ServerID);
        $set = array(
            "RunningStatus" => \ServerOPS\ServerRunningStatus::Light,
            "Statue" => \ServerOPS\ServerStatue::Open,
            "Recommend" => 1, // 新开放入口服默认推荐
        );
        if (\DBOper\Update("GameServers", $find, $set)) {
            \Logging\LogInfo("set server open ok." . print_r($serverInfo, true));
            // 其他服设置为不推荐
            \DBOper\Update("GameServers", array(
                "Channel" => $Channel,
                "ServerID" => array('$nin' => array($ServerID))
            ), array("Recommend" => 0), false, false, true);
        } else {
            \Logging\LogError("set server open error." . print_r($serverInfo, true));
        }