BlacklistController.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using System.Collections.Generic;
  2. using System.Threading.Tasks;
  3. using GxPress.Auth;
  4. using GxPress.Entity;
  5. using GxPress.Repository.Interface;
  6. using GxPress.Request.BlacklistUser;
  7. using GxPress.Service.Interface.IM;
  8. using GxPress.Service.Interface.OftenContact;
  9. using Microsoft.AspNetCore.Authorization;
  10. using Microsoft.AspNetCore.Mvc;
  11. using Microsoft.Extensions.Logging;
  12. namespace GxPress.Api.AppControllers
  13. {
  14. /// <summary>
  15. /// 用户黑名单
  16. /// </summary>
  17. [Route("api/app/blacklist")]
  18. [ApiController]
  19. [Authorize]
  20. public class BlacklistController : ControllerBase
  21. {
  22. private readonly ILogger<BlacklistController> _logger;
  23. private readonly IBlacklistUserRepository _blacklistUserRepository;
  24. private readonly ILoginContext _loginContext;
  25. private readonly IOftenContactService _oftenContactService;
  26. private readonly IIMService _imService;
  27. public BlacklistController(ILogger<BlacklistController> logger,
  28. IBlacklistUserRepository blacklistUserRepository, ILoginContext loginContext,
  29. IOftenContactService oftenContactService, IIMService imService)
  30. {
  31. _logger = logger;
  32. _blacklistUserRepository = blacklistUserRepository;
  33. _loginContext = loginContext;
  34. _oftenContactService = oftenContactService;
  35. _imService = imService;
  36. }
  37. /// <summary>
  38. /// 获取黑名单
  39. /// </summary>
  40. /// <returns></returns>
  41. [HttpPost("list")]
  42. public async Task<IEnumerable<BlacklistUser>> GetBlacklistUser()
  43. {
  44. var request = new BlacklistUserSearchRequest { UserId = _loginContext.AccountId };
  45. return await _blacklistUserRepository.GetBlacklistUserAsync(request);
  46. }
  47. /// <summary>
  48. /// 添加黑名单
  49. /// </summary>
  50. /// <param name="request"></param>
  51. /// <returns></returns>
  52. [HttpPost("add")]
  53. public async Task<bool> Insert(BlacklistUserInRequest request)
  54. {
  55. return await _imService.AddBlacklistUserAsync(_loginContext.AccountId, request.UserId);
  56. }
  57. /// <summary>
  58. /// 删除黑名单
  59. /// </summary>
  60. /// <param name="blackUserId"></param>
  61. /// <returns></returns>
  62. [HttpDelete("{blackUserId}")]
  63. public async Task<bool> Delete(int blackUserId)
  64. {
  65. return await _imService.ReMoveBlacklistUserAsync(blackUserId, _loginContext.AccountId);
  66. }
  67. }
  68. }