using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics.Eventing.Reader; using System.Linq; using System.Reflection; using System.Text; using Mysqlx.Crud; using SqlSugar; using System.Threading.Tasks; using IoTIntegrationPlatform.Interface; using IoTIntegrationPlatform.Model.Model; using IoTIntegrationPlatform.Model.common; using IoTIntegrationPlatform.Common; namespace IoTIntegrationPlatform.Services { public class AdminService : IAdminService { private ISqlSugarClient db { get; } public AdminService(ISqlSugarClient _db) { db = _db; } #region 类句柄操作 private IntPtr handle; private bool disposed = false; //关闭句柄 [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass"), System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1401:PInvokesShouldNotBeVisible"), System.Runtime.InteropServices.DllImport("Kernel32")] public extern static Boolean CloseHandle(IntPtr handle); /// /// 释放对象资源 /// public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } /// /// 释放对象资源 /// /// protected virtual void Dispose(bool disposing) { if (!this.disposed) { if (handle != IntPtr.Zero) { CloseHandle(handle); handle = IntPtr.Zero; } } disposed = true; } ~AdminService() { Dispose(false); } #endregion #region 角色管理 /// /// 获取角色信息 /// /// /// /// /// public AdminRole GetRoleInfo(BaseParm parm) { AdminRole model = new AdminRole(); try { model = db.Queryable() .Where(it => it.IsValid == true) .WhereIF(!string.IsNullOrEmpty(parm.Name), it => it.RoleName.Equals(parm.Name)) .WhereIF(!string.IsNullOrEmpty(parm.Code), it => it.RoleCode == parm.Code) .First(); } catch (Exception ex) { Logging.Error(ex, ex.Message); } return model; } /// /// 获取角色列表 /// /// /// /// public List GetRoleList(BaseParm parm, ref int page) { List list = new List(); try { list = db.Queryable() .Where(it => it.IsValid == true) .WhereIF(!string.IsNullOrEmpty(parm.Code), it => it.RoleCode.Equals(parm.Code)) .WhereIF(!string.IsNullOrEmpty(parm.Name), it => it.RoleName.Contains(parm.Name)) .ToPageList(parm.PageIndex, parm.PageSize, ref page); } catch (Exception ex) { Logging.Error(ex, ex.Message); } return list; } /// /// 添加管理-角色 /// /// /// public bool AddRole(AdminRole model) { bool result = false; try { model.CreateTime = DateTime.Now; model.UpdateTime = DateTime.Now; model.IsValid = true; int row = db.Insertable(model).ExecuteCommand(); if (row > 0) { result = true; } } catch (Exception ex) { Logging.Error(ex, "添加角色"); } return result; } /// /// 编辑管理-角色 /// /// /// public bool UpdateRole(AdminRole model) { bool result = false; try { var row = db.Updateable(model).IgnoreColumns(it => new { it.Id, it.CreateTime, it.IsValid }) .Where(it => it.Id == model.Id) .ExecuteCommand(); if (row > 0) { result = true; } } catch (Exception ex) { Logging.Error(ex, ex.Message); } return result; } /// /// 删除管理-角色 /// /// /// public bool DeleteRole(BaseParm parm) { bool result = false; try { int row = db.Updateable() .SetColumns(it => new AdminRole { UpdateTime = DateTime.Now, IsValid = false }) .Where(it => it.Id == parm.Id) .ExecuteCommand(); if (row > 0) { result = true; } } catch (Exception ex) { Logging.Error(ex, ex.Message); } return result; } #endregion #region 菜单管理 /// /// 获取菜单信息 /// /// /// /// /// public AdminMenu GetMenuInfo(BaseParm parm) { AdminMenu model = new AdminMenu(); try { model = db.Queryable() .Where(it => it.IsValid == true) .WhereIF(!string.IsNullOrEmpty(parm.Name), it => it.MenuName.Equals(parm.Name)) .WhereIF(!string.IsNullOrEmpty(parm.Code), it => it.MenuCode == parm.Code) .First(); } catch (Exception ex) { Logging.Error(ex, ex.Message); } return model; } /// /// 获取菜单列表 /// /// /// /// public List GetMenuList(BaseParm parm, ref int page) { List list = new List(); try { list = db.Queryable() .Where(it => it.IsValid == true) .WhereIF(!string.IsNullOrEmpty(parm.Code), it => it.MenuCode.Equals(parm.Code)) .WhereIF(!string.IsNullOrEmpty(parm.Name), it => it.MenuName.Contains(parm.Name)) .ToPageList(parm.PageIndex, parm.PageSize, ref page); } catch (Exception ex) { Logging.Error(ex, ex.Message); } return list; } /// /// 添加管理-菜单 /// /// /// public bool AddMenu(AdminMenu model) { bool result = false; try { model.CreateTime = DateTime.Now; model.UpdateTime = DateTime.Now; model.IsValid = true; int row = db.Insertable(model).ExecuteCommand(); if (row > 0) { result = true; } } catch (Exception ex) { //Log4NetHelper.WriteLog(ex.Message); Logging.Error(ex, "添加菜单"); } return result; } /// /// 编辑管理-菜单 /// /// /// public bool UpdateMenu(AdminMenu model) { bool result = false; try { var row = db.Updateable(model).IgnoreColumns(it => new { it.Id, it.CreateTime, it.IsValid }) .Where(it => it.Id == model.Id) .ExecuteCommand(); if (row > 0) { result = true; } } catch (Exception ex) { Logging.Error(ex, ex.Message); } return result; } /// /// 删除管理-菜单 /// /// /// public bool DeleteMenu(BaseParm parm) { bool result = false; try { int row = db.Updateable() .SetColumns(it => new AdminMenu { UpdateTime = DateTime.Now, IsValid = false }) .Where(it => it.Id == parm.Id) .ExecuteCommand(); if (row > 0) { result = true; } } catch (Exception ex) { Logging.Error(ex, ex.Message); } return result; } /// /// 获取菜单权限列表 /// /// public List GetPowerMenuList() { List allMenuList = new List(); try { List menuList = db.Queryable() .Where(it => it.IsValid == true) .ToList(); allMenuList = MenuDetail.FromAdminMenu(menuList); } catch (Exception ex) { Logging.Error(ex, "GetPowerMenuList"); } return allMenuList; } #endregion #region 角色菜单管理 /// /// 获取角色菜单列表 /// /// /// /// public List GetRoleMenuList(BaseParm parm) { List list = new List(); try { list = db.Queryable() .Where(it => it.IsValid == true) .WhereIF(parm.Id > 0, it => it.RoleId == parm.Id) .WhereIF(!string.IsNullOrEmpty(parm.Code), it => it.RoleCode.Equals(parm.Code)) .WhereIF(!string.IsNullOrEmpty(parm.Param1), it => it.MenuCode.Contains(parm.Name)) .ToList(); } catch (Exception ex) { Logging.Error(ex, "GetRoleMenuList"); } return list; } /// /// 后台管理-编辑角色菜单权限 /// /// /// /// public bool UpdateRoleMenu(BaseParm parm, List list) { bool result = false; try { //根据角色id删除当前角色的所有权限 int delrow = db.Deleteable().Where(it => it.RoleId == parm.Id).ExecuteCommand(); if (list.Count > 0) { int row = db.Insertable(list).ExecuteCommand(); } result = true; } catch (Exception ex) { Logging.Error(ex, "UpdateRoleMenu"); } return result; } #endregion #region 用户角色管理 /// /// 获取用户角色列表 /// /// /// /// public List GetUserRoleList(BaseParm parm) { List list = new List(); try { list = db.Queryable() .Where(it => it.IsValid == true) .WhereIF(parm.Id > 0, it => it.UserId == parm.Id) .ToList(); } catch (Exception ex) { Logging.Error(ex, "GetRoleMenuList"); } return list; } /// /// 后台管理-编辑用户角色 /// /// /// /// public bool UpdateUserRole(BaseParm parm, List list) { bool result = false; try { //根据角色id删除当前角色的所有权限 int delrow = db.Deleteable().Where(it => it.UserId == parm.Id).ExecuteCommand(); if (list.Count > 0) { int row = db.Insertable(list).ExecuteCommand(); } result = true; } catch (Exception ex) { Logging.Error(ex, "UpdateRoleMenu"); } return result; } #endregion } }