From df8976ed03191a2d6b8474a58b66206b5acdfeac Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 21 Mar 2024 18:14:33 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=AE=A2=E5=8D=95=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3,=E5=88=86=E9=A1=B5=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/BookingOrderService.cs | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BookingOrderService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BookingOrderService.cs index c4bb48b0..6eeb6479 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/BookingOrderService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/BookingOrderService.cs @@ -14,6 +14,7 @@ using Dlhis.Basic.Api; using Kurisu.SqlSugar.Extensions; using SqlSugar; using Mapster; +using MySqlX.XDevAPI.Relational; namespace Dlhis.Canteen.Order.Services.Implements; @@ -297,6 +298,37 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService }, 5); } + 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 () => + { + 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); + } + /// /// 检查我的订餐是否存在,存在抛出异常