This commit is contained in:
tongfei
2024-04-18 14:33:25 +08:00
parent a79893ffb5
commit a23321e1d2
6 changed files with 53 additions and 14 deletions

View File

@@ -52,12 +52,14 @@ namespace WMS.Web.Api.Controllers
private readonly ISendMessageService _sendMessageService;
private readonly IMaterialService _materialService;
private readonly IMemoryCache _memoryCache;
public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories,
private readonly IRedisConcurrentProcessService _redisConcurrentProcessService;
public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories, IRedisConcurrentProcessService redisConcurrentProcessService,
IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories, IMemoryCache memoryCache,
IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions<AppOptions> options, ILoginService loginService, ISendMessageService sendMessageService,
ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories,
IWebHostEnvironment env, IMaterialService materialService, IOutStockRepositories outStockRepositories)
{
_redisConcurrentProcessService = redisConcurrentProcessService;
_memoryCache = memoryCache;
_materialService = materialService;
_loginService = loginService;
@@ -395,5 +397,24 @@ namespace WMS.Web.Api.Controllers
clearMethod.Invoke(innerCache, null);
return Result.ReSuccess();
}
/// <summary>
///
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("binfa")]
public Result<bool> BinFa()
{
var cacheKey = "instock_shelf_" + 1;
var IscanAccess = _redisConcurrentProcessService.GetRedisKeyValue(cacheKey);
if (IscanAccess)
return Result<bool>.ReFailure(ResultCodes.Concurrent_Instock);
Console.WriteLine("process..."+ IscanAccess);
_redisConcurrentProcessService.UpdateAccessStatus(cacheKey, true);
var tt2 = _redisConcurrentProcessService.GetRedisKeyValue(cacheKey);
Console.WriteLine("redis1:" + tt2);
return Result<bool>.ReSuccess(tt2);
}
}
}

View File

@@ -824,5 +824,11 @@
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Api.Controllers.TestController.BinFa">
<summary>
</summary>
<returns></returns>
</member>
</members>
</doc>

View File

@@ -8,6 +8,8 @@ namespace WMS.Web.Domain.IService.Public
{
bool CanAccessMethod(string cacheKey);
bool GetRedisKeyValue(string cacheKey);
void UpdateAccessStatus(string cacheKey, bool canAccess);
}
}

View File

@@ -17,13 +17,21 @@ namespace WMS.Web.Domain.Services.Public
public bool CanAccessMethod(string cacheKey)
{
// 使用 Redis 来存储并发控制标记
return _redisClientService.SetStringKey(cacheKey, "true", TimeSpan.FromMinutes(1));
return _redisClientService.SetStringKey<bool>(cacheKey, true, TimeSpan.FromMinutes(1));
}
public bool GetRedisKeyValue(string cacheKey)
{
// 使用 Redis 来存储并发控制标记
var isSuccess= _redisClientService.GetStringKey<bool>(cacheKey);
return isSuccess;
}
public void UpdateAccessStatus(string cacheKey, bool canAccess)
{
// 更新 Redis 缓存项的值
_redisClientService.SetStringKey(cacheKey, canAccess.ToString(), TimeSpan.FromMinutes(1));
_redisClientService.SetStringKey<bool>(cacheKey, canAccess, TimeSpan.FromMinutes(1));
}
}
}

View File

@@ -24,6 +24,8 @@ namespace WMS.Web.Domain.Values
public static ValueTuple<int, string> NoDateError = (40005, "数据不存在");
public static ValueTuple<int, string> SourceBillNoDateError = (40005, "来源单不存在,请核对后再试");
public static ValueTuple<int, string> Concurrent_Instock = (80005, "该任务单正在处理中");
/// <summary>
/// 没有菜单权限,无法登录
/// </summary>