优化接口
This commit is contained in:
@@ -23,6 +23,8 @@ using WMS.Web.Domain.Options;
|
|||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using WMS.Web.Domain.Values;
|
using WMS.Web.Domain.Values;
|
||||||
using WMS.Web.Core.Dto.Erp;
|
using WMS.Web.Core.Dto.Erp;
|
||||||
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
namespace WMS.Web.Api.Controllers
|
namespace WMS.Web.Api.Controllers
|
||||||
{
|
{
|
||||||
@@ -48,12 +50,14 @@ namespace WMS.Web.Api.Controllers
|
|||||||
private readonly AppOptions _options;
|
private readonly AppOptions _options;
|
||||||
private readonly ISendMessageService _sendMessageService;
|
private readonly ISendMessageService _sendMessageService;
|
||||||
private readonly IMaterialService _materialService;
|
private readonly IMaterialService _materialService;
|
||||||
|
private readonly IMemoryCache _memoryCache;
|
||||||
public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories,
|
public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories,
|
||||||
IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories,
|
IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories, IMemoryCache memoryCache,
|
||||||
IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions<AppOptions> options, ILoginService loginService, ISendMessageService sendMessageService,
|
IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions<AppOptions> options, ILoginService loginService, ISendMessageService sendMessageService,
|
||||||
ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories,
|
ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories,
|
||||||
IWebHostEnvironment env, IMaterialService materialService)
|
IWebHostEnvironment env, IMaterialService materialService)
|
||||||
{
|
{
|
||||||
|
_memoryCache = memoryCache;
|
||||||
_materialService = materialService;
|
_materialService = materialService;
|
||||||
_loginService = loginService;
|
_loginService = loginService;
|
||||||
_sendMessageService = sendMessageService;
|
_sendMessageService = sendMessageService;
|
||||||
@@ -354,5 +358,21 @@ namespace WMS.Web.Api.Controllers
|
|||||||
{
|
{
|
||||||
return await _materialService.SyncNewMaterials();
|
return await _materialService.SyncNewMaterials();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清空缓存
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
[Route("ClearCache")]
|
||||||
|
public Result ClearCache()
|
||||||
|
{
|
||||||
|
//通过反射调用清空缓存方法
|
||||||
|
PropertyInfo prop = _memoryCache.GetType().GetProperty("EntriesCollection", BindingFlags.Instance | BindingFlags.GetProperty | BindingFlags.NonPublic | BindingFlags.Public);
|
||||||
|
object innerCache = prop.GetValue(_memoryCache);
|
||||||
|
MethodInfo clearMethod = innerCache.GetType().GetMethod("Clear", BindingFlags.Instance | BindingFlags.Public);
|
||||||
|
clearMethod.Invoke(innerCache, null);
|
||||||
|
return Result.ReSuccess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -792,5 +792,11 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WMS.Web.Api.Controllers.TestController.ClearCache">
|
||||||
|
<summary>
|
||||||
|
清空缓存
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
</members>
|
</members>
|
||||||
</doc>
|
</doc>
|
||||||
|
|||||||
@@ -995,7 +995,7 @@
|
|||||||
明细
|
明细
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Entitys.InStockTask.Create(WMS.Web.Domain.Values.InstockType,System.String,System.DateTime,System.Int32)">
|
<member name="M:WMS.Web.Domain.Entitys.InStockTask.Create(WMS.Web.Domain.Values.InstockType,System.String,System.DateTime,System.Int32,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
创建
|
创建
|
||||||
</summary>
|
</summary>
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
/// <param name="type"></param>
|
/// <param name="type"></param>
|
||||||
/// <param name="sourceBillNo"></param>
|
/// <param name="sourceBillNo"></param>
|
||||||
/// <param name="createTime"></param>
|
/// <param name="createTime"></param>
|
||||||
public void Create(InstockType type,string sourceBillNo, DateTime createTime,int supplierId)
|
public void Create(InstockType type,string sourceBillNo, DateTime createTime,int supplierId,string orgCode)
|
||||||
{
|
{
|
||||||
if (type == InstockType.Purchase)
|
if (type == InstockType.Purchase)
|
||||||
this.Status = InstockStatus.Wait;
|
this.Status = InstockStatus.Wait;
|
||||||
@@ -104,6 +104,7 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
this.Type = type;
|
this.Type = type;
|
||||||
this.SourceBillNo = sourceBillNo;
|
this.SourceBillNo = sourceBillNo;
|
||||||
this.SupplierId = supplierId;
|
this.SupplierId = supplierId;
|
||||||
|
this.OrgCode = orgCode;
|
||||||
this.CreateTime = createTime;
|
this.CreateTime = createTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -457,7 +457,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
{
|
{
|
||||||
var current_order = erp_list.Where(x => x.BillNo == item).FirstOrDefault();
|
var current_order = erp_list.Where(x => x.BillNo == item).FirstOrDefault();
|
||||||
var dto = new InStockTask();
|
var dto = new InStockTask();
|
||||||
dto.Create((InstockType)current_order.Type, current_order.BillNo, current_order.CreateTime, current_order.SupplierId);
|
dto.Create((InstockType)current_order.Type, current_order.BillNo, current_order.CreateTime, current_order.SupplierId, current_order.OrgCode);
|
||||||
|
|
||||||
//找到当前对应来源单据编号的集合数据
|
//找到当前对应来源单据编号的集合数据
|
||||||
var current_erp_details = erp_list.Where(x => x.BillNo == item).ToList();
|
var current_erp_details = erp_list.Where(x => x.BillNo == item).ToList();
|
||||||
@@ -609,7 +609,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
{
|
{
|
||||||
var current_order = erp_list.Where(x => x.BillNo == item).FirstOrDefault();
|
var current_order = erp_list.Where(x => x.BillNo == item).FirstOrDefault();
|
||||||
var dto = new InStockTask();
|
var dto = new InStockTask();
|
||||||
dto.Create((InstockType)current_order.Type, current_order.BillNo, current_order.CreateTime, current_order.SupplierId);
|
dto.Create((InstockType)current_order.Type, current_order.BillNo, current_order.CreateTime, current_order.SupplierId, current_order.OrgCode);
|
||||||
|
|
||||||
//找到当前对应来源单据编号的集合数据
|
//找到当前对应来源单据编号的集合数据
|
||||||
var current_erp_details = erp_list.Where(x => x.BillNo == item).ToList();
|
var current_erp_details = erp_list.Where(x => x.BillNo == item).ToList();
|
||||||
|
|||||||
@@ -115,25 +115,26 @@ namespace WMS.Web.Repositories.DependencyInjection
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//_logger.LogInformation("RefreshToken:我在刷新登录--过期时间:" + logininfo.TokenInfo.Expired.ToString());
|
DateTime now = DateTime.Now;
|
||||||
//2.判断缓存的token 过期时间
|
TimeSpan jiange_timespan = TimeSpan.Zero;
|
||||||
if (!string.IsNullOrEmpty(logininfo.TokenInfo.Token) && logininfo.TokenInfo.Expired.AddMinutes(-10) <= DateTime.Now)
|
if (logininfo.TokenInfo.Expired < now)
|
||||||
{
|
{
|
||||||
|
jiange_timespan = now - logininfo.TokenInfo.Expired;
|
||||||
//TimeSpan _refreshThreshold = TimeSpan.FromMinutes(10);
|
|
||||||
//var ttt = logininfo.TokenInfo.Expired - DateTime.Now - _refreshThreshold;
|
|
||||||
//_logger.LogInformation("用户:" + logininfo.UserInfo.Nickname + ";shijianduibi:" + ttt);
|
|
||||||
|
|
||||||
//_logger.LogInformation("用户:" + logininfo.UserInfo.Nickname + ";过期时间:" + logininfo.TokenInfo.Expired);
|
|
||||||
var refreshtokeninfo = RefreshToken(logininfo.TokenInfo.Token, logininfo.TokenInfo.RefreshToken, loginService);
|
|
||||||
var info = _redisClientService.GetStringKey<LoginInDto>($"wms_login_{token}");
|
var info = _redisClientService.GetStringKey<LoginInDto>($"wms_login_{token}");
|
||||||
//_logger.LogInformation("RefreshToken:我在刷新登录--完成:" + info.UserInfo.Nickname);
|
//超过16个小时的,就要移除缓存
|
||||||
//刷新token后不能删除_redis用户缓存
|
if (info != null && jiange_timespan.TotalHours>=16)
|
||||||
//if (!refreshtokeninfo)
|
{
|
||||||
//{
|
_redisClientService.RemoveStringKey($"wms_login_{token}");
|
||||||
// RemoveRedisLoginInfo(token);
|
}
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//刷新token:距离过期时间还有10分钟就进行刷新token
|
||||||
|
jiange_timespan = logininfo.TokenInfo.Expired - now;
|
||||||
|
if (!string.IsNullOrEmpty(logininfo.TokenInfo.Token) && jiange_timespan.TotalMinutes<=10)
|
||||||
|
this.RefreshToken(logininfo.TokenInfo.Token, logininfo.TokenInfo.RefreshToken, loginService);
|
||||||
|
}
|
||||||
|
|
||||||
//3.验证检查是否有黑名单的token缓存
|
//3.验证检查是否有黑名单的token缓存
|
||||||
string blacktoken = _redisClientService.GetStringKey($"wms_black_token_{logininfo.UserInfo.UcId}");
|
string blacktoken = _redisClientService.GetStringKey($"wms_black_token_{logininfo.UserInfo.UcId}");
|
||||||
if (string.IsNullOrEmpty(blacktoken))
|
if (string.IsNullOrEmpty(blacktoken))
|
||||||
|
|||||||
Reference in New Issue
Block a user