diff --git a/cmd/cmd/export-all-job.go b/cmd/cmd/export-all-job.go new file mode 100644 index 0000000..81cdddc --- /dev/null +++ b/cmd/cmd/export-all-job.go @@ -0,0 +1,56 @@ +package cmd + +import ( + "excel_export/biz/config" + "fmt" + "github.com/spf13/cobra" + "strconv" + "time" +) + +func init() { + exportAllJobCmd.Flags().IntP("query", "q", 10000, "单次查询数") + + exportAllJobCmd.Flags().StringP("system", "s", "", "需要导出的系统") + exportAllJobCmd.Flags().StringP("begin", "b", "", "开始时间,如:2006-01-02 15:04:05") + exportAllJobCmd.Flags().StringP("end", "e", "", "结束时间,如:2006-01-02 15:04:05") + + rootCmd.AddCommand(exportAllJobCmd) +} + +var exportAllJobCmd = &cobra.Command{ + Use: "export-all-job", + Short: "导出数据", + SilenceUsage: true, + SilenceErrors: true, + Run: exportAllJobRun, +} + +func exportAllJobRun(cmd *cobra.Command, args []string) { + c := config.DefaultConfig + + sName := cmd.Flag("system").Value.String() + sys, err := c.GetSystem(sName) + if err != nil { + CmdError(cmd, "%s", err.Error()) + } + + begin := MustFlagsDateTime(cmd, "begin") + end := MustFlagsDateTime(cmd, "end") + + query := cmd.Flag("query").Value.String() + batch, err := strconv.Atoi(query) + if err != nil { + CmdError(cmd, "无效的参数:%s", err.Error()) + } + + for _, job := range sys.Jobs { + fmt.Printf("[%s]执行【%s】【%s】导出\n", time.Now().Format("2006-01-02 15:04:05"), sName, job.Name) + b := time.Now() + ee := NewCsv(config.DefaultConfig) + ee.Export(sName, job.Name, begin, end, batch) + e := time.Now() + fmt.Println("导出耗时:" + e.Sub(b).String()) + } + +} diff --git a/cmd/cmd/export-all.go b/cmd/cmd/export-all.go new file mode 100644 index 0000000..54fdf94 --- /dev/null +++ b/cmd/cmd/export-all.go @@ -0,0 +1,49 @@ +package cmd + +import ( + "excel_export/biz/config" + "fmt" + "github.com/spf13/cobra" + "strconv" + "time" +) + +func init() { + exportAllCmd.Flags().IntP("query", "q", 10000, "单次查询数") + exportAllCmd.Flags().StringP("begin", "b", "", "开始时间,如:2006-01-02 15:04:05") + exportAllCmd.Flags().StringP("end", "e", "", "结束时间,如:2006-01-02 15:04:05") + + rootCmd.AddCommand(exportAllCmd) +} + +var exportAllCmd = &cobra.Command{ + Use: "export-all", + Short: "导出数据", + SilenceUsage: true, + SilenceErrors: true, + Run: exportAllRun, +} + +func exportAllRun(cmd *cobra.Command, args []string) { + c := config.DefaultConfig + + begin := MustFlagsDateTime(cmd, "begin") + end := MustFlagsDateTime(cmd, "end") + + query := cmd.Flag("query").Value.String() + batch, err := strconv.Atoi(query) + if err != nil { + CmdError(cmd, "无效的参数:%s", err.Error()) + } + for _, sys := range c.Systems { + for _, job := range sys.Jobs { + fmt.Printf("[%s]执行【%s】【%s】导出\n", time.Now().Format("2006-01-02 15:04:05"), sys.Name, job.Name) + b := time.Now() + ee := NewCsv(config.DefaultConfig) + ee.Export(sys.Name, job.Name, begin, end, batch) + e := time.Now() + fmt.Println("导出耗时:" + e.Sub(b).String()) + } + } + +} diff --git a/cmd/cmd/export.go b/cmd/cmd/export.go new file mode 100644 index 0000000..7ac6e90 --- /dev/null +++ b/cmd/cmd/export.go @@ -0,0 +1,61 @@ +package cmd + +import ( + "excel_export/biz/config" + "fmt" + "github.com/spf13/cobra" + "strconv" + "time" +) + +func init() { + exportCmd.Flags().IntP("query", "q", 10000, "单次查询数") + + exportCmd.Flags().StringP("system", "s", "", "需要导出的系统") + exportCmd.Flags().StringP("job", "j", "", "需要导出的任务") + exportCmd.Flags().StringP("begin", "b", "", "开始时间,如:2006-01-02 15:04:05") + exportCmd.Flags().StringP("end", "e", "", "结束时间,如:2006-01-02 15:04:05") + + rootCmd.AddCommand(exportCmd) +} + +var exportCmd = &cobra.Command{ + Use: "export", + Short: "导出数据", + SilenceUsage: true, + SilenceErrors: true, + Run: exportRun, +} + +func exportRun(cmd *cobra.Command, args []string) { + c := config.DefaultConfig + + sName := cmd.Flag("system").Value.String() + sys, err := c.GetSystem(sName) + if err != nil { + CmdError(cmd, "%s", err.Error()) + } + + jName := cmd.Flag("job").Value.String() + + _, err = sys.GetJob(jName) + if err != nil { + CmdError(cmd, "%s", err.Error()) + } + + fmt.Printf("[%s]执行【%s】【%s】导出\n", time.Now().Format("2006-01-02 15:04:05"), sName, jName) + + begin := MustFlagsDateTime(cmd, "begin") + end := MustFlagsDateTime(cmd, "end") + + query := cmd.Flag("query").Value.String() + batch, err := strconv.Atoi(query) + if err != nil { + CmdError(cmd, "无效的参数:%s", err.Error()) + } + b := time.Now() + ee := NewCsv(config.DefaultConfig) + ee.Export(sName, jName, begin, end, batch) + e := time.Now() + fmt.Println("耗时:" + e.Sub(b).String()) +} diff --git a/cmd/cmd/job.go b/cmd/cmd/job.go new file mode 100644 index 0000000..0c5fc91 --- /dev/null +++ b/cmd/cmd/job.go @@ -0,0 +1,36 @@ +package cmd + +import ( + "excel_export/biz/config" + "github.com/spf13/cobra" +) + +func init() { + jobCmd.Flags().StringP("system", "s", "", "系统名称") + rootCmd.AddCommand(jobCmd) +} + +var jobCmd = &cobra.Command{ + Use: "job", + Short: "支持的系统", + SilenceUsage: true, + SilenceErrors: true, + Run: jobRun, +} + +func jobRun(cmd *cobra.Command, args []string) { + c := config.DefaultConfig + + sName := cmd.Flag("system").Value.String() + sys, err := c.GetSystem(sName) + if err != nil { + CmdError(cmd, "%s\n请输入export-tool system进行查看", err.Error()) + } + + cmd.Println("支持的任务:") + for _, job := range sys.Jobs { + cmd.Printf("%s \n", job.Name) + } + return + +} diff --git a/cmd/cmd/root.go b/cmd/cmd/root.go index a2dba94..f512697 100644 --- a/cmd/cmd/root.go +++ b/cmd/cmd/root.go @@ -1,94 +1,16 @@ package cmd import ( - "excel_export/biz/config" - "fmt" "github.com/spf13/cobra" - "strconv" - "time" ) var rootCmd = &cobra.Command{ - Use: "export", + Use: "export-tool", Short: "导出直充系统订单数据", SilenceUsage: true, SilenceErrors: true, - Run: rootRun, } func Execute() { - - rootCmd.Flags().IntP("query", "q", 10000, "单次查询数") - - rootCmd.Flags().StringP("system", "s", "", "需要导出的系统") - rootCmd.Flags().StringP("job", "j", "", "需要导出的任务") - rootCmd.Flags().StringP("begin", "b", "", "开始时间,如:2006-01-02 15:04:05") - rootCmd.Flags().StringP("end", "e", "", "结束时间,如:2006-01-02 15:04:05") - // rootCmd.AddCommand(ExportCmd) - cobra.CheckErr(rootCmd.Execute()) - -} - -func rootRun(cmd *cobra.Command, args []string) { - c := config.DefaultConfig - - sName := cmd.Flag("system").Value.String() - if sName == "" { - cmd.Println("支持的系统") - for i, system := range c.Systems { - cmd.Printf("\t %d\t%s\n", i+1, system.Name) - } - return - } - - var sys config.System - sIndex, err := strconv.Atoi(sName) - if err == nil { - sys = c.Systems[sIndex-1] - sName = sys.Name - } else { - sys, err = c.GetSystem(sName) - if err != nil { - CmdError(cmd, "%s", err.Error()) - } - } - - jName := cmd.Flag("job").Value.String() - if jName == "" { - cmd.Println("支持的任务") - for i, job := range sys.Jobs { - cmd.Printf("\t %d\t%s \n", i+1, job.Name) - } - return - } - - var job config.Job - jIndex, err := strconv.Atoi(jName) - if err == nil { - job = sys.Jobs[jIndex-1] - jName = job.Name - } else { - job, err = sys.GetJob(jName) - if err != nil { - CmdError(cmd, "%s", err.Error()) - } - } - - fmt.Printf("[%s]执行【%s】【%s】导出\n", time.Now().Format("2006-01-02 15:04:05"), sName, jName) - - begin := MustFlagsDateTime(cmd, "begin") - end := MustFlagsDateTime(cmd, "end") - - query := cmd.Flag("query").Value.String() - batch, err := strconv.Atoi(query) - if err != nil { - CmdError(cmd, "无效的参数:%s", err.Error()) - } - b := time.Now() - ee := NewCsv(config.DefaultConfig) - ee.Export(sName, jName, begin, end, batch) - e := time.Now() - fmt.Println("耗时:" + e.Sub(b).String()) - } diff --git a/cmd/cmd/system.go b/cmd/cmd/system.go new file mode 100644 index 0000000..a689162 --- /dev/null +++ b/cmd/cmd/system.go @@ -0,0 +1,29 @@ +package cmd + +import ( + "excel_export/biz/config" + "github.com/spf13/cobra" +) + +func init() { + rootCmd.AddCommand(systemCmd) +} + +var systemCmd = &cobra.Command{ + Use: "system", + Short: "支持的系统", + SilenceUsage: true, + SilenceErrors: true, + Run: systemRun, +} + +func systemRun(cmd *cobra.Command, args []string) { + c := config.DefaultConfig + + cmd.Println("支持的系统:") + for _, system := range c.Systems { + cmd.Printf("%s\n", system.Name) + } + return + +}