详情页面kd 展示,发布时间必填
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user