1
0

RoleService.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. using System.Threading.Tasks;
  2. using AutoMapper;
  3. using Admin.Core.Common.Auth;
  4. using Admin.Core.Model.Input;
  5. using Admin.Core.Model.Output;
  6. using Admin.Core.Model.Admin;
  7. using Admin.Core.Repository.Admin;
  8. using Admin.Core.Service.Admin.Role.Input;
  9. using Admin.Core.Service.Admin.Role.Output;
  10. namespace Admin.Core.Service.Admin.Role
  11. {
  12. public class RoleService : IRoleService
  13. {
  14. private readonly IUser _user;
  15. private readonly IMapper _mapper;
  16. private readonly IRoleRepository _roleRepository;
  17. public RoleService(
  18. IUser user,
  19. IMapper mapper,
  20. IRoleRepository roleRepository
  21. )
  22. {
  23. _user = user;
  24. _mapper = mapper;
  25. _roleRepository = roleRepository;
  26. }
  27. public async Task<IResponseOutput> GetAsync(long id)
  28. {
  29. var result = await _roleRepository.GetAsync<RoleGetOutput>(id);
  30. return ResponseOutput.Ok(result);
  31. }
  32. public async Task<IResponseOutput> PageAsync(PageInput<RoleEntity> input)
  33. {
  34. var key = input.Filter?.Name;
  35. var list = await _roleRepository.Select
  36. .WhereIf(key.NotNull(), a => a.Name.Contains(key))
  37. .Count(out var total)
  38. .OrderByDescending(true, c => c.Id)
  39. .Page(input.CurrentPage, input.PageSize)
  40. .ToListAsync<RoleListOutput>();
  41. var data = new PageOutput<RoleListOutput>()
  42. {
  43. List = list,
  44. Total = total
  45. };
  46. return ResponseOutput.Ok(data);
  47. }
  48. public async Task<IResponseOutput> AddAsync(RoleAddInput input)
  49. {
  50. var entity = _mapper.Map<RoleEntity>(input);
  51. var id = (await _roleRepository.InsertAsync(entity)).Id;
  52. return ResponseOutput.Result(id > 0);
  53. }
  54. public async Task<IResponseOutput> UpdateAsync(RoleUpdateInput input)
  55. {
  56. if (!(input?.Id > 0))
  57. {
  58. return ResponseOutput.NotOk();
  59. }
  60. var entity = await _roleRepository.GetAsync(input.Id);
  61. if (!(entity?.Id > 0))
  62. {
  63. return ResponseOutput.NotOk("½ÇÉ«²»´æÔÚ£¡");
  64. }
  65. _mapper.Map(input, entity);
  66. await _roleRepository.UpdateAsync(entity);
  67. return ResponseOutput.Ok();
  68. }
  69. public async Task<IResponseOutput> DeleteAsync(long id)
  70. {
  71. var result = false;
  72. if (id > 0)
  73. {
  74. result = (await _roleRepository.DeleteAsync(m => m.Id == id)) > 0;
  75. }
  76. return ResponseOutput.Result(result);
  77. }
  78. public async Task<IResponseOutput> SoftDeleteAsync(long id)
  79. {
  80. var result = await _roleRepository.SoftDeleteAsync(id);
  81. return ResponseOutput.Result(result);
  82. }
  83. public async Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids)
  84. {
  85. var result = await _roleRepository.SoftDeleteAsync(ids);
  86. return ResponseOutput.Result(result);
  87. }
  88. }
  89. }