Files
hfb_sys/backend/internal/modules/systemconfig/distribution.go
T

51 lines
1.5 KiB
Go

package systemconfig
import (
"strconv"
"strings"
smsnode "hfb_sys/backend/internal/modules/sms"
)
// 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)
case smsnode.ConfigKey:
if _, err := smsnode.ParseConfigValue(value); err != nil {
return ErrInvalidConfig
}
return nil
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
}