diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqStoreDashboardService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqStoreDashboardService.cs index 7e57e8e..1cc18e9 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqStoreDashboardService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqStoreDashboardService.cs @@ -123,12 +123,33 @@ namespace NCC.Extend var billingCount = await billingQuery.CountAsync(); // 3. 获取消耗业绩和消耗次数 - var consumeQuery = _db.Queryable() - .Where(x => x.Md == input.StoreId && x.IsEffective == 1) - .Where(x => x.Hksj.HasValue && x.Hksj.Value >= startDate && x.Hksj.Value <= endDateTime); - - var consumeAmount = await consumeQuery.SumAsync(x => (decimal?)x.Xfje) ?? 0m; - var consumeCount = await consumeQuery.CountAsync(); + // 消耗业绩只统计健康师的消耗业绩(从健康师消耗业绩表汇总),与健康师统计接口的计算方式完全一致 + // 不包含科技部老师的消耗业绩 + // 重要:必须同时满足两个条件: + // 1. 耗卡记录属于该门店(hyhk.md = 门店ID) + // 2. 健康师属于该门店(u.F_MDID = 门店ID) + // 这样才能与健康师统计接口的计算逻辑完全一致 + var consumePerformanceSql = $@" + SELECT + COALESCE(SUM(jksyj.jksyj), 0) as ConsumeAmount, + COUNT(DISTINCT hyhk.F_Id) as ConsumeCount + FROM lq_xh_jksyj jksyj + INNER JOIN lq_xh_hyhk hyhk ON jksyj.glkdbh = hyhk.F_Id + INNER JOIN BASE_USER u ON jksyj.jks = u.F_Id + WHERE jksyj.jks IS NOT NULL + AND jksyj.F_IsEffective = 1 + AND hyhk.F_IsEffective = 1 + AND hyhk.md = '{input.StoreId}' + AND u.F_MDID = '{input.StoreId}' + AND hyhk.hksj >= '{startDate:yyyy-MM-dd HH:mm:ss}' + AND hyhk.hksj <= '{endDateTime:yyyy-MM-dd HH:mm:ss}'"; + var consumePerformanceResult = await _db.Ado.SqlQuerySingleAsync(consumePerformanceSql); + var consumeAmount = consumePerformanceResult != null + ? Convert.ToDecimal(consumePerformanceResult.ConsumeAmount ?? 0) + : 0m; + var consumeCount = consumePerformanceResult != null + ? Convert.ToInt32(consumePerformanceResult.ConsumeCount ?? 0) + : 0; // 4. 获取退卡金额和退卡次数(使用实退金额) var refundQuery = _db.Queryable() @@ -172,8 +193,8 @@ namespace NCC.Extend AND xh.Hksj >= '{startDate:yyyy-MM-dd HH:mm:ss}' AND xh.Hksj <= '{endDateTime:yyyy-MM-dd HH:mm:ss}'"; var personCountResult = await _db.Ado.SqlQueryAsync(personCountSql); - var personCount = personCountResult?.FirstOrDefault() != null - ? Convert.ToInt32(personCountResult.FirstOrDefault().PersonCount ?? 0) + var personCount = personCountResult?.FirstOrDefault() != null + ? Convert.ToInt32(personCountResult.FirstOrDefault().PersonCount ?? 0) : 0; // 12. 获取项目数(消耗的项目总数,从品项明细表统计原始项目数) @@ -187,8 +208,8 @@ namespace NCC.Extend AND xh.Hksj >= '{startDate:yyyy-MM-dd HH:mm:ss}' AND xh.Hksj <= '{endDateTime:yyyy-MM-dd HH:mm:ss}'"; var projectCountResult = await _db.Ado.SqlQueryAsync(projectCountSql); - var projectCount = projectCountResult?.FirstOrDefault() != null - ? Convert.ToDecimal(projectCountResult.FirstOrDefault().ProjectCount ?? 0) + var projectCount = projectCountResult?.FirstOrDefault() != null + ? Convert.ToDecimal(projectCountResult.FirstOrDefault().ProjectCount ?? 0) : 0m; // 13. 计算客单价(消耗业绩/消耗人次) @@ -245,7 +266,7 @@ namespace NCC.Extend }; _logger.LogInformation("门店驾驶舱统计数据查询完成,门店ID:{StoreId},开单业绩:{BillingPerformance},消耗业绩:{ConsumePerformance},完成率:{CompletionRate}%,净业绩:{NetPerformance},开单次数:{BillingCount},消耗次数:{ConsumeCount},退卡次数:{RefundCount}", - input.StoreId, billingAmount, consumeAmount, completionRate, netPerformance, billingCount, consumeCount, refundCount); + input.StoreId, (decimal)billingAmount, (decimal)consumeAmount, (decimal)completionRate, (decimal)netPerformance, (int)billingCount, (int)consumeCount, (int)refundCount); return result; } @@ -547,7 +568,7 @@ namespace NCC.Extend // 按客单价和项目数分组,计算每个区间的会员数 var result = new List(); - + if (memberData != null && memberData.Any()) { var groupedData = memberData diff --git a/netcore/src/Modularity/System/NCC.System.Entitys/Model/Permission/UsersCurrent/UsersCurrentAuthorizeMoldel.cs b/netcore/src/Modularity/System/NCC.System.Entitys/Model/Permission/UsersCurrent/UsersCurrentAuthorizeMoldel.cs index c12396e..1c8043b 100644 --- a/netcore/src/Modularity/System/NCC.System.Entitys/Model/Permission/UsersCurrent/UsersCurrentAuthorizeMoldel.cs +++ b/netcore/src/Modularity/System/NCC.System.Entitys/Model/Permission/UsersCurrent/UsersCurrentAuthorizeMoldel.cs @@ -35,5 +35,10 @@ namespace NCC.System.Entitys.Model.Permission.UsersCurrent /// 备注 /// public string description { get; set; } + + /// + /// 功能地址 + /// + public string urlAddress { get; set; } } }