feat: 接入旧站管理端并完整迁移后台能力

This commit is contained in:
yml
2026-11-12 22:03:01 +08:00
parent e5f923706b
commit a4441bba9a
509 changed files with 140714 additions and 1068 deletions
@@ -9,6 +9,21 @@ import (
const defaultBannerHotspotHoverScale = 1.06
const maxBannerHotspotHoverScale = 1.5
func migrateInsuranceBillingCopy(value string) string {
value = strings.Replace(
value,
"注:选择此方案,需额外抽取订单佣金的8.0%作为服务费:",
"无忧保险服务费按实际纯币结算金额计算,额外物品不计入计费基数;具体费率以当前配置为准。",
1,
)
return strings.Replace(
value,
"并从卖家实际到手租金中扣除。",
"并按实际纯币结算金额计算,额外物品不计入保险基数。",
1,
)
}
func normalizeAnnouncements(items []string) []string {
normalized := make([]string, 0, len(items))
for _, item := range items {
@@ -231,6 +246,21 @@ func normalizePublishOptions(options *PublishOptionsDTO) {
if options.PriceConfig.DepositHint == "" {
options.PriceConfig.DepositHint = defaults.PriceConfig.DepositHint
}
if options.PriceConfig.DepositTooltip == "" {
options.PriceConfig.DepositTooltip = defaults.PriceConfig.DepositTooltip
}
if options.PriceConfig.PremiumZoneTooltip == "" {
options.PriceConfig.PremiumZoneTooltip = defaults.PriceConfig.PremiumZoneTooltip
} else {
options.PriceConfig.PremiumZoneTooltip =
migrateInsuranceBillingCopy(options.PriceConfig.PremiumZoneTooltip)
}
if options.PriceConfig.CompensationNote == "" {
options.PriceConfig.CompensationNote = defaults.PriceConfig.CompensationNote
} else {
options.PriceConfig.CompensationNote =
migrateInsuranceBillingCopy(options.PriceConfig.CompensationNote)
}
if options.PriceConfig.PricePlaceholder == "" {
options.PriceConfig.PricePlaceholder = defaults.PriceConfig.PricePlaceholder
}
@@ -252,6 +282,19 @@ func normalizePublishOptions(options *PublishOptionsDTO) {
if len(options.RatioConfig.CoinCorrections) == 0 {
options.RatioConfig.CoinCorrections = defaults.RatioConfig.CoinCorrections
}
options.RatioConfig.PremiumReviewRatioMarkup = normalizePremiumReviewRatioMarkup(
options.RatioConfig.PremiumReviewRatioMarkup,
)
}
func normalizePremiumReviewRatioMarkup(value float64) float64 {
if value < 0 || math.IsNaN(value) || math.IsInf(value, 0) {
return 0
}
if value > 10 {
return 10
}
return math.Round(value*10) / 10
}
func normalizeSalePriceConfig(config *PublishSalePriceConfig) {