详情页面kd 展示,发布时间必填

This commit is contained in:
yml2213
2026-06-12 21:24:13 +08:00
parent f6ea3e29a6
commit 7c2f5e34c3
11 changed files with 148 additions and 5 deletions
@@ -41,6 +41,63 @@ func validateRequest(req CreateRequest, rules publishRules) error {
return nil
}
func validateRequiredOnlineTime(req CreateRequest) error {
start, end, ok := readOnlineTime(req.AssetSummary)
if !ok {
return ErrMissingOnlineTime
}
startMinute, ok := parseOnlineMinute(start)
if !ok {
return ErrInvalidOnlineTime
}
endMinute, ok := parseOnlineMinute(end)
if !ok {
return ErrInvalidOnlineTime
}
if startMinute >= endMinute {
return ErrInvalidOnlineTime
}
return nil
}
func readOnlineTime(summary map[string]any) (string, string, bool) {
if summary == nil {
return "", "", false
}
raw, ok := summary["online_time"]
if !ok {
return "", "", false
}
onlineTime, ok := raw.(map[string]any)
if !ok {
return "", "", false
}
start, okStart := onlineTime["start"].(string)
end, okEnd := onlineTime["end"].(string)
start = strings.TrimSpace(start)
end = strings.TrimSpace(end)
return start, end, okStart && okEnd && start != "" && end != ""
}
func parseOnlineMinute(value string) (int, bool) {
parts := strings.Split(strings.TrimSpace(value), ":")
if len(parts) != 2 {
return 0, false
}
hour, err := strconv.Atoi(parts[0])
if err != nil {
return 0, false
}
minute, err := strconv.Atoi(parts[1])
if err != nil {
return 0, false
}
if hour < 0 || hour > 23 || minute < 0 || minute > 59 {
return 0, false
}
return hour*60 + minute, true
}
func consumableValue(summary map[string]any) float64 {
if summary == nil {
return 0