Пример #1
0
        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;
        }
Пример #2
0
        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);
                }
            }
        }