using Model.ModelVm.SysVm;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;
using WMS.Entity.Context;
using WMS.Entity.SysEntity;
using WMS.IDAL.ISysInterface;
using SQLitePCL;
using Model.ModelDto.SysDto;
using Dm;
using System.Security.Cryptography;
using System.Security.Policy;
using System.Linq;
namespace WMS.DAL.SysInfrastructure
{
///
/// 菜单仓储实践
///
public class MenuRepository : BaseRepository, IMenuRepository
{
private static readonly SqlSugarScope Db = DataContext.Db;
public MenuRepository() : base(Db)
{
}
///
/// 获取菜单信息列表
///
/// sql语句
///
public List GetMenuList(string str = "")
{
List menulist = Db.Ado.SqlQuery(str);
return menulist;
}
///
/// 获取模块菜单列表
///
///
public List GetParentMenuList()
{
string str = "select MenuNo,ParentNo,MenuName from SysFunctionMenu where IsDel = @isdel and IsEnable = @isenable";
List menulist = Db.Ado.SqlQuery(str, new
{
isdel = "0", //是否删除
isenable = "0" //是否可用
});
return menulist;
}
///
/// 获取菜单信息列表
///
/// sql语句
///
public List GetMenuDtoList(string str = "")
{
List menulist = Db.Ado.SqlQuery(str);
return menulist;
}
///
/// 根据id获取菜单信息列表
///
/// 菜单id
///
public SysFunctionMenu GetMenuListById(int menuid)
{
string str = "select * from SysFunctionMenu where IsDel = @isdel and Id = @id and IsEnable = @isenable ";
SysFunctionMenu menulist = Db.Ado.SqlQuerySingle(str, new
{
isdel = "0", //是否删除
isenable = "0", //是否公开
id = menuid //id
});
return menulist;
}
///
/// 根据编号获取菜单信息列表
///
/// sql
///
public List GetMenuListByNo(string str)
{
List menulist = Db.Ado.SqlQuery(str);
return menulist;
}
///
/// 新增菜单信息
///
/// 菜单实体模型
///
public async Task InsertMenu(SysFunctionMenu menu)
{
//string str = "insert SysFunctionMenu values(@menuno, @menuname, @parentno, @ord, @url, @level, @isenable, @demo, @isdel, @createtime, @createuser, null, null)";
//int i = await Db.Ado.ExecuteCommandAsync(str, new
//{
// menuno = menu.MenuNo, //菜单号
// menuname = menu.MenuName, //菜单名称
// parentno = menu.ParentNo, //父级菜单号
// ord = menu.Ord, //显示顺序
// url = menu.Url, //路径
// level = menu.Level, //层级
// isenable = "0", //是否可用
// demo = menu.Demo, //备注
// isdel = "0", //是否删除
// createtime = Db.GetDate(), //创建时间
// createuser = menu.CreateUser //创建人
//});
menu.IsEnable = "0";
menu.IsDel = "0";
menu.CreateTime = Db.GetDate();
int i = await Db.Insertable(menu).ExecuteCommandAsync();
return i;
}
///
/// 删除菜单信息
///
/// 菜单实体模型
///
public async Task DeleteMenu(SysFunctionMenu menu)
{
string str = "update SysFunctionMenu set IsDel = @isdel, UpdateTime = @updatetime, UpdateUser = @updateuser where MenuNo in (select MenuNo from SysFunctionMenu where MenuNo = @menuno or ParentNo = @menuno or ParentNo in (select MenuNo from SysFunctionMenu where ParentNo = @menuno))";
int i = await Db.Ado.ExecuteCommandAsync(str, new
{
isdel = "1", //是否删除
updatetime = Db.GetDate(), //更改时间
updateuser = menu.UpdateUser, //更改人
menuno = menu.MenuNo//id
});
//menu.IsDel = "1";
//int i = await Db.Updateable(menu).ExecuteCommandAsync();
return i;
}
///
/// 编辑菜单信息
///
/// 菜单实体模型
///
public async Task UpdateMenu(SysFunctionMenu menu)
{
string str = "Update SysFunctionMenu set MenuName = @menuname, ParentNo = @parentno, Ord = @ord, Url = @url, Level = @level, IsEnable = @isenable, Demo = @demo, UpdateTime = @updatetime, UpdateUser = @updateuser where Id = @id";
int i = await Db.Ado.ExecuteCommandAsync(str, new
{
menuname = menu.MenuName, //菜单名称
parentno = menu.ParentNo, //父级菜单号
ord = menu.Ord, //显示顺序
url = menu.Url, //路径
level = menu.Level, //层级
isenable = "0", //是否可用
demo = menu.Demo, //备注
updatetime = Db.GetDate(), //创建时间
updateuser = menu.UpdateUser, //创建人
id = menu.Id //id
});
//menu.UpdateTime = Db.GetDate();
//menu.IsEnable = "0";
//int i = await Db.Updateable(menu).ExecuteCommandAsync();
return i;
}
///
/// 根据父级菜单号获取菜单信息
///
/// 菜单号
///
public List GetMenuByParentNo(string MenuNo)
{
string str = "select * from SysFunctionMenu where IsDel = @isdel and IsEnable = @isenable ";
List menulist;
//判断菜单号是否为空
if (!string.IsNullOrEmpty(MenuNo))
{
str += " and ParentNo = @menuno";
menulist = Db.Ado.SqlQuery(str, new
{
isdel = "0", //是否删除
isenable = "0", //是否公开
menuno = MenuNo //菜单号
});
}
else
{
str = "select * from SysFunctionMenu where IsDel = '3' and IsEnable = '0'";
menulist = Db.Ado.SqlQuery(str);
}
return menulist;
}
}
}