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
}
}