|
@@ -0,0 +1,115 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+/* * **************************************************
|
|
|
+ * 此代码为员工在公司工作期间创作.
|
|
|
+ * 使用权和所有权归属于公司和员工共有.
|
|
|
+ * 收益的权利归属于公司.
|
|
|
+ * ——石家庄龙游科技有限公司
|
|
|
+ * ************************************************** */
|
|
|
+
|
|
|
+namespace loyalsoft;
|
|
|
+
|
|
|
+include_once __DIR__ . '/../../main.php';
|
|
|
+
|
|
|
+class UpdateRetInfo {
|
|
|
+
|
|
|
+ public $err = 0;
|
|
|
+ public $msg = "";
|
|
|
+ public $newVer = "";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @var \sm_clientVersionHistory 版本信息
|
|
|
+ */
|
|
|
+ public $versionInfo = null;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 检查更新
|
|
|
+ * @author gwang
|
|
|
+ * @version 1.0.0 Created by wanggangzero at 2020.4.27 13:48:33.
|
|
|
+ */
|
|
|
+class CheckUpdate {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 打印消息并且停止游戏
|
|
|
+ */
|
|
|
+ const HaltWithMsg = false;
|
|
|
+ const CDN_Root = "http://115.159.121.129/SweepAllTower/CDN/";
|
|
|
+ const Md5_file = "Update";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 检查客户端版本是否需要强制更新
|
|
|
+ * @param Req $req
|
|
|
+ * @return int ErrCode
|
|
|
+ */
|
|
|
+ public static function Check() {
|
|
|
+ $clientVer = self::GetClientVersion(); # 客户端版本号
|
|
|
+ $platform = self::GetClientPlatform(); # 客户端平台(安卓/IOS)
|
|
|
+
|
|
|
+ $url = self::CDN_Root . self::Md5_file . $platform . "json"; # 资源文件MD5列表
|
|
|
+ $lisJson = HttpUtil::makeRequest($url, array(), array(), array(), "get"); # 取CDN上版本列表
|
|
|
+ $fileList = JsonUtil::decode($lisJson);
|
|
|
+ $newVer = $fileList->Version; # 取出最新版本号
|
|
|
+
|
|
|
+ $ret = new UpdateRetInfo(); # 返回值
|
|
|
+ $ret->versionInfo = GameConfig::clientVersionHistory_getItem($newVer);
|
|
|
+ $ret->newVer = $newVer;
|
|
|
+ $ret->cdn = self::CDN_Root;
|
|
|
+
|
|
|
+ if (($newVer - $clientVer) > 10) { # 版本号差异大于10=>整包更
|
|
|
+ $ret->err = ErrCode::clientversionlow_err; # 返回错误码,强制更新1
|
|
|
+ $ret->msg = "客户端有更新-整包更";
|
|
|
+ } else if (($newVer - $clientVer) > 0) { # # 修订版本号不一致, 提示更新
|
|
|
+ $ret->err = ErrCode::clientnewversion_msg;
|
|
|
+ $ret->msg = "客户端有更新-差分更";
|
|
|
+ } elseif (self::HaltWithMsg) { # 显示消息并且退出游戏
|
|
|
+ $ret->msg = "sorry";
|
|
|
+ $ret->err = ErrCode::clientPrintMsg_Halt;
|
|
|
+ }
|
|
|
+
|
|
|
+ $ret->err = ErrCode::ok; # 平安无事
|
|
|
+ return $ret; # 返回
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 读取参数中的客户端版本
|
|
|
+ * @return int
|
|
|
+ */
|
|
|
+ static function GetClientVersion() {
|
|
|
+ $valueMap = HttpUtil::getQueryParas(); // array
|
|
|
+ var_dump($valueMap);
|
|
|
+ if (!is_array($valueMap)) {
|
|
|
+ exit("无参数");
|
|
|
+ }
|
|
|
+ $clientVer = "";
|
|
|
+ var_dump($clientVer);
|
|
|
+ if (isset($valueMap["clientVer"])) {
|
|
|
+ $clientVer = urldecode($valueMap['clientVer']);
|
|
|
+ } else {
|
|
|
+ exit("缺少参数 'clientVer'!");
|
|
|
+ }
|
|
|
+ return $clientVer;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 读取参数中的客户端平台(Android/IOS)
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ static function GetClientPlatform() {
|
|
|
+ $valueMap = HttpUtil::getQueryParas(); // array
|
|
|
+ if (!is_array($valueMap)) {
|
|
|
+ exit("无参数");
|
|
|
+ }
|
|
|
+ $plat = "";
|
|
|
+ if (isset($valueMap["plat"])) {
|
|
|
+ $plat = urldecode($valueMap['plat']);
|
|
|
+ } else {
|
|
|
+ exit("缺少参数 'plat'!");
|
|
|
+ }
|
|
|
+ return $plat;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+echo(JsonUtil::encode(CheckUpdate::Check())); # 打印json给客户端
|