fix 餐补消费暂不扣费
This commit is contained in:
@@ -94,38 +94,37 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService
|
||||
menuDetail.ThrowIfNull("预定失败,菜品已经下架");
|
||||
menuDetail.Number -= request.Number;
|
||||
|
||||
(menuDetail.Number < 0).ThrowIfTrue($"{menuDetail.DishesName}已售罄");
|
||||
(menuDetail.Number < 0).ThrowIfTrue($"{menuDetail.DishesName}剩余数量不足");
|
||||
|
||||
//餐补
|
||||
//餐补 //todo 餐补暂不入账
|
||||
if (request.Source == BalanceRecordSourceEnumType.LocalTenantSubsidies)
|
||||
{
|
||||
//var mealInfo = await DbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync();
|
||||
//if (mealInfo == null)
|
||||
//{
|
||||
// await DbContext.InsertAsync(new GainfoMealEntity
|
||||
// {
|
||||
// Balance = 0,
|
||||
// BalanceOfRecharge = 0,
|
||||
// BalanceOfSubsidies = 0,
|
||||
// UserCode = gainfo.Code,
|
||||
// UserNo = gainfo.No,
|
||||
// Version = 0,
|
||||
// });
|
||||
|
||||
var mealInfo = await DbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync();
|
||||
if (mealInfo == null)
|
||||
{
|
||||
await DbContext.InsertAsync(new GainfoMealEntity
|
||||
{
|
||||
Balance = 0,
|
||||
BalanceOfRecharge = 0,
|
||||
BalanceOfSubsidies = 0,
|
||||
UserCode = gainfo.Code,
|
||||
UserNo = gainfo.No,
|
||||
Version = 0,
|
||||
});
|
||||
// (mealInfo == null).ThrowIfTrue("余额不足,无法消费");
|
||||
//}
|
||||
////金额+-
|
||||
//mealInfo.Balance += order.Amount;
|
||||
//(mealInfo.Balance < 0).ThrowIfTrue("余额不足,无法消费");
|
||||
|
||||
(mealInfo == null).ThrowIfTrue("余额不足,无法消费");
|
||||
}
|
||||
//金额+-
|
||||
mealInfo.Balance += order.Amount;
|
||||
(mealInfo.Balance < 0).ThrowIfTrue("余额不足,无法消费");
|
||||
//var effectMeal = await DbContext.Updateable<GainfoMealEntity>()
|
||||
// .SetColumns(x => x.Balance == mealInfo.Balance)
|
||||
// .SetColumns(x => x.Version == x.Version + 1)
|
||||
// .Where(x => x.UserNo == order.UserNo && x.Version == mealInfo.Version)//必须与查询时的version一致
|
||||
// .ExecuteCommandAsync();
|
||||
|
||||
var effectMeal = await DbContext.Updateable<GainfoMealEntity>()
|
||||
.SetColumns(x => x.Balance == mealInfo.Balance)
|
||||
.SetColumns(x => x.Version == x.Version + 1)
|
||||
.Where(x => x.UserNo == order.UserNo && x.Version == mealInfo.Version)//必须与查询时的version一致
|
||||
.ExecuteCommandAsync();
|
||||
|
||||
if (effectMeal <= 0) throw new VersionExceptions("更新版本冲突");
|
||||
//if (effectMeal <= 0) throw new VersionExceptions("更新版本冲突");
|
||||
}
|
||||
|
||||
|
||||
@@ -238,24 +237,24 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService
|
||||
|
||||
if (order.Source != BalanceRecordSourceEnumType.Cash)
|
||||
{
|
||||
//尝试5次
|
||||
await ContinueUpdateAsync(async () =>
|
||||
{
|
||||
var mealInfo = await DbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync();
|
||||
var setBalance = mealInfo.Balance + Math.Abs(order.Amount);
|
||||
var effect = await DbContext.Updateable<GainfoMealEntity>()
|
||||
.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();
|
||||
//todo 餐补暂不入账
|
||||
//await ContinueUpdateAsync(async () =>
|
||||
//{
|
||||
// var mealInfo = await DbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync();
|
||||
// var setBalance = mealInfo.Balance + Math.Abs(order.Amount);
|
||||
// var effect = await DbContext.Updateable<GainfoMealEntity>()
|
||||
// .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();
|
||||
|
||||
if (effect <= 0)
|
||||
{
|
||||
throw new VersionExceptions("取消订单失败!");
|
||||
}
|
||||
// if (effect <= 0)
|
||||
// {
|
||||
// throw new VersionExceptions("取消订单失败!");
|
||||
// }
|
||||
|
||||
}, 5);
|
||||
//}, 5);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user