using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
using Yi.Framework.Interface;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
using Yi.Framework.WebCore;
using Yi.Framework.WebCore.AttributeExtend;
using Yi.Framework.WebCore.AuthorizationPolicy;
namespace Yi.Framework.ApiMicroservice.Controllers
{
///
/// 菜单管理
///
[ApiController]
[Route("api/[controller]/[action]")]
public class MenuController: BaseSimpleRdController
{
private IMenuService _iMenuService;
public MenuController(ILogger logger, IMenuService iMenuService):base(logger,iMenuService)
{
_iMenuService = iMenuService;
}
///
/// 动态条件查询全部
///
///
///
[HttpGet]
[Permission("system:menu:query")]
public async Task SelctGetList([FromQuery] MenuEntity menu)
{
return Result.Success().SetData(await _iMenuService.SelctGetList(menu));
}
///
/// 插入
///
///
///
[HttpPost]
public async Task Add(MenuEntity menu)
{
return Result.Success().SetData(await _iMenuService._repository.InsertReturnSnowflakeIdAsync(menu));
}
///
/// 更新
///
///
///
[HttpPut]
public async Task Update(MenuEntity menu)
{
//注意,这里如果是主目录,还需要判断/,需要以/开头
return Result.Success().SetData(await _iMenuService._repository.UpdateIgnoreNullAsync(menu));
}
///
/// 得到树形菜单
///
///
[HttpGet]
public async Task GetMenuTree()
{
return Result.Success().SetData(await _iMenuService.GetMenuTreeAsync());
}
///
/// 根据角色id获取该角色下全部菜单
///
///
///
[HttpGet]
[Route("{id}")]
public async Task GetListByRoleId(long id)
{
return Result.Success().SetData(await _iMenuService.GetListByRoleId(id));
}
}
}