void AuditNode(RedisProxy proxy, int pageId, List <PositionPersonnelData> users) { var page = PageItemLogical.GetPageItem(pageId); if (!page.LevelAudit) { var orgs = OrganizationBusinessLogic.LoadAreaTreeForUi(0); AuditNode(orgs[0], users); proxy.Set($"audit:page:users:nodes:{pageId}:0", orgs); proxy.Set($"audit:page:users:ids:{pageId}:0", users.Select(p => p.UserId).LinkToString(",")); return; } foreach (var levels in users.GroupBy(p => p.OrgLevel)) { var orgs = OrganizationBusinessLogic.LoadAreaTreeForUi(0); AuditNode(orgs[0], levels.ToList()); if (orgs[0].HaseChildren) { foreach (var ch in orgs[0].Children.Where(p => p.Tag != "personnel").ToArray()) { if (!ch.HaseChildren) { orgs[0].Children.Remove(ch); } } } proxy.Set($"audit:page:users:nodes:{pageId}:{levels.Key}", orgs); proxy.Set($"audit:page:users:ids:{pageId}:{levels.Key}", levels.Select(p => p.UserId).LinkToString(",")); } }
/// <summary> /// 状态改变后的统一处理(unityStateChanged不设置为true时不会产生作用--基于性能的考虑) /// </summary> /// <param name="data"></param> /// <returns></returns> protected override void DoStateChanged(OrganizePositionData data) { using (SystemContextScope.CreateScope()) { using (var proxy = new RedisProxy(RedisProxy.DbSystem)) { var bl = new OrganizationBusinessLogic(); bl.CreateOrgPosTree(proxy); } } base.DoStateChanged(data); }
/// <summary> /// 生成完整的组织结构树(UI相关) /// </summary> /// <returns></returns> public static void Cache() { using (SystemContextScope.CreateScope()) { var bl = new OrganizationBusinessLogic(); using (var proxy = new RedisProxy(RedisProxy.DbSystem)) { bl.CreateFullOrgTree(proxy); bl.CreateOrgPosTree(proxy); bl.CreateAreaTree(proxy); proxy.CacheData <OrganizationData, OrganizationDataAccess>(); proxy.CacheData <OrganizePositionData, OrganizePositionDataAccess>(); proxy.CacheData <PositionPersonnelData, PositionPersonnelDataAccess>(p => $"e:pp:{p.UserId}"); } } }