MenuController.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using Masuit.MyBlogs.Core.Common;
  2. using Masuit.MyBlogs.Core.Infrastructure.Services.Interface;
  3. using Masuit.MyBlogs.Core.Models.DTO;
  4. using Masuit.MyBlogs.Core.Models.Entity;
  5. using Masuit.MyBlogs.Core.Models.Enum;
  6. using Masuit.Tools.Systems;
  7. using Microsoft.AspNetCore.Mvc;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. namespace Masuit.MyBlogs.Core.Controllers
  12. {
  13. /// <summary>
  14. /// 菜单管理
  15. /// </summary>
  16. public class MenuController : AdminController
  17. {
  18. /// <summary>
  19. /// 菜单数据服务
  20. /// </summary>
  21. public IMenuService MenuService { get; set; }
  22. /// <summary>
  23. /// 获取菜单
  24. /// </summary>
  25. /// <returns></returns>
  26. public ActionResult GetMenus()
  27. {
  28. var menus = MenuService.GetAll(m => m.ParentId).ThenBy(m => m.Sort).ToList();
  29. return ResultData(menus);
  30. }
  31. /// <summary>
  32. /// 获取菜单类型
  33. /// </summary>
  34. /// <returns></returns>
  35. public ActionResult GetMenuType()
  36. {
  37. var array = Enum.GetValues(typeof(MenuType));
  38. var list = new List<object>();
  39. foreach (Enum e in array)
  40. {
  41. list.Add(new
  42. {
  43. e,
  44. name = e.GetDisplay()
  45. });
  46. }
  47. return ResultData(list);
  48. }
  49. /// <summary>
  50. /// 删除菜单
  51. /// </summary>
  52. /// <param name="id"></param>
  53. /// <returns></returns>
  54. public ActionResult Delete(int id)
  55. {
  56. var menus = MenuService.GetChildrenMenusByParentId(id);
  57. bool b = MenuService.DeleteEntitiesSaved(menus);
  58. return ResultData(null, b, b ? "删除成功" : "删除失败");
  59. }
  60. /// <summary>
  61. /// 保持菜单
  62. /// </summary>
  63. /// <param name="model"></param>
  64. /// <returns></returns>
  65. public ActionResult Save(MenuInputDto model)
  66. {
  67. if (string.IsNullOrEmpty(model.Icon) || !model.Icon.Contains("/"))
  68. {
  69. model.Icon = null;
  70. }
  71. var m = MenuService.GetById(model.Id);
  72. if (m == null)
  73. {
  74. var menu = MenuService.AddEntitySaved(model.Mapper<Menu>());
  75. if (menu != null)
  76. {
  77. return ResultData(menu, true, "添加成功");
  78. }
  79. return ResultData(null, false, "添加失败");
  80. }
  81. Mapper.Map(model, m);
  82. bool b = MenuService.UpdateEntitySaved(m);
  83. return ResultData(null, b, b ? "修改成功" : "修改失败");
  84. }
  85. }
  86. }