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 { private readonly IDapperHelper _db = dapperHelper; public async Task GetMealsAmountAsync(string date) { string sql = """ 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 """; return await _db.QueryFirstOrDefaultAsync(DapperHelper.SysName.Canteen, sql, new { date }); } }