Ejemplo n.º 1
0
        /// <summary>
        /// 三方登录
        /// </summary>
        /// <param name="thirdKey">三方key</param>
        /// <param name="thirdProvider">微博?QQ?微信?</param>
        /// <param name="loginDevice">登录设备 IOS?Android?</param>
        /// <param name="clientVersion">客户端版本</param>
        /// <param name="registKey">极光推送Key</param>
        /// <returns></returns>
        public async Task <OperationResult> LoginByThird(string thirdKey, ThirdProvider thirdProvider, LoginDevice loginDevice, string clientVersion, string registKey = "")
        {
            var thirdUser = SysUserLoginRepo.Entities.SingleOrDefault(m => m.ProviderKey == thirdKey && m.ThridProvider == thirdProvider);

            if (thirdUser == null)
            {
                var     userName = "******" + DateTime.Now.ToString("yyyyMMddhhffff");
                SysUser sUser    = new SysUser()
                {
                    UserName = userName,
                    NickName = userName,
                    UserType = UserType.App用户,
                };
                UserInfoRepo.UnitOfWork.TransactionEnabled = true;
                await UserManager.CreateAsync(sUser);

                var userInfo = new UserInfo()
                {
                    SysUser   = sUser,
                    IsDeleted = false,
                    Sex       = Sex.限,
                };
                await UserInfoRepo.InsertAsync(userInfo);

                thirdUser = new SysUserLogin()
                {
                    ProviderKey   = thirdKey,
                    ThridProvider = thirdProvider,
                    User          = sUser,
                };
                await SysUserLoginRepo.InsertAsync(thirdUser);

                await UserInfoRepo.UnitOfWork.SaveChangesAsync();
            }

            var theUser = UserInfoRepo.Entities.SingleOrDefault(m => m.SysUser.Id == thirdUser.User.Id);

            if (theUser.RegistKey != registKey)
            {
                theUser.RegistKey = registKey;
                await UserInfoRepo.UpdateAsync(theUser);
            }

            //变更登录信息
            await ResetToken(theUser, loginDevice, clientVersion);

            var loginInfo = new UserTokenDto()
            {
                Id       = theUser.Id,
                NickName = theUser.SysUser.NickName,
                HeadPic  = theUser.HeadPic,
                Sex      = theUser.Sex,
                Token    = theUser.Token
            };

            return(CdkxResult.Success(loginInfo));
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> DelUserInfo(string phoneNo)
        {
            var sysUser = SysUserRepo.Entities.SingleOrDefault(m => m.UserName == phoneNo);

            var userInfo = UserInfoRepo.Entities.SingleOrDefault(m => m.SysUser.UserName == phoneNo);

            SysUserRepo.Delete(sysUser.Id);
            return(Json(CdkxResult.Success()));

            // UserContract.UserInfos.SingleOrDefault(m => m.SysUser.UserName == phoneNo);
            //var afterService = AfterServiceRepo.Entities.SingleOrDefault(m => m.User.UserName == phoneNo);
            //var sysUserLogin = SysUserLoginRepo.Entities.SingleOrDefault(m => m.User.UserName == phoneNo);
            //var sysUserRoleMap = SysUserRoleMapRepo.Entities.SingleOrDefault(m => m.User.UserName == phoneNo);
            //var sysUserClaim = SysUserClaimRepo.Entities.SingleOrDefault(m => m.User.UserName == phoneNo);
            //SysUserRepo.UnitOfWork.TransactionEnabled = true;


            //if (sysUserClaim != null)
            //{

            //}
            //if (sysUserClaim != null)
            //{
            //    SysUserClaimRepo.Delete(sysUserClaim.Id);
            //}
            //if (sysUserLogin != null)
            //{
            //    SysUserLoginRepo.Delete(sysUserLogin.Id);
            //}
            //if (afterService != null)
            //{
            //    AfterServiceRepo.Delete(afterService.Id);
            //}
            //if (userInfo != null)
            //{
            //    UserInfoRepo.Delete(userInfo.Id);
            //}
            //SysUserRepo.Delete(sysUser.Id);

            //return Json((SysUserRepo.UnitOfWork.SaveChanges() == 0 ? BodeResult.NoChanged(): BodeResult.Success()).ToApiResult());
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 验证注册码是否正确
        /// </summary>
        /// <param name="phoneNo"></param>
        /// <param name="validateCode"></param>
        /// <returns></returns>
        public async Task <OperationResult> ValidateCode(string phoneNo, CodeType codeType, string validateCode)
        {
            var severCode = GetValidateCode(phoneNo, codeType);

            if (severCode == null || severCode.Code != validateCode)
            {
                return(new OperationResult(OperationResultType.ValidError, "验证码错误", 0));
            }
            if (SysUserRepo.CheckExists(p => p.UserName == phoneNo))
            {
                if (codeType == CodeType.用户注册)
                {
                    return(new OperationResult(OperationResultType.ValidError, "账号已被使用", 0));
                }
            }
            else
            {
                if (codeType == CodeType.更换手机 || codeType == CodeType.找回密码 || codeType == CodeType.临时密码)
                {
                    return(CdkxResult.ValidError("帐号不存在."));
                }
            }
            return(CdkxResult.Success());
        }