using Hotline.Application.Snapshot; using Hotline.Orders; using Hotline.Settings; using Hotline.Share.Dtos; using Hotline.Share.Dtos.Article; using Hotline.Share.Dtos.Snapshot; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using XF.Domain.Repository; namespace Hotline.Api.Controllers; /// /// 随手拍接口 /// public class SnapshotController : BaseController { private readonly IRepository _orderRepository; private readonly ISnapshotApplication _snapshotApplication; private readonly ISystemAreaDomainService _systemAreaDomainService; public SnapshotController(IRepository orderRepository, ISnapshotApplication snapshotApplication, ISystemAreaDomainService systemAreaDomainService) { _orderRepository = orderRepository; _snapshotApplication = snapshotApplication; _systemAreaDomainService = systemAreaDomainService; } /// /// 获取小程序公告列表 /// /// /// [HttpGet("bulletions")] [AllowAnonymous] public virtual async Task> QueryBulletinsAsync([FromQuery] BulletinInDto dto) => await _snapshotApplication.GetBulletinsAsync(dto); /// /// 公告详情 /// /// /// [HttpGet("bulletions/{id}")] [AllowAnonymous] public virtual async Task QueryBulletionsDetailAsync(string id) => await _snapshotApplication.GetBulletinsDetailAsync(id); /// /// 获取用户页面数据 /// /// [AllowAnonymous] [HttpGet("user")] public virtual async Task GetUserInfo() => await _snapshotApplication.GetSnapshotUserInfoAsync(); /// /// 获取我提交的线索列表 /// /// /// [HttpGet("order")] public virtual async Task> QueryOrderListAsync([FromQuery] OrderInDto dto) => await _snapshotApplication.GetSnapshotOrdersAsync(dto); /// /// 获取我提交的线索详情 /// /// /// [HttpGet("order/{id}")] public virtual async Task QueryOrderListAsync([FromQuery] string id) => await _snapshotApplication.GetSnapshotOrderDetailAsync(id); /// /// 统计红包金额, 每月的总金额 /// /// /// [HttpGet("redpack")] public virtual async Task> QueryRedPackDateAsync([FromQuery] RedPackDateInDto dto) => await _snapshotApplication.GetRedPackDateAsync(dto); /// /// 获取当月详细红包列表 /// /// /// [HttpGet("redpack/month")] public virtual async Task> QueryRedPackDateAsync([FromQuery] RedPacksInDto dto) => await _snapshotApplication.GetRedPacksAsync(dto); /// /// 获取随手拍电气焊动火作业待处理工单数量 /// TODO 条件 电气焊作业申报 /// /// [HttpGet("wait_accept_count")] public async Task GetSnapshotWaitForAcceptCountAsync() => await _orderRepository .CountAsync(m => m.SourceChannelCode == "ZGSSP" && m.Status == Share.Enums.Order.EOrderStatus.WaitForAccept); /// /// 获取区域 /// /// [HttpGet("area/tree")] public async Task> GetAreaTreeAsync() => await _systemAreaDomainService.GetAreaTree(0); }