This commit is contained in:
2020-08-02 08:47:44 +08:00
parent 4435098171
commit f3ecc018ff
11 changed files with 232 additions and 89 deletions

View File

@@ -8,6 +8,8 @@ using System.Net;
public class ECLUpgradeBindingServer : EditorWindow
{
Hashtable content;
Hashtable servers;
Hashtable server;
Vector2 scrollPos = Vector2.zero;
@@ -15,6 +17,27 @@ public class ECLUpgradeBindingServer : EditorWindow
bool isSelectAll = false;
static int selectedServerIndex = 0;
HotUpgradeServerInfor selectedServer = null;
static bool uploadResult = false;
static bool isFinishUpload = false;
void OnUpdate()
{
if (isFinishUpload)
{
isFinishUpload = false;
//TODO:
Debug.Log("finished");
if (uploadResult)
{
// success
EditorUtility.DisplayDialog("Success", "Success !", "Okey");
}
else
{
EditorUtility.DisplayDialog("Fail", "Failed !", "Okey");
}
}
}
void OnGUI ()
{
@@ -150,12 +173,12 @@ public class ECLUpgradeBindingServer : EditorWindow
GUI.color = Color.white;
}
EditorGUILayout.TextField (MapEx.getString (server, "idx"), GUILayout.Width (80));
EditorGUILayout.TextField (MapEx.getString (server, "servername"), GUILayout.Width (100));
EditorGUILayout.TextField (MapEx.getString (server, "name"), GUILayout.Width (100));
GUI.color = Color.yellow;
#if UNITY_ANDROID
EditorGUILayout.TextField (MapEx.getString (server, "androidversion"), GUILayout.Width (250));
EditorGUILayout.TextField (MapEx.getString (server, "androidVer"), GUILayout.Width (250));
#elif UNITY_IPHONE || UNITY_IOS
EditorGUILayout.TextField (MapEx.getString (server, "iosversion"), GUILayout.Width (250));
EditorGUILayout.TextField (MapEx.getString (server, "iosVer"), GUILayout.Width (250));
#elif UNITY_STANDALONE_WIN
EditorGUILayout.TextField (MapEx.getString (server, "winversion"), GUILayout.Width (250));
#elif UNITY_STANDALONE_OSX
@@ -163,7 +186,7 @@ public class ECLUpgradeBindingServer : EditorWindow
#elif UNITY_WEBGL
EditorGUILayout.TextField (MapEx.getString (server, "webglversion"), GUILayout.Width (250));
#endif
EditorGUILayout.TextField (MapEx.getString (server, "pkgName"), GUILayout.Width (160));
EditorGUILayout.TextField (MapEx.getString (server, "pkgName"), GUILayout.Width (160));
EditorGUILayout.TextArea (MapEx.getString (server, "pkgRemark"), GUILayout.Width (250));
GUI.color = Color.white;
#if UNITY_ANDROID
@@ -208,11 +231,11 @@ public class ECLUpgradeBindingServer : EditorWindow
string verKey = "";
string vetType = "1";
if (platform.Equals ("ios")) {
verKey = "iosversion";
verKey = "iosVer";
vetType = "1";
} else if(platform.Equals("Android"))
{
verKey = "androidversion";
verKey = "androidVer";
vetType = "2";
}
else if (platform.Equals("win"))
@@ -268,12 +291,12 @@ public class ECLUpgradeBindingServer : EditorWindow
string verKey = "";
string vetType = "1";
if (platform.Equals ("ios")) {
verKey = "iosversion";
verKey = "iosVer";
vetType = "1";
}
else if (platform.Equals("Android"))
{
verKey = "androidversion";
verKey = "androidVer";
vetType = "2";
}
else if (platform.Equals("win"))
@@ -292,7 +315,7 @@ public class ECLUpgradeBindingServer : EditorWindow
server [verKey] = newMd5;
server ["pkgName"] = MapEx.getString (d, "name");
server ["pkgRemark"] = MapEx.getString (d, "remark");
saveData (MapEx.getString (server, "idx"), newMd5, vetType);
saveData (MapEx.getString (server, "id"), newMd5, verKey);
}
}
}
@@ -326,10 +349,9 @@ public class ECLUpgradeBindingServer : EditorWindow
return null;
}
public void saveData (string serverID, string version, string verType)
public void saveData (string serverID, string version, string verKey)
{
// string __httpBaseUrl = PStr.b ().a ("http://").a (Net.self.gateHost).a (":").a (Net.self.gatePort).e ();
// string url = PStr.b ().a (__httpBaseUrl).a ("/KokDirServer/UpdateVerServlet").e ();
/*
string url = selectedServer.setServerPkgMd5Url;
Dictionary<string,object> paras = new Dictionary<string, object> ();
paras ["serverid"] = serverID;
@@ -339,6 +361,62 @@ public class ECLUpgradeBindingServer : EditorWindow
if (response == null)
return;
response.Close ();
*/
Hashtable server = servers[serverID] as Hashtable;
server[verKey] = version;
string str = JSON.JsonEncode(content);
Debug.Log(str);
string path = Path.Combine(Application.dataPath, CLPathCfg.self.basePath, "serversCfg/servers.json");
File.WriteAllText(path, str);
ThreadEx.exec(new System.Threading.ParameterizedThreadStart(doUploadServers), path);
}
public void doUploadServers(object serversFilePath)
{
if (selectedServer == null)
{
Debug.LogError("Please select a server!");
return;
}
isFinishUpload = false;
if (selectedServer.useSFTP)
{
RenciSFTPHelper sftp = new RenciSFTPHelper(
selectedServer.host4UploadUpgradePackage,
selectedServer.port4UploadUpgradePackage,
selectedServer.ftpUser,
selectedServer.ftpPassword);
if (sftp.connect())
{
sftp.put(serversFilePath.ToString(), selectedServer.RemoteBaseDir, (Callback)onftpFinish);
sftp.disConnect();
sftp = null;
}
else
{
Utl.doCallback((Callback)onftpFinish, false);
}
}
else
{
float progress = 0;
FTP ftp = new FTP(
selectedServer.host4UploadUpgradePackage,
selectedServer.ftpUser,
selectedServer.ftpPassword);
bool ret = ftp.Upload(serversFilePath.ToString(),
selectedServer.RemoteBaseDir);
Utl.doCallback((Callback)onftpFinish, ret);
}
}
void onftpFinish(params object[] pars)
{
isFinishUpload = true;
bool ret = (bool)(pars[0]);
ECLUpgradeBindingServer.uploadResult = ret;
}
public void refreshData ()
@@ -350,13 +428,13 @@ public class ECLUpgradeBindingServer : EditorWindow
}
// string __httpBaseUrl = PStr.b ().a ("http://").a (Net.self.gateHost).a (":").a (Net.self.gatePort).e ();
// string url = PStr.b ().a (__httpBaseUrl).a ("/KokDirServer/ServerServlet").e ();
string url = selectedServer.getServerListUrl;
string url = Utl.urlAddTimes(selectedServer.getServerListUrl);
if (string.IsNullOrEmpty (url)) {
return;
}
Dictionary<string,object> paras = new Dictionary<string, object> ();
paras ["serverType"] = 1;
HttpWebResponse response = HttpEx.CreatePostHttpResponse (url, paras, 10000, System.Text.Encoding.UTF8);
//paras ["serverType"] = 1;
HttpWebResponse response = HttpEx.CreateGetHttpResponse(url, 10000);
if (response == null)
return;
string str = HttpEx.readString (response);
@@ -364,13 +442,31 @@ public class ECLUpgradeBindingServer : EditorWindow
// Debug.Log (url);
// string str = HttpEx.readString (url, null);
Debug.Log (str);
servers = JSON.DecodeMap (str);
content = JSON.DecodeMap(str);
servers = MapEx.getMap(content, CLCfgBase.self.appUniqueID);
Hashtable server = null;
Hashtable pkg = null;
if (servers != null) {
string verKey = "";
foreach (DictionaryEntry cell in servers) {
server = cell.Value as Hashtable;
pkg = getUpgradePkgByMd5 (MapEx.getString (server, "version"));
if (CLPathCfg.self.platform.Equals("ios"))
{
verKey = "iosVer";
}
else if (CLPathCfg.self.platform.Equals("Android"))
{
verKey = "androidVer";
}
else if (CLPathCfg.self.platform.Equals("win"))
{
verKey = "winversion";
}
else if (CLPathCfg.self.platform.Equals("osx"))
{
verKey = "osxversion";
}
pkg = getUpgradePkgByMd5 (MapEx.getString (server, verKey));
server ["pkgName"] = MapEx.getString (pkg, "name");
server ["pkgRemark"] = MapEx.getString (pkg, "remark");
}

View File

@@ -1668,7 +1668,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5e28cad2f718f443db7bef1ef8b01221, type: 3}
m_Name:
m_EditorClassIdentifier:
appUniqueID: 0
appUniqueID: 1000
isContBorrowSpriteTimes: 0
isNotEditorMode: 0
isEncodeLua: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5fd029f572e644f84a572d1a6a556ff1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,32 @@
{
"appid": "2020158",
"servers": {
"1": {
"id": "1",
"name": "正式服",
"host": "app.ttf-cti.com",
"port": 29004,
"isDev": 0,
"iosVer": "",
"androidVer": ""
},
"2": {
"id": "2",
"name": "测试服",
"host": "app.ttf-cti.com",
"port": 29004,
"isDev": 1,
"iosVer": "",
"androidVer": ""
},
"3": {
"id": "3",
"name": "本地测试",
"host": "192.168.1.11",
"port": 29000,
"isDev": 1,
"iosVer": "",
"androidVer": ""
}
}
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5c43957f94ee14dd7b78de24712d9c6c
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -13,23 +13,10 @@ local port = 29004
local baseUrl = joinStr("http://", host, ":", port, "/open_api/")
local socketUrl = joinStr("ws://", host, ":", port, "/tr_socket/websocket/")
NetProto.setSeverPublish = function()
host = "app.ttf-cti.com"
port = 29004
baseUrl = joinStr("http://", host, ":", port, "/open_api/")
socketUrl = joinStr("ws://", host, ":", port, "/tr_socket/websocket/")
end
NetProto.setSeverDev = function()
host = "app.ttf-cti.com"
port = 29000
baseUrl = joinStr("http://", host, ":", port, "/open_api/")
socketUrl = joinStr("ws://", host, ":", port, "/tr_socket/websocket/")
end
NetProto.setSeverLocal = function()
host = "192.168.1.11"
port = 29000
NetProto.setSever = function(_host, _port)
host = _host
port = _port
baseUrl = joinStr("http://", host, ":", port, "/open_api/")
socketUrl = joinStr("ws://", host, ":", port, "/tr_socket/websocket/")
end

View File

@@ -1,48 +1,36 @@
-- xx单元
do
local _cell = {}
local csSelf = nil;
local transform = nil;
local mData = nil;
local uiobjs = {}
local _cell = {}
local csSelf = nil
local transform = nil
local mData = nil
local uiobjs = {}
-- 初始化,只调用一次
function _cell.init (csObj)
csSelf = csObj;
transform = csSelf.transform;
--[[
-- 初始化,只调用一次
function _cell.init(csObj)
csSelf = csObj
transform = csSelf.transform
--[[
上的组件getChild(transform, "offset", "Progress BarHong"):GetComponent("UISlider");
--]]
uiobjs.Background = getCC(transform, "Background", "UISprite")
uiobjs.Label = getCC(transform, "Label", "UILabel")
uiobjs.LabelStat = getCC(transform, "LabelStat", "UILabel")
uiobjs.LabelNew = getCC(transform, "LabelNew", "UILabel")
end
-- 显示,
-- 注意c#侧不会在调用show时调用refresh
function _cell.show ( go, data )
mData = data;
uiobjs.Label.text = mData.name
local stateDesc = ""
local status = bio2number(mData.status)
if status == 2 then
stateDesc = joinStr("[00ffff]", LGet("StateCrowded"),"[-]")
elseif status == 3 then
stateDesc = LGet("StateMaintain")
stateDesc = joinStr("[ff0000]", LGet("StateMaintain"),"[-]")
else
stateDesc = joinStr("[00ff00]", LGet("StateNomal"),"[-]")
end
uiobjs.LabelStat.text = stateDesc
SetActive(uiobjs.LabelNew.gameObject, mData.isnew and true or false)
end
-- 取得数据
function _cell.getData ( )
return mData;
end
--------------------------------------------
return _cell;
uiobjs.Label = getCC(transform, "Label", "UILabel")
end
-- 显示,
-- 注意c#侧不会在调用show时调用refresh
function _cell.show(go, data)
mData = data
uiobjs.Label.text = mData.name
if mData.isDev == 1 then
uiobjs.Label.color = Color.red
else
uiobjs.Label.color = Color.white
end
end
-- 取得数据
function _cell.getData()
return mData
end
--------------------------------------------
return _cell

View File

@@ -190,8 +190,12 @@ function CLLPSplash.updateRes()
CLLPSplash.selectServer(
function(result)
server = result
Prefs.setCurrServer(json.encode(server))
CLLPSplash.checkHotUpgrade()
if server == nil then
CLUIUtl.showConfirm("未取得服务器,请联系管理员!", nil)
else
Prefs.setCurrServer(json.encode(server))
CLLPSplash.checkHotUpgrade()
end
end
)
end
@@ -201,23 +205,29 @@ end
CLLPSplash.selectServer = function(callback)
local onGetServers = function(content, orgs)
local content = json.decode(content)
local servers = content[CLCfgBase.self.appUniqueID] or {}
local userName = Prefs.getUserName()
DBUser.isWhiteUser(
userName,
function(iswhite)
if iswhite then
getPanelAsy("PanelSelectServer", onLoadedPanelTT, {servers = content.data, callback = callback})
getPanelAsy("PanelSelectServer", onLoadedPanelTT, {servers = servers, callback = callback})
else
--//TODO:取得正式环境的信息
Utl.doCallback(callback)
--取得正式环境的信息
local server
for key, v in pairs(servers) do
if v.isDev == 0 then
server = v
end
end
Utl.doCallback(callback, server)
end
end
)
end
local url = "" --//TODO:不要token验证传appid以便可以区分服务器
local url = joinStr(CLVerManager.self.baseUrl, "/servers.json")
WWWEx.get(
url,
Utl.urlAddTimes(url),
nil,
CLAssetType.text,
onGetServers,
@@ -408,7 +418,7 @@ function CLLPSplash.goNext()
if CLCfgBase.self.isDirectEntry then
CLCfgBase.self.isDirectEntry = false
end
CLPanelManager.getPanelAsy("PanelStart", onLoadedPanel, {user, server})
CLPanelManager.getPanelAsy("PanelStart", onLoadedPanel, {server = server})
end
-- 当按了返回键时关闭自己返值为true时关闭

View File

@@ -90,12 +90,11 @@ function CLLPStart.setLuasAtBegainning()
end
function CLLPStart.setData(pars)
user = pars[1]
selectedServer = pars[2]
selectedServer = pars.server
end
function CLLPStart.show()
--CLLPStart.createPanel()
NetProto.setSever(selectedServer.host, selectedServer.port)
end
-- 刷新页面

View File

@@ -166,6 +166,7 @@ GameObject:
- component: {fileID: 630664255065274416}
- component: {fileID: 2706568950277189029}
- component: {fileID: 5016178426459801864}
- component: {fileID: 5182567377838306484}
m_Layer: 5
m_Name: 00000
m_TagString: Untagged
@@ -288,6 +289,21 @@ MonoBehaviour:
mSpriteName: public_button
mFillCenter: 1
isGrayMode: 0
--- !u!114 &5182567377838306484
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6320771060119039048}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 575f113ee96624a30ab2ca1af1303112, type: 3}
m_Name:
m_EditorClassIdentifier:
isPause: 0
luaPath: trCRM/upgradeRes/priority/lua/ui/cell/CLLCellServer.lua
isNeedResetAtlase: 1
--- !u!1 &8005951734287196268
GameObject:
m_ObjectHideFlags: 0