From 13768f5f5bf87e046bd61034b9b28a23c523fb4e Mon Sep 17 00:00:00 2001 From: nuyue Date: Thu, 16 Jul 2026 18:17:29 +0800 Subject: [PATCH] feat: update order model with packaging_fee and international_fee, remove tax --- backend/internal/api/handlers/order.go | 18 +++++++++++------- backend/internal/models/order.go | 5 +++-- frontend/src/views/admin/Orders.vue | 12 ++++++++---- frontend/src/views/user/OrderDetail.vue | 4 +++- 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/backend/internal/api/handlers/order.go b/backend/internal/api/handlers/order.go index 714a9da..ace74ff 100644 --- a/backend/internal/api/handlers/order.go +++ b/backend/internal/api/handlers/order.go @@ -378,22 +378,25 @@ func (h *OrderHandler) Create(c *gin.Context) { } // 获取其他费率 - var serviceFeeRate, taxRate, channelFeeRate float64 + var serviceFeeRate, channelFeeRate, packagingFee, internationalFeeRate float64 var setting models.SystemSetting if err := utils.DB.Where("`key` = ?", "service_fee_rate").First(&setting).Error; err == nil { serviceFeeRate, _ = strconv.ParseFloat(setting.Value, 64) } - if err := utils.DB.Where("`key` = ?", "tax_rate").First(&setting).Error; err == nil { - taxRate, _ = strconv.ParseFloat(setting.Value, 64) - } if err := utils.DB.Where("`key` = ?", "payment_channel_fee_rate").First(&setting).Error; err == nil { channelFeeRate, _ = strconv.ParseFloat(setting.Value, 64) } + if err := utils.DB.Where("`key` = ?", "packaging_fee").First(&setting).Error; err == nil { + packagingFee, _ = strconv.ParseFloat(setting.Value, 64) + } + if err := utils.DB.Where("`key` = ?", "international_fee_rate").First(&setting).Error; err == nil { + internationalFeeRate, _ = strconv.ParseFloat(setting.Value, 64) + } serviceFee := subtotal * serviceFeeRate / 100 - tax := subtotal * taxRate / 100 channelFee := subtotal * channelFeeRate / 100 - totalAmount := subtotal + shippingFee + serviceFee + tax + channelFee + internationalFee := subtotal * internationalFeeRate / 100 + totalAmount := subtotal + shippingFee + serviceFee + channelFee + packagingFee + internationalFee order := models.Order{ UserID: userID, @@ -401,8 +404,9 @@ func (h *OrderHandler) Create(c *gin.Context) { Subtotal: subtotal, ShippingFee: shippingFee, ServiceFee: serviceFee, - Tax: tax, ChannelFee: channelFee, + PackagingFee: packagingFee, + InternationalFee: internationalFee, TotalAmount: totalAmount, Status: models.OrderStatusPendingPayment, ShippingAddressID: &req.ShippingAddressID, diff --git a/backend/internal/models/order.go b/backend/internal/models/order.go index 28bea1b..71239f3 100644 --- a/backend/internal/models/order.go +++ b/backend/internal/models/order.go @@ -13,8 +13,9 @@ type Order struct { Subtotal float64 `gorm:"type:decimal(10,2);not null" json:"subtotal"` ShippingFee float64 `gorm:"type:decimal(10,2);default:0" json:"shipping_fee"` ServiceFee float64 `gorm:"type:decimal(10,2);default:0" json:"service_fee"` - Tax float64 `gorm:"type:decimal(10,2);default:0" json:"tax"` - ChannelFee float64 `gorm:"type:decimal(10,2);default:0" json:"channel_fee"` // 支付通道费 + ChannelFee float64 `gorm:"type:decimal(10,2);default:0" json:"channel_fee"` + PackagingFee float64 `gorm:"type:decimal(10,2);default:0" json:"packaging_fee"` + InternationalFee float64 `gorm:"type:decimal(10,2);default:0" json:"international_fee"` TotalAmount float64 `gorm:"type:decimal(10,2);not null" json:"total_amount"` RefundAmount *float64 `gorm:"type:decimal(10,2)" json:"refund_amount"` RefundStatus string `gorm:"size:20" json:"refund_status"` diff --git a/frontend/src/views/admin/Orders.vue b/frontend/src/views/admin/Orders.vue index 0d1c4b7..d89a113 100644 --- a/frontend/src/views/admin/Orders.vue +++ b/frontend/src/views/admin/Orders.vue @@ -100,14 +100,18 @@ 服务费 ¥{{ (currentOrder.service_fee || 0).toFixed(2) }} -
- 税费 - ¥{{ (currentOrder.tax || 0).toFixed(2) }} -
通道费 ¥{{ (currentOrder.channel_fee || 0).toFixed(2) }}
+
+ 包装费 + ¥{{ (currentOrder.packaging_fee || 0).toFixed(2) }} +
+
+ 国际计算手续费 + ¥{{ (currentOrder.international_fee || 0).toFixed(2) }} +
合计 ¥{{ (currentOrder.total_amount || 0).toFixed(2) }} diff --git a/frontend/src/views/user/OrderDetail.vue b/frontend/src/views/user/OrderDetail.vue index f67c211..8a63d30 100644 --- a/frontend/src/views/user/OrderDetail.vue +++ b/frontend/src/views/user/OrderDetail.vue @@ -14,7 +14,9 @@ ¥{{ order.subtotal || order.total_amount }} ¥{{ order.shipping_fee || 0 }} ¥{{ order.service_fee || 0 }} - ¥{{ order.tax || 0 }} + ¥{{ order.channel_fee || 0 }} + ¥{{ order.packaging_fee || 0 }} + ¥{{ order.international_fee || 0 }} ¥{{ order.total_amount }}