/// <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")); }
/// <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")); }