Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="defines"></param>
        /// <returns></returns>
        protected bool DoClearGroups(params int[] defines)
        {
            if (defines.Length < 1)
            {
                throw new BCFException("defines 参数不能为空");
            }

            GroupM           g  = new GroupM();
            Resource_LinkedM rl = new Resource_LinkedM();
            User_LinkedM     ul = new User_LinkedM();

            QView pgidS = g.Where(g.R_PGID.In(defines)).SubSelect(g.PGID);

            bool temp = true;

            //清理,与功能间的关联
            //
            temp = rl.Where(rl.LK_OBJT_ID.In(pgidS))
                   .And(rl.LK_OBJT == Group.LK_OBJT)
                   .Delete() && temp;

            //清理,与用户之间的关联
            //
            temp = ul.Where(ul.LK_OBJT_ID.In(pgidS))
                   .And(ul.LK_OBJT == Group.LK_OBJT)
                   .Delete() && temp;

            //清空组
            //
            temp = g.Where(g.R_PGID.In(defines)).Delete() && temp;

            return(temp);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取用户相关的组
        /// </summary>
        /// <param name="puid">用户PUID</param>
        /// <param name="p_pgids">目标组的P_PGID组</param>
        /// <returns></returns>
        protected List <Group> DoGetGroupsInUser(int puid, params int[] p_pgids)
        {
            GroupM g  = new GroupM();
            SQuery SQ = new SQuery();

            User_LinkedM ul = new User_LinkedM();

            ul.IncludeAll(false);


            SQ.From(g)
            .InnerJoin(ul).On(g.PGID == ul.LK_OBJT_ID).And(ul.LK_OBJT == Group.LK_OBJT);

            SQ.Where(QCondition.TRUE);

            if (p_pgids.Length > 0)
            {
                SQ.And(g.P_PGID.In(p_pgids));
            }

            return
                (SQ.And(ul.PUID == puid)
                 .And(g.Is_Disabled != true)
                 .And(g.Is_Visibled != false)
                 .OrderBy(g.Order_Index, OrderType.ASC)
                 .Select <Group>());
        }
Exemplo n.º 3
0
        /// <summary>
        /// 移除Group,同时移除Group关联的信息
        /// </summary>
        /// <param name="tran"></param>
        /// <param name="pgids"></param>
        protected bool DoRemoveGroup(QDbTran tran, params int[] pgids)
        {
            if (pgids == null || pgids.Length < 1)
            {
                throw new BCFException("参数异常:(pgids == null || pgids.Length < 1)");
            }

            //-------------------------------------
            //删除圈子
            //

            //清除与Resource这间的连接
            //
            ResourceService.G.RemoveLink(tran, pgids);

            //清除与User这间的连接
            //
            UserService.G.RemoveLink(tran, pgids);

            GroupM g = new GroupM();

            g.Where(g.PGID.In(pgids)).Delete(tran);

            return(true);
        }
Exemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="group"></param>
        /// <param name="tran"></param>
        /// <returns></returns>
        protected bool DoModifyGroup(T group, QDbTran tran)
        {
            GroupM g = new GroupM();

            g.Bind(group);
            g.PGID.IsInc = false;

            if (group.R_PGID < 1)
            {
                g.R_PGID.IsInc = false;
            }

            if (group.P_PGID == 0)
            {
                g.P_PGID.IsInc = false;
            }

            if (group.Order_Index == 0)
            {
                g.Order_Index.IsInc = false;
            }

            g.Create_Time.IsInc = false;
            g.Last_Update.Value = DateTime.Now;

            return(g.Where(g.PGID == group.PGID).Update(tran));
        }
Exemplo n.º 5
0
        protected bool DoRemoveGroup(int p_pgid, QDbTran tran)
        {
            if (p_pgid == 0)
            {
                throw new BCFException("参数异常:(p_pgid == 0)");
            }

            //-------------------------------------
            //删除圈子
            //
            GroupM g = new GroupM();

            QView lkidView = g.Where(g.P_PGID == p_pgid).SubSelect(g.PGID);

            //1. 清除与Resource这间的连接
            //
            ResourceService.G.RemoveLink(lkidView, tran);

            //2. 清除与User这间的连接
            //
            UserService.G.RemoveLink(lkidView, tran);

            //3. 删除圈子
            //
            g.Where(g.P_PGID == p_pgid).Delete(tran);

            return(true);
        }
Exemplo n.º 6
0
        public DataTable GetInLinked(int rsid)
        {
            if (rsid < 1)
            {
                return(null);
            }

            Resource_LinkedM rl = new Resource_LinkedM();
            GroupM           g  = new GroupM();
            UserM            u  = new UserM();

            g.IncludeAll(false);
            g.CN_Name.As("LK_OBJT_Name").IsInc = true;
            u.IncludeAll(false);
            u.CN_Name.As("LK_OBJT_Name").IsInc = true;

            DataTable dt1 = rl.InnerJoin(u).On(rl.LK_OBJT_ID == u.PUID)
                            .And(rl.RSID == rsid).And(rl.LK_OBJT == User.LK_OBJT)
                            .Select();

            rl = new Resource_LinkedM();

            DataTable dt2 = rl.InnerJoin(g).On(rl.LK_OBJT_ID == g.PGID)
                            .And(rl.RSID == rsid)
                            .And(rl.LK_OBJT == Group.LK_OBJT)
                            .And(g.R_PGID != Package.DEFINE)
                            .Select();

            foreach (DataRow row in dt2.Rows)
            {
                dt1.Rows.Add(row.ItemArray);
            }

            return(dt1);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 获取组
        /// </summary>
        /// <param name="joinTable"></param>
        /// <param name="incDisabled"></param>
        /// <param name="incUnVisible"></param>
        /// <param name="p_pgids"></param>
        /// <returns></returns>
        protected DataTable DoGetGroups(QTable joinTable, bool incDisabled, bool incUnVisible, params int[] p_pgids)
        {
            if (p_pgids == null || p_pgids.Length < 1)
            {
                return(null);
            }

            //-------------------------------------
            GroupM g  = new GroupM();
            SQuery SQ = new SQuery();

            SQ.From(g.NoLock());

            if (joinTable != null)
            {
                SQ.InnerJoin(joinTable.NoLock()).On(g.PGID == joinTable["PGID"]);
            }

            SQ.Where(g.P_PGID.In(p_pgids));

            if (incDisabled == false)
            {
                SQ.And(g.Is_Disabled != 1);
            }

            if (incUnVisible == false)
            {
                SQ.And(g.Is_Visibled != 0);
            }

            return(SQ.OrderBy(g.Order_Index)
                   .Select());
        }
Exemplo n.º 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pgCode">代码模式:3301|33%|33__01%</param>
        /// <param name="incDisabled"></param>
        /// <param name="incUnVisible"></param>
        /// <returns></returns>
        private SQuery GetUsersQuery(string pgCode, bool incDisabled, bool incUnVisible)
        {
            UserM        u  = new UserM();
            User_LinkedM ul = new User_LinkedM();
            GroupM       g  = new GroupM();

            ul.IncludeAll(false);
            ul.LK_OBJT_ID.IsInc  = true;
            ul.LK_OBJT_ID.AsName = "PGID";

            SQuery SQ = NewSQ();

            SQ.From(u)
            .InnerJoin(ul)
            .On(u.PUID == ul.PUID).And(ul.LK_OBJT == Group.LK_OBJT)
            .InnerJoin(g)
            .On(ul.LK_OBJT_ID == g.PGID)
            .Where(g.PG_Code.Like(pgCode));

            if (incDisabled == false)
            {
                SQ.And(u.Is_Disabled != true);
            }

            if (incUnVisible == false)
            {
                SQ.And(u.Is_Visibled != false);
            }

            return(SQ);
        }
Exemplo n.º 9
0
        //---------------------------------------------

        #endregion

        /// <summary>
        /// 通过PGID获取PG_Code
        /// </summary>
        /// <param name="pgid">PGID</param>
        /// <returns>PG_Code</returns>
        public string PGIDToCode(int pgid)
        {
            GroupM g = new GroupM();

            return(g.NoLock()
                   .Where(g.PGID == pgid)
                   .SelectValue <string>(g.PG_Code, null));
        }
Exemplo n.º 10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pgid"></param>
        /// <returns></returns>
        public bool Exists(int pgid)
        {
            if (pgid == 0)
            {
                return(false);
            }

            GroupM g = new GroupM();

            return(g.NoLock().Where(g.PGID == pgid).Exists());
        }
Exemplo n.º 11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pgidS"></param>
        /// <returns></returns>
        protected List <T> DoGetGroups(params int[] pgidS)
        {
            GroupM g = new GroupM();

            g.Where(g.Is_Visibled != 0);

            if (pgidS.Length > 0)
            {
                g.And(g.PGID.In(pgidS));
            }

            return(g.Select <T>());
        }
Exemplo n.º 12
0
        /// <summary>
        /// 通过PG_Code获取PGID
        /// </summary>
        /// <param name="code">PG_Code</param>
        /// <returns>PGID</returns>
        public int CodeToPGID(string code)
        {
            GroupM g = new GroupM();

            g.Where(g.PG_Code == code);

            if (DEFINE_VALUE > 0)
            {
                g.And(g.R_PGID == DEFINE_VALUE);
            }

            return(g.NoLock().SelectValue <int>(g.PGID, 0));
        }
Exemplo n.º 13
0
        /// <summary>
        /// 是否存有组(@列=值)
        /// </summary>
        /// <param name="col">列</param>
        /// <param name="val">值</param>
        /// <returns></returns>
        public bool Exists(QColumn col, int val)
        {
            GroupM g = new GroupM();

            g.Where(col == val);

            if (DEFINE_VALUE > 0)
            {
                g.And(g.R_PGID == DEFINE_VALUE);
            }

            return(g.NoLock().Exists());
        }
Exemplo n.º 14
0
        /// <summary>
        /// 清除与某一类组之间的关联
        /// </summary>
        /// <param name="puid">用户ID</param>
        /// <param name="groupDefine">组定义</param>
        /// <param name="tran">事务</param>
        /// <returns>是否成功</returns>
        public static bool ClearGroupLinked(int puid, int groupDefine, QDbTran tran)
        {
            GroupM g     = new GroupM();
            QView  pgidS = g.Where(g.R_PGID == groupDefine).SubSelect(g.PGID);

            User_LinkedM ul = new User_LinkedM();

            //清理,与用户之间的关联
            //
            return(ul.Where(ul.LK_OBJT_ID.In(pgidS))
                   .And(ul.LK_OBJT == Group.LK_OBJT)
                   .And(ul.PUID == puid)
                   .Delete(tran));
        }
Exemplo n.º 15
0
        /// <summary>
        /// 获取所有组
        /// </summary>
        /// <returns></returns>
        protected List <T> DoGetGroups()
        {
            GroupM g = new GroupM();

            g.Where(g.Is_Visibled != 0);

            if (DEFINE_VALUE > 0)
            {
                g.And(g.R_PGID == DEFINE_VALUE);
            }

            return(g.NoLock()
                   .OrderBy(g.Order_Index)
                   .Select <T>());
        }
Exemplo n.º 16
0
        /// <summary>
        /// 是否存有子级
        /// </summary>
        /// <param name="pgid">组PGID</param>
        /// <param name="incDisabled">是否包括禁用的</param>
        /// <param name="incUnVisible">是否包括不可见的</param>
        /// <returns></returns>
        public bool ExistsChildern(int pgid, bool incDisabled, bool incUnVisible)
        {
            GroupM g = new GroupM();

            g.Where(g.P_PGID == pgid);

            if (incDisabled == false)
            {
                g.And(g.Is_Disabled != 1);
            }

            if (incUnVisible == false)
            {
                g.And(g.Is_Visibled == 1);
            }

            return(g.NoLock().Exists());
        }
Exemplo n.º 17
0
        /// <summary>
        /// 获取用户相关的包
        /// </summary>
        /// <param name="puid"></param>
        /// <param name="packageIds"></param>
        /// <returns></returns>
        public List <Package> GetInUserPackages(int puid, params int[] packageIds)
        {
            var        resList = GetInUserResources(puid, packageIds);
            List <int> IDs     = new List <int>();

            foreach (var r in resList)
            {
                if (IDs.Contains(r.PGID) == false)
                {
                    IDs.Add(r.PGID);
                }
            }

            GroupM m = new GroupM();

            return(m.Where(m.PGID.In(IDs))
                   .OrderBy(m.Order_Index, OrderType.ASC).Select <Package>());
        }
Exemplo n.º 18
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="group"></param>
        /// <param name="tran"></param>
        /// <returns></returns>
        protected int DoAppendGroup(T group, QDbTran tran)
        {
            if (group == null)
            {
                return(0);
            }

            //是否存在@P_PGID的组
            //
            if (group.P_PGID > 0)
            {
                if (this.Exists(group.P_PGID) == false)
                {
                    return(0);
                }
            }
            else if (DEFINE_VALUE > 0)
            {
                group.P_PGID = DEFINE_VALUE;
            }


            // 如果有定义值,则根据定义值修改R_PGID
            //
            if (DEFINE_VALUE > 0)
            {
                group.R_PGID = DEFINE_VALUE;
            }

            group.Create_Time = DateTime.Now;
            group.Last_Update = group.Create_Time;


            GroupM g = new GroupM();

            g.Bind(group);

            g.Insert(true, tran);

            return(g.INSERTED_ID);
        }
Exemplo n.º 19
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="disable"></param>
        /// <param name="pgids"></param>
        /// <returns></returns>
        protected bool DoDisableGroup(bool disable, params int[] pgids)
        {
            if (pgids == null || pgids.Length < 1)
            {
                throw new BCFException("参数异常:(pgids == null || pgids.Length < 1)");
            }

            //-------------------------------------
            GroupM g = new GroupM();

            g.Is_Disabled.Value = disable;
            g.Last_Update.Value = DateTime.Now;

            g.Where(g.PGID.In(pgids));

            if (DEFINE_VALUE > 0)
            {
                g.And(g.R_PGID == DEFINE_VALUE);
            }

            //------------------------------------------------
            return(g.Update());
        }
Exemplo n.º 20
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="puid"></param>
        /// <param name="incDisabled"></param>
        /// <param name="forView"></param>
        /// <returns></returns>
        public SQuery GetInGroupsSQ(int puid, bool incDisabled, bool forView)
        {
            GroupM       g  = new GroupM();
            User_LinkedM ul = new User_LinkedM();

            SQuery SQ = new SQuery();

            ul.IncludeAll(false);

            if (forView == true)
            {
                g.IncludeAll(false);
                g.PGID.IsInc = true;
            }

            SQ.From(g.NoLock())
            .InnerJoin(ul).On(g.PGID == ul.LK_OBJT_ID)
            .Where(ul.PUID == puid);

            if (incDisabled == false)
            {
                SQ.And(g.Is_Disabled != 1);
            }

            if (DEFINE_VALUE > 0)
            {
                SQ.And(g.R_PGID == DEFINE_VALUE.ToString());
            }

            if (forView == false)
            {
                SQ.OrderBy(g.Order_Index);
            }

            return(SQ);
        }
Exemplo n.º 21
0
        /// <summary>
        /// 存在多少具有相同PG_Code的Group
        /// </summary>
        /// <param name="pgCode">PG_Code值</param>
        /// <returns>多少</returns>
        public static int ExistsPGCode(string pgCode)
        {
            GroupM g = new GroupM();

            return(g.Where(g.PG_Code == pgCode).Count());
        }
Exemplo n.º 22
0
        //-----------------------------------------------
        /// <summary>
        ///
        /// </summary>
        /// <param name="pgid"></param>
        /// <returns></returns>
        protected T DoGetGroup(int pgid)
        {
            GroupM g = new GroupM();

            return(g.Where(g.PGID == pgid).SelectOne <T>());
        }
Exemplo n.º 23
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pgCode"></param>
        /// <returns></returns>
        protected T DoGetGroup(string pgCode)
        {
            GroupM g = new GroupM();

            return(g.Where(g.PG_Code == pgCode).SelectOne <T>());
        }