public static async Task<bool> SaveUserInfo(ComplementParameter complementParameter, pre_register preRegister) { bool saveresult = false; bool createresult = false; UserInfoRedis userinfoRedis = await GetUserInfoRedisByOpenid(complementParameter.openID); UserInfo userinfo = null; using (UserRepository userRepository = new UserRepository()) { userinfo = await userRepository.GetUserInfoByOpenid(complementParameter.openID); if (userinfo == null) { userinfo = new UserInfo() { AccountEmail = preRegister.accountemail, Password = preRegister.password, CreateTime = preRegister.createtime, Name = preRegister.name, Gender = userinfoRedis.Sex, Phone = preRegister.accountemail.Substring(0, 11), IsBusiness = preRegister.validate }; createresult = true; } else { userinfo.Name = complementParameter.name; userinfo.Gender = complementParameter.Gender; } await CheckUserInfoPhoto(userinfo, userinfoRedis); userinfo.Unit = complementParameter.university; userinfo.Faculty = complementParameter.faculty; userinfo.ResearchFieldId = complementParameter.researchFieldId; userinfo.Degree = complementParameter.degree; if (userinfo.IsBusiness==2) userinfo.Enrollment = complementParameter.enrollment; if (userinfo.IsBusiness == 0 && !string.IsNullOrEmpty(complementParameter.position)) userinfo.Position = complementParameter.position; userinfo.Province = complementParameter.province; userinfo.City = complementParameter.city; userinfo.Birthday = complementParameter.birthday; userinfo.HometownProvince = complementParameter.hometownProvince; userinfo.HometownCity = complementParameter.hometownCity; userinfo.Position = complementParameter.position; saveresult = await userRepository.SaveUserInfo(userinfo); if (saveresult & createresult) await userRepository.SaveUserOpenid(userinfo.uuid, userinfoRedis.Openid, userinfoRedis.Unionid); } return saveresult; }
public async Task<HttpResponseMessage> PostUserLoginAccountPassword([FromBody]LoginParameter userlogin) { string account = userlogin.account; string password = userlogin.password; string openid = userlogin.openID; if (string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(openid)) return WebApiHelper.HttpRMtoJson(userlogin.jsonpCallback, null, HttpStatusCode.OK, customStatus.InvalidArguments); //[email protected] if (!account.Contains("@")) account += "@phone.51science.cn"; password = Encryption.EncryptMD5(userlogin.password); using (UserRepository userRepository = new UserRepository()) { userinfo = await userRepository.GetUserInfoByAccountPassword(account, password); if (userinfo != null) { if (userinfo.Status == 1) return WebApiHelper.HttpRMtoJson(userlogin.jsonpCallback, userinfo, HttpStatusCode.OK, customStatus.Forbidden); else { if (userinfo.IsLogin == 0) { userinfo.IsLogin = 1; userinfo.LastLogin = DateTime.MinValue; } var userinfoRedis = await UserInfoControllerHelper.GetUserInfoRedisByOpenid(openid); if (await UserInfoControllerHelper.CheckUserInfoPhoto(userinfo, userinfoRedis)) { //photo已更新为微信头像 } int clIsBusiness = userinfo.IsBusiness ?? 0; //性别取自微信 int clGender = string.IsNullOrEmpty(userinfoRedis.Sex) ? 0 : int.Parse(userinfoRedis.Sex); long clResearchFieldID = userinfo.ResearchFieldId ?? 0; if (await ComplexLocationManager.UpdateComplexLocationAsync(openid, clIsBusiness, clGender, clResearchFieldID)) { //位置索引添加供筛选字段 try { BKLogger.LogInfoAsync(typeof(LoginController), "记录位置信息:" + userinfo.Name + userinfo.uuid.ToString() + userinfo.IsBusiness + userinfo.Gender + userinfo.ResearchFieldId + " | " + clIsBusiness + clGender + clResearchFieldID); } catch (Exception ex) { } } if (await userRepository.SaveUserOpenid(userinfo.uuid, openid, userinfoRedis.Unionid)) { userinfo.Gender = userinfoRedis.Sex; return WebApiHelper.HttpRMtoJson(userlogin.jsonpCallback, userinfo, HttpStatusCode.OK, customStatus.Success); } else return WebApiHelper.HttpRMtoJson(userlogin.jsonpCallback, userinfo, HttpStatusCode.OK, customStatus.Fail); } } else { userinfo = await userRepository.GetUserInfoByAccount(account); if (userinfo != null) return WebApiHelper.HttpRMtoJson(userlogin.jsonpCallback, null, HttpStatusCode.OK, customStatus.WrongPassowrd); else return WebApiHelper.HttpRMtoJson(userlogin.jsonpCallback, null, HttpStatusCode.OK, customStatus.NotFound); } } }