fix 配置需要tenantId

This commit is contained in:
2024-04-09 18:02:45 +08:00
parent 8e72b0afc9
commit 25d33c36eb
6 changed files with 35 additions and 45 deletions

View File

@@ -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;