hengyang_client/lua_probject/base_project/Game/Controller/LoginController.lua

166 lines
5.0 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

LoginController = {}
local M = {}
--- Create a new LoginController
function LoginController.new()
setmetatable(M, { __index = IController })
local self = setmetatable({}, { __index = M })
self.baseType = LoginController
self.class = "Login"
return self
end
local _LocalConfigAllGame = {
-- 10, 33,
-- 90,
66, 86, 87, 88, 89
}
local FilterGame = function(games)
pt(games)
local tempGames = {}
for k, v in pairs(games) do
v.bundle = v.bundle:gsub("\r\n", "")
if IsHasDictionary(v.game_id, _LocalConfigAllGame) then
table.insert(tempGames, v)
end
end
return tempGames
end
local function __Login(cmd, _data, callBack)
local _client = ControllerManager.WebClient
_client:send(cmd, _data, function(res)
printlog("1111111111111111222222222222")
-- pt(cmd)
-- pt(res)
if (res.ReturnCode == 0) then
local data = res.Data
local account = data["account"]
local user = DataManager.SelfUser
user.acc = account.acc
user.account_id = account["id"]
user.diamo = account["diamo"]
user.nick_name = account["nick"]
user.sex = account["sex"]
user.head_url = account["portrait"]
user.room_id = account["roomid"]
user.group_id = account["groupId"]
user.type = account["type"] --为1的时候是代理为0的时候是普通玩家
user.agent = account["mng"]
user.real_info = account.real_info
user.phone = account.phone
user.address = account.address
user.games = FilterGame(data.games)
if Application.platform == RuntimePlatform.WindowsPlayer or Application.platform == RuntimePlatform.WindowsEditor then
--GameApplication.Instance.printLog = true
else
--GameApplication.Instance.printLog = user.type == 2
end
_client:setSession(data["session_id"] .. "," .. data["token"])
-- print("11111111111111111111111111111111")
pt(data)
ControllerManager.GroupClient = NetClient.new(data.groupWeb, "web_group", ConnectionProtocol.Web)
ControllerManager.GroupClient:setSession((data["session_id"] .. "," .. data["token"]))
end
if (callBack ~= nil) then
callBack(res)
end
end)
end
--手机登录
function M:GetPhoneCode(phone, callback)
--不走登录逻辑
local _client = ControllerManager.WebClient
local _data = {}
_data["phone"] = phone
_client:send(Protocol.WEB_GET_Phone_Code, _data, function(res)
if (callback ~= nil) then
callback(res)
end
end)
end
function M:PhoneLogin(phone, code, callback)
local _data = {}
_data["phone"] = phone
_data["code"] = code
__Login(Protocol.WEB_LOGIN_Phone, _data, callback)
end
--手机密码登录
function M:PhonePasswordLogin(phone, password, callback)
local _data = {}
_data["phone"] = phone
_data["password"] = password
__Login(Protocol.WEB_PHONE_PASSWORD_LOGIN, _data, callback)
end
function M:IdPasswordLogin(uid, password, callback)
local _data = {}
_data["id"] = tonumber(uid)
_data["password"] = password
__Login(Protocol.WEB_ID_PASSWORD_LOGIN, _data, callback)
end
function M:Login(callback)
local user = DataManager.SelfUser
local _data = {}
_data["acc"] = user.acc
_data["nick"] = user.nick_name
_data["sex"] = user.sex
_data["portrait"] = user.head_url
local sys_type = 2
if GetPlatform() == "Android" then
sys_type = 0
elseif GetPlatform() == "iOS" then
sys_type = 1
end
_data["sys_type"] = sys_type
__Login(Protocol.WEB_USER_LOGIN, _data, callback)
end
function M:QuickLogin(session_id, callback)
local _data = {}
local _client = ControllerManager.WebClient
_client:setSession(session_id)
-- ControllerManager.GroupClient:setSession(session_id)
__Login(Protocol.WEB_QUICK_LOGIN, _data, callback)
end
function M.OnEnter(self)
---- print("login controller enter")
end
function M.OnExit(self)
---- print("login controller exit")
end
--字符串类json格式转化为表
function stringToTAble(data)
local returnTable = {}
for key, value in string.gmatch(data, "(%w+)=([^,]*)") do
value = value:gsub("^%s*(.-)%s*$", "%1") -- 去除前后空格
if value == "" then
returnTable[key] = nil -- 空值转换为 nil
elseif tonumber(value) then
returnTable[key] = tonumber(value) -- 数值转换
elseif value:match("^https?://") then
returnTable[key] = value -- URL 直接保留
else
returnTable[key] = value:gsub("\\u(%x%x%x%x)", function(hex)
return utf8.char(tonumber(hex, 16)) -- 处理 Unicode\u8dc3 -> 跃)
end)
end
end
return returnTable
end