using NCC.Common.Core.Manager;
using NCC.Common.Enum;
using NCC.Common.Extension;
using NCC.Common.Filter;
using NCC.Dependency;
using NCC.DynamicApiController;
using NCC.FriendlyException;
using NCC.Extend.Interfaces.LqStatistics;
using NCC.Extend.Entitys.Dto.LqStatistics;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using NCC.Extend.Entitys.lq_mdxx;
namespace NCC.Extend.LqStatistics
{
///
/// 绿纤统计服务
///
[ApiDescriptionSettings(Tag = "绿纤统计服务", Name = "LqStatistics", Order = 200, Groups = new[] { "Default" })]
[Route("api/Extend/[controller]")]
public class LqStatisticsService : ILqStatisticsService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository _lqMdxxRepository;
private readonly SqlSugarScope _db;
private readonly IUserManager _userManager;
///
/// 初始化一个类型的新实例
///
public LqStatisticsService(
ISqlSugarRepository lqMdxxRepository,
IUserManager userManager)
{
_lqMdxxRepository = lqMdxxRepository;
_db = _lqMdxxRepository.Context;
_userManager = userManager;
}
///
/// 测试接口
///
/// 测试结果
[HttpGet]
public async Task Test()
{
return await Task.FromResult(new { message = "绿纤统计服务运行正常", timestamp = DateTime.Now });
}
///
/// 获取门店业绩统计列表
///
///
/// 查询所有门店的目标业绩、完成业绩、完成率等关键指标
///
/// 返回数据包含:
/// - 门店编码和店名
/// - 目标业绩(生命线)
/// - 完成业绩(实付业绩)
/// - 完成率(百分比)
/// - 开单数量
///
/// 数据来源:v_store_performance_simple 视图
///
/// 门店业绩统计列表
/// 成功返回门店业绩统计列表
/// 服务器内部错误
[HttpGet]
public async Task> GetStorePerformanceList()
{
try
{
var result = await _db.Ado.SqlQueryAsync(
"SELECT " +
"store_code AS StoreCode, " +
"store_name AS StoreName, " +
"target_performance AS TargetPerformance, " +
"actual_performance AS ActualPerformance, " +
"completion_rate AS CompletionRate, " +
"order_count AS OrderCount " +
"FROM v_store_performance_simple " +
"ORDER BY actual_performance DESC");
return result ?? new List();
}
catch (Exception ex)
{
throw NCCException.Oh(ErrorCode.COM1005, ex.Message);
}
}
}
}