从缓存读取数据连接和用户名称

This commit is contained in:
2023-03-28 17:01:15 +08:00
parent d636034f06
commit bf847beeae
3 changed files with 344 additions and 312 deletions

View File

@@ -22,6 +22,7 @@ using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
using JNPF.VisualDev.Interfaces;
using JNPF.WorkFlow.Entitys.Entity;
using Mapster;
using Microsoft.Extensions.Caching.Memory;
using Newtonsoft.Json.Linq;
using SqlSugar;
@@ -54,44 +55,51 @@ public class FormDataParsing : ITransient
/// </summary>
private readonly ICacheManager _cacheManager;
/// <summary>
/// 服务基础仓储.
/// </summary>
private readonly ISqlSugarRepository<VisualDevEntity> _db;
/// <summary>
/// 缓存管理.
/// </summary>
private readonly IMemoryCache _memCache;
/// <summary>
/// 构造.
/// </summary>
/// <param name="userManager"></param>
/// <param name="cacheManager"></param>
/// <param name="databaseService"></param>
/// <param name="dataInterfaceService"></param>
/// <param name="context"></param>
public FormDataParsing(
IUserManager userManager,
ICacheManager cacheManager,
IDataBaseManager databaseService,
IDataInterfaceService dataInterfaceService,
ISqlSugarRepository<VisualDevEntity> context)
{
_userManager = userManager;
_cacheManager = cacheManager;
_databaseService = databaseService;
_dataInterfaceService = dataInterfaceService;
_db = context;
}
#endregion
/// <summary>
/// 服务基础仓储.
/// </summary>
private readonly ISqlSugarRepository<VisualDevEntity> _db;
#region
/// <summary>
/// 构造.
/// </summary>
/// <param name="userManager"></param>
/// <param name="cacheManager"></param>
/// <param name="databaseService"></param>
/// <param name="dataInterfaceService"></param>
/// <param name="context"></param>
public FormDataParsing(
IUserManager userManager,
ICacheManager cacheManager,
IDataBaseManager databaseService,
IDataInterfaceService dataInterfaceService,
ISqlSugarRepository<VisualDevEntity> context,
IMemoryCache memCache)
{
_userManager = userManager;
_cacheManager = cacheManager;
_databaseService = databaseService;
_dataInterfaceService = dataInterfaceService;
_db = context;
_memCache = memCache;
}
#endregion
/// <summary>
/// 控制模板数据转换.
/// </summary>
/// <param name="data">数据.</param>
/// <param name="fieldsModel">数据模板.</param>
/// <param name="actionType">操作类型(List-列表值,create-创建值,update-更新值,detail-详情值,transition-过渡值,query-查询).</param>
/// <returns>object.</returns>
public object TemplateControlsDataConversion(object data, FieldsModel fieldsModel, string? actionType = null)
#region
/// <summary>
/// 控制模板数据转换.
/// </summary>
/// <param name="data">数据.</param>
/// <param name="fieldsModel">数据模板.</param>
/// <param name="actionType">操作类型(List-列表值,create-创建值,update-更新值,detail-详情值,transition-过渡值,query-查询).</param>
/// <returns>object.</returns>
public object TemplateControlsDataConversion(object data, FieldsModel fieldsModel, string? actionType = null)
{
if (fieldsModel == null || data == null || data.Equals("[]") || data.ToString().Equals("[]") || string.IsNullOrEmpty(data.ToString())) return string.Empty;
try
@@ -1707,18 +1715,30 @@ public class FormDataParsing : ITransient
}
break;
case JnpfKeyConst.CURRDEPT:
dataMap[key] = (await _db.AsSugarClient().Queryable<OrganizeEntity>().FirstAsync(x => x.Id == dataValue.ToString()))?.FullName;
dataMap[key] = await _memCache.GetOrCreateAsync($"organizeId_{dataValue}", async entry =>
{
entry.SlidingExpiration = TimeSpan.FromSeconds(60);
return (await _db.AsSugarClient().Queryable<OrganizeEntity>().FirstAsync(x => x.Id == dataValue.ToString()))?.FullName;
});
break;
case JnpfKeyConst.MODIFYUSER:
case JnpfKeyConst.CREATEUSER:
dataMap[key] = await _db.AsSugarClient().Queryable<UserEntity>().Where(x => x.Id == dataValue.ToString()).Select(x => SqlFunc.MergeString(x.RealName, "/", x.Account)).FirstAsync();
dataMap[key] = await _memCache.GetOrCreateAsync($"userId_{dataValue}", async entry =>
{
entry.SlidingExpiration = TimeSpan.FromSeconds(60);
return await _db.AsSugarClient().Queryable<UserEntity>().Where(x => x.Id == dataValue.ToString()).Select(x => SqlFunc.MergeString(x.RealName, "/", x.Account)).FirstAsync();
});
break;
case JnpfKeyConst.MODIFYTIME:
case JnpfKeyConst.CREATETIME:
dataMap[key] = string.Format("{0:yyyy-MM-dd HH:mm:ss}", dataMap[key].ToString().ParseToDateTime());
break;
case JnpfKeyConst.CURRPOSITION:
dataMap[key] = (await _db.AsSugarClient().Queryable<PositionEntity>().FirstAsync(x => x.Id == dataValue.ToString()))?.FullName;
dataMap[key] = await _memCache.GetOrCreateAsync($"positionId_{dataValue}", async entry =>
{
entry.SlidingExpiration = TimeSpan.FromSeconds(60);
return (await _db.AsSugarClient().Queryable<PositionEntity>().FirstAsync(x => x.Id == dataValue.ToString()))?.FullName;
});
break;
case JnpfKeyConst.POPUPTABLESELECT:
case JnpfKeyConst.POPUPSELECT: