예제 #1
0
        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));
            }
        }