chore(init): 初始化解忧商行项目并完成 Phase 0 基座
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user