Files
PandaX/apps/visual/api/data_source.go
2023-04-27 17:17:46 +08:00

114 lines
3.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)
}