using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Text; using BarCode.Web.Core.Dto.Login; using BarCode.Web.Domain.Infrastructure; using BarCode.Web.Domain.Services.Public; namespace BarCode.Web.Repositories { /// /// 登录仓储 /// public class LoginRepositories:ILoginRepositories { public int CompanyId { get; set; } = 0; public int StaffId { get; set; } = 0; public LoginInDto loginInfo { get; set; } private readonly RedisClientService _redisClientService; public LoginRepositories(ILogger logger, IHttpContextAccessor httpContextAccessor, RedisClientService redisClientService) { try { string authorization = httpContextAccessor?.HttpContext?.Request?.Headers["Authorization"] ?? ""; if (string.IsNullOrEmpty(authorization)) return; string token = string.Empty; if (authorization.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase)) token = authorization.Substring("Bearer ".Length).Trim(); if (string.IsNullOrEmpty(token)) { this.CompanyId = 0; this.StaffId = 0; return; } _redisClientService = redisClientService; var logininfo = _redisClientService.GetStringKey($"wms_login_{token}"); this.loginInfo = loginInfo; this.CompanyId = logininfo == null ? 0 : logininfo.UserInfo.CompanyId; this.StaffId = logininfo == null ? 0 : logininfo.UserInfo.StaffId; } catch (Exception) { } } } }