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);
}