using Infrastructure;
using Microsoft.AspNetCore.Mvc;
using OpenAuth.App.Permission;
using OpenAuth.App.Permission.Request;
using OpenAuth.Repository;
using OpenAuth.Repository.Domain;
namespace OpenAuth.WebApi.Controllers.Permission
{
///
/// 数据权限控制器
///
[ApiController]
[Route("api/[controller][action]")]
public class BaseDataAuthController : ControllerBase
{
private readonly BaseDataAuthorizeApp _baseDataAuthorizeApp;
///
/// 构造方法
///
/// 数据权限操作接口
public BaseDataAuthController(BaseDataAuthorizeApp baseDataAuthorizeApp)
{
_baseDataAuthorizeApp = baseDataAuthorizeApp;
}
#region 获取数据
///
/// 获取数据权限对应关系数据列表
///
/// 用户或角色主键
/// 1.普通权限 2.自定义表单权限
///
[HttpGet("permission/data/page")]
public async Task>>> GetPageList([FromQuery] BaseDataAuthListReq req)
{
return await _baseDataAuthorizeApp.GetPageList(req);
}
///
/// 获取数据权限数据
///
/// 主键
///
[HttpGet("permission/data/{id}")]
public async Task> GetEntity(string id)
{
var data = await _baseDataAuthorizeApp.GetEntity(id);
return new Response()
{
Result = data,
Message = "success"
};
}
#endregion
#region 提交数据
///
/// 新增数据权限
///
/// 实体数据
///
[HttpPost("permission/data")]
public async Task> AddForm(BaseDataAuthReq entity)
{
// todo 保存的时候,序列化公式
await _baseDataAuthorizeApp.SaveEntity(string.Empty, entity);
return new Response()
{
Result = "新增成功!",
Message = "success"
};
}
///
/// 更新数据权限
///
/// 主键
/// 实体数据
///
[HttpPost("permission/data/{id}")]
public async Task> UpdateForm(string id, BaseDataAuthReq entity)
{
await _baseDataAuthorizeApp.SaveEntity(id, entity);
return new Response()
{
Result = "更新成功!",
Message = "success"
};
}
///
/// 删除数据权限
///
/// 主键
///
[HttpPost("permission/data/{id}")]
public async Task> DeleteForm(string id)
{
await _baseDataAuthorizeApp.DeleteEntity(id);
return new Response()
{
Result = "删除成功!",
Message = "success"
};
}
[HttpGet]
public async Task GetWhereSql(string code)
{
return await _baseDataAuthorizeApp.GetWhereSql(code);
}
[HttpGet]
public async Task> GetEntityByCode(string code)
{
return await _baseDataAuthorizeApp.GetEntityByCode(code);
}
#endregion
}
}