public ApiReponse <object> SetRolePermission(SetRolePermissionDto input) { var datas = _roleMenu.GetAllList(item => item.RoleId == input.RoleId); if (datas.Count > 0) { _roleMenu.Delete(item => item.RoleId == input.RoleId); } if (input.MenuIds.Count == 0) { return(new ApiReponse <object>("设置成功")); } var models = new List <RolePermissionDto>(); var list = new List <MkoRoleMenu>(); RolePermissionDto model = null; input.MenuIds.ForEach(item => { model = new RolePermissionDto(); var operateArray = item.Split('_'); if (Convert.ToInt32(operateArray.LastOrDefault()) == 0) { if (models.FirstOrDefault(m => m.MenuId == Convert.ToInt32(operateArray.FirstOrDefault())) != null) { return; } model.MenuId = Convert.ToInt32(operateArray.FirstOrDefault()); models.Add(model); } else { var data = models.FirstOrDefault(m => m.MenuId == Convert.ToInt32(operateArray.FirstOrDefault())); if (data == null) { model.MenuId = Convert.ToInt32(operateArray.FirstOrDefault()); model.Operates.Add(Convert.ToInt32(operateArray.LastOrDefault())); models.Add(model); } else { data.Operates.Add(Convert.ToInt32(operateArray.LastOrDefault())); } } }); models.ForEach(dy => { var menu = _menu.SingleOrDefault(item => item.Id == dy.MenuId); if (menu == null) { return; } var roleMenu = new MkoRoleMenu { MenuId = dy.MenuId, RoleId = input.RoleId, Operates = JsonConvert.SerializeObject(menu.ParentId == 0 ? new List <int>() : dy.Operates) }; list.Add(roleMenu); }); var result = _roleMenu.BatchInsert(list); if (!result) { throw new MarukoException("设置失败"); } return(new ApiReponse <object>("设置成功")); }
public ApiReponse <object> SetRolePermission(SetRolePermissionDto model) { return(_crud.SetRolePermission(model)); }