InviteCodeController.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using Hotline.Application.Snapshot;
  2. using Hotline.Repository.SqlSugar.Extensions;
  3. using Hotline.Share.Dtos;
  4. using Hotline.Share.Dtos.Snapshot;
  5. using Hotline.Share.Tools;
  6. using Hotline.Snapshot;
  7. using Hotline.Snapshot.Interfaces;
  8. using Microsoft.AspNetCore.Mvc;
  9. using System.ComponentModel;
  10. namespace Hotline.Api.Controllers.Snapshot;
  11. /// <summary>
  12. /// 邀请码管理
  13. /// </summary>
  14. [Description("邀请码管理")]
  15. public class InviteCodeController : BaseController
  16. {
  17. private readonly IInviteCodeApplication _inviteCodeApplication;
  18. public InviteCodeController(IInviteCodeApplication inviteCodeApplication)
  19. {
  20. _inviteCodeApplication = inviteCodeApplication;
  21. }
  22. /// <summary>
  23. /// 获取添加邀请码基础数据
  24. /// </summary>
  25. /// <returns></returns>
  26. [HttpGet("basedata")]
  27. public async Task<Dictionary<string, object>> GetBasedataAsync()
  28. {
  29. return new Dictionary<string, object>
  30. {
  31. { "OrgName", await _inviteCodeApplication.GetInviteCodeItemsAsync().Where(m => m.ParentOrgId == null)
  32. .Select(m => new Kv{ Key = m.Id, Value = m.OrgName}).ToListAsync() }
  33. };
  34. }
  35. /// <summary>
  36. /// 获取邀请码集合
  37. /// </summary>
  38. /// <returns></returns>
  39. [HttpGet]
  40. public async Task<PagedDto<InviteCode>> GetInviteCodeItemsAsync([FromQuery] GetInviteCodeItemsInDto dto)
  41. => (await _inviteCodeApplication.GetInviteCodeItemsAsync().ToPagedListAsync(dto)).ToPaged();
  42. /// <summary>
  43. /// 邀请码详情
  44. /// </summary>
  45. /// <param name="id"></param>
  46. /// <returns></returns>
  47. [HttpGet("{id}")]
  48. public async Task<InviteCode> GetInviteCodeDetailAsync( string id)
  49. => await _inviteCodeApplication.GetInviteCodeItemsAsync().Where(m => m.Id == id).FirstAsync();
  50. /// <summary>
  51. /// 修改邀请码
  52. /// </summary>
  53. /// <param name="dto"></param>
  54. /// <returns></returns>
  55. [HttpPut]
  56. public async Task UpdateInviteCodeAsync([FromBody] UpdateInviteCodeInDto dto)
  57. => await _inviteCodeApplication.UpdateInviteCodeAsync(dto);
  58. /// <summary>
  59. /// 添加部门邀请码
  60. /// </summary>
  61. /// <param name="dto"></param>
  62. /// <returns></returns>
  63. [HttpPost]
  64. public async Task AddInviteCodeAsync([FromBody] AddInviteCodeInDto dto)
  65. => await _inviteCodeApplication.AddInviteCodeAsync(dto);
  66. }