using Web.Core.Common.Dapper; using Web.Core.IServices.Canteen; using Web.Core.Model.Entity; namespace Web.Core.Services.Canteen; public class CanteenServices(IDapperHelper dapperHelper) : ICanteenServices { public async Task GetMealsAmountAsync(string date) { var sql1 = """ WITH temp AS (SELECT Card_id,Dins1,Dins2,Dins1Cancel,Dins2Cancel FROM MealQuery(@date,@date)) SELECT ISNULL(SUM(CASE WHEN ISNULL(a.Dins1,0)=1 AND ISNULL(a.Dins1Cancel,0)=0 THEN 1 ELSE 0 END),0) AS lunch , ISNULL(SUM(CASE WHEN ISNULL(a.Dins2,0)=1 AND ISNULL(a.Dins2Cancel,0)=0 THEN 1 ELSE 0 END),0) AS dinner FROM temp a """; var sql2 = "SELECT LunchNumber as lunch,DinnerNumber as dinner FROM dbo.MealCommitNumbers WHERE RecodeTime=@date"; var ordermeal1 = await dapperHelper.QueryFirstOrDefaultAsync(DapperHelper.SysName.Canteen, sql1, new { date }); var ordermeal2 = await dapperHelper.QueryFirstOrDefaultAsync(DapperHelper.SysName.GYAPP, sql2, new { date }); return new Ordermeal { lunch = ordermeal1.lunch + (ordermeal2?.lunch ?? 0), dinner = ordermeal1.dinner + (ordermeal2?.dinner ?? 0) }; } }