ExternalAPI_NET8/Web.Core.Services/Canteen/CanteenServices.cs

34 lines
1.3 KiB
C#

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<Ordermeal> 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<Ordermeal>(DapperHelper.SysName.Canteen, sql1, new { date });
var ordermeal2 =
await dapperHelper.QueryFirstOrDefaultAsync<Ordermeal>(DapperHelper.SysName.GYAPP, sql2,
new { date });
return new Ordermeal
{
lunch = ordermeal1.lunch + (ordermeal2?.lunch ?? 0),
dinner = ordermeal1.dinner + (ordermeal2?.dinner ?? 0)
};
}
}