fix 参数配置方法修改
This commit is contained in:
@@ -1,16 +1,12 @@
|
||||
using Dlhis.Canteen.Setting.Services;
|
||||
using Dlhis.Entity.Basic.Entity;
|
||||
using Dlhis.Entity.Canteen.Enums;
|
||||
using Kurisu.AspNetCore.Authentication.Abstractions;
|
||||
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
|
||||
using Kurisu.AspNetCore.Utils.Extensions;
|
||||
using Mapster;
|
||||
|
||||
namespace Dlhis.Canteen.Order.Services;
|
||||
|
||||
public abstract class BaseOrderService
|
||||
{
|
||||
private readonly ICanteenSettingService _canteenSettingService;
|
||||
private readonly IDbContext _dbContext;
|
||||
private readonly ICurrentUser _currentUser;
|
||||
private readonly ILogger _logger;
|
||||
@@ -21,7 +17,6 @@ public abstract class BaseOrderService
|
||||
ICurrentUser currentUser,
|
||||
ILogger logger)
|
||||
{
|
||||
_canteenSettingService = canteenSettingService;
|
||||
_dbContext = dbContext;
|
||||
_currentUser = currentUser;
|
||||
_logger = logger;
|
||||
@@ -32,37 +27,4 @@ public abstract class BaseOrderService
|
||||
protected IDbContext DbContext => _dbContext;
|
||||
|
||||
protected ICurrentUser CurrentUser => _currentUser;
|
||||
|
||||
/// <summary>
|
||||
/// 获取参数配置
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="userNo"></param>
|
||||
/// <param name="tenantId"></param>
|
||||
/// <param name="item"></param>
|
||||
/// <param name="defaultValue"></param>
|
||||
/// <returns></returns>
|
||||
protected async Task<T> GetSettingAsync<T>(string userNo, string tenantId, CanteenSettingItemEnumType item, T defaultValue = default)
|
||||
{
|
||||
_settings ??= await _canteenSettingService.GetUserSettingAsync(userNo, tenantId);
|
||||
|
||||
if (_settings.TryGetValue(item, out var v))
|
||||
{
|
||||
try
|
||||
{
|
||||
if (int.TryParse(v, out var n))
|
||||
{
|
||||
return n.Adapt<T>();
|
||||
}
|
||||
|
||||
return v.Adapt<T>();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,7 @@ namespace Dlhis.Canteen.Order.Services.Implements;
|
||||
|
||||
public class BookingOrderService : BaseOrderService, IBookingOrderService
|
||||
{
|
||||
private readonly ICanteenSettingService _canteenSettingService;
|
||||
private readonly IDishesMenuApi _dishesMenuApi;
|
||||
private readonly IBusinessPlacePermissionsApi _businessPlacePermissionsApi;
|
||||
|
||||
@@ -28,6 +29,7 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService
|
||||
ICurrentUser currentUser, ILogger<BookingOrderService> logger)
|
||||
: base(canteenSettingService, dbContext, currentUser, logger)
|
||||
{
|
||||
_canteenSettingService = canteenSettingService;
|
||||
_dishesMenuApi = dishesMenuApi;
|
||||
_businessPlacePermissionsApi = businessPlacePermissionsApi;
|
||||
}
|
||||
@@ -41,7 +43,7 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService
|
||||
//预定时间
|
||||
var now = DateTime.Now;
|
||||
|
||||
var bookingDeadline = await GetSettingAsync<TimeOnly?>(gainfo.No, businessPlace.TenantId, CanteenSettingItemEnumType.BookingDeadline) ?? new TimeOnly(20, 30, 00);
|
||||
var bookingDeadline = await _canteenSettingService.GetSettingAsync(CanteenSettingItemEnumType.BookingDeadline, businessPlace.TenantId, gainfo.No, new TimeOnly(20, 30, 00));
|
||||
var dealLine = DateTime.Today.Add(bookingDeadline.ToTimeSpan());
|
||||
(now >= dealLine).ThrowIfTrue("超出订餐时间");
|
||||
|
||||
@@ -72,7 +74,7 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService
|
||||
|
||||
No = SnowFlakeHelper.Instance.NextId().ToString(),
|
||||
IsOffline = false,
|
||||
IsCostCrossTenant = await GetSettingAsync<bool>(gainfo.No, businessPlace.TenantId, CanteenSettingItemEnumType.AllowCrossTenant),
|
||||
IsCostCrossTenant = await _canteenSettingService.GetSettingAsync<bool>(CanteenSettingItemEnumType.AllowCrossTenant, businessPlace.TenantId, gainfo.No),
|
||||
|
||||
OriginTenantId = gainfo.Factory, //人员可能跨基地消费
|
||||
|
||||
@@ -212,7 +214,7 @@ public class BookingOrderService : BaseOrderService, IBookingOrderService
|
||||
var order = await DbContext.Queryable<CanteenOrderEntity>().Where(x => x.No == request.No).FirstAsync();
|
||||
order.ThrowIfNull("订单不存在");
|
||||
|
||||
var bookingDeadline = await GetSettingAsync<TimeOnly?>(order.No, order.TenantId, CanteenSettingItemEnumType.BookingDeadline) ?? new TimeOnly(20, 30, 00);
|
||||
var bookingDeadline = await _canteenSettingService.GetSettingAsync(CanteenSettingItemEnumType.BookingDeadline, order.TenantId, order.No, new TimeOnly(20, 30, 00));
|
||||
var dealLine = DateTime.Today.Add(bookingDeadline.ToTimeSpan());
|
||||
(DateTime.Now >= dealLine).ThrowIfTrue("不在订单取消允许范围内,不可操作");
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ namespace Dlhis.Canteen.Order.Services.Implements;
|
||||
|
||||
public class OrderService : BaseOrderService, IOrderService
|
||||
{
|
||||
private readonly ICanteenSettingService _canteenSettingService;
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
|
||||
@@ -33,6 +34,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
ILogger<OrderService> logger)
|
||||
: base(canteenSettingService, dbContext, currentUser, logger)
|
||||
{
|
||||
_canteenSettingService = canteenSettingService;
|
||||
_serviceProvider = serviceProvider;
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
}
|
||||
@@ -198,7 +200,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
/// <returns></returns>
|
||||
private async Task<DateTime> GetCostDateAsync(BusinessShiftMealRelationshipEntity shift, DateTime costDateTime)
|
||||
{
|
||||
var switchTime = await GetSettingAsync<TimeOnly?>(string.Empty, shift.TenantId, CanteenSettingItemEnumType.BusinessSwitchTime);
|
||||
var switchTime = await _canteenSettingService.GetSettingAsync<TimeOnly?>(CanteenSettingItemEnumType.BusinessSwitchTime, shift.TenantId, string.Empty);
|
||||
|
||||
var costDate = costDateTime.Date;
|
||||
|
||||
@@ -243,7 +245,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
.ToListAsync();
|
||||
|
||||
//一天消费金额
|
||||
var dayCostMax = await GetSettingAsync<decimal>(order.UserNo, order.TenantId, CanteenSettingItemEnumType.DayCostMax);
|
||||
var dayCostMax = await _canteenSettingService.GetSettingAsync<decimal>(CanteenSettingItemEnumType.DayCostMax, order.TenantId, order.UserNo);
|
||||
if (dayCostMax != default)
|
||||
{
|
||||
//消费记录一定会有营业点代码!.Value是安全用法
|
||||
@@ -255,7 +257,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
}
|
||||
|
||||
//一次消费金额
|
||||
var onceCostMax = await GetSettingAsync<decimal>(order.UserNo, order.TenantId, CanteenSettingItemEnumType.OnceCostMax);
|
||||
var onceCostMax = await _canteenSettingService.GetSettingAsync<decimal>(CanteenSettingItemEnumType.OnceCostMax, order.TenantId, order.UserNo);
|
||||
if (onceCostMax != default)
|
||||
{
|
||||
(Math.Abs(order.Amount) > onceCostMax).ThrowIfTrue($"单次消费金额不能超出{onceCostMax}元");
|
||||
@@ -264,7 +266,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
//超市消费限额
|
||||
if (order.BusinessPlaceCode.HasValue && supermarketCodes.Contains(order.BusinessPlaceCode.Value))
|
||||
{
|
||||
var dayMarketCostMax = await GetSettingAsync<decimal>(order.UserNo, order.TenantId, CanteenSettingItemEnumType.DayMarketCostMax);
|
||||
var dayMarketCostMax = await _canteenSettingService.GetSettingAsync<decimal>(CanteenSettingItemEnumType.DayMarketCostMax, order.TenantId, order.UserNo);
|
||||
if (dayMarketCostMax != default)
|
||||
{
|
||||
var cost = todayAllBalanceRecords.Where(x => x.BusinessPlaceCode.HasValue)
|
||||
@@ -276,7 +278,7 @@ public class OrderService : BaseOrderService, IOrderService
|
||||
}
|
||||
|
||||
//重复餐次消费
|
||||
var allowRepeatInOneShift = await GetSettingAsync(order.UserNo, order.TenantId, CanteenSettingItemEnumType.AllowRepeatInOneShift, true);
|
||||
var allowRepeatInOneShift = await _canteenSettingService.GetSettingAsync(CanteenSettingItemEnumType.AllowRepeatInOneShift, order.TenantId, order.UserNo, true);
|
||||
if (!allowRepeatInOneShift)
|
||||
{
|
||||
var costCount = todayAllBalanceRecords.Count(x => x.ShiftType == order.ShiftType);
|
||||
|
||||
Reference in New Issue
Block a user