public async Task <BaseApiResponse> Login([FromBody] LoginRequest request) { request.CheckNotNull(nameof(request)); if (!request.Mobile.IsMobileNumber()) {//是否手机号 return(new BaseApiResponse { Code = 400, Message = "手机号格式不正确" }); } var userinfo = _userQueryService.FindUser(request.Mobile); //验证用户 if (userinfo == null) { return(new BaseApiResponse { Code = 400, Message = "没找到该账号" }); } //验证账号 if (userinfo.IsLocked == UserLock.Locked) { return(new BaseApiResponse { Code = 400, Message = "账号锁定" }); } //验证密码 if (!PasswordHash.ValidatePassword(request.Password, userinfo.Password)) { return(new BaseApiResponse { Code = 400, Message = "登录密码错误" }); } try { //获取钱包信息 var walletinfo = _walletQueryService.Info(userinfo.WalletId); if (walletinfo == null) { return(new BaseApiResponse { Code = 400, Message = "获取钱包信息失败" }); } //购物车信息 var cart = _cartQueryService.Info(userinfo.CartId); if (cart == null) { return(new BaseApiResponse { Code = 400, Message = "获取购物车信息失败" }); } //店铺信息 var storeId = ""; var storeinfo = _storeQueryService.InfoByUserId(userinfo.Id); if (storeinfo != null) { storeId = storeinfo.Id.ToString(); } await SignInAsync(userinfo.Id.ToString(), userinfo.WalletId.ToString(), userinfo.Mobile, true); return(new LoginResponse { UserInfo = new UserInfo { Id = userinfo.Id, ParentId = userinfo.ParentId, NickName = userinfo.NickName, Portrait = userinfo.Portrait.ToOssStyleUrl(OssImageStyles.UserPortrait.ToDescription()), Mobile = userinfo.Mobile, Gender = userinfo.Gender, Region = userinfo.Region, Role = userinfo.Role.ToDescription(), StoreId = storeId, CartId = userinfo.CartId.ToString(), CartGoodsCount = cart.GoodsCount, IsLocked = userinfo.IsLocked, Token = userinfo.Id.ToString() }, WalletInfo = new WalletInfo { Id = walletinfo.Id, AccessCode = walletinfo.AccessCode, Cash = walletinfo.Cash, Benevolence = walletinfo.Benevolence, Earnings = walletinfo.Earnings, YesterdayEarnings = walletinfo.YesterdayEarnings, IsFreeze = walletinfo.IsFreeze } }); } catch (Exception e) { return(new BaseApiResponse { Code = 400, Message = e.Message }); } }