sys_auto_code_interface.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package system
  2. import (
  3. "github.com/flipped-aurora/gin-vue-admin/server/global"
  4. "github.com/flipped-aurora/gin-vue-admin/server/model/system/response"
  5. )
  6. type AutoCodeService struct{}
  7. type Database interface {
  8. GetDB(businessDB string) (data []response.Db, err error)
  9. GetTables(businessDB string, dbName string) (data []response.Table, err error)
  10. GetColumn(businessDB string, tableName string, dbName string) (data []response.Column, err error)
  11. }
  12. func (autoCodeService *AutoCodeService) Database(businessDB string) Database {
  13. if businessDB == "" {
  14. switch global.GVA_CONFIG.System.DbType {
  15. case "mysql":
  16. return AutoCodeMysql
  17. case "pgsql":
  18. return AutoCodePgsql
  19. case "mssql":
  20. return AutoCodeMssql
  21. case "oracle":
  22. return AutoCodeOracle
  23. case "sqlite":
  24. return AutoCodeSqlite
  25. default:
  26. return AutoCodeMysql
  27. }
  28. } else {
  29. for _, info := range global.GVA_CONFIG.DBList {
  30. if info.AliasName == businessDB {
  31. switch info.Type {
  32. case "mysql":
  33. return AutoCodeMysql
  34. case "mssql":
  35. return AutoCodeMssql
  36. case "pgsql":
  37. return AutoCodePgsql
  38. case "oracle":
  39. return AutoCodeOracle
  40. case "sqlite":
  41. return AutoCodeSqlite
  42. default:
  43. return AutoCodeMysql
  44. }
  45. }
  46. }
  47. return AutoCodeMysql
  48. }
  49. }