😎修复软删除修改后对应不上的字典值
This commit is contained in:
parent
381724ab81
commit
8cb0417685
@ -119,7 +119,7 @@ public class SysEnumService : IDynamicApiController, ITransient
|
|||||||
var updatedEnumCodes = sysDictTypeList.Select(u => u.Code);
|
var updatedEnumCodes = sysDictTypeList.Select(u => u.Code);
|
||||||
var updatedEnumType = enumTypeList.Where(u => updatedEnumCodes.Contains(u.TypeName)).ToList();
|
var updatedEnumType = enumTypeList.Where(u => updatedEnumCodes.Contains(u.TypeName)).ToList();
|
||||||
var sysDictTypeDict = sysDictTypeList.ToDictionary(u => u.Code, u => u);
|
var sysDictTypeDict = sysDictTypeList.ToDictionary(u => u.Code, u => u);
|
||||||
var (updatedDictTypes, updatedDictDatas, newSysDictDatas) = GetUpdatedDicts(updatedEnumType, sysDictTypeDict);
|
var (updatedDictTypes, updatedDictDatas, newSysDictDatas, delDataIds) = GetUpdatedDicts(updatedEnumType, sysDictTypeDict);
|
||||||
|
|
||||||
// 新增的枚举转换字典
|
// 新增的枚举转换字典
|
||||||
var newEnumType = enumTypeList.Where(u => !updatedEnumCodes.Contains(u.TypeName)).ToList();
|
var newEnumType = enumTypeList.Where(u => !updatedEnumCodes.Contains(u.TypeName)).ToList();
|
||||||
@ -132,6 +132,12 @@ public class SysEnumService : IDynamicApiController, ITransient
|
|||||||
// or SqlSugar.DbType.GaussDB
|
// or SqlSugar.DbType.GaussDB
|
||||||
// or SqlSugar.DbType.Kdbndp;
|
// or SqlSugar.DbType.Kdbndp;
|
||||||
|
|
||||||
|
// 软删除多余的枚举字典
|
||||||
|
if (delDataIds != null && delDataIds.Any())
|
||||||
|
await _db.Updateable<SysDictData>().Where(u => delDataIds.Contains(u.Id))
|
||||||
|
.SetColumns(u => u.IsDelete, true)
|
||||||
|
.ExecuteCommandAsync();
|
||||||
|
|
||||||
// 执行数据库操作
|
// 执行数据库操作
|
||||||
if (updatedDictTypes.Count > 0)
|
if (updatedDictTypes.Count > 0)
|
||||||
{
|
{
|
||||||
@ -242,11 +248,12 @@ public class SysEnumService : IDynamicApiController, ITransient
|
|||||||
/// </item>
|
/// </item>
|
||||||
/// </list>
|
/// </list>
|
||||||
/// </returns>
|
/// </returns>
|
||||||
private (List<SysDictType>, List<SysDictData>, List<SysDictData>) GetUpdatedDicts(List<EnumTypeOutput> updatedEnumType, Dictionary<string, SysDictType> sysDictTypeDict)
|
private (List<SysDictType>, List<SysDictData>, List<SysDictData>, List<long>) GetUpdatedDicts(List<EnumTypeOutput> updatedEnumType, Dictionary<string, SysDictType> sysDictTypeDict)
|
||||||
{
|
{
|
||||||
var updatedSysDictTypes = new List<SysDictType>();
|
var updatedSysDictTypes = new List<SysDictType>();
|
||||||
var updatedSysDictData = new List<SysDictData>();
|
var updatedSysDictData = new List<SysDictData>();
|
||||||
var newSysDictData = new List<SysDictData>();
|
var newSysDictData = new List<SysDictData>();
|
||||||
|
var deleteDictDataIds = new List<long>();
|
||||||
foreach (var e in updatedEnumType)
|
foreach (var e in updatedEnumType)
|
||||||
{
|
{
|
||||||
if (!sysDictTypeDict.TryGetValue(e.TypeName, out var value))
|
if (!sysDictTypeDict.TryGetValue(e.TypeName, out var value))
|
||||||
@ -299,9 +306,11 @@ public class SysEnumService : IDynamicApiController, ITransient
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除的情况暂不处理
|
// 删除的情况处理
|
||||||
|
var ids = updatedDictData.Where(u => e.EnumEntities.All(v => v.Name != u.Code || v.Value.ToString() != u.Value)).Select(u => u.Id).ToList();
|
||||||
|
if (ids.Count > 0) deleteDictDataIds.AddRange(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (updatedSysDictTypes, updatedSysDictData, newSysDictData);
|
return (updatedSysDictTypes, updatedSysDictData, newSysDictData, deleteDictDataIds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user