fix 配置需要tenantId
This commit is contained in:
@@ -169,7 +169,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
|
||||
}.IsPresent1(request.CostDateTime));
|
||||
|
||||
var switchTime = await GetSettingAsync<TimeOnly?>(CanteenSettingItemEnumType.BusinessSwitchTime);
|
||||
var switchTime = await GetSettingAsync<TimeOnly?>(businessPlaceInfo.TenantId, CanteenSettingItemEnumType.BusinessSwitchTime);
|
||||
|
||||
var shiftTimePeriod = new TimePeriod()
|
||||
{
|
||||
@@ -217,7 +217,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
No = SnowFlakeHelper.Instance.NextId().ToString(),
|
||||
SubsidiesFromMonth = request.CostDateTime.ToString("yyyyMM"),
|
||||
IsOffline = request.IsOffline,
|
||||
IsCostCrossTenant = await GetSettingAsync<bool>(CanteenSettingItemEnumType.AllowCrossTenant),
|
||||
IsCostCrossTenant = await GetSettingAsync<bool>(businessPlaceInfo.TenantId, CanteenSettingItemEnumType.AllowCrossTenant),
|
||||
|
||||
OriginTenantId = gainfo.Factory,//人员可能跨基地消费
|
||||
|
||||
@@ -235,7 +235,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
|
||||
var orderId = await DbContext.InsertReturnIdentityAsync(order);
|
||||
|
||||
var allowNoBalance = await GetSettingAsync<bool>(CanteenSettingItemEnumType.AllowNoBalance);
|
||||
var allowNoBalance = await GetSettingAsync<bool>(businessPlaceInfo.TenantId, CanteenSettingItemEnumType.AllowNoBalance);
|
||||
|
||||
await CommonHelper.RetryAsync(async () =>
|
||||
{
|
||||
@@ -313,7 +313,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
|
||||
}.IsPresent1(request.CostDateTime));
|
||||
|
||||
var switchTime = await GetSettingAsync<TimeOnly?>(CanteenSettingItemEnumType.BusinessSwitchTime);
|
||||
var switchTime = await GetSettingAsync<TimeOnly?>(businessPlaceInfo.TenantId, CanteenSettingItemEnumType.BusinessSwitchTime);
|
||||
|
||||
var shiftTimePeriod = new TimePeriod()
|
||||
{
|
||||
@@ -361,7 +361,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
No = SnowFlakeHelper.Instance.NextId().ToString(),
|
||||
SubsidiesFromMonth = request.CostDateTime.ToString("yyyyMM"),
|
||||
IsOffline = request.IsOffline,
|
||||
IsCostCrossTenant = await GetSettingAsync<bool>(CanteenSettingItemEnumType.AllowCrossTenant),
|
||||
IsCostCrossTenant = await GetSettingAsync<bool>(businessPlaceInfo.TenantId, CanteenSettingItemEnumType.AllowCrossTenant),
|
||||
|
||||
OriginTenantId = gainfo.Factory,//人员可能跨基地消费
|
||||
|
||||
@@ -428,7 +428,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
|
||||
No = SnowFlakeHelper.Instance.NextId().ToString(),
|
||||
SubsidiesFromMonth = request.CostDateTime.ToString("yyyyMM"),
|
||||
IsCostCrossTenant = await GetSettingAsync<bool>(CanteenSettingItemEnumType.AllowCrossTenant),
|
||||
IsCostCrossTenant = false,
|
||||
|
||||
OriginTenantId = gainfo.Factory,//人员可能跨基地消费
|
||||
|
||||
@@ -560,7 +560,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
.ToListAsync();
|
||||
|
||||
//一天消费金额
|
||||
var dayCostMax = await GetSettingAsync<decimal>(CanteenSettingItemEnumType.DayCostMax);
|
||||
var dayCostMax = await GetSettingAsync<decimal>(order.TenantId, CanteenSettingItemEnumType.DayCostMax);
|
||||
if (dayCostMax != default)
|
||||
{
|
||||
//must has business place code, use .Value is safe
|
||||
@@ -571,14 +571,14 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
}
|
||||
|
||||
//一次消费金额
|
||||
var onceCostMax = await GetSettingAsync<decimal>(CanteenSettingItemEnumType.OnceCostMax);
|
||||
var onceCostMax = await GetSettingAsync<decimal>(order.TenantId, CanteenSettingItemEnumType.OnceCostMax);
|
||||
if (onceCostMax != default)
|
||||
{
|
||||
(Math.Abs(order.Amount) > onceCostMax).ThrowIfTrue($"一次消费金额不能超出{onceCostMax}");
|
||||
(Math.Abs(order.Amount) > onceCostMax).ThrowIfTrue($"单次消费金额不能超出{onceCostMax}元");
|
||||
}
|
||||
|
||||
//超时消费限额
|
||||
var dayMarketCostMax = await GetSettingAsync<decimal>(CanteenSettingItemEnumType.DayMarketCostMax);
|
||||
var dayMarketCostMax = await GetSettingAsync<decimal>(order.TenantId, CanteenSettingItemEnumType.DayMarketCostMax);
|
||||
if (dayMarketCostMax != default)
|
||||
{
|
||||
//current businessplace is supermarket
|
||||
@@ -593,7 +593,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
}
|
||||
|
||||
//重复餐次消费
|
||||
var allowRepeatInOneShift = await GetSettingAsync(CanteenSettingItemEnumType.AllowRepeatInOneShift, true);
|
||||
var allowRepeatInOneShift = await GetSettingAsync(order.TenantId, CanteenSettingItemEnumType.AllowRepeatInOneShift, true);
|
||||
if (!allowRepeatInOneShift)
|
||||
{
|
||||
var costCount = todayAllBalanceRecords.Where(x => x.ShiftType == order.ShiftType).Count();
|
||||
@@ -647,7 +647,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
//校验
|
||||
await Verify(shifts, costDateTime, order);
|
||||
|
||||
var allowNoBalance = await GetSettingAsync<bool>(CanteenSettingItemEnumType.AllowNoBalance);
|
||||
var allowNoBalance = await GetSettingAsync<bool>(order.TenantId, CanteenSettingItemEnumType.AllowNoBalance);
|
||||
|
||||
await CommonHelper.RetryAsync(async () =>
|
||||
{
|
||||
@@ -709,24 +709,19 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
await DbContext.InsertAsync(gainfoMeal);
|
||||
}
|
||||
|
||||
var allowNoBalance = await GetSettingAsync<bool>(CanteenSettingItemEnumType.AllowNoBalance);
|
||||
foreach (var order in orders)
|
||||
{
|
||||
await CommonHelper.RetryAsync(async () =>
|
||||
{
|
||||
if (!allowNoBalance)
|
||||
{
|
||||
var gainfoMeal = await DbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync();
|
||||
//金额+-
|
||||
gainfoMeal.Balance += order.Amount;
|
||||
|
||||
await DbContext.Updateable<GainfoMealEntity>()
|
||||
.SetColumns(x => x.Balance == gainfoMeal.Balance)
|
||||
.SetColumns(x => x.Version == x.Version + 1)
|
||||
.Where(x => x.UserNo == order.UserNo && x.Version == gainfoMeal.Version)//必须与查询时的version一致
|
||||
.ExecuteCommandThrowVersionAsync();
|
||||
}
|
||||
var gainfoMeal = await DbContext.Queryable<GainfoMealEntity>().Where(x => x.UserNo == order.UserNo).FirstAsync();
|
||||
//金额+-
|
||||
gainfoMeal.Balance += order.Amount;
|
||||
|
||||
await DbContext.Updateable<GainfoMealEntity>()
|
||||
.SetColumns(x => x.Balance == gainfoMeal.Balance)
|
||||
.SetColumns(x => x.Version == x.Version + 1)
|
||||
.Where(x => x.UserNo == order.UserNo && x.Version == gainfoMeal.Version)//必须与查询时的version一致
|
||||
.ExecuteCommandThrowVersionAsync();
|
||||
//写入记录
|
||||
var balanceRecord = order.Adapt<BalanceRecordEntity>();
|
||||
balanceRecord.Id = 0;
|
||||
|
||||
Reference in New Issue
Block a user