Ejemplo n.º 1
0
        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(","));
            }
        }
Ejemplo n.º 2
0
 /// <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}");
         }
     }
 }