From 7d18c8ea55dc623c728e829b54a9db388ba0ae51 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Sat, 23 Mar 2024 01:41:21 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=AE=A2=E5=8D=95=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E6=A0=B9=E6=8D=AE=E6=94=AF=E4=BB=98=E6=96=B9?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/BookingOrderService.cs | 84 +++++-------------- 1 file changed, 23 insertions(+), 61 deletions(-) diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BookingOrderService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BookingOrderService.cs index f177f75f..2eda9fbd 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/BookingOrderService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/BookingOrderService.cs @@ -199,54 +199,15 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService public async Task UserCancelOrderAsync(OrderCancelRequest request) { - //预定时间 - var now = DateTime.Now; - var userId = CurrentUser.GetIntSubjectId(); - var bookingDeadline = await GetSettingAsync(CanteenSettingItemEnumType.BookingDeadline) ?? new TimeOnly(20, 30, 00); var dealLine = DateTime.Today.Add(bookingDeadline.ToTimeSpan()); - (now >= dealLine).ThrowIfTrue("不在订单取消允许范围内,不可操作"); + (DateTime.Now >= dealLine).ThrowIfTrue("不在订单取消允许范围内,不可操作"); - var order = await DbContext.Queryable().Where(x => x.No == request.No).FirstAsync(); - order.ThrowIfNull("订单不存在"); - - await DbContext.Updateable() - .SetColumns(x => x.OrderStatus == CanteenOrderStatusEnumType.Cancel) - .SetColumns(x => x.Remark == request.Reason) - .SetColumns(x => x.ModifiedTime == now) - .SetColumns(x => x.ModifiedBy == userId) - .Where(x => x.No == request.No) - .ExecuteCommandAsync(); - - var balance = await DbContext.Queryable().Where(x => x.No == request.No).SingleAsync(); - await DbContext.Updateable() - .SetColumns(x => x.Status == BalanceRecordStatusEnumType.Obsolute) - .SetColumns(x => x.Remark == request.Reason) - .SetColumns(x => x.ModifiedTime == now) - .SetColumns(x => x.ModifiedBy == userId) - .Where(x => x.No == request.No) - .ExecuteCommandAsync(); - - var amount = Math.Abs(order.Amount); - - //尝试5次 - await ContinueUpdateAsync(async () => + await ManagerCancelOrderAsync(new OrderCancelRequest { - var mealInfo = await DbContext.Queryable().Where(x => x.UserNo == order.UserNo).FirstAsync(); - - var effect = await DbContext.Updateable() - .SetColumns(x => x.Balance == x.Balance + amount) - .SetColumns(x => x.ModifiedTime == now) - .SetColumns(x => x.ModifiedBy == userId) - .Where(x => x.Id == mealInfo.Id && x.Version == mealInfo.Version) - .ExecuteCommandAsync(); - - if (effect <= 0) - { - throw new VersionExceptions("取消订单失败!"); - } - - }, 5); + No = request.No, + Reason = request.Reason, + }); } @@ -275,26 +236,27 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService .Where(x => x.No == request.No) .ExecuteCommandAsync(); - var amount = Math.Abs(order.Amount); - - //尝试5次 - await ContinueUpdateAsync(async () => + if (order.Source != BalanceRecordSourceEnumType.Cash) { - var mealInfo = await DbContext.Queryable().Where(x => x.UserNo == order.UserNo).FirstAsync(); - - var effect = await DbContext.Updateable() - .SetColumns(x => x.Balance == x.Balance + amount) - .SetColumns(x => x.ModifiedTime == now) - .SetColumns(x => x.ModifiedBy == userId) - .Where(x => x.Id == mealInfo.Id && x.Version == mealInfo.Version) - .ExecuteCommandAsync(); - - if (effect <= 0) + //尝试5次 + await ContinueUpdateAsync(async () => { - throw new VersionExceptions("取消订单失败!"); - } + var mealInfo = await DbContext.Queryable().Where(x => x.UserNo == order.UserNo).FirstAsync(); + var setBalance = mealInfo.Balance + Math.Abs(order.Amount); + var effect = await DbContext.Updateable() + .SetColumns(x => x.Balance == setBalance) + .SetColumns(x => x.ModifiedTime == now) + .SetColumns(x => x.ModifiedBy == userId) + .Where(x => x.Id == mealInfo.Id && x.Version == mealInfo.Version) + .ExecuteCommandAsync(); - }, 5); + if (effect <= 0) + { + throw new VersionExceptions("取消订单失败!"); + } + + }, 5); + } }