From eb186fc81dadb1a4b8071ee73d2d5d585ac5b59d Mon Sep 17 00:00:00 2001 From: liguoyang Date: Fri, 19 Jul 2024 17:34:20 +0800 Subject: [PATCH] fix log --- .../Services/Implements/OrderService.cs | 128 ++++++++++-------- 1 file changed, 69 insertions(+), 59 deletions(-) diff --git a/Src/Dlhis.Middle/Services/Implements/OrderService.cs b/Src/Dlhis.Middle/Services/Implements/OrderService.cs index bf505c88..88db86de 100644 --- a/Src/Dlhis.Middle/Services/Implements/OrderService.cs +++ b/Src/Dlhis.Middle/Services/Implements/OrderService.cs @@ -1,7 +1,5 @@ -using Dlhis.Entity.Basic.Entity; -using Dlhis.Entity.Canteen.Entities; +using System.Diagnostics; using Dlhis.Entity.Canteen.Enums; -using Dlhis.Entity.Device.Entities; using Dlhis.Middle.Entities; using Kurisu.AspNetCore.Utils; using Kurisu.AspNetCore.Utils.Extensions; @@ -19,6 +17,7 @@ public class OrderService : IOrderService { private readonly ICanteenSettingService _canteenSettingService; private readonly IRemoteOrderService _remoteOrderService; + private readonly ILogger _logger; private readonly string _factory; private readonly IDbContext _dbContext; private Dictionary _settings; @@ -26,78 +25,89 @@ public class OrderService : IOrderService public OrderService(ICanteenSettingService canteenSettingService, IRemoteOrderService remoteOrderService, IConfiguration configuration, + ILogger logger, IDbContext dbContext) { _canteenSettingService = canteenSettingService; _remoteOrderService = remoteOrderService; + _logger = logger; _factory = configuration.GetSection("Factory").Value; _dbContext = dbContext; } public async Task> AddAsync(OrderAddRequest request) { - if (await _remoteOrderService.AbleRemoteCallAsync()) - { - var remoteResult = await _remoteOrderService.AddAsync(request); - if (remoteResult.Code == ApiStateCode.Success) - { - var d = remoteResult.Data; - await _dbContext.Updateable() - .SetColumns(x => x.Balance == d.Balance) - .Where(x => x.UserCode == d.UserCode) - .ExecuteCommandAsync(); - } + var sw = Stopwatch.StartNew(); - remoteResult.Msg = "在线消费:" + remoteResult.Msg; - - return remoteResult; - } - - //根据档案号 - var gainfo = await _dbContext.Queryable() - .Where(x => x.Code == request.UserUniqueNo || x.CardNo == request.UserUniqueNo) - .FirstAsync(); - - var message = "离线消费:"; - - gainfo.ThrowIfNull("无消费权限"); - - var isError = false; try { - (await _dbContext.Queryable().Where(x => x.UserNo == gainfo.No).AnyAsync()) - .ThrowIfFalse("余额不足,无法消费"); - - await ConsumeAsync(request.Adapt(), gainfo); - } - catch (Exception ex) - { - message += ex.Message; - isError = true; - } - - - //获取人员余额 - var data = await _dbContext.Queryable() - .LeftJoin((ga, department) => ga.DepartmentNo == department.No) - .LeftJoin((ga, department, mealUser) => ga.No == mealUser.UserNo) - .Where(ga => ga.Id == gainfo.Id) - .Select((ga, department, mealUser) => new OrderResultResponse + if (await _remoteOrderService.AbleRemoteCallAsync()) { - UserCode = ga.Code, - UserName = ga.Name, - DepartmentNo = ga.DepartmentNo, - DepartmentName = department.Name, - Balance = mealUser.Balance - }) - .SingleAsync(); + var remoteResult = await _remoteOrderService.AddAsync(request); + if (remoteResult.Code == ApiStateCode.Success) + { + var d = remoteResult.Data; + await _dbContext.Updateable() + .SetColumns(x => x.Balance == d.Balance) + .Where(x => x.UserCode == d.UserCode) + .ExecuteCommandAsync(); + } - return new DefaultApiResult + remoteResult.Msg = "在线消费:" + remoteResult.Msg; + + return remoteResult; + } + + //根据档案号 + var gainfo = await _dbContext.Queryable() + .Where(x => x.Code == request.UserUniqueNo || x.CardNo == request.UserUniqueNo) + .FirstAsync(); + + var message = "离线消费:"; + + gainfo.ThrowIfNull("无消费权限"); + + var isError = false; + try + { + (await _dbContext.Queryable().Where(x => x.UserNo == gainfo.No).AnyAsync()) + .ThrowIfFalse("余额不足,无法消费"); + + await ConsumeAsync(request.Adapt(), gainfo); + } + catch (Exception ex) + { + message += ex.Message; + isError = true; + } + + + //获取人员余额 + var data = await _dbContext.Queryable() + .LeftJoin((ga, department) => ga.DepartmentNo == department.No) + .LeftJoin((ga, department, mealUser) => ga.No == mealUser.UserNo) + .Where(ga => ga.Id == gainfo.Id) + .Select((ga, department, mealUser) => new OrderResultResponse + { + UserCode = ga.Code, + UserName = ga.Name, + DepartmentNo = ga.DepartmentNo, + DepartmentName = department.Name, + Balance = mealUser.Balance + }) + .SingleAsync(); + + return new DefaultApiResult + { + Code = isError ? ApiStateCode.Error : ApiStateCode.Success, + Data = data, + Msg = message + }; + } + finally { - Code = isError ? ApiStateCode.Error : ApiStateCode.Success, - Data = data, - Msg = message - }; + _logger.LogInformation("消费请求:{json}. 耗时:{time}", request.ToJson(), sw.ElapsedMilliseconds); + } }