diff --git a/IRaCIS.Core.Application/Helper/CacheHelper.cs b/IRaCIS.Core.Application/Helper/CacheHelper.cs
index 87248465a..f2135ea9b 100644
--- a/IRaCIS.Core.Application/Helper/CacheHelper.cs
+++ b/IRaCIS.Core.Application/Helper/CacheHelper.cs
@@ -31,6 +31,29 @@ namespace IRaCIS.Core.Application.Helper
public static string UserAutoLoginOut(Guid userId) => $"UserAutoLoginOut:{userId}";
// 你可以为其他实体和模块定义更多的键
+
+ ///
+ /// 跳过阅片
+ ///
+ ///
+ ///
+ public static string SkipReadingCacheKey(Guid userId) => $"{userId}SkipReadingCache";
+
+
+ ///
+ /// 开始阅片时间
+ ///
+ ///
+ ///
+ public static string StartReadingTimeKey(Guid userId) => $"{userId}StartReadingTime";
+
+ ///
+ /// 开始休息时间
+ ///
+ ///
+ ///
+ public static string StartRestTime(Guid userId) => $"{userId}StartRestTime";
+
}
public static class CacheHelper
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 3017ccdeb..557836326 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -25,6 +25,8 @@ using Microsoft.Extensions.Options;
using System.Linq;
using NPOI.SS.Formula.Functions;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
+using IRaCIS.Core.Application.Helper;
+using ZiggyCreatures.Caching.Fusion;
namespace IRaCIS.Application.Services
{
@@ -54,7 +56,6 @@ namespace IRaCIS.Application.Services
IRepository _organInfoRepository,
IRepository _trialDocumentRepository,
IRepository _userRepository,
- IEasyCachingProvider _provider,
ILuganoCalculateService _luganoCalculateService,
IRepository _readingCustomTagRepository,
IRepository _readingTaskQuestionMarkRepository,
@@ -2656,8 +2657,8 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task ClearSkipReadingCache()
{
- var clearSkipReadingCacheKey = _userInfo.Id.ToString() + "SkipReadingCache";
- _provider.Remove(clearSkipReadingCacheKey);
+
+ await _fusionCache.RemoveAsync(CacheKeys.SkipReadingCacheKey(_userInfo.Id));
return true;
}
@@ -2670,20 +2671,18 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task SetSkipReadingCache(SetSkipReadingCacheInDto inDto )
{
- var clearSkipReadingCacheKey = _userInfo.Id.ToString() + "SkipReadingCache";
- var clearSkipReadingCache = _provider.Get(clearSkipReadingCacheKey).Value;
+ var clearSkipReadingCache = await _fusionCache.GetOrDefaultAsync(CacheKeys.SkipReadingCacheKey(_userInfo.Id));
if (clearSkipReadingCache == null|| clearSkipReadingCache==string.Empty)
{
List cacheIds = new List();
cacheIds.Add(inDto.VisitTaskId);
-
- _provider.Set(clearSkipReadingCacheKey, JsonConvert.SerializeObject(cacheIds), TimeSpan.FromHours(24));
+ await _fusionCache.SetAsync(CacheKeys.SkipReadingCacheKey(_userInfo.Id), JsonConvert.SerializeObject(cacheIds), TimeSpan.FromHours(24));
}
else
{
List? cacheIds=JsonConvert.DeserializeObject>(clearSkipReadingCache);
cacheIds.Add(inDto.VisitTaskId);
- _provider.Set(clearSkipReadingCacheKey, JsonConvert.SerializeObject(cacheIds), TimeSpan.FromHours(24));
+ await _fusionCache.SetAsync(CacheKeys.SkipReadingCacheKey(_userInfo.Id), JsonConvert.SerializeObject(cacheIds), TimeSpan.FromHours(24));
}
return true;
}
@@ -2714,8 +2713,9 @@ namespace IRaCIS.Application.Services
#region 跳过阅片
- var clearSkipReadingCacheKey = _userInfo.Id.ToString() + "SkipReadingCache";
- var clearSkipReadingCache = _provider.Get(clearSkipReadingCacheKey).Value;
+ var clearSkipReadingCache = await _fusionCache.GetOrDefaultAsync(CacheKeys.SkipReadingCacheKey(_userInfo.Id));
+
+
List cacheSkipIds = new List();
if (clearSkipReadingCache != null && clearSkipReadingCache != string.Empty)
{
@@ -3014,11 +3014,12 @@ namespace IRaCIS.Application.Services
int readingMinute = _verifyConfig.CurrentValue.ContinuousReadingTimeMin; // 为60整数
int restMinute = _verifyConfig.CurrentValue.ReadingRestTimeMin; //
- var startReadingTime = _provider.Get(startReadingTimeKey).Value;
- var startRestTime = _provider.Get(startRestTimeKey).Value;
+ var startReadingTime = await _fusionCache.GetOrDefaultAsync(CacheKeys.StartReadingTimeKey(_userInfo.Id));
+ var startRestTime = await _fusionCache.GetOrDefaultAsync(CacheKeys.StartRestTime(_userInfo.Id));
+
if (startReadingTime == null && startRestTime == null)
{
- _provider.Set(startReadingTimeKey, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TimeSpan.FromHours(48));
+ await _fusionCache.SetAsync(CacheKeys.StartReadingTimeKey(_userInfo.Id), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TimeSpan.FromHours(48));
}
else if (startRestTime != null)
{
@@ -3031,8 +3032,8 @@ namespace IRaCIS.Application.Services
else
{
// 休息时间>10分钟 删除休息时间的缓存 记录开始阅片时间
- _provider.Remove(startRestTimeKey);
- _provider.Set(startReadingTimeKey, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TimeSpan.FromHours(48));
+ await _fusionCache.RemoveAsync(CacheKeys.StartRestTime(_userInfo.Id));
+ await _fusionCache.SetAsync(CacheKeys.StartReadingTimeKey(_userInfo.Id), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TimeSpan.FromHours(48));
}
}
@@ -3044,9 +3045,9 @@ namespace IRaCIS.Application.Services
int timespanMin = (DateTime.Now - cacheDate).Minutes;
if (timespanMin > readingMinute)
{
+ await _fusionCache.RemoveAsync(CacheKeys.StartReadingTimeKey(_userInfo.Id));
+ await _fusionCache.SetAsync(CacheKeys.StartRestTime(_userInfo.Id), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TimeSpan.FromHours(48));
- _provider.Remove(startReadingTimeKey);
- _provider.Set(startRestTimeKey, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TimeSpan.FromHours(48));
throw new BusinessValidationFailedException(_localizer["ReadingImage_NeedRest", readingMinute / 60m, restMinute]);
}
@@ -3068,25 +3069,23 @@ namespace IRaCIS.Application.Services
userID = _userInfo.Id;
}
- var startReadingTimeKey = userID.ToString() + "StartReadingTime";
- var startRestTimeKey = userID.ToString() + "StartRestTime";
//int readingMinute = 120; // 为60整数
int restMinute = 10; //
- var startReadingTime = _provider.Get(startReadingTimeKey).Value;
- var startRestTime = _provider.Get(startRestTimeKey).Value;
+ var startReadingTime = await _fusionCache.GetOrDefaultAsync(CacheKeys.StartReadingTimeKey(_userInfo.Id));
+ var startRestTime = await _fusionCache.GetOrDefaultAsync(CacheKeys.StartRestTime(_userInfo.Id));
if (startRestTime != null)
{
var cacheStartRestTime = DateTime.Parse(startRestTime!.ToString());
int timespanMin = (DateTime.Now - cacheStartRestTime).Minutes;
if (timespanMin > restMinute)
{
- _provider.Remove(startRestTimeKey);
+ await _fusionCache.RemoveAsync(CacheKeys.StartRestTime(_userInfo.Id));
}
}
else if (startReadingTime != null)
{
- _provider.Set(startReadingTimeKey, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TimeSpan.FromHours(48));
+ await _fusionCache.SetAsync(CacheKeys.StartReadingTimeKey(_userInfo.Id), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TimeSpan.FromHours(48));
}
return true;
}