😎1、优化差异日志为仅记录差异字段 2、EnumToDictJob 使用BulkListQuery扩展优化查询

This commit is contained in:
zuohuaijun 2024-10-29 21:41:53 +08:00
parent 31e6d794b0
commit c74b50d24e
3 changed files with 20 additions and 6 deletions

View File

@ -33,10 +33,8 @@ public class EnumToDictJob : IJob
var enumTypeList = sysEnumService.GetEnumTypeList();
var enumCodeList = enumTypeList.Select(u => u.TypeName);
// 查询数据库中已存在的枚举类型代码
var sysDictTypeList = await db.Queryable<SysDictType>()
.Includes(d => d.Children)
.Where(d => enumCodeList.Contains(d.Code))
.ToListAsync(stoppingToken);
var exp = Expressionable.Create<SysDictType, SingleColumnEntity<string>>().And((t1, t2) => t1.Code == t2.ColumnName).ToExpression();
var sysDictTypeList = await db.Queryable<SysDictType>().Includes(t1 => t1.Children).BulkListQuery(exp, enumCodeList, stoppingToken);
// 更新的枚举转换字典
var updatedEnumCodes = sysDictTypeList.Select(u => u.Code);
var updatedEnumType = enumTypeList.Where(u => updatedEnumCodes.Contains(u.TypeName)).ToList();

View File

@ -265,6 +265,22 @@ public static class SqlSugarSetup
db.Aop.OnDiffLogEvent = async u =>
{
// 移除相同字段
for (int i = 0; i < u.AfterData.Count; i++)
{
var afterColumns = u.AfterData[i].Columns;
var beforeColumns = u.BeforeData[i].Columns;
for (int j = 0; j < afterColumns.Count; j++)
{
if (afterColumns[j].Value.Equals(beforeColumns[j].Value))
{
beforeColumns.Remove(beforeColumns[j]);
afterColumns.Remove(afterColumns[j]);
j--;
}
}
}
var logDiff = new SysLogDiff
{
// 操作后记录(字段描述、列名、值、表名、表描述)

View File

@ -85,8 +85,8 @@
"@types/node": "^20.16.5",
"@types/nprogress": "^0.2.3",
"@types/sortablejs": "^1.15.8",
"@typescript-eslint/eslint-plugin": "^8.12.0",
"@typescript-eslint/parser": "^8.12.0",
"@typescript-eslint/eslint-plugin": "^8.12.1",
"@typescript-eslint/parser": "^8.12.1",
"@vitejs/plugin-vue": "^5.1.4",
"@vitejs/plugin-vue-jsx": "^4.0.1",
"@vue/compiler-sfc": "^3.5.12",