Commit 83f6f597 by wyc

菜单管理

parent 3dfbcb9b
using System;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
using Performance.DtoModels;
using Performance.DtoModels.Request;
using Performance.Services;
using System;
using System.Collections.Generic;
namespace Performance.Api.Controllers
{
......@@ -35,9 +36,11 @@ public ApiResponse<List<MenuResponse>> MenuList()
/// <returns></returns>
[Route("system/menu")]
[HttpPost]
public ApiResponse GetSystemMenu()
public ApiResponse<List<MenuResponse>> GetSystemMenu()
{
throw new NotImplementedException();
var getSystemMenu = _menuService.GetSystemMenu();
return new ApiResponse<List<MenuResponse>>(ResponseType.OK, getSystemMenu);
}
/// <summary>
......@@ -46,9 +49,9 @@ public ApiResponse GetSystemMenu()
/// <returns></returns>
[Route("system/menu/add")]
[HttpPost]
public ApiResponse AddSystemMenu()
public ApiResponse AddSystemMenu([FromBody] MenuRequest menuRequest)
{
throw new NotImplementedException();
return _menuService.AddSystemMenu(menuRequest);
}
/// <summary>
......@@ -57,9 +60,9 @@ public ApiResponse AddSystemMenu()
/// <returns></returns>
[Route("system/menu/update")]
[HttpPost]
public ApiResponse UpdateSystemMenu()
public ApiResponse UpdateSystemMenu([FromBody] MenuRequest menuRequest)
{
throw new NotImplementedException();
return _menuService.UpdateSystemMenu(menuRequest);
}
/// <summary>
......@@ -68,9 +71,9 @@ public ApiResponse UpdateSystemMenu()
/// <returns></returns>
[Route("system/menu/delete")]
[HttpPost]
public ApiResponse DeleteSystemMenu()
public ApiResponse DeleteSystemMenu(int menuID)
{
throw new NotImplementedException();
return _menuService.DeleteSystemMenu(menuID);
}
/// <summary>
......@@ -79,9 +82,9 @@ public ApiResponse DeleteSystemMenu()
/// <returns></returns>
[Route("system/menu/setrole")]
[HttpPost]
public ApiResponse SetRoleSystemMenu()
public ApiResponse SetRoleSystemMenu(int menuID, int roleID)
{
throw new NotImplementedException();
return _menuService.SetRoleSystemMenu(menuID, roleID);
}
#endregion
......
......@@ -2241,25 +2241,25 @@
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.MenuController.AddSystemMenu">
<member name="M:Performance.Api.Controllers.MenuController.AddSystemMenu(Performance.DtoModels.Request.MenuRequest)">
<summary>
新增/新增子级
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.MenuController.UpdateSystemMenu">
<member name="M:Performance.Api.Controllers.MenuController.UpdateSystemMenu(Performance.DtoModels.Request.MenuRequest)">
<summary>
修改
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.MenuController.DeleteSystemMenu">
<member name="M:Performance.Api.Controllers.MenuController.DeleteSystemMenu(System.Int32)">
<summary>
删除
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.MenuController.SetRoleSystemMenu">
<member name="M:Performance.Api.Controllers.MenuController.SetRoleSystemMenu(System.Int32,System.Int32)">
<summary>
设置角色
</summary>
......
......@@ -2304,6 +2304,36 @@
总人数
</summary>
</member>
<member name="P:Performance.DtoModels.Request.MenuRequest.ParentID">
<summary>
父级菜单ID
</summary>
</member>
<member name="P:Performance.DtoModels.Request.MenuRequest.MenuName">
<summary>
菜单名称
</summary>
</member>
<member name="P:Performance.DtoModels.Request.MenuRequest.MenuUrl">
<summary>
菜单Url
</summary>
</member>
<member name="P:Performance.DtoModels.Request.MenuRequest.MenuIcon">
<summary>
菜单图标
</summary>
</member>
<member name="P:Performance.DtoModels.Request.MenuRequest.States">
<summary>
菜单状态 1 启用 2禁用
</summary>
</member>
<member name="P:Performance.DtoModels.Request.MenuRequest.Sort">
<summary>
排序
</summary>
</member>
<member name="P:Performance.DtoModels.Request.SmsCodeRequest.Type">
<summary>
短信验证类型 1 手机号登录 2 其他
......
......@@ -50,6 +50,8 @@ public AutoMapperConfigs()
.ForMember(dest => dest.ID, opt => opt.MapFrom(src => src.MenuID));
CreateMap<sys_menu, MenuResponse>()
.ForMember(dest => dest.MenuID, opt => opt.MapFrom(src => src.ID));
CreateMap<MenuRequest, sys_menu>();
CreateMap<sys_menu, MenuRequest>();
// 绩效 请求
CreateMap<AllotRequest, per_allot>();
......
namespace Performance.DtoModels.Request
{
public class MenuRequest
{
public int ID { get; set; }
/// <summary>
/// 父级菜单ID
/// </summary>
public int ParentID { get; set; }
/// <summary>
/// 菜单名称
/// </summary>
public string MenuName { get; set; }
/// <summary>
/// 菜单Url
/// </summary>
public string? MenuUrl { get; set; }
/// <summary>
/// 菜单图标
/// </summary>
public string? MenuIcon { get; set; }
/// <summary>
/// 菜单状态 1 启用 2禁用
/// </summary>
public int States { get; set; }
/// <summary>
/// 排序
/// </summary>
public int? Sort { get; set; }
}
}
using AutoMapper;
using Performance.DtoModels;
using Performance.DtoModels.Request;
using Performance.EntityModels;
using Performance.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Transactions;
namespace Performance.Services
{
......@@ -13,12 +15,16 @@ public class MenuService : IAutoInjection
{
private readonly IMapper _mapper;
private PerforMenuRepository _menuRepository;
private PerforRolemenuRepository _rolemenuRepository;
public MenuService(
IMapper mapper,
PerforMenuRepository menuRepository)
PerforMenuRepository menuRepository,
PerforRolemenuRepository perforRolemenuRepository)
{
_mapper = mapper;
_menuRepository = menuRepository;
_rolemenuRepository = perforRolemenuRepository;
}
public List<MenuResponse> GetMenuList(int userid)
......@@ -43,5 +49,89 @@ private List<MenuResponse> RecursionFill(List<sys_menu> menuList, int parentId)
}
return null;
}
public List<MenuResponse> GetSystemMenu()
{
var sysMenus = _menuRepository.GetEntities();
return RecursionFill(sysMenus, 0);
}
public ApiResponse AddSystemMenu(MenuRequest menuRequest)
{
try
{
if (menuRequest == null)
throw new PerformanceException("请填写数据");
var data = _mapper.Map<sys_menu>(menuRequest);
_menuRepository.Add(data);
return new ApiResponse(ResponseType.OK);
}
catch (Exception ex)
{
return new ApiResponse(ResponseType.Fail, "添加失败");
}
}
public ApiResponse UpdateSystemMenu(MenuRequest menuRequest)
{
try
{
var data = _menuRepository.GetEntity(w => w.ID == menuRequest.ID);
if (data == null)
throw new PerformanceException("未找到需要修改的数据");
data.ParentID = menuRequest.ParentID;
data.MenuName = menuRequest.MenuName;
data.MenuUrl = menuRequest.MenuUrl;
data.MenuIcon = menuRequest.MenuIcon;
data.States = menuRequest.States;
data.Sort = menuRequest.Sort;
_menuRepository.Update(data);
return new ApiResponse(ResponseType.OK);
}
catch (Exception ex)
{
return new ApiResponse(ResponseType.Fail, "修改失败");
}
}
public ApiResponse DeleteSystemMenu(int menuID)
{
try
{
var datas = _menuRepository.GetEntities(w => w.ID == menuID || w.ParentID == menuID);
if (!datas.Any()) return new ApiResponse(ResponseType.NotFound, "未查到数据");
var menuIdDatas = datas.Select(s => s.ID).ToList();
var roleMenu = _rolemenuRepository.GetEntities(w => menuIdDatas.Contains(w.MenuID));
_menuRepository.RemoveRange(datas.ToArray());
if (roleMenu.Any())
_rolemenuRepository.RemoveRange(roleMenu.ToArray());
return new ApiResponse(ResponseType.OK);
}
catch (Exception ex)
{
return new ApiResponse(ResponseType.Fail, "删除失败");
}
}
public ApiResponse SetRoleSystemMenu(int menuID, int roleID)
{
try
{
var sysMenu = _menuRepository.GetEntity(w => w.ID == menuID);
if (sysMenu != null && sysMenu.ID < 0) return new ApiResponse(ResponseType.NotFound, "未查到菜单信息");
var roleMenu = _rolemenuRepository.GetEntity(w => w.MenuID == menuID && w.RoleID == roleID);
if (roleMenu != null && roleMenu.ID < 0) return new ApiResponse(ResponseType.NotFound, "当前角色已绑定当前菜单");
_rolemenuRepository.Add(new sys_role_menu() { MenuID = menuID, RoleID = roleID });
return new ApiResponse(ResponseType.OK);
}
catch (Exception ex)
{
return new ApiResponse(ResponseType.Fail, "添加失败");
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment