package utils import ( "fmt" "pbx-api-gin/pkg/lfshook" "strings" ) func GenCronRule(mode, timeStr string, weeks []string) string { switch mode { case "once": return genOnceCronRule(timeStr) case "loop": return genWeekCronRule(timeStr, weeks) } return "" } //genOnceCronRule func genOnceCronRule(timeStr string) string { hourMinute := strings.Split(timeStr, ":") if len(hourMinute) != 2 { lfshook.NewLogger().Errorf("error timeStr %s", timeStr) return "" } return fmt.Sprintf("%s %s * * *", hourMinute[1], hourMinute[0]) } //GenOnceCronRule func genWeekCronRule(timeStr string, weeks []string) string { hourMinute := strings.Split(timeStr, ":") if len(weeks) == 0 { return fmt.Sprintf("%s %s * * *", hourMinute[1], hourMinute[0]) } return fmt.Sprintf("%s %s * * %s", hourMinute[1], hourMinute[0], strings.Join(weeks, ",")) } //FkZero 格式化数据,去掉多余的0 func FkZero(times string) (fmttime string) { if string(times[0]) != "0" { return times } else if strings.Split(times, "0")[1] == "" { fkzero := "0" return fkzero } else { fkzero := strings.Split(times, "0")[1] return fkzero } }