db_tables.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package tools
  2. import (
  3. "IotAdmin/core/sdk/config"
  4. "IotAdmin/core/sdk/pkg"
  5. _ "IotAdmin/core/sdk/pkg/response"
  6. "errors"
  7. "github.com/gin-gonic/gin"
  8. "IotAdmin/app/other/models/tools"
  9. )
  10. // GetDBTableList 查询数据库表列表
  11. // @Summary 查询数据库表列表 / page list data
  12. // @Description 查询数据库表列表 / database table page list
  13. // @Tags 系統接口 / 生成工具
  14. // @Param tableName query string false "tableName / 数据表名称"
  15. // @Param pageSize query int false "pageSize / 页条数"
  16. // @Param pageIndex query int false "pageIndex / 页码"
  17. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  18. // @Router /api/sys/gen-db-tables [get]
  19. func (e Gen) GetDBTableList(c *gin.Context) {
  20. //var res response.Response
  21. var data tools.DBTables
  22. var err error
  23. var pageSize = 10
  24. var pageIndex = 1
  25. e.Context = c
  26. log := e.GetLogger()
  27. if config.DatabaseConfig.Driver == "sqlite3" || config.DatabaseConfig.Driver == "postgres" {
  28. err = errors.New("对不起,sqlite3 或 postgres 不支持代码生成!")
  29. log.Warn(err)
  30. e.Error(403, err, "")
  31. return
  32. }
  33. if size := c.Request.FormValue("pageSize"); size != "" {
  34. pageSize, err = pkg.StringToInt(size)
  35. }
  36. if index := c.Request.FormValue("pageIndex"); index != "" {
  37. pageIndex, err = pkg.StringToInt(index)
  38. }
  39. db, err := pkg.GetOrm(c)
  40. if err != nil {
  41. log.Errorf("get db connection error, %s", err.Error())
  42. e.Error(500, err, "数据库连接获取失败")
  43. return
  44. }
  45. data.TableName = c.Request.FormValue("tableName")
  46. result, count, err := data.GetPage(db, pageSize, pageIndex)
  47. if err != nil {
  48. log.Errorf("GetPage error, %s", err.Error())
  49. e.Error(500, err, "")
  50. return
  51. }
  52. e.PageOK(result, count, pageIndex, pageSize, "查询成功")
  53. }