code_dao.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package dao
  2. import (
  3. "github.com/druidcaesa/gotool"
  4. req2 "ulink-admin/modules/system/models/req"
  5. response2 "ulink-admin/modules/system/models/response"
  6. "ulink-admin/pkg/base"
  7. "ulink-admin/pkg/page"
  8. "xorm.io/xorm"
  9. )
  10. type CodeDao struct {
  11. }
  12. // 查询公共sql
  13. func (d CodeDao) queryTableSql() *xorm.Session {
  14. return base.SqlDB.NewSession().Table([]string{"information_schema.tables", "t"})
  15. }
  16. // 查询公共sql
  17. func (d CodeDao) queryColumSql() *xorm.Session {
  18. return base.SqlDB.NewSession().Table([]string{"information_schema.columns", "t"})
  19. }
  20. // Find 查询用户集合
  21. func (d CodeDao) FindTable(query req2.TableQuery) ([]*response2.TableResponse, int64) {
  22. resp := make([]*response2.TableResponse, 0)
  23. sql := d.queryTableSql()
  24. sql.And("t.table_schema = (select database())")
  25. if gotool.StrUtils.HasNotEmpty(query.TableName) {
  26. sql.And("table_name = ?", query.TableName)
  27. }
  28. sql.Desc("create_time")
  29. total, err := sql.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).FindAndCount(&resp)
  30. if err != nil {
  31. gotool.Logs.ErrorLog().Println(err)
  32. return nil, 0
  33. }
  34. return resp, total
  35. }
  36. // Find 查询用户集合
  37. func (d CodeDao) FindColumn(query req2.ColnumQuery) ([]*response2.ColumnResponse, int64) {
  38. resp := make([]*response2.ColumnResponse, 0)
  39. sql := d.queryColumSql()
  40. sql.And("t.table_schema = (select database())")
  41. sql.And("t.table_name =?", query.TableName)
  42. total, err := sql.FindAndCount(&resp)
  43. if err != nil {
  44. gotool.Logs.ErrorLog().Println(err)
  45. return nil, 0
  46. }
  47. return resp, total
  48. }