diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs index 2a5612d2..a1f5809b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs @@ -9,6 +9,7 @@ using System.Text; using System.Threading.Channels; using System.Threading.Tasks; using Aspose.Cells.Drawing; +using JavaScriptEngineSwitcher.Core.Extensions; using JNPF; using JNPF.Common.Contracts; using JNPF.Common.Core.Manager; @@ -70,10 +71,11 @@ namespace Tnb.WarehouseMgr } } - protected Task GetUserIdentity(string? token = null) + protected Task GetUserIdentity(string? sToken = null) { - var at = token ?? UserManager.AsscessToken; - var claims = JWTEncryption.ReadJwtToken(UserManager.AsscessToken)?.Claims; + var at = sToken ?? UserManager.AsscessToken; + at = at.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase) ? at.TrimStart("Bearer ") : at; + var claims = JWTEncryption.ReadJwtToken(at)?.Claims; ClaimsIdentity toKen = new ClaimsIdentity(); foreach (Claim item in claims) { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs index a6ecec2e..b9906be2 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs @@ -92,17 +92,12 @@ namespace Tnb.WarehouseMgr if (!isMatch) throw new AppFriendlyException("库位与载具规格不匹配", 500); ePoint = await _db.Queryable().FirstAsync(it => it.location_id == endLocations[0].id); } - + var ui = await GetUserIdentity(_userManager.ToKen); if (_userManager.User == null) { - var ui = await GetUserIdentity(_userManager.ToKen); - var curUserPI = _userManager.GetType().GetProperty(nameof(_userManager.User), BindingFlags.Instance | BindingFlags.NonPublic); - if (curUserPI != null) - { - var curUid = ui.FindFirst(ClaimConst.CLAINMUSERID)?.Value; - var curUser = await _db.Queryable().SingleAsync(it => it.Id == curUid); - curUserPI.SetValue(_userManager,curUser, null); - } + + var curUid = ui.FindFirst(ClaimConst.CLAINMUSERID)?.Value; + _userManager.User = await _db.Queryable().SingleAsync(it => it.Id == curUid); } @@ -144,7 +139,7 @@ namespace Tnb.WarehouseMgr preTask.area_code = it.Key; preTask.require_id = input.data["ReturnIdentity"].ToString(); preTask.require_code = input.data[nameof(preTask.bill_code)]?.ToString()!; - preTask.create_id = _userManager.UserId; + preTask.create_id = _userManager.UserId ?? ui.FindFirst(ClaimConst.CLAINMUSERID)?.Value; preTask.create_time = DateTime.Now; return preTask; }).ToList(); @@ -168,7 +163,7 @@ namespace Tnb.WarehouseMgr handleH.carry_code = input.data[nameof(WmsHandleH.carry_code)]?.ToString()!; handleH.require_id = input.data["ReturnIdentity"].ToString(); handleH.require_code = input.data[nameof(WmsHandleH.bill_code)]?.ToString()!; - handleH.create_id = _userManager.UserId; + handleH.create_id = _userManager.UserId ?? ui.FindFirst(ClaimConst.CLAINMUSERID)?.Value; handleH.create_time = DateTime.Now; preTaskUpInput.PreTaskRecord = handleH; //根据载具移入Id,回更单据状态 diff --git a/common/Tnb.Common.Core/Manager/User/IUserManager.cs b/common/Tnb.Common.Core/Manager/User/IUserManager.cs index c1804ac7..fca33168 100644 --- a/common/Tnb.Common.Core/Manager/User/IUserManager.cs +++ b/common/Tnb.Common.Core/Manager/User/IUserManager.cs @@ -82,7 +82,7 @@ public interface IUserManager /// /// 用户信息. /// - UserEntity User { get; } + UserEntity User { get; set; } /// /// 获取用户登录信息. diff --git a/common/Tnb.Common.Core/Manager/User/UserManager.cs b/common/Tnb.Common.Core/Manager/User/UserManager.cs index bc1e0a60..226c147a 100644 --- a/common/Tnb.Common.Core/Manager/User/UserManager.cs +++ b/common/Tnb.Common.Core/Manager/User/UserManager.cs @@ -70,12 +70,20 @@ public partial class UserManager : IUserManager, IScoped } } + + private UserEntity _curUser; /// /// 用户信息. /// public UserEntity User { - get => _repository.GetSingle(u => u.Id == UserId); + get + { + if(_curUser == null) + _curUser= _repository.GetSingle(u => u.Id == UserId); + return _curUser; + } + set => _curUser = value; } ///