令牌放入缓存

This commit is contained in:
FanLian
2023-08-04 14:21:55 +08:00
parent a47c779c3a
commit 32ccb2d54e
3 changed files with 27 additions and 17 deletions

View File

@@ -53,9 +53,9 @@ namespace Tnb.WarehouseMgr
}
}
protected Task<ClaimsPrincipal> GetUserIdentity()
protected Task<ClaimsPrincipal> GetUserIdentity(string aToken)
{
var claims = JWTEncryption.ReadJwtToken(UserManager.AsscessToken)?.Claims;
var claims = JWTEncryption.ReadJwtToken(aToken)?.Claims;
ClaimsIdentity toKen = new ClaimsIdentity();
foreach (Claim item in claims)
{

View File

@@ -16,6 +16,7 @@ using JNPF.Common.Core.Manager;
using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Enums;
using JNPF.Common.Extension;
using JNPF.Common.Manager;
using JNPF.Common.Security;
using JNPF.DataEncryption;
using JNPF.FriendlyException;
@@ -51,14 +52,23 @@ namespace Tnb.WarehouseMgr
private readonly IUserManager _userManager;
private readonly IBillRullService _billRullService;
private readonly IWmsCarryService _carryService;
private readonly ICacheManager _cacheManager;
private const string BizTypeId = "26169472620837";
public WmskittingOutService(ISqlSugarRepository<WmsKittingoutH> repository, IWareHouseService warehouseService, IUserManager userManager, IBillRullService billRullService, IWmsCarryService carryService)
public WmskittingOutService(
ISqlSugarRepository<WmsKittingoutH> repository,
IWareHouseService warehouseService,
IUserManager userManager,
IBillRullService billRullService,
IWmsCarryService carryService,
ICacheManager cacheManager
)
{
_db = repository.AsSugarClient();
_warehouseService = warehouseService;
_userManager = userManager;
_billRullService = billRullService;
_carryService = carryService;
_cacheManager = cacheManager;
}
/// <summary>
/// 齐套出库(新增状态)
@@ -67,8 +77,9 @@ namespace Tnb.WarehouseMgr
[HttpPost]
public async Task KittingOutByAdd(CancellationTokenSource? cts = default)
{
if (UserManager.AsscessToken.IsNullOrWhiteSpace()) return;
var curUser = await GetUserIdentity();
var aToken = await _cacheManager.GetAsync("AsscessToken");
if (aToken.IsNullOrWhiteSpace()) return;
var curUser = await GetUserIdentity(aToken);
var curDb = _db.CopyNew();
try
@@ -123,8 +134,8 @@ namespace Tnb.WarehouseMgr
setSortingH.id = SnowflakeIdHelper.NextId();
setSortingH.kittingout_id = ko.id;
setSortingH.seq = ko.seq;
setSortingH.org_id = ko.org_id;
setSortingH.create_id = ko.create_id;
setSortingH.org_id = curUser.FindFirst(ClaimConst.CLAINMORGID)?.Value;
setSortingH.create_id = curUser.FindFirst(ClaimConst.CLAINMUSERID)?.Value;
setSortingH.create_time = DateTime.Now;
await curDb.Insertable(setSortingH).ExecuteCommandAsync();
@@ -164,6 +175,10 @@ namespace Tnb.WarehouseMgr
[HttpPost]
public async Task KittingOutByIsToBeShipped(CancellationTokenSource? cts = default)
{
var aToken = await _cacheManager.GetAsync("AsscessToken");
if (aToken.IsNullOrWhiteSpace()) return;
var curUser = await GetUserIdentity(aToken);
var curDb = _db.CopyNew();
try
{
@@ -202,7 +217,7 @@ namespace Tnb.WarehouseMgr
WmsPretaskH preTask = new()
{
org_id = ko.org_id,
org_id = curUser.FindFirst(ClaimConst.CLAINMORGID)?.Value,
startlocation_id = sPoint?.location_id!,
startlocation_code = sPoint?.location_code!,
endlocation_id = ePoint?.location_id!,
@@ -223,7 +238,7 @@ namespace Tnb.WarehouseMgr
area_code = it.Key,
require_id = ko.id,
require_code = ko.bill_code,
create_id = ko.create_id,
create_id = curUser.FindFirst(ClaimConst.CLAINMUSERID)?.Value,
create_time = DateTime.Now,
source_id = ko.source_id,
source_code = ko.source_code
@@ -243,14 +258,6 @@ namespace Tnb.WarehouseMgr
}
}
}
else
{
throw new AppFriendlyException("无可用的载具", 500);
}
}
else
{
throw new AppFriendlyException("无可用的库位", 500);
}
}
}

View File

@@ -386,6 +386,7 @@ public class OAuthService : IDynamicApiController, ITransient
[HttpGet("Logout")]
public async Task Logout([FromQuery] string ticket)
{
await _cacheManager.DelAsync("AsscessToken");
var tenantId = _userManager.TenantId ?? "default";
var userId = _userManager.UserId ?? "admim";
@@ -607,6 +608,8 @@ public class OAuthService : IDynamicApiController, ITransient
//modify by ly on 20230804
UserManager.AsscessToken = accessToken;
await _cacheManager.SetAsync("AsscessToken", accessToken,TimeSpan.FromMinutes(30));
// 单点登录标识缓存
if (_oauthOptions.Enabled) _cacheManager.Set("OnlineTicket_" + input.online_ticket, options.ConfigId);