SystemOrganizeRepository.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Hotline.Repository.SqlSugar.DataPermissions;
  2. using Hotline.SeedData;
  3. using Hotline.Settings;
  4. using SqlSugar;
  5. using XF.Domain.Dependency;
  6. namespace Hotline.Repository.SqlSugar.System
  7. {
  8. public class SystemOrganizeRepository : BaseRepository<SystemOrganize>, ISystemOrganizeRepository, IScopeDependency
  9. {
  10. public SystemOrganizeRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
  11. {
  12. }
  13. public async Task<IReadOnlyList<SystemOrganize>> GetOrgJson()
  14. {
  15. var list = await Db.Queryable<SystemOrganize>()
  16. .OrderBy(d => d.Id)
  17. .ToTreeAsync(x => x.Children, it => it.ParentId, null);
  18. return list;
  19. }
  20. public async Task<IReadOnlyList<SystemOrganize>> GetCanUseOrg()
  21. {
  22. var list = await Db.Queryable<SystemOrganize>()
  23. .Where(x => x.IsEnable)
  24. .ToTreeAsync(x => x.Children, it => it.ParentId, null);
  25. return list;
  26. }
  27. public async Task<IReadOnlyList<SystemOrganize>> GetCanUseOrgByOrgCode(string orgCode)
  28. {
  29. var list = await Db.Queryable<SystemOrganize>()
  30. .Where(it => it.Id.StartsWith(orgCode))
  31. .ToTreeAsync(it => it.Children, it => it.ParentId, orgCode.Substring(0, orgCode.Length - 3));
  32. return list;
  33. }
  34. //public async Task<string> GetNewOrgCode(string parentId)
  35. //{
  36. // //查是否存在下级
  37. // var model = await Db.Queryable<SystemOrganize>()
  38. // .OrderByDescending(x => x.OrgCode)
  39. // .FirstAsync(x => x.ParentId == parentId);
  40. // //如果存在下级
  41. // if (model != null)
  42. // {
  43. // //return $"{int.Parse(model.OrgCode) +1:###}";
  44. // //return (int.Parse(model.OrgCode) + 1).ToString().PadLeft(3,'0');
  45. // return (int.Parse(model.OrgCode) + 1).ToString("000");
  46. // }
  47. // //如果不存在下级
  48. // else
  49. // {
  50. // var parentModel = await Db.Queryable<SystemOrganize>()
  51. // .FirstAsync(x => x.Id == parentId);
  52. // return parentModel.OrgCode + "001";
  53. // }
  54. //}
  55. }
  56. }