using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using SqlSugar; namespace IStation.DAL { /// /// 用户角色映射 /// public class UserRoleMapping : BaseDAL { /// /// /// public override ConnectionConfig ConnectionConfig { get { return ConfigHelper.DefaultConnectionConfig; } } /// /// 通过 RoleID 获取 /// public List GetByRoleID(long RoleID) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => x.RoleID == RoleID).ToList(); } } /// /// 通过 RoleIds 获取 /// public List GetByRoleIds(List RoleIds) { if (RoleIds == null || RoleIds.Count() < 1) return default; using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => RoleIds.Contains(x.RoleID)).ToList(); } } /// /// 通过 UserID 获取 /// public List GetByUserID(long UserID) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => x.UserID == UserID).ToList(); } } /// /// 通过 UserIds 获取 /// public List GetByUserIds(List UserIds) { if (UserIds == null || UserIds.Count() < 1) return default; using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => UserIds.Contains(x.UserID)).ToList(); } } /// /// 通过 UserID 和 RoleID 获取 /// public Entity.UserRoleMapping GetByUserIDAndRoleID(long UserID, long RoleID) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .First(x => x.UserID == UserID&&x.RoleID==RoleID); } } /// /// 设置 /// public bool Set(List list) { if (list == null || list.Count() < 1) return default; using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); foreach (var item in list) { var bol = db.Queryable() .Where(x => x.UserID == item.UserID && x.RoleID == item.RoleID).Count() > 0; if (bol)//已存在 { if (!item.Selected)//未选择 { var result = db.Deleteable() .Where(x => x.UserID == item.UserID && x.RoleID == item.RoleID).ExecuteCommandHasChange(); if (!result) { db.RollbackTran(); return false; } } } else//不存在 { if (item.Selected)//选择 { var entity = new Entity.UserRoleMapping(); entity.UserID = item.UserID; entity.RoleID = item.RoleID; var id = db.Insertable(entity).ExecuteReturnSnowflakeId(); if (id < 1) { db.RollbackTran(); return false; } } } } db.CommitTran(); return true; } catch { db.RollbackTran(); throw; } } } } }