数据源

This commit is contained in:
XM-GO
2023-04-25 17:20:27 +08:00
parent 5dfa341083
commit 3da0dc3936
20 changed files with 1244 additions and 47 deletions

View File

@@ -6,8 +6,11 @@ package api
// 生成人panda
// ==========================================================================
import (
"github.com/XM-GO/PandaKit/biz"
"github.com/XM-GO/PandaKit/model"
"github.com/XM-GO/PandaKit/restfulx"
"github.com/kakuilan/kgo"
"pandax/apps/visual/driver"
"strings"
"pandax/apps/visual/entity"
@@ -24,6 +27,7 @@ func (p *VisualDataSourceApi) GetVisualDataSourceList(rc *restfulx.ReqCtx) {
pageNum := restfulx.QueryInt(rc, "pageNum", 1)
pageSize := restfulx.QueryInt(rc, "pageSize", 10)
data.SourceName = restfulx.QueryParam(rc, "sourceName")
data.SourceType = restfulx.QueryParam(rc, "sourceType")
data.Status = restfulx.QueryParam(rc, "status")
list, total := p.VisualDataSourceApp.FindListPage(pageNum, pageSize, data)
@@ -46,7 +50,13 @@ func (p *VisualDataSourceApi) GetVisualDataSource(rc *restfulx.ReqCtx) {
func (p *VisualDataSourceApi) InsertVisualDataSource(rc *restfulx.ReqCtx) {
var data entity.VisualDataSource
restfulx.BindQuery(rc, &data)
data.SourceId = kgo.KStr.Uniqid("px")
err := driver.TestConnection(&data)
if err != nil {
data.Status = "0"
} else {
data.Status = "1"
}
p.VisualDataSourceApp.Insert(data)
}
@@ -64,3 +74,30 @@ func (p *VisualDataSourceApi) DeleteVisualDataSource(rc *restfulx.ReqCtx) {
sourceIds := strings.Split(sourceId, ",")
p.VisualDataSourceApp.Delete(sourceIds)
}
// GetDataSourceTest 校验数据源连接性
func (p *VisualDataSourceApi) GetDataSourceTest(rc *restfulx.ReqCtx) {
var data entity.VisualDataSource
restfulx.BindQuery(rc, &data)
err := driver.TestConnection(&data)
biz.ErrIsNilAppendErr(err, "数据库连接失败: %s")
}
// GetDataSourceTables 获取数据源下所有表
func (p *VisualDataSourceApi) GetDataSourceTables(rc *restfulx.ReqCtx) {
sourceId := restfulx.PathParam(rc, "sourceId")
one := p.VisualDataSourceApp.FindOne(sourceId)
instance := driver.NewDbInstance(one)
biz.IsTrue(instance != nil, "获取数据源下所有表失败")
rc.ResData = instance.GetMeta().GetTableInfos()
}
// GetDataSourceTableDetails 获取表下面的所有字段
func (p *VisualDataSourceApi) GetDataSourceTableDetails(rc *restfulx.ReqCtx) {
sourceId := restfulx.PathParam(rc, "sourceId")
tableName := restfulx.QueryParam(rc, "tableName")
one := p.VisualDataSourceApp.FindOne(sourceId)
instance := driver.NewDbInstance(one)
biz.IsTrue(instance != nil, "获取表下所有字段失败")
rc.ResData = instance.GetMeta().GetColumns(tableName)
}