示例#1
0
        /// <summary>
        /// 保存部门权限
        /// </summary>
        /// <param name="departmentid"></param>
        /// <param name="limitids"></param>
        /// <returns></returns>
        public ActionResult SaveUserLimit(int userid, int departmentid, string limitids)
        {
            var json = "{\"ret\":-1,\"msg\":\"参数错误\"}";

            if (userid > 0)
            {
                var result   = ef.hx_DepUserLimit1.Where(a => a.adminUserId == userid).Delete();
                var errorNum = 0;
                if (!string.IsNullOrEmpty(limitids))
                {
                    var arrLimitId = limitids.Split('|');
                    foreach (var item in arrLimitId)
                    {
                        hx_DepUserLimit1 l = new hx_DepUserLimit1();
                        l.adminUserId  = Utils.GetAdmUserID();
                        l.createTime   = DateTime.Now;
                        l.departmentId = departmentid;
                        l.adminUserId  = userid;
                        l.limitId      = int.Parse(item);
                        l.limitType    = 2;

                        ef.hx_DepUserLimit1.Add(l);
                        int id = ef.SaveChanges();
                        if (id < 1)
                        {
                            errorNum += 1;
                        }
                    }
                }
                if (errorNum > 0)
                {
                    json = "{\"ret\":0,\"msg\":\"保存失败\"}";
                }
                else
                {
                    new UserLimitByEF().ClearUserCache(userid);
                    json = "{\"ret\":1,\"msg\":\"保存成功\"}";
                }
            }

            return(Content(json, "text/json"));
        }
示例#2
0
        /// <summary>
        /// 保存部门权限
        /// </summary>
        /// <param name="departmentid"></param>
        /// <param name="limitids"></param>
        /// <returns></returns>
        public ActionResult SaveDepartmentLimit(int departmentid, string limitids)
        {
            var json = "{\"ret\":-1,\"msg\":\"参数错误\"}";

            if (departmentid > 0)
            {
                int uid        = Utils.GetAdmUserID();
                var arrLimitId = limitids.Split('|').ToList();

                var query = (from item in ef.hx_td_department
                             where item.parentpath.StartsWith(ef.hx_td_department.Where(c => c.department_id == departmentid).FirstOrDefault().parentpath)
                             select item.department_id);

                List <int> childDeps = query.ToList();

                //List<int> childDeps = (from item in ef.hx_td_department
                //                       where item.parentpath.StartsWith(ef.hx_td_department.Where(c => c.department_id == departmentid).First().parentpath)
                //                       select item.department_id).ToList();

                //ef.hx_DepUserLimit1.Where(c => childDeps.Contains(Convert.ToInt32(c.limitId)) && !arrLimitId.Contains(c.limitId.ToString())).Delete();

                var query1 = ef.hx_DepUserLimit1.Where(c => childDeps.Contains((int)c.departmentId) && !arrLimitId.Contains(c.limitId.ToString()));
                query1.Delete();


                List <hx_DepUserLimit1> limits = new List <hx_DepUserLimit1>();
                List <string>           litIDs = arrLimitId.Where(c => !ef.hx_DepUserLimit1.Select(d => d.limitId.ToString()).Contains(c)).ToList();
                foreach (var item in litIDs)
                {
                    hx_DepUserLimit1 l = new hx_DepUserLimit1();
                    //l.adminUserId = uid;//Utils.GetAdmUserID();
                    l.createTime   = DateTime.Now;
                    l.departmentId = departmentid;
                    l.limitId      = int.Parse(item);
                    l.limitType    = 1;
                    limits.Add(l);
                }
                ef.hx_DepUserLimit1.AddRange(limits);
                int changeCount = ef.SaveChanges();
                if (changeCount != litIDs.Count)
                {
                    json = "{\"ret\":0,\"msg\":\"保存失败\"}";
                }
                else
                {
                    new UserLimitByEF().ClearChildsDepartmentCacheKey(departmentid);
                    ClearChildsDepartmentLimit(departmentid);
                    json = "{\"ret\":1,\"msg\":\"保存成功\"}";
                }
                //var result = ef.hx_DepUserLimit1.Where(a => a.departmentId == departmentid).Delete();
                //var errorNum = 0;
                //if (!string.IsNullOrEmpty(limitids))
                //{
                //    var arrLimitId = limitids.Split('|');
                //    foreach (var item in arrLimitId)
                //    {
                //        hx_DepUserLimit1 l = new hx_DepUserLimit1();
                //        l.adminUserId = Utils.GetAdmUserID();
                //        l.createTime = DateTime.Now;
                //        l.departmentId = departmentid;
                //        l.limitId = int.Parse(item);
                //        l.limitType = 1;

                //        ef.hx_DepUserLimit1.Add(l);
                //        int id = ef.SaveChanges();
                //        if (id < 1)
                //        {
                //            errorNum += 1;
                //        }
                //    }
                //}
                //if (errorNum > 0)
                //{
                //    json = "{\"ret\":0,\"msg\":\"保存失败\"}";
                //}
                //else
                //{
                //    new UserLimitByEF().ClearChildsDepartmentCacheKey(departmentid);
                //    ClearChildsDepartmentLimit(departmentid);
                //    json = "{\"ret\":1,\"msg\":\"保存成功\"}";
                //}
            }

            return(Content(json, "text/json"));
        }