StableVersion4.3/HL_FristAidPlatform_DataBase/SYS/T_SYS_MenuDB.cs

170 lines
7.0 KiB
C#

using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_IDataBase;
using HL_FristAidPlatform_Models;
using SqlSugar;
using System.Collections.Generic;
namespace HL_FristAidPlatform_DataBase
{
public class T_SYS_MenuDB : BaseDB, IT_SYS_Menu
{
public SqlSugarClient db = GetClient();
/// <summary>
/// 增加一条数据
/// </summary>
public T_SYS_Menu Add(T_SYS_Menu menu)
{
//return db.Insert(menu);
T_SYS_Menu model = db.Insertable(menu).IgnoreColumns(it => new { it.ID }).ExecuteReturnEntity();
return model;
}
/// <summary>
/// 删除一条数据
/// </summary>
public bool Dels(dynamic[] ids)
{
return db.Deleteable<T_SYS_Menu>().In(new dynamic[] { ids }).ExecuteCommand() == 1 ? true : false;
}
public T_SYS_Menu Get(long id)
{
return db.Queryable<T_SYS_Menu>().First(it => it.ID == id);
}
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="pageIndex">起始页</param>
/// <param name="pageSize">每页大小</param>
/// <param name="keyWord">查询关键词</param>
/// <param name="systemModuleID">所属系统模块</param>
/// <returns></returns>
public TableModel<T_SYS_MenuModel> GetPageList(int pageIndex, int pageSize, string keyWord, long systemModuleID)
{
int TotalNumber = 0;
TableModel<T_SYS_MenuModel> t = new TableModel<T_SYS_MenuModel>();
var listMode = db.Queryable<T_SYS_Menu, T_SYS_Menu, T_SYS_SystemModule>((Menu, Parent, System) => new object[] {
JoinType.Left,Menu.ParentID==Parent.ID,
JoinType.Left,Menu.SystemModuleID==System.ID,
}).Where((Menu, Parent) => Menu.DeleteFlag == 0).WhereIF(systemModuleID > 0, (Menu, Parent) => Menu.SystemModuleID == systemModuleID).WhereIF(!string.IsNullOrEmpty(keyWord), (Menu, Parent) => Menu.MenuName.Contains(keyWord) || Menu.ShortName.Contains(keyWord))
.Select((Menu, Parent, System) => new T_SYS_MenuModel
{
ID = Menu.ID,
GUID = Menu.GUID.ToString(),
ParentID = Menu.ParentID,
MenuName = Menu.MenuName,
ShortName = Menu.ShortName,
DLLName = Menu.DLLName,
FunctionName = Menu.FunctionName,
Icon = Menu.Icon,
IconData = Menu.IconData,
OrderBy = Menu.OrderBy,
DeleteFlag = Menu.DeleteFlag,
SystemModuleID = Menu.SystemModuleID,
ParentName = Parent.MenuName.ToString(),
SystemModule = System.SystemName,
}).OrderBy((Menu) => Menu.OrderBy).ToPageList(pageIndex, pageSize, ref TotalNumber);
t.Code = 0;
t.PageCount = listMode.Count;
t.TotalNumber = TotalNumber;
t.Data = listMode;
t.Msg = "成功";
return t;
}
/// <summary>
/// 获取列表-无分页
/// </summary>
/// <returns></returns>
public TableModel<T_SYS_Menu> GetList()
{
List<T_SYS_Menu> data = db.Queryable<T_SYS_Menu>().Where(iterator => iterator.DeleteFlag == 0).ToList();
TableModel<T_SYS_Menu> t = new TableModel<T_SYS_Menu>();
t.Code = 0;
t.TotalNumber = data.Count;
t.Data = data;
t.Msg = "成功";
return t;
}
/// <summary>
/// 根据系统模块编号获取列表
/// </summary>
/// <param name="systemModuleID">系统模块编号</param>
/// <returns></returns>
public TableModel<T_SYS_Menu> GetListBySystemModuleID(long systemModuleID)
{
List<T_SYS_Menu> data = db.Queryable<T_SYS_Menu>().Where(it => it.SystemModuleID == systemModuleID && it.DeleteFlag == 0).ToList();
TableModel<T_SYS_Menu> t = new TableModel<T_SYS_Menu>();
t.Code = 0;
t.TotalNumber = data.Count;
t.Data = data;
t.Msg = "成功";
return t;
}
/// <summary>
/// 逻辑删除
/// </summary>
/// <param name="id">编号</param>
/// <param name="deleteFlag">标记:0取消删除 1删除</param>
/// <returns></returns>
public int LogicalDelete(long id, int deleteFlag)
{
//return db.Updateable<T_SYS_Menu>().UpdateColumns(it => new T_SYS_Menu() { DeleteFlag = deleteFlag }).Where(it => it.ID == id).ExecuteCommand();
//return db.Updateable<T_SYS_Menu>().SetColumns(it => it.DeleteFlag == deleteFlag).Where(it => it.ID == id).ExecuteCommand();
//return db.Updateable<T_SYS_Menu>(it => new T_SYS_Menu() { DeleteFlag = deleteFlag }).Where(it => it.ID == id).ExecuteCommand();
return db.Updateable<T_SYS_Menu>(it => it.DeleteFlag == deleteFlag).Where(it => it.ID == id).ExecuteCommand();
}
/// <summary>
/// 更新一条数据
/// </summary>
public bool Update(T_SYS_Menu menu)
{
return db.Updateable(menu).IgnoreColumns(ignoreAllNullColumns: true).WhereColumns(it => new { it.ID }).ExecuteCommand() == 1 ? true : false;
}
/// <summary>
/// 根据用户编号获取所拥有的菜单权限
/// </summary>
/// <param name="userID">用户编号</param>
/// <param name="systemModuleID">所属系统模块-1表示不分系统模块查询菜单即查询出所有得系统菜单</param>
/// <returns></returns>
public TableModel<T_SYS_Menu> GetListByUserID(long userID, long systemModuleID)
{
TableModel<T_SYS_Menu> t = new TableModel<T_SYS_Menu>();
var listMode = db.Queryable<T_SYS_Menu, T_SYS_RoleMenu, T_SYS_UserRole>((Menu, RoleMenu, UserRole) => new object[] {
JoinType.Left,RoleMenu.MenuID==Menu.ID,
JoinType.Left,RoleMenu.RoleID==UserRole.RoleID,
}).Where((Menu, RoleMenu, UserRole) => UserRole.UserID == userID && Menu.DeleteFlag == 0 && RoleMenu.DeleteFlag == 0 && UserRole.DeleteFlag == 0).WhereIF(systemModuleID > 0, (Menu, RoleMenu, UserRole) => Menu.SystemModuleID == systemModuleID).Select((Menu, RoleMenu, UserRole) => new T_SYS_Menu
{
ID = Menu.ID,
GUID = Menu.GUID.ToString(),
ParentID = Menu.ParentID,
MenuName = Menu.MenuName,
ShortName = Menu.ShortName,
DLLName = Menu.DLLName,
FunctionName = Menu.FunctionName,
Icon = Menu.Icon,
IconData = Menu.IconData,
OrderBy = Menu.OrderBy,
DeleteFlag = Menu.DeleteFlag,
}).PartitionBy(Menu => new { Menu.ID }).Take(1).OrderBy((Menu) => Menu.OrderBy).ToList();
t.Code = 0;
t.PageCount = listMode.Count;
t.TotalNumber = listMode.Count;
t.Data = listMode;
t.Msg = "成功";
return t;
}
}
}