public IActionResult Delete(string id) { var model = _roleServices.QueryableToEntity(c => c.RoleId == SqlFunc.ToInt64(id)); if (model.RoleType == "admin") { return(BootJsonH((false, PubConst.Role1))); } var user = _userServices.IsAny(c => c.RoleId == SqlFunc.ToInt64(id)); if (user) { return(BootJsonH((false, PubConst.Role3))); } var flag = _roleServices.Update(new Sys_role { RoleId = SqlFunc.ToInt64(id), IsDel = 0, ModifiedBy = UserDtoCache.UserId, ModifiedDate = DateTimeExt.DateTime }, c => new { c.IsDel, c.ModifiedBy, c.ModifiedDate }); if (flag) { _rolemenuServices.Delete(c => c.RoleId == SqlFunc.ToInt64(id)); return(BootJsonH((flag, PubConst.Delete1))); } else { return(BootJsonH((flag, PubConst.Delete2))); } }
public DbResult <bool> Update(Sys_role role, long userId, string[] menuId) { var list = _rolemenuServices.QueryableToList(c => c.RoleId == role.RoleId); string idsu = ""; //数据库中的Id; list.ForEach((m) => { idsu += m.MenuId + ","; }); var arr = idsu.TrimEnd(',').ToSplit(','); //menuId 页面上的菜单Id; role.ModifiedBy = userId; role.ModifiedDate = DateTimeExt.DateTime; //role.RoleType = "#"; string[] pageId = arr.Union(menuId).Except(menuId).ToArray(); //delete string[] dataId = menuId.Union(arr).Except(arr).ToArray(); //insert return(_repository.UseTran(() => { _repository.Update(role); List <long> array = new List <long>(); if (pageId.Any()) { foreach (var item in pageId) { array.Add(list.Where(c => c.RoleId == role.RoleId && c.MenuId == item.ToInt64()).SingleOrDefault().RoleMenuId); } _rolemenuServices.Delete(array.ToArray()); } if (dataId.Any()) { var roleList = new List <Sys_rolemenu>(); foreach (var item in dataId) { roleList.Add(new Sys_rolemenu { CreateBy = userId, MenuId = item.ToInt64(), RoleId = role.RoleId, RoleMenuId = PubId.SnowflakeId }); } _rolemenuServices.Insert(roleList); } })); //if (arr.Count() > menuId.Count()) //{ // //数据库中的数量大于页面传过来的数量就删除 // string[] except; // if (menuId.Count() > arr.Count()) // { // except = menuId.Except(arr).ToArray(); // } // else // { // except = arr.Except(menuId).ToArray(); // } // List<long> array = new List<long>(); // if (except.Any()) // { // foreach (var item in except) // { // array.Add(list.Where(c => c.RoleId == role.RoleId && c.MenuId == item.ToInt64()).SingleOrDefault().RoleMenuId); // } // } // return _repository.UseTran(() => // { // _repository.Update(role); // _rolemenuServices.Delete(array.ToArray()); // }); //} //else //{ // //update/add // return _repository.UseTran(() => // { // _repository.Update(role); // foreach (var item in menuId) // { // var model = _rolemenuServices.QueryableToEntity(c => c.RoleId == role.RoleId && c.MenuId == item.ToInt64()); // if (model.IsNullT()) // { // //add // _rolemenuServices.Insert(new Sys_rolemenu // { // CreateBy = userId, // MenuId = item.ToInt64(), // RoleId = role.RoleId, // RoleMenuId = PubId.SnowflakeId // }); // } // else // { // //update // model.ModifiedBy = userId; // model.ModifiedDate = DateTimeExt.DateTime; // _rolemenuServices.UpdateEntity(model); // } // } // }); //} }