@@ -37,6 +37,21 @@ var modelApiCommand = &cobra.Command{
3737 return err
3838 }
3939
40+ tables , err := gormService .GetTables (ctx , db )
41+ if err != nil {
42+ return errors .Wrap (err , "获取数据库表格失败" )
43+ }
44+
45+ table := ""
46+ {
47+ // 第一步是一个交互命令行工具,首先展示要生成的表列表选择:
48+ prompt := & survey.Select {
49+ Message : "请选择要生成模型的表格:" ,
50+ Options : tables ,
51+ }
52+ survey .AskOne (prompt , & table )
53+ }
54+
4055 hasTable , err := gormService .HasTable (ctx , db , table )
4156 if err != nil {
4257 return fmt .Errorf ("数据库连接失败,表格 %v, 错误 %v" , table , err )
@@ -95,9 +110,44 @@ var modelApiCommand = &cobra.Command{
95110 }
96111
97112 apiGenerator := NewApiGenerator (table , columns )
113+ // get folder last string split by path separator
114+ apiGenerator .SetPackageName (strings .ToLower (filepath .Base (folder )))
115+
98116 if err := apiGenerator .GenModelFile (ctx , modelFile ); err != nil {
99117 return errors .Wrap (err , "GenModelFile error" )
100118 }
119+ if err := apiGenerator .GenRouterFile (ctx , routerFile ); err != nil {
120+ return errors .Wrap (err , "GenRouterFile error" )
121+ }
122+ if err := apiGenerator .GenApiCreateFile (ctx , apiCreateFile ); err != nil {
123+ return errors .Wrap (err , "GenApiCreateFile error" )
124+ }
125+ if err := apiGenerator .GenApiDeleteFile (ctx , apiDeleteFile ); err != nil {
126+ return errors .Wrap (err , "GenApiDeleteFile error" )
127+ }
128+ if err := apiGenerator .GenApiListFile (ctx , apiListFile ); err != nil {
129+ return errors .Wrap (err , "GenApiListFile error" )
130+ }
131+ if err := apiGenerator .GenApiShowFile (ctx , apiShowFile ); err != nil {
132+ return errors .Wrap (err , "GenApiShowFile error" )
133+ }
134+ if err := apiGenerator .GenApiUpdateFile (ctx , apiUpdateFile ); err != nil {
135+ return errors .Wrap (err , "GenApiUpdateFile error" )
136+ }
137+
138+ // 检测会重新生成如下文件
139+ {
140+ getFileTip := func (file string ) string {
141+ return "[成功] " + file
142+ }
143+ fmt .Println (getFileTip (modelFile ))
144+ fmt .Println (getFileTip (routerFile ))
145+ fmt .Println (getFileTip (apiCreateFile ))
146+ fmt .Println (getFileTip (apiDeleteFile ))
147+ fmt .Println (getFileTip (apiListFile ))
148+ fmt .Println (getFileTip (apiShowFile ))
149+ fmt .Println (getFileTip (apiUpdateFile ))
150+ }
101151
102152 return nil
103153 },
0 commit comments