You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
633 lines
24 KiB
C#
633 lines
24 KiB
C#
using Infrastructure;
|
|
using Infrastructure.Extensions;
|
|
using OpenAuth.App.Base;
|
|
using OpenAuth.App.Base.Tree;
|
|
using OpenAuth.App.BasicQueryService;
|
|
using OpenAuth.App.Interface;
|
|
using OpenAuth.App.Request;
|
|
using OpenAuth.Repository;
|
|
using OpenAuth.Repository.Core;
|
|
using OpenAuth.Repository.Domain;
|
|
using SqlSugar;
|
|
using SqlSugar.Extensions;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
|
|
namespace OpenAuth.App
|
|
{
|
|
public class OrgManagerApp : LongTreeApp<SysOrg, SugarDbContext>
|
|
{
|
|
UserManager userManager;
|
|
|
|
private ISqlSugarClient client;
|
|
public OrgManagerApp(
|
|
ISugarUnitOfWork<SugarDbContext> unitWork,
|
|
ISimpleClient<SysOrg> repository,
|
|
ISqlSugarClient sqlSugarClient,
|
|
UserManager userManager,
|
|
IAuth auth) : base(unitWork, repository, auth)
|
|
{
|
|
this.client = sqlSugarClient;
|
|
this.userManager = userManager;
|
|
|
|
}
|
|
|
|
#region 查询
|
|
|
|
#region 部门树
|
|
/// <summary>
|
|
/// name 为空查全部
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <returns></returns>
|
|
public async Task<Response<List<TreeItemLong>>> OrgsAllTree(string name)
|
|
{
|
|
var result = new Response<List<TreeItemLong>>();
|
|
var user = _auth.GetCurrentUser().User;
|
|
string sql = "select \"min\"(\"Level\") from sys_userorg where \"UserId\"='" + user.Id + "' ";
|
|
var level = client.Ado.GetInt(sql);
|
|
if (level>0)
|
|
{
|
|
|
|
string sql2 = "select \"OrgId\" from sys_userorg where \"Level\"="+level + " and \"UserId\"='" + user.Id + "' ";
|
|
List<long> orgIds1 = client.Ado.SqlQuery<long>(sql2);
|
|
int count = orgIds1.Count;
|
|
for (int i = 0; i < count; i++) {
|
|
List<long> longs = getAllChildOrgId(orgIds1[i]);
|
|
orgIds1.AddRange(longs);
|
|
}
|
|
|
|
var orglist = base.Repository.AsSugarClient().Queryable<SysUserOrg>()
|
|
.Where(a => a.UserId == user.Id).Select(a => a.OrgId)
|
|
.ToList();
|
|
var query = base.Repository.AsQueryable().Where(a => orgIds1.Contains(a.Id) || a.CreateId == user.Id)
|
|
.Select<TreeItemLong>();
|
|
|
|
if (!string.IsNullOrEmpty(name))
|
|
{
|
|
object[] orgIds = (await base.Repository.AsQueryable()
|
|
.Where(a => a.Name.Contains(name))
|
|
.Select(it => it.Id).ToListAsync()).Cast<object>().ToArray();
|
|
|
|
result.Result = await query.ToTreeAsync(a => a.Children, a => a.ParentId, 0, orgIds);
|
|
}
|
|
else
|
|
{
|
|
result.Result = await query.ToTreeAsync(a => a.Children, a => a.ParentId, 0, a => a.Id);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
else {
|
|
var query = base.Repository.AsQueryable()
|
|
.Select<TreeItemLong>();
|
|
|
|
if (!string.IsNullOrEmpty(name))
|
|
{
|
|
object[] orgIds = (await base.Repository.AsQueryable()
|
|
.Where(a => a.Name.Contains(name))
|
|
.Select(it => it.Id).ToListAsync()).Cast<object>().ToArray();
|
|
|
|
result.Result = await query.ToTreeAsync(a => a.Children, a => a.ParentId, 0, orgIds);
|
|
}
|
|
else
|
|
{
|
|
result.Result = await query.ToTreeAsync(a => a.Children, a => a.ParentId, 0, a => a.Id);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
public List<long> getAllChildOrgId( long parentId) {
|
|
var query = base.Repository.AsSugarClient().Queryable<SysOrg>()
|
|
.Where(c => c.ParentId == parentId)
|
|
.Select(c => new { c.Id, c.ParentId })
|
|
.ToList();
|
|
|
|
var childIds = query.Select(c => c.Id).ToList();
|
|
var grandChildIds = query.SelectMany(c => getAllChildOrgId( c.Id)).ToList();
|
|
|
|
childIds.AddRange(grandChildIds);
|
|
return childIds;
|
|
}
|
|
/// <summary>
|
|
/// name 为空查全部
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <returns></returns>
|
|
public async Task<Response<List<TreeItemLong>>> OrgsTree(string name)
|
|
{
|
|
/* var result = new Response<List<TreeItemLong>>();
|
|
|
|
var userId = long.Parse(_auth.GetUserId());
|
|
|
|
var query = userManager.UserOrgs(userId);
|
|
|
|
var orgs = await query
|
|
.WhereIF(!string.IsNullOrEmpty(name), (u, o) => o.Name.Contains(name))
|
|
.Select<TreeItemLong>().ToListAsync();
|
|
|
|
//if (!string.IsNullOrEmpty(name))
|
|
//{
|
|
// object[] orgIds = (await query
|
|
// .Where((u, o) => o.Name.Contains(name))
|
|
// .Select((u, o) => o.Id).ToListAsync()).Cast<object>().ToArray();
|
|
|
|
// result.Result = await query.Select<TreeItemLong>()
|
|
// .ToTreeAsync(a => a.Children, a => a.ParentId, 0, orgIds);
|
|
//}
|
|
//else
|
|
//{
|
|
// result.Result = await query.Select<TreeItemLong>()
|
|
// .ToTreeAsync(a => a.Children, a => a.ParentId, 0, a => a.Id);
|
|
//}
|
|
|
|
result.Result = orgs.BuildTree().ToList();
|
|
|
|
return result;*/
|
|
var result = new Response<List<TreeItemLong>>();
|
|
var user = _auth.GetCurrentUser().User;
|
|
string sql = "select \"min\"(\"Level\") from sys_userorg where \"UserId\"='" + user.Id + "' ";
|
|
var level = client.Ado.GetInt(sql);
|
|
if ( level > 0)
|
|
{
|
|
|
|
string sql2 = "select \"OrgId\" from sys_userorg where \"Level\"=" + level + " and \"UserId\"='" + user.Id + "' ";
|
|
List<long> orgIds1 = client.Ado.SqlQuery<long>(sql2);
|
|
int count = orgIds1.Count;
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
List<long> longs = getAllChildOrgId(orgIds1[i]);
|
|
orgIds1.AddRange(longs);
|
|
}
|
|
|
|
|
|
var query = await base.Repository.AsQueryable().Where(a => orgIds1.Contains(a.Id) || a.CreateId == user.Id)
|
|
.Select<TreeItemLong>().ToListAsync();
|
|
|
|
if (!string.IsNullOrEmpty(name))
|
|
{
|
|
object[] orgIds = (await base.Repository.AsQueryable()
|
|
.Where(a => a.Name.Contains(name))
|
|
.Select(it => it.Id).ToListAsync()).Cast<object>().ToArray();
|
|
|
|
result.Result = query.BuildTree().ToList();
|
|
}
|
|
else
|
|
{
|
|
result.Result = query.BuildTree().ToList();
|
|
}
|
|
|
|
return result;
|
|
}
|
|
else
|
|
{
|
|
var query = base.Repository.AsQueryable()
|
|
.Select<TreeItemLong>();
|
|
|
|
if (!string.IsNullOrEmpty(name))
|
|
{
|
|
object[] orgIds = (await base.Repository.AsQueryable()
|
|
.Where(a => a.Name.Contains(name))
|
|
.Select(it => it.Id).ToListAsync()).Cast<object>().ToArray();
|
|
|
|
result.Result = await query.ToTreeAsync(a => a.Children, a => a.ParentId, 0, orgIds);
|
|
}
|
|
else
|
|
{
|
|
result.Result = await query.ToTreeAsync(a => a.Children, a => a.ParentId, 0, a => a.Id);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 部门和职级组合树
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public async Task<Response<List<TreeItemLong>>> OrgPositonTree()
|
|
{
|
|
var client = base.Repository.AsSugarClient();
|
|
|
|
var orgQuery = base.Repository.AsQueryable()
|
|
.Select(a => new TreeItemLong { Key = 0, Tag = "" }, true);
|
|
|
|
var posQuery = client.Queryable<SysPosition, SysOrg>((p, o) =>
|
|
new JoinQueryInfos(JoinType.Left, p.GroupId == o.PosGroupId))
|
|
.Where((p, o) => o.Id != null)
|
|
.Select((p, o) => new TreeItemLong
|
|
{
|
|
Key = p.Id,
|
|
Tag = o.Id.ToString(),
|
|
Id = p.Id,
|
|
Name = p.Name,
|
|
ParentId = p.ParentId == 0 ? o.Id : p.ParentId,
|
|
});
|
|
|
|
var poses = posQuery.ToList();
|
|
|
|
var list = await client.UnionAll(orgQuery, posQuery)
|
|
.Mapper(a =>
|
|
{
|
|
if (a.Id == a.Key)
|
|
{
|
|
var item = poses.Where(m => m.Id == a.Id).First();
|
|
item.Id = Yitter.IdGenerator.YitIdHelper.NextId();
|
|
|
|
a.Id = item.Id;
|
|
|
|
var parent = poses.Where(m => m.Key == a.ParentId && m.Tag == a.Tag).FirstOrDefault();
|
|
if (parent != null)
|
|
{
|
|
a.ParentId = parent.Id;
|
|
}
|
|
}
|
|
})
|
|
.ToTreeAsync(a => a.Children, a => a.ParentId, 0, a => a.Id);
|
|
|
|
return new Response<List<TreeItemLong>>
|
|
{
|
|
Result = list
|
|
};
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 分页
|
|
/// <summary>
|
|
/// 查询部门列表
|
|
/// </summary>
|
|
/// <param name="req"></param>
|
|
/// <returns></returns>
|
|
public async Task<Response<PageInfo<List<SysOrg>>>> LoadAllPage(QueryOrgListReq req)
|
|
{
|
|
var user = _auth.GetCurrentUser().User;
|
|
string sql = "select \"min\"(\"Level\") from sys_userorg where \"UserId\"='" + user.Id + "' ";
|
|
var level = client.Ado.GetInt(sql);
|
|
if ( level > 0)
|
|
{
|
|
|
|
string sql2 = "select \"OrgId\" from sys_userorg where \"Level\"=" + level + " and \"UserId\"='" + user.Id + "' ";
|
|
List<long> orgIds1 = client.Ado.SqlQuery<long>(sql2);
|
|
int count = orgIds1.Count;
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
List<long> longs = getAllChildOrgId(orgIds1[i]);
|
|
orgIds1.AddRange(longs);
|
|
}
|
|
RefAsync<int> totalCount = 0;
|
|
|
|
var orgs = await base.Repository.AsQueryable()
|
|
.WhereIF(req.OrgId != 0, o => o.ParentId == req.OrgId)
|
|
.WhereIF(!string.IsNullOrEmpty(req.key), o => o.Name.Contains(req.key))
|
|
.Where(a => orgIds1.Contains(a.Id) || a.CreateId == user.Id)
|
|
.OrderByDescending(o => o.CreateTime)
|
|
.ToPageListAsync(req.page, req.limit, totalCount);
|
|
|
|
return new Response<PageInfo<List<SysOrg>>>
|
|
{
|
|
Result = new PageInfo<List<SysOrg>>
|
|
{
|
|
Items = orgs,
|
|
Total = totalCount
|
|
}
|
|
};
|
|
}
|
|
else {
|
|
RefAsync<int> totalCount = 0;
|
|
|
|
var orgs = await base.Repository.AsQueryable()
|
|
.WhereIF(req.OrgId != 0, o => o.ParentId == req.OrgId)
|
|
.WhereIF(!string.IsNullOrEmpty(req.key), o => o.Name.Contains(req.key))
|
|
.OrderByDescending(o => o.CreateTime)
|
|
.ToPageListAsync(req.page, req.limit, totalCount);
|
|
|
|
return new Response<PageInfo<List<SysOrg>>>
|
|
{
|
|
Result = new PageInfo<List<SysOrg>>
|
|
{
|
|
Items = orgs,
|
|
Total = totalCount
|
|
}
|
|
};
|
|
}
|
|
|
|
}
|
|
|
|
public async Task<Response<PageInfo<List<SysOrg>>>> LoadPage(QueryOrgListReq req)
|
|
{
|
|
|
|
var user = _auth.GetCurrentUser().User;
|
|
string sql = "select \"min\"(\"Level\") from sys_userorg where \"UserId\"='" + user.Id + "' ";
|
|
var level = client.Ado.GetInt(sql);
|
|
if (level > 0)
|
|
{
|
|
|
|
string sql2 = "select \"OrgId\" from sys_userorg where \"Level\"=" + level + " and \"UserId\"='" + user.Id + "' ";
|
|
List<long> orgIds1 = client.Ado.SqlQuery<long>(sql2);
|
|
int count = orgIds1.Count;
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
List<long> longs = getAllChildOrgId(orgIds1[i]);
|
|
orgIds1.AddRange(longs);
|
|
}
|
|
RefAsync<int> totalCount = 0;
|
|
|
|
var orgs = await base.Repository.AsQueryable()
|
|
.WhereIF(req.OrgId != 0, o => o.ParentId == req.OrgId)
|
|
.WhereIF(!string.IsNullOrEmpty(req.key), o => o.Name.Contains(req.key))
|
|
.Where(a => orgIds1.Contains(a.Id) || a.CreateId == user.Id)
|
|
.OrderByDescending(o => o.CreateTime)
|
|
.ToPageListAsync(req.page, req.limit, totalCount);
|
|
|
|
return new Response<PageInfo<List<SysOrg>>>
|
|
{
|
|
Result = new PageInfo<List<SysOrg>>
|
|
{
|
|
Items = orgs,
|
|
Total = totalCount
|
|
}
|
|
};
|
|
}
|
|
else
|
|
{
|
|
RefAsync<int> totalCount = 0;
|
|
|
|
var userId = long.Parse(_auth.GetUserId());
|
|
|
|
var orgs = await userManager.UserOrgs(userId)
|
|
.WhereIF(req.OrgId != 0, (u, o) => o.ParentId == req.OrgId)
|
|
.WhereIF(!string.IsNullOrEmpty(req.key), (u, o) => o.Name.Contains(req.key))
|
|
.OrderByDescending((u, o) => o.CreateTime)
|
|
.Select((u, o) => o)
|
|
.ToPageListAsync(req.page, req.limit, totalCount);
|
|
|
|
return new Response<PageInfo<List<SysOrg>>>
|
|
{
|
|
Result = new PageInfo<List<SysOrg>>
|
|
{
|
|
Items = orgs,
|
|
Total = totalCount
|
|
}
|
|
};
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 实体
|
|
public SysOrg Get(string id)
|
|
{
|
|
return Repository.GetById(id);
|
|
}
|
|
#endregion
|
|
|
|
#region 子节点
|
|
public async Task<List<SysOrg>> LoadChildren(long? parentId)
|
|
{
|
|
SysUser user = _auth.GetCurrentUser().User;
|
|
//string sql = "select \"min\"(\"Level\") from sys_userorg where \"UserId\"='"+user.Id+"' ";
|
|
//var level = client.Ado.GetInt(sql);
|
|
/*if (user.Id == -1||level==0)
|
|
{*/
|
|
List<SysOrg> children = new List<SysOrg>();
|
|
if (parentId != null)
|
|
{
|
|
children= await base.Repository.AsQueryable().Where(r=>r.ParentId==parentId).OrderBy(r=>r.SortNo).ToListAsync();
|
|
}
|
|
return children;
|
|
/* }
|
|
else
|
|
{
|
|
if (parentId == 0)
|
|
{
|
|
return await base.Repository.GetListAsync(a => a.ParentId == parentId);
|
|
} else if(parentId== 371300)
|
|
{
|
|
var orglist = base.Repository.AsSugarClient().Queryable<SysUserOrg>()
|
|
.Where(a => a.UserId == user.Id).Select(a => a.OrgId)
|
|
.ToList();
|
|
return await base.Repository.GetListAsync(a => orglist.Contains(a.Id) || a.CreateId == user.Id);
|
|
}
|
|
else
|
|
{
|
|
var orglist = base.Repository.AsSugarClient().Queryable<SysUserOrg>()
|
|
.Where(a => a.UserId == user.Id).Select(a => a.OrgId)
|
|
.ToList();
|
|
return await base.Repository.GetListAsync(a => a.ParentId == parentId && orglist.Contains(a.Id) || a.CreateId == user.Id);
|
|
}
|
|
|
|
}*/
|
|
}
|
|
|
|
#region 用户关联的部分和职级
|
|
public async Task<List<SysUserOrg>> UserOrgs(long userId)
|
|
{
|
|
return await base.Repository.AsSugarClient().Queryable<SysUserOrg>()
|
|
.Where(a => a.UserId == userId)
|
|
.ToListAsync();
|
|
}
|
|
#endregion
|
|
#endregion
|
|
|
|
#region 父节点
|
|
public async Task<List<SysOrg>> LoadParents(long childId)
|
|
{
|
|
return await client.Queryable<SysOrg>().ToParentListAsync(it => it.ParentId, childId);
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region 增删改
|
|
|
|
#region 增加
|
|
/// <summary>
|
|
/// 添加部门
|
|
/// </summary>
|
|
/// <param name="sysOrg">The org.</param>
|
|
/// <returns>System.Int32.</returns>
|
|
/// <exception cref="System.Exception">未能找到该组织的父节点信息</exception>
|
|
public Response<bool> Add(OrgForm org)
|
|
{
|
|
var loginContext = _auth.GetCurrentUser();
|
|
if (loginContext == null)
|
|
{
|
|
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
|
|
}
|
|
|
|
SysOrg model = org.MapTo<SysOrg>();
|
|
|
|
//后边再看
|
|
//CalculateCascade(model);
|
|
|
|
using (var uow = base.UnitWork.CreateContext())
|
|
{
|
|
if (model.Id <= 0) {
|
|
model.Id = Yitter.IdGenerator.YitIdHelper.NextId();
|
|
}
|
|
|
|
model.ParentName = getParentName(model.ParentId);
|
|
model.CreateId = loginContext.User.Id;
|
|
model.CreateTime = DateTime.Now;
|
|
if (model.ParentId == 0) {
|
|
model.Level = 0;
|
|
model.CascadeId = "0."+model.Id;
|
|
}else
|
|
{
|
|
long parentId = model.ParentId;
|
|
int Level = 0;
|
|
string cascade = "";
|
|
while (true)
|
|
{
|
|
String sql = "select \"ParentId\" from sys_org where \"Id\"=" + parentId;
|
|
long id = client.Ado.GetLong(sql);
|
|
// long id = base.Repository.AsSugarClient().Queryable<SysOrg>().Where(a => a.Id == parentId).Select(a => a.ParentId).ToLong();
|
|
if (!string.IsNullOrEmpty(cascade)) {
|
|
cascade = id + "." + cascade;
|
|
}else
|
|
{
|
|
cascade = id + cascade;
|
|
}
|
|
|
|
parentId = id;
|
|
Level++;
|
|
if (id == 0) {
|
|
break; }}
|
|
model.Level = Level;
|
|
model.CascadeId = cascade+"."+model.ParentId+"."+model.Id;
|
|
}
|
|
|
|
uow.SysOrg.Insert(model);
|
|
var falg = uow.Commit();
|
|
return new Response<bool>
|
|
{
|
|
Result = falg,
|
|
Message = (falg == true ? "添加成功" : "添加失败")
|
|
};
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 修改
|
|
public Response<bool> Update(SysOrg sysOrg)
|
|
{
|
|
if (sysOrg.Id == sysOrg.ParentId)
|
|
{
|
|
throw new Exception("上级节点不能为自己");
|
|
}
|
|
try
|
|
{
|
|
var user = _auth.GetCurrentUser().User;
|
|
sysOrg.ParentName=getParentName(sysOrg.ParentId);
|
|
sysOrg.CreateId = user.Id;
|
|
UpdateSysOrg(sysOrg);
|
|
|
|
return new Response<bool> { Result = true, Message = "success" };
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return new Response<bool> { Result = false, Message = "error:" + ex.Message.ToString() };
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 删除
|
|
/// <summary>
|
|
/// 删除指定ID的部门及其所有子部门
|
|
/// </summary>
|
|
public Response<bool> DelOrgCascade(string[] ids)
|
|
{
|
|
var delOrgCascadeIds = base.Repository.GetList(u => ids.Contains(u.Id.ToString())).Select(u => u.CascadeId).ToArray();
|
|
var delOrgIds = new List<long>();
|
|
foreach (var cascadeId in delOrgCascadeIds)
|
|
{
|
|
delOrgIds.AddRange(base.Repository.GetList(u => u.CascadeId.Contains(cascadeId)).Select(u => u.Id).ToArray());
|
|
}
|
|
|
|
using (var uow = base.UnitWork.CreateContext())
|
|
{
|
|
//得改 代码先注释
|
|
//uow.Relevance.Delete(u => u.Key == Define.USERORG && delOrgIds.Contains(u.SecondId));
|
|
uow.SysOrg.Delete(u => delOrgIds.Contains(u.Id));
|
|
var flag = uow.Commit();
|
|
|
|
return new Response<bool>
|
|
{
|
|
Result = flag,
|
|
Message = flag == true ? "success" : "error"
|
|
};
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 分配职级组
|
|
/// <summary>
|
|
/// 为部门分配职级组
|
|
/// </summary>
|
|
/// <param name="assignOrgPos"></param>
|
|
/// <returns></returns>
|
|
public async Task<Response<bool>> OrgPosGroup(AssignOrgPosGroup assignOrgPos)
|
|
{
|
|
var flag = await base.Repository.UpdateAsync(a => new SysOrg { PosGroupId = assignOrgPos.PosGroupId }, a => a.Id == assignOrgPos.OrgId);
|
|
return new Response<bool>
|
|
{
|
|
Result = flag,
|
|
Message = flag == true ? "success" : "error"
|
|
};
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
public string getParentName(long parentId) {
|
|
string name = base.Repository.AsSugarClient().Queryable<SysOrg>().First(a => a.Id == parentId).Name;
|
|
return name;
|
|
}
|
|
|
|
|
|
|
|
|
|
public void UpdateSysOrg(SysOrg obj)
|
|
{
|
|
if (obj.ParentId == 0)
|
|
{
|
|
obj.Level = 0;
|
|
obj.CascadeId = "0." + obj.Id;
|
|
}
|
|
else
|
|
{
|
|
long parentId = obj.ParentId;
|
|
int Level = 0;
|
|
string cascade = "";
|
|
while (true)
|
|
{
|
|
string sql = "select \"ParentId\" from sys_org where \"Id\"=" + parentId;
|
|
long id = base.Repository.AsSugarClient().Ado.GetLong(sql);
|
|
//long id = base.Repository.AsSugarClient().Queryable<SysOrg>().Where(a => a.Id == parentId).Select(a => a.ParentId).ToLong();
|
|
if (!string.IsNullOrEmpty(cascade))
|
|
{
|
|
cascade = id + "." + cascade;
|
|
}
|
|
else
|
|
{
|
|
cascade = id + cascade;
|
|
}
|
|
|
|
parentId = id;
|
|
Level++;
|
|
if (id == 0)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
obj.Level = Level;
|
|
obj.CascadeId = cascade + "." + obj.ParentId + "." + obj.Id;
|
|
}
|
|
base.Repository.AsSugarClient().Updateable<SysOrg>(obj).ExecuteCommand();
|
|
}
|
|
|
|
|
|
|
|
}
|
|
} |