feat(project): 新增包装费模式切换接口
All checks were successful
Build and Deploy TenantApi / build-and-deploy (push) Successful in 44s
All checks were successful
Build and Deploy TenantApi / build-and-deploy (push) Successful in 44s
This commit is contained in:
@@ -104,6 +104,21 @@ public sealed class StoreFeesSettingsDto
|
||||
public StoreOtherFeesDto OtherFees { get; set; } = new();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存包装费模式请求。
|
||||
/// </summary>
|
||||
public sealed class SaveStoreFeesModeRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// StoreId。
|
||||
/// </summary>
|
||||
public string StoreId { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// PackagingFeeMode。
|
||||
/// </summary>
|
||||
public string PackagingFeeMode { get; set; } = "order";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 复制费用请求。
|
||||
/// </summary>
|
||||
|
||||
@@ -87,6 +87,40 @@ public sealed class StoreFeesController(
|
||||
return ApiResponse<StoreFeesSettingsDto>.Ok(MapFeeSettings(parsedStoreId, result));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存包装费收取方式。
|
||||
/// </summary>
|
||||
[HttpPost("fees/mode/save")]
|
||||
[ProducesResponseType(typeof(ApiResponse<object>), StatusCodes.Status200OK)]
|
||||
public async Task<ApiResponse<object>> SaveMode([FromBody] SaveStoreFeesModeRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
var parsedStoreId = StoreApiHelpers.ParseRequiredSnowflake(request.StoreId, "storeId");
|
||||
var packagingFeeMode = ParsePackagingFeeMode(request.PackagingFeeMode);
|
||||
var (tenantId, merchantId) = StoreApiHelpers.GetTenantMerchantContext(storeContextService);
|
||||
var store = await StoreApiHelpers.EnsureStoreAccessibleAsync(dbContext, tenantId, merchantId, parsedStoreId, cancellationToken);
|
||||
|
||||
var fee = await dbContext.StoreFees
|
||||
.FirstOrDefaultAsync(x => x.TenantId == tenantId && x.StoreId == parsedStoreId, cancellationToken);
|
||||
if (fee is null)
|
||||
{
|
||||
fee = new StoreFee
|
||||
{
|
||||
StoreId = parsedStoreId,
|
||||
TenantId = store.TenantId
|
||||
};
|
||||
await dbContext.StoreFees.AddAsync(fee, cancellationToken);
|
||||
}
|
||||
|
||||
fee.PackagingFeeMode = packagingFeeMode;
|
||||
if (packagingFeeMode == PackagingFeeMode.PerItem)
|
||||
{
|
||||
fee.OrderPackagingFeeMode = OrderPackagingFeeMode.Fixed;
|
||||
}
|
||||
|
||||
await dbContext.SaveChangesAsync(cancellationToken);
|
||||
return ApiResponse<object>.Ok(null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 复制费用设置。
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user