public JsonResult SaveDept(string data) { try { SysDepartment model = Newtonsoft.Json.JsonConvert.DeserializeObject <SysDepartment>(data); var allDept = _deptManager.GetAllDept(CurrentTenant.TenantId); int parentId = model.ParentId; string levelPath = model.DeptName; while (parentId != 0) { var tmp = allDept.FirstOrDefault(p => p.DeptId == parentId); if (tmp != null) { levelPath = tmp.DeptName + "/" + levelPath; } parentId = tmp.ParentId; } model.LevelPath = levelPath; if (model.DeptId == 0) { model.CreateTime = DateTime.Now; model.CreateUser = 0; model.TenantId = CurrentTenant.TenantId; //新增 _deptManager.AddDept(model); return(Json(new { result = 1, content = RetechWing.LanguageResources.Common.SaveSuccess }, JsonRequestBehavior.AllowGet)); } SysDepartment dept = _deptManager.GetDeptById(model.DeptId); if (model == null) { return(Json(new { result = 0, content = RetechWing.LanguageResources.TenantUI.TenantPost.CanNotFindDept }, JsonRequestBehavior.AllowGet)); } if (dept.TenantId != CurrentTenant.TenantId) { return(Json(new { result = 0, content = RetechWing.LanguageResources.TenantUI.TenantPost.CanNotFindDept }, JsonRequestBehavior.AllowGet)); } List <int> deptIds = new List <int>(); if (model.DeptId > 0) { deptIds.Add(model.DeptId); GetChildDeptIds(model.DeptId, _deptManager.GetAllDept(CurrentTenant.TenantId), deptIds); } if (deptIds.Contains(model.ParentId)) { return(Json(new { result = 0, content = RetechWing.LanguageResources.TenantUI.TenantPost.FatherCanNotSub }, JsonRequestBehavior.AllowGet)); } dept.DeptCode = model.DeptCode; dept.DeptName = model.DeptName; dept.ParentId = model.ParentId; dept.DeptDesc = model.DeptDesc; dept.LevelPath = model.LevelPath; _deptManager.UpdateDept(dept); return(Json(new { result = 1, content = RetechWing.LanguageResources.Common.SaveSuccess }, JsonRequestBehavior.AllowGet)); } catch { return(Json(new { result = 0, content = RetechWing.LanguageResources.Common.SaveFailed }, JsonRequestBehavior.AllowGet)); } }