mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
114 lines
3.7 KiB
Go
114 lines
3.7 KiB
Go
package api
|
||
|
||
// ==========================================================================
|
||
// 生成日期:2023-04-10 02:51:27 +0000 UTC
|
||
// 生成路径: apps/visual/api/visual_data_source.go
|
||
// 生成人: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"
|
||
"pandax/apps/visual/services"
|
||
)
|
||
|
||
type VisualDataSourceApi struct {
|
||
VisualDataSourceApp services.VisualDataSourceModel
|
||
}
|
||
|
||
// GetVisualDataSourceList DataSource列表数据
|
||
func (p *VisualDataSourceApi) GetVisualDataSourceList(rc *restfulx.ReqCtx) {
|
||
data := entity.VisualDataSource{}
|
||
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)
|
||
|
||
rc.ResData = model.ResultPage{
|
||
Total: total,
|
||
PageNum: int64(pageNum),
|
||
PageSize: int64(pageNum),
|
||
Data: list,
|
||
}
|
||
}
|
||
|
||
// GetVisualDataSourceListAll DataSource列表数据
|
||
func (p *VisualDataSourceApi) GetVisualDataSourceListAll(rc *restfulx.ReqCtx) {
|
||
data := entity.VisualDataSource{}
|
||
data.SourceName = restfulx.QueryParam(rc, "sourceName")
|
||
data.SourceType = restfulx.QueryParam(rc, "sourceType")
|
||
data.Status = restfulx.QueryParam(rc, "status")
|
||
list := p.VisualDataSourceApp.FindList(data)
|
||
rc.ResData = list
|
||
}
|
||
|
||
// GetVisualDataSource 获取DataSource
|
||
func (p *VisualDataSourceApi) GetVisualDataSource(rc *restfulx.ReqCtx) {
|
||
sourceId := restfulx.PathParam(rc, "sourceId")
|
||
rc.ResData = p.VisualDataSourceApp.FindOne(sourceId)
|
||
}
|
||
|
||
// InsertVisualDataSource 添加DataSource
|
||
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)
|
||
}
|
||
|
||
// UpdateVisualDataSource 修改DataSource
|
||
func (p *VisualDataSourceApi) UpdateVisualDataSource(rc *restfulx.ReqCtx) {
|
||
var data entity.VisualDataSource
|
||
restfulx.BindQuery(rc, &data)
|
||
|
||
p.VisualDataSourceApp.Update(data)
|
||
}
|
||
|
||
// DeleteVisualDataSource 删除DataSource
|
||
func (p *VisualDataSourceApi) DeleteVisualDataSource(rc *restfulx.ReqCtx) {
|
||
sourceId := restfulx.PathParam(rc, "sourceId")
|
||
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)
|
||
}
|