using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using IStation.Entity;
|
using System.Data.SqlClient;
|
using SqlSugar;
|
using System.Threading.Tasks;
|
using System.Data;
|
|
namespace IStation.DAL
|
{
|
/// <summary>
|
/// 角色权限表RoleMenuMapping
|
/// </summary>
|
public partial class RoleMenuMapping : BaseDAL<Entity.RoleMenuMapping>
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public override ConnectionConfig ConnectionConfig
|
{
|
get { return ConfigHelper.DefaultConnectionConfig; }
|
|
}
|
|
/// <summary>
|
/// 通过 RoleID 获取
|
/// </summary>
|
public List<Entity.RoleMenuMapping> GetByRoleID(long RoleID)
|
{
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.RoleMenuMapping>()
|
.Where(x => x.RoleID == RoleID).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 RoleIds 获取
|
/// </summary>
|
public List<Entity.RoleMenuMapping> GetByRoleIds(List<long> RoleIds)
|
{
|
if (RoleIds == null || RoleIds.Count() < 1)
|
return default;
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.RoleMenuMapping>()
|
.Where(x => RoleIds.Contains(x.RoleID)).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 Auth 获取
|
/// </summary>
|
public List<Entity.RoleMenuMapping> GetByMenuID(long MenuID)
|
{
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.RoleMenuMapping>()
|
.Where(x => x.MenuID == MenuID).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 设置
|
/// </summary>
|
public bool Set(List<Entity.RoleMenuSelected> list)
|
{
|
if (list == null || list.Count() < 1)
|
return default;
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
try
|
{
|
db.BeginTran();
|
foreach (var item in list)
|
{
|
var ds = db.Queryable<Entity.RoleMenuMapping>()
|
.First(x => x.RoleID == item.RoleID && x.MenuID==item.MenuID);
|
if (ds != null)//已存在
|
{
|
if (!item.Selected)//未选择
|
{
|
var result = db.Deleteable<Entity.RoleMenuMapping>()
|
.Where(x => x.RoleID == item.RoleID && x.MenuID == item.MenuID)
|
.ExecuteCommandHasChange();
|
if (!result)
|
{
|
db.RollbackTran();
|
return false;
|
}
|
}
|
else//已选择
|
{
|
if (item.AuthLevel != ds.AuthLevel)//权限等级发生改变
|
{
|
ds.AuthLevel = item.AuthLevel;
|
var result = db.Updateable(ds).ExecuteCommandHasChange();
|
if (!result)
|
{
|
db.RollbackTran();
|
return false;
|
}
|
}
|
}
|
}
|
else//不存在
|
{
|
if (item.Selected)//选择
|
{
|
var entity = new Entity.RoleMenuMapping();
|
entity.RoleID = item.RoleID;
|
entity.MenuID = item.MenuID;
|
entity.AuthLevel = item.AuthLevel;
|
var id=db.Insertable(entity).ExecuteReturnSnowflakeId();
|
if (id < 1)
|
{
|
db.RollbackTran();
|
return false;
|
}
|
}
|
else//未选择
|
{
|
|
}
|
}
|
}
|
db.CommitTran();
|
return true;
|
}
|
catch
|
{
|
db.RollbackTran();
|
throw;
|
}
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
}
|