gorm_view.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package generator_handler
  2. import (
  3. "fmt"
  4. "github.com/xinliangnote/go-gin-api/configs"
  5. "github.com/xinliangnote/go-gin-api/internal/pkg/core"
  6. "go.uber.org/zap"
  7. )
  8. func (h *handler) GormView() core.HandlerFunc {
  9. return func(c core.Context) {
  10. type tableInfo struct {
  11. Name string `db:"table_name"` // name
  12. Comment string `db:"table_comment"` // comment
  13. }
  14. var tableCollect []tableInfo
  15. mysqlConf := configs.Get().MySQL.Read
  16. sqlTables := fmt.Sprintf("SELECT `table_name`,`table_comment` FROM `information_schema`.`tables` WHERE `table_schema`= '%s'", mysqlConf.Name)
  17. rows, err := h.db.GetDbR().Raw(sqlTables).Rows()
  18. if err != nil {
  19. h.logger.Error("rows err", zap.Error(err))
  20. c.HTML("generator_gorm", tableCollect)
  21. return
  22. }
  23. err = rows.Err()
  24. if err != nil {
  25. h.logger.Error("rows err", zap.Error(err))
  26. c.HTML("generator_gorm", tableCollect)
  27. return
  28. }
  29. defer rows.Close()
  30. for rows.Next() {
  31. var info tableInfo
  32. err = rows.Scan(&info.Name, &info.Comment)
  33. if err != nil {
  34. fmt.Printf("execute query tables action error,had ignored, detail is [%v]\n", err.Error())
  35. continue
  36. }
  37. tableCollect = append(tableCollect, info)
  38. }
  39. c.HTML("generator_gorm", tableCollect)
  40. }
  41. }