Files
hfb_sys/backend/internal/modules/systemconfig/distribution.go
T
yml2213 e3a75fb2d7 feat(distribution): 默认结算冷却天数改为系统配置驱动
新建站点的默认冷却期原先硬编码 7 天(OnboardSite 字面量、DB 列默认、两套前端表单),
改一处要同时动三处。现统一到系统配置键 distribution.default_settlement_hold_days:

- systemconfig 注册该键(默认 7,0=立即释放,0-365 校验),纳入 admin 可见配置
- distribution 建站两条路径(CreateSite 未传值、OnboardSite 缺省)读取该配置,缺失或非法回落 7
- 新增 GET /admin/distribution/site-defaults 暴露当前有效默认值
- Vue / React 站点表单改为运行时拉取,拉取失败保持 7
- DB 列默认值保留作为兜底,站点级 settlement_hold_days 仍可单独覆盖
2026-09-10 18:54:23 +08:00

44 lines
1.3 KiB
Go

package systemconfig
import (
"strconv"
"strings"
)
// DistributionSettlementHoldDaysKey 是「新建分销站点默认结算冷却天数」的系统配置键。
const DistributionSettlementHoldDaysKey = "distribution.default_settlement_hold_days"
// DefaultDistributionSettlementHoldDays 是新建分销站点默认结算冷却天数的兜底值。
const DefaultDistributionSettlementHoldDays = 7
func defaultDistributionSettlementHoldDaysValue() string {
return strconv.Itoa(DefaultDistributionSettlementHoldDays)
}
// ParseDistributionSettlementHoldDays 解析结算冷却天数配置,为空、非法或越界时回落到默认 7 天。
func ParseDistributionSettlementHoldDays(raw string) int {
days, err := strconv.Atoi(strings.TrimSpace(raw))
if err != nil || days < 0 || days > 365 {
return DefaultDistributionSettlementHoldDays
}
return days
}
// validateConfigValue 按配置键分发校验逻辑,未注册校验的键直接放行。
func validateConfigValue(key, value string) error {
switch key {
case DistributionSettlementHoldDaysKey:
return validateDistributionSettlementHoldDays(value)
default:
return nil
}
}
func validateDistributionSettlementHoldDays(value string) error {
days, err := strconv.Atoi(strings.TrimSpace(value))
if err != nil || days < 0 || days > 365 {
return ErrInvalidConfig
}
return nil
}