using Assets.Scripts.Apis.Models; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Assets.Scripts.Apis { public class UserApi : ApiBase { public async Task> Login(string phone, string pwd, string countryCode) { var param = new { Phone = phone, Pwd = pwd, countryCode }; JsonResult ret = null; try { ret = await PostAsync>("NoAuth/v1/Login", param); } catch (Exception ex) { return new JsonResult { result = false, errMsg = ex.Message }; } //ApiBase.cookies = response.Cookies; //var ret = response.DynamicBody; if (ret.result) { //var str = Newtonsoft.Json.JsonConvert.SerializeObject(ret.data); var user = new UserResultModel(); user.Id = ret.data.Id; user.Nickname = ret.data.Nickname; user.Phone = ((string)ret.data.Phone).Trim(); user.Country = ret.data.Country; user.Province = ret.data.Province; user.City = ret.data.City; user.Area = ret.data.Area; user.Pass = ret.data.Pass; user.Sex = ret.data.Sex; user.Unit = ret.data.Unit; user.Weight = ret.data.Weight; user.FTP = ret.data.FTP; user.WheelDiameter = ret.data.WheelDiameter; user.Email = user.Email ?? ""; user.Pass = user.Pass ?? ""; user.OtherPlatforms = user.OtherPlatforms ?? ""; user.WxHeadImg = ret.data.WxHeadImg ?? ""; //user.LoginTime = ret.data.LoginTime; user.LastLoginTime = ret.data.LastLoginTime; user.AutoPause = ret.data.AutoPause; user.MaxHeartRate = ret.data.MaxHeartRate; user.CanEditRoom = ret.data.CanEditRoom; user.BicycleWeight = ret.data.BicycleWeight; user.Contact = ret.data.Contact; user.ContactPhone = ret.data.ContactPhone; user.ContactAddress = ret.data.ContactAddress; user.Sensitivity = ret.data.Sensitivity; if (ret.data.ConnectedToStrava != null) { user.ConnectedToStrava = ret.data.ConnectedToStrava; } user.Birthday = ret.data.Birthday; //todo: check local database, insert new user //PubCommData.CurrentUser = user; user.cookie = cookies[0].Value; return new JsonResult() { result = true, data = user }; } else { return new JsonResult() { result = false, data = null, errMsg = ret.errMsg }; } } /// /// 获取个人中心的统计信息 /// /// public JsonResult GetSummary() { var result = Get>("User/GetSummary"); return result; } public DateTime GetNow() { var result = Get("NoAuth/GetNow"); return DateTime.Parse(result); } public async Task> Register(string Phone, string Pwd, string Captcha) { var param = new { Phone, Pwd, Captcha }; JsonResult ret = null; try { ret = await PostAsync>("NoAuth/v1/Register", param); ret.data.cookie = cookies[0].Value; } catch (Exception ex) { return new JsonResult { result = false, errMsg = ex.Message }; } return ret; } public async Task> GetCaptcha(string phone) { return await PostAsync>("NoAuth/v1/GetCaptcha",new {phone }); } public async Task> UpdateUserInfo(UserResultModel user) { return await PostAsync>("User/UpdateUserSetting", user); } public JsonResult GetUserInfo() { return Get>("User/GetCurrentUser"); } public async Task> QuickLogin() { var r = await PostAsync>("NoAuth/QuickLogin", null); r.data.cookie = cookies[0].Value; return r; } public async Task> OnWebWxLoginCheckUnionId(string unionId, string openId) { var r = await PostAsync>("NoAuth/OnWebWxLoginCheckUnionId", new { unionId, openId }); if (r.result) { var data = JObject.FromObject(r.data); if (data.Value("success") != null && data.Value("success") == "False") { return r; } else { var user = data.ToObject(); user.cookie = cookies[0].Value; r.data = user; } } return r; } public async Task> OnWebWxLogin(string Phone, string Captcha , string UnionId, string WxWebOpenId, string WxHeadImg, string NickName, int? Sex, string Password) { var r = await PostAsync>("NoAuth/OnWebWxLogin", new { Phone, Captcha, UnionId, WxWebOpenId, WxHeadImg, NickName, Sex, Password }); r.data.cookie = cookies[0].Value; return r; } public async Task> Update(UserResultModel currUser, string filePath = "") { //return await PostAsync>("User/UpdateUserSetting", new { // UID = currUser.Id, // Sex = currUser.Sex, // currUser.Unit, // currUser.Weight, // currUser.FTP, // currUser.WheelDiameter, // currUser.Nickname, // currUser.Country, // currUser.Province, // currUser.City, // currUser.Area, // currUser.AutoPause, // currUser.MaxHeartRate, // currUser.BicycleWeight, // currUser.Contact, // currUser.ContactPhone, // currUser.ContactAddress, // currUser.Sensitivity, // imgData = imgData //}); var files = new List(); if (!string.IsNullOrWhiteSpace(filePath)) { files.Add(filePath); } var res = Upload("v1/User/UpdateUserSetting", new { UID = currUser.Id, Sex = currUser.Sex, currUser.Unit, currUser.Height, currUser.Weight, currUser.FTP, currUser.WheelDiameter, currUser.Nickname, currUser.Country, currUser.Province, currUser.City, currUser.Area, currUser.AutoPause, currUser.MaxHeartRate, currUser.BicycleWeight, currUser.Contact, currUser.ContactPhone, currUser.ContactAddress, currUser.Sensitivity, currUser.Birthday //imgData = imgData }, files); return Newtonsoft.Json.JsonConvert.DeserializeObject>(res); } public async Task> GetNotify() { return await GetAsync>("/Home/GetNotify"); } } }