using Ropin.Inspection.Model; using Ropin.Inspection.Model.Entities; using Ropin.Inspection.Model.ViewModel; using Ropin.Inspection.Repository.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ropin.Inspection.Repository { public class TsysUserRoleRepository : RepositoryBase, ITsysUserRoleRepository { public TsysUserRoleRepository(InspectionDbContext dbContext) : base(dbContext) { } public Task DeleteByUserIdAsync(Guid userId) { MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("userId", userId) }; string sql = "DELETE FROM TSYS_UserRole where C_UserCode = @userId"; int iResult = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, sql, parameters); return Task.FromResult(true); } public Task> GetUserRolesByUserIdAsync(Guid userId) { MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("userId", userId) }; string sql = "SELECT C_UserCode,C_RoleCode FROM TSYS_UserRole where C_UserCode = @userId"; IEnumerable result = EntityFrameworkCoreExtensions.GetList(DbContext.Database, sql, parameters); return Task.FromResult(result); } public Task DeleteByRoleIdAsync(Guid roleId) { MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("roleId", roleId) }; string sql = "DELETE FROM TSYS_RolePriv where C_RoleCode = @roleId"; int iResult = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, sql, parameters); return Task.FromResult(true); } public async Task CreateRolePrivAsync(TSYS_RolePriv entity) { await DbContext.Set().AddAsync(entity); } public Task> GetRolePrivsByRoleIdAsync(string roleId) { MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("roleId", roleId) }; string sql = "SELECT * FROM TSYS_RolePriv where C_RoleCode = @roleId"; IEnumerable result = EntityFrameworkCoreExtensions.GetList(DbContext.Database, sql, parameters); return Task.FromResult(result); //var query = from a in DbContext.TSYS_RolePriv // join b in DbContext.TSYS_Priv // on a.C_PrivilegeCode equals b.C_Code // where a.C_RoleCode.ToString() == roleId // select new TSYS_Priv // { // C_Code = b.C_Code, // C_ParentCode = b.C_ParentCode, // C_Module = b.C_Module, // C_Type = b.C_Type, // C_Name = b.C_Name, // I_Sort = b.I_Sort, // C_ImageUrl = b.C_ImageUrl, // C_PageUrl = b.C_PageUrl, // C_Remark = b.C_Remark, // C_Status = b.C_Status, // }; //var roleTypePrivList = query.ToList(); //var treeList = new List(); //foreach (var item in roleTypePrivList.Where(m => m.C_ParentCode == null).OrderBy(m => m.I_Sort)) //{ // //获得子级 // var children = RecursionRoleTypePriv(roleTypePrivList.Where(m => m.C_ParentCode != null).ToList(), new List(), item.C_Code); // treeList.Add(new RolePrivTree() // { // C_Code = item.C_Code, // C_Name = item.C_Name, // C_ParentCode = item.C_ParentCode, // C_Type = item.C_Type, // I_Sort = item.I_Sort, // C_Remark = item.C_Remark, // C_ImageUrl = item.C_ImageUrl, // C_PageUrl = item.C_PageUrl, // C_Module = item.C_Module, // Open = children.Count > 0, // Children = children.Count == 0 ? null : children // }); //} //var model = new RolePrivViewModel { RoleCode = roleId, RolePrivS = treeList }; //return Task.FromResult(model); } List RecursionRoleTypePriv(List sourceList, List list, string guid) { foreach (var item in sourceList.Where(m => m.C_ParentCode.Equals(guid))) { var res = RecursionRoleTypePriv(sourceList, new List(), item.C_Code); list.Add(new RolePrivTree() { C_Code = item.C_Code, C_Name = item.C_Name, C_ParentCode = item.C_ParentCode, C_Type = item.C_Type, I_Sort = item.I_Sort, C_Remark = item.C_Remark, C_ImageUrl = item.C_ImageUrl, C_PageUrl = item.C_PageUrl, C_Module = item.C_Module, Open = res.Count > 0, Children = res.Count > 0 ? res : null }); } return list; } } }