SnapshotController.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. using Hotline.Application.Snapshot;
  2. using Hotline.Orders;
  3. using Hotline.Settings;
  4. using Hotline.Share.Dtos;
  5. using Hotline.Share.Dtos.Article;
  6. using Hotline.Share.Dtos.Snapshot;
  7. using Microsoft.AspNetCore.Authorization;
  8. using Microsoft.AspNetCore.Mvc;
  9. using XF.Domain.Repository;
  10. namespace Hotline.Api.Controllers;
  11. /// <summary>
  12. /// 随手拍接口
  13. /// </summary>
  14. public class SnapshotController : BaseController
  15. {
  16. private readonly IRepository<Order> _orderRepository;
  17. private readonly ISnapshotApplication _snapshotApplication;
  18. private readonly ISystemAreaDomainService _systemAreaDomainService;
  19. public SnapshotController(IRepository<Order> orderRepository, ISnapshotApplication snapshotApplication, ISystemAreaDomainService systemAreaDomainService)
  20. {
  21. _orderRepository = orderRepository;
  22. _snapshotApplication = snapshotApplication;
  23. _systemAreaDomainService = systemAreaDomainService;
  24. }
  25. /// <summary>
  26. /// 获取小程序公告列表
  27. /// </summary>
  28. /// <param name="dto"></param>
  29. /// <returns></returns>
  30. [HttpGet("bulletions")]
  31. [AllowAnonymous]
  32. public virtual async Task<IReadOnlyList<BulletinOutDto>> QueryBulletinsAsync([FromQuery] BulletinInDto dto)
  33. => await _snapshotApplication.GetBulletinsAsync(dto);
  34. /// <summary>
  35. /// 公告详情
  36. /// </summary>
  37. /// <param name="id"></param>
  38. /// <returns></returns>
  39. [HttpGet("bulletions/{id}")]
  40. [AllowAnonymous]
  41. public virtual async Task<BulletinOutDto> QueryBulletionsDetailAsync(string id)
  42. => await _snapshotApplication.GetBulletinsDetailAsync(id);
  43. /// <summary>
  44. /// 获取用户页面数据
  45. /// </summary>
  46. /// <returns></returns>
  47. [AllowAnonymous]
  48. [HttpGet("user")]
  49. public virtual async Task<SnapshotUserInfoOutDto> GetUserInfo()
  50. => await _snapshotApplication.GetSnapshotUserInfoAsync();
  51. /// <summary>
  52. /// 获取我提交的线索列表
  53. /// </summary>
  54. /// <param name="dto"></param>
  55. /// <returns></returns>
  56. [HttpGet("order")]
  57. public virtual async Task<PagedDto<OrderOutDto>> QueryOrderListAsync([FromQuery] OrderInDto dto)
  58. => await _snapshotApplication.GetSnapshotOrdersAsync(dto);
  59. /// <summary>
  60. /// 获取我提交的线索详情
  61. /// </summary>
  62. /// <param name="id"></param>
  63. /// <returns></returns>
  64. [HttpGet("order/{id}")]
  65. public virtual async Task<OrderDetailOutDto> QueryOrderListAsync([FromQuery] string id)
  66. => await _snapshotApplication.GetSnapshotOrderDetailAsync(id);
  67. /// <summary>
  68. /// 统计红包金额, 每月的总金额
  69. /// </summary>
  70. /// <param name="dto"></param>
  71. /// <returns></returns>
  72. [HttpGet("redpack")]
  73. public virtual async Task<IReadOnlyList<RedPackDateOutDto>> QueryRedPackDateAsync([FromQuery] RedPackDateInDto dto)
  74. => await _snapshotApplication.GetRedPackDateAsync(dto);
  75. /// <summary>
  76. /// 获取当月详细红包列表
  77. /// </summary>
  78. /// <param name="dto"></param>
  79. /// <returns></returns>
  80. [HttpGet("redpack/month")]
  81. public virtual async Task<PagedDto<RedPackOutDto>> QueryRedPackDateAsync([FromQuery] RedPacksInDto dto)
  82. => await _snapshotApplication.GetRedPacksAsync(dto);
  83. /// <summary>
  84. /// 获取随手拍电气焊动火作业待处理工单数量
  85. /// TODO 条件 电气焊作业申报
  86. /// </summary>
  87. /// <returns></returns>
  88. [HttpGet("wait_accept_count")]
  89. public async Task<int> GetSnapshotWaitForAcceptCountAsync()
  90. => await _orderRepository
  91. .CountAsync(m => m.SourceChannelCode == "ZGSSP" && m.Status == Share.Enums.Order.EOrderStatus.WaitForAccept);
  92. /// <summary>
  93. /// 获取区域
  94. /// </summary>
  95. /// <returns></returns>
  96. [HttpGet("area/tree")]
  97. public async Task<List<SystemArea>> GetAreaTreeAsync()
  98. => await _systemAreaDomainService.GetAreaTree(0);
  99. }