2020-10-22 14:59:36 +08:00
|
|
|
|
using System.Linq;
|
2020-12-29 23:52:06 +08:00
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
2020-10-22 14:59:36 +08:00
|
|
|
|
using OpenAuth.App.Interface;
|
|
|
|
|
using OpenAuth.Repository.Core;
|
|
|
|
|
using OpenAuth.Repository.Interface;
|
|
|
|
|
|
|
|
|
|
namespace OpenAuth.App
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 树状结构处理
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <typeparam name="T"></typeparam>
|
2021-10-18 00:42:29 +08:00
|
|
|
|
/// /// <typeparam name="TDbContext"></typeparam>
|
2021-03-13 23:45:10 +08:00
|
|
|
|
public class BaseTreeApp<T,TDbContext> :BaseStringApp<T,TDbContext> where T : TreeEntity where TDbContext :DbContext
|
2020-10-22 14:59:36 +08:00
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
2020-12-29 23:52:06 +08:00
|
|
|
|
public BaseTreeApp(IUnitWork<TDbContext> unitWork, IRepository<T, TDbContext> repository, IAuth auth)
|
2020-10-22 14:59:36 +08:00
|
|
|
|
: base(unitWork, repository,auth)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 更新树状结构实体
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="obj"></param>
|
|
|
|
|
/// <typeparam name="U"></typeparam>
|
|
|
|
|
public void UpdateTreeObj<U>(U obj) where U : TreeEntity
|
|
|
|
|
{
|
|
|
|
|
CaculateCascade(obj);
|
|
|
|
|
|
|
|
|
|
//获取旧的的CascadeId
|
2020-12-17 23:04:04 +08:00
|
|
|
|
var cascadeId = Repository.FirstOrDefault(o => o.Id == obj.Id).CascadeId;
|
2020-10-22 14:59:36 +08:00
|
|
|
|
//根据CascadeId查询子部门
|
|
|
|
|
var objs = Repository.Find(u => u.CascadeId.Contains(cascadeId) && u.Id != obj.Id)
|
|
|
|
|
.OrderBy(u => u.CascadeId).ToList();
|
|
|
|
|
|
|
|
|
|
//更新操作
|
|
|
|
|
UnitWork.Update(obj);
|
|
|
|
|
|
|
|
|
|
//更新子模块的CascadeId
|
|
|
|
|
foreach (var a in objs)
|
|
|
|
|
{
|
|
|
|
|
a.CascadeId = a.CascadeId.Replace(cascadeId, obj.CascadeId);
|
|
|
|
|
if (a.ParentId == obj.Id)
|
|
|
|
|
{
|
|
|
|
|
a.ParentName = obj.Name;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UnitWork.Update(a);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UnitWork.Save();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|