using Nirvana.Common;
using Nirvana.Common.ApiBase;
using Nirvana.Data;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YBDevice.Entity;
namespace YBDevice.Service.DBServices
{
///
/// 菜单管理
///
public partial class MenuApp : Repository
{
///
/// 获取菜单列表
///
///
///
public async Task> GetMenuListAsync(int roleId)
{
var currentUser = OperatorProvider.Provider.GetCurrent();
var data = new List();
using (var db = ReadDbContext.GetInstance())
{
var tempquery = db.Queryable(
(m, ra) => new object[] {
JoinType.Left,m.Id==ra.MenuId
})
.Where((m, ra) => ra.RoleId == roleId && m.Status == 1)
;
data =await tempquery.ToListAsync();
}
return data;
}
///
/// 菜单列表
///
///
public async Task> GetListAsync()
{
using (var dbClient = ReadDbContext.GetInstance())
{
var modulequery = dbClient.Queryable();
return await modulequery.OrderBy(x => x.SortCode, OrderByType.Asc).ToListAsync();
}
}
///
/// 删除菜单
///
///
///
///
public async Task DeleteMenuAsync(int id)
{
var currentUser = OperatorProvider.Provider.GetCurrent();
using (var dbClient = ReadDbContext.GetInstance())
{
if (!await dbClient.Queryable().AnyAsync(x => x.Id == id))
{
return new ResultInfo() { code = ResultState.FAIL, message = "此菜单未找到!" };
}
await dbClient.Deleteable().Where(x => x.Id == id).ExecuteCommandAsync();
await dbClient.Deleteable().Where(x => x.ParentId == id).ExecuteCommandAsync();
return new ResultInfo() { code = ResultState.SUCCESS, message = "删除成功!" };
}
}
///
/// 菜单编辑
///
///
///
public async Task SubmitFormAsync(YB_Menu model)
{
var currentUser = OperatorProvider.Provider.GetCurrent();
using (var dbClient = ReadDbContext.GetInstance())
{
if (model.Id == 0)
{
model.CreateTime = DateTime.Now;
model.Status = 1;
await dbClient.Insertable(model).ExecuteCommandAsync();
return new ResultInfo() { code = ResultState.SUCCESS, message = "添加成功!" };
}
else
{
await dbClient.Updateable().SetColumns(x => new YB_Menu
{
ParentId = model.ParentId,
Icon = model.Icon,
SortCode = model.SortCode,
Url = model.Url,
Name = model.Name,
Remark = model.Remark
})
.Where(x => x.Id == model.Id)
.ExecuteCommandAsync();
return new ResultInfo() { code = ResultState.SUCCESS, message = "修改成功!" };
}
}
}
///
/// 详情
///
///
///
public async Task DetailAsync(int id)
{
using (var dbClient = ReadDbContext.GetInstance())
{
return await dbClient.Queryable().FirstAsync(x => x.Id == id);
}
}
}
}