TsysUserRoleRepository.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. using Ropin.Inspection.Model;
  2. using Ropin.Inspection.Model.Entities;
  3. using Ropin.Inspection.Model.ViewModel;
  4. using Ropin.Inspection.Repository.Interface;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace Ropin.Inspection.Repository
  11. {
  12. public class TsysUserRoleRepository : RepositoryBase<TSYS_UserRole, Guid>, ITsysUserRoleRepository
  13. {
  14. public TsysUserRoleRepository(InspectionDbContext dbContext) : base(dbContext)
  15. {
  16. }
  17. public Task<bool> DeleteByUserIdAsync(Guid userId)
  18. {
  19. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("userId", userId) };
  20. string sql = "DELETE FROM TSYS_UserRole where C_UserCode = @userId";
  21. int iResult = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, sql, parameters);
  22. return Task.FromResult(true);
  23. }
  24. public Task<IEnumerable<TsysUserRoleViewModel>> GetUserRolesByUserIdAsync(Guid userId)
  25. {
  26. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("userId", userId) };
  27. string sql = "SELECT C_UserCode,C_RoleCode FROM TSYS_UserRole where C_UserCode = @userId";
  28. IEnumerable<TsysUserRoleViewModel> result = EntityFrameworkCoreExtensions.GetList<TsysUserRoleViewModel>(DbContext.Database, sql, parameters);
  29. return Task.FromResult(result);
  30. }
  31. public Task<bool> DeleteByRoleIdAsync(Guid roleId)
  32. {
  33. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("roleId", roleId) };
  34. string sql = "DELETE FROM TSYS_RolePriv where C_RoleCode = @roleId";
  35. int iResult = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, sql, parameters);
  36. return Task.FromResult(true);
  37. }
  38. public async Task CreateRolePrivAsync(TSYS_RolePriv entity)
  39. {
  40. await DbContext.Set<TSYS_RolePriv>().AddAsync(entity);
  41. }
  42. public Task<IEnumerable<TsysRolePrivViewModel>> GetRolePrivsByRoleIdAsync(string roleId)
  43. {
  44. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("roleId", roleId) };
  45. string sql = "SELECT * FROM TSYS_RolePriv where C_RoleCode = @roleId";
  46. IEnumerable<TsysRolePrivViewModel> result = EntityFrameworkCoreExtensions.GetList<TsysRolePrivViewModel>(DbContext.Database, sql, parameters);
  47. return Task.FromResult(result);
  48. //var query = from a in DbContext.TSYS_RolePriv
  49. // join b in DbContext.TSYS_Priv
  50. // on a.C_PrivilegeCode equals b.C_Code
  51. // where a.C_RoleCode.ToString() == roleId
  52. // select new TSYS_Priv
  53. // {
  54. // C_Code = b.C_Code,
  55. // C_ParentCode = b.C_ParentCode,
  56. // C_Module = b.C_Module,
  57. // C_Type = b.C_Type,
  58. // C_Name = b.C_Name,
  59. // I_Sort = b.I_Sort,
  60. // C_ImageUrl = b.C_ImageUrl,
  61. // C_PageUrl = b.C_PageUrl,
  62. // C_Remark = b.C_Remark,
  63. // C_Status = b.C_Status,
  64. // };
  65. //var roleTypePrivList = query.ToList();
  66. //var treeList = new List<RolePrivTree>();
  67. //foreach (var item in roleTypePrivList.Where(m => m.C_ParentCode == null).OrderBy(m => m.I_Sort))
  68. //{
  69. // //获得子级
  70. // var children = RecursionRoleTypePriv(roleTypePrivList.Where(m => m.C_ParentCode != null).ToList(), new List<RolePrivTree>(), item.C_Code);
  71. // treeList.Add(new RolePrivTree()
  72. // {
  73. // C_Code = item.C_Code,
  74. // C_Name = item.C_Name,
  75. // C_ParentCode = item.C_ParentCode,
  76. // C_Type = item.C_Type,
  77. // I_Sort = item.I_Sort,
  78. // C_Remark = item.C_Remark,
  79. // C_ImageUrl = item.C_ImageUrl,
  80. // C_PageUrl = item.C_PageUrl,
  81. // C_Module = item.C_Module,
  82. // Open = children.Count > 0,
  83. // Children = children.Count == 0 ? null : children
  84. // });
  85. //}
  86. //var model = new RolePrivViewModel { RoleCode = roleId, RolePrivS = treeList };
  87. //return Task.FromResult(model);
  88. }
  89. List<RolePrivTree> RecursionRoleTypePriv(List<TSYS_Priv> sourceList, List<RolePrivTree> list, string guid)
  90. {
  91. foreach (var item in sourceList.Where(m => m.C_ParentCode.Equals(guid)))
  92. {
  93. var res = RecursionRoleTypePriv(sourceList, new List<RolePrivTree>(), item.C_Code);
  94. list.Add(new RolePrivTree()
  95. {
  96. C_Code = item.C_Code,
  97. C_Name = item.C_Name,
  98. C_ParentCode = item.C_ParentCode,
  99. C_Type = item.C_Type,
  100. I_Sort = item.I_Sort,
  101. C_Remark = item.C_Remark,
  102. C_ImageUrl = item.C_ImageUrl,
  103. C_PageUrl = item.C_PageUrl,
  104. C_Module = item.C_Module,
  105. Open = res.Count > 0,
  106. Children = res.Count > 0 ? res : null
  107. });
  108. }
  109. return list;
  110. }
  111. }
  112. }