MenuController.cs 2.9 KB

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