controllers
====================================1================================
// DataClassListResponse 传条件
type DataClassListResponse struct {
Title map[string]interface{} `json:"title"`
Config map[string]interface{} `json:"config"`
Body []*dataClassListClass `json:"body"`
}
type dataClassListClass struct {
ID int64 `json:"id"`
Logicalname string `json:"logicalname"` // 逻辑名称
Physicsname string `json:"physicsname"` // 物理名称
Category string `json:"category"` // 所属分类
CategoryID int64 `json:"categoryid"` // 所属分类
DataBaseID int64 `json:"databaseid"` //数据库ID
Type string `json:"type"` // 数据源类型
Databasename string `json:"databasename"` // 数据库名称
From string `json:"from"` // 数据来源
}
func (c *RawDataclassController) DataTableInfo() {
database := &DataBaseIDResponse{}
err := json.Unmarshal(c.Ctx.Input.RequestBody, database)
if err != nil {
c.WriteJSON(nil, err)
return
}
dataList, err := rawDataLogicallayerService.GetDataTableInfoLogic(database.ID)
if err != nil {
if err != orm.ErrNoRows {
c.WriteJSON(nil, err)
return
}
}
listClass := make([]*dataClassListClass, len(dataList))
for i, item := range dataList {
d := &dataClassListClass{
ID: item.ID,
Logicalname: item.TableInfo,
Physicsname: item.TName,
DataBaseID: item.DatabaseID,
}
listClass[i] = d
}
c.WriteJSON(listClass, err)
}
================================================================
====================================列2=========================
// ClassListParameteResponse 传条件搜索条件
type ClassListParameteResponse struct { //{"type":50,"table_name":"dfdd","data_origin":"1","current_page":"0","page_size":"10"}
Type int64 `json:"type"` //所属分类
TName string `json:"table_name"` //数据源名称
DataOrigin int64 `json:"data_origin"` //数据源类型
Currentpage int `json:"current_page"`
Pagesize int `json:"page_size"`
}
// DataClassListResponse 传条件
type DataClassListResponse struct {
Title map[string]interface{} `json:"title"`
Config map[string]interface{} `json:"config"`
Body []*dataClassListClass `json:"body"`
}
type dataClassListClass struct {
ID int64 `json:"id"`
Logicalname string `json:"logicalname"` // 逻辑名称
Physicsname string `json:"physicsname"` // 物理名称
Category string `json:"category"` // 所属分类
CategoryID int64 `json:"categoryid"` // 所属分类
DataBaseID int64 `json:"databaseid"` //数据库ID
Type string `json:"type"` // 数据源类型
Databasename string `json:"databasename"` // 数据库名称
From string `json:"from"` // 数据来源
}
// DataClassList 数据源分类列表
// @router /data-class-list [post]
func (c *RawDataclassController) DataClassList() {
req := &ClassListParameteResponse{}
err := json.Unmarshal(c.Ctx.Input.RequestBody, req)
if err != nil {
c.WriteJSON(nil, err)
return
}
res := &DataClassListResponse{}
res.Title = map[string]interface{}{
"logicalname": "数据源名称",
"physicsname": "物理名称",
"category": "所属分类",
"type": "数据源类型",
"databasename": "数据库名称",
"from": "数据来源",
}
var tableInfoList []*models.QReportExternalTableInfo
tableInfoList, err = rawDataLogicallayerService.GetDataClassListLogic(req.Type, req.TName, req.DataOrigin, req.Currentpage, req.Pagesize) //req.Type
if err != nil {
if err != orm.ErrNoRows {
c.WriteJSON(nil, err)
return
}
}
num, err := rawDataLogicallayerService.GetDataClassListSumLogic(req.Type, req.TName, req.DataOrigin)
if err != nil {
if err != orm.ErrNoRows {
c.WriteJSON(nil, err)
return
}
}
res.Config = map[string]interface{}{
"count": num,
}
listClass := make([]*dataClassListClass, len(tableInfoList))
for i, item := range tableInfoList {
d := &dataClassListClass{
ID: item.ID,
Logicalname: item.TName,
Physicsname: item.TableInfo,
// Category: types.ClassName,
// CategoryID: item.Type,
//Type: "表", //types.ClassName,//"表",// types.Class_name,
// Databasename: externalDatabaseInfo.DatabaseName, //item.DatabaseID,
From: "无",
}
if item.Type == 1 {
d.Type = "表"
} else {
d.Type = "模型"
}
externalDatabaseInfo, err := rawDataLogicallayerService.GetDataBaseSelectOneLogic(item.DatabaseID)
if err != nil {
if err == orm.ErrNoRows {
c.WriteJSON(nil, err)
return
}
} else {
d.Databasename = externalDatabaseInfo.DatabaseName
}
types, err := rawDataLogicallayerService.GetDatarawClassTableOneLogic(item.Type) //self_rpt_datarawclass_table
if err != nil {
if err != orm.ErrNoRows {
c.WriteJSON(nil, err)
return
}
} else {
d.Category = types.ClassName
d.CategoryID = item.Type
}
/*
if err != nil {
c.WriteJSON(nil, err)
return
}*/
/*
switch item.Type {
case 0:
d.Category = "表"
case 1:
d.Category = ""
}*/
listClass[i] = d
}
res.Body = listClass
c.WriteJSON(res, err)
}
=====================================================================
====================================列3============
type optionItemClass struct {
Value int64 `json:"value"`
Label string `json:"label"`
}
// Classifyall 分类下拉框
// @router /classifyall [post]
func (c *RawDataclassController) Classifyall() {
var datalist []models.QReportExternalDatarawClass
datalist, err := rawDataLogicallayerService.GetDataQueryLogic()
if err != nil {
c.WriteJSON(nil, err)
return
}
optionitem := make([]*optionItemClass, len(datalist))
for i, item := range datalist {
optionitem[i] = &optionItemClass{
Value: item.ID,
Label: item.ClassName,
}
}
c.WriteJSON(optionitem, err)
}
// Dataorigin 数据源类型
// @router /dataorigin [post]
func (c *RawDataclassController) Dataorigin() {
optionitem := []optionItemClass{
optionItemClass{Label: "表", Value: 1},
optionItemClass{Label: "模型", Value: 2},
}
c.WriteJSON(optionitem, nil)
}
======================================================================
====================================列4======================
// DebugInfo 前端下拉用
type DebugInfo struct {
Value string `json:"value"`
Label string `json:"label"`
}
// FieldType 字段类型
// @router /field-type [post]
func (c *RawDataclassController) FieldType() {
dbgInfs := []DebugInfo{
DebugInfo{"int", "int"},
DebugInfo{"varchar", "varchar"},
DebugInfo{"bigint", "bigint"},
DebugInfo{"double", "double"},
}
c.WriteJSON(dbgInfs, nil)
}
======================================================================
====================================1================================
// DataClassListResponse 传条件
type DataClassListResponse struct {
Title map[string]interface{} `json:"title"`
Config map[string]interface{} `json:"config"`
Body []*dataClassListClass `json:"body"`
}
type dataClassListClass struct {
ID int64 `json:"id"`
Logicalname string `json:"logicalname"` // 逻辑名称
Physicsname string `json:"physicsname"` // 物理名称
Category string `json:"category"` // 所属分类
CategoryID int64 `json:"categoryid"` // 所属分类
DataBaseID int64 `json:"databaseid"` //数据库ID
Type string `json:"type"` // 数据源类型
Databasename string `json:"databasename"` // 数据库名称
From string `json:"from"` // 数据来源
}
func (c *RawDataclassController) DataTableInfo() {
database := &DataBaseIDResponse{}
err := json.Unmarshal(c.Ctx.Input.RequestBody, database)
if err != nil {
c.WriteJSON(nil, err)
return
}
dataList, err := rawDataLogicallayerService.GetDataTableInfoLogic(database.ID)
if err != nil {
if err != orm.ErrNoRows {
c.WriteJSON(nil, err)
return
}
}
listClass := make([]*dataClassListClass, len(dataList))
for i, item := range dataList {
d := &dataClassListClass{
ID: item.ID,
Logicalname: item.TableInfo,
Physicsname: item.TName,
DataBaseID: item.DatabaseID,
}
listClass[i] = d
}
c.WriteJSON(listClass, err)
}
================================================================
====================================列2=========================
// ClassListParameteResponse 传条件搜索条件
type ClassListParameteResponse struct { //{"type":50,"table_name":"dfdd","data_origin":"1","current_page":"0","page_size":"10"}
Type int64 `json:"type"` //所属分类
TName string `json:"table_name"` //数据源名称
DataOrigin int64 `json:"data_origin"` //数据源类型
Currentpage int `json:"current_page"`
Pagesize int `json:"page_size"`
}
// DataClassListResponse 传条件
type DataClassListResponse struct {
Title map[string]interface{} `json:"title"`
Config map[string]interface{} `json:"config"`
Body []*dataClassListClass `json:"body"`
}
type dataClassListClass struct {
ID int64 `json:"id"`
Logicalname string `json:"logicalname"` // 逻辑名称
Physicsname string `json:"physicsname"` // 物理名称
Category string `json:"category"` // 所属分类
CategoryID int64 `json:"categoryid"` // 所属分类
DataBaseID int64 `json:"databaseid"` //数据库ID
Type string `json:"type"` // 数据源类型
Databasename string `json:"databasename"` // 数据库名称
From string `json:"from"` // 数据来源
}
// DataClassList 数据源分类列表
// @router /data-class-list [post]
func (c *RawDataclassController) DataClassList() {
req := &ClassListParameteResponse{}
err := json.Unmarshal(c.Ctx.Input.RequestBody, req)
if err != nil {
c.WriteJSON(nil, err)
return
}
res := &DataClassListResponse{}
res.Title = map[string]interface{}{
"logicalname": "数据源名称",
"physicsname": "物理名称",
"category": "所属分类",
"type": "数据源类型",
"databasename": "数据库名称",
"from": "数据来源",
}
var tableInfoList []*models.QReportExternalTableInfo
tableInfoList, err = rawDataLogicallayerService.GetDataClassListLogic(req.Type, req.TName, req.DataOrigin, req.Currentpage, req.Pagesize) //req.Type
if err != nil {
if err != orm.ErrNoRows {
c.WriteJSON(nil, err)
return
}
}
num, err := rawDataLogicallayerService.GetDataClassListSumLogic(req.Type, req.TName, req.DataOrigin)
if err != nil {
if err != orm.ErrNoRows {
c.WriteJSON(nil, err)
return
}
}
res.Config = map[string]interface{}{
"count": num,
}
listClass := make([]*dataClassListClass, len(tableInfoList))
for i, item := range tableInfoList {
d := &dataClassListClass{
ID: item.ID,
Logicalname: item.TName,
Physicsname: item.TableInfo,
// Category: types.ClassName,
// CategoryID: item.Type,
//Type: "表", //types.ClassName,//"表",// types.Class_name,
// Databasename: externalDatabaseInfo.DatabaseName, //item.DatabaseID,
From: "无",
}
if item.Type == 1 {
d.Type = "表"
} else {
d.Type = "模型"
}
externalDatabaseInfo, err := rawDataLogicallayerService.GetDataBaseSelectOneLogic(item.DatabaseID)
if err != nil {
if err == orm.ErrNoRows {
c.WriteJSON(nil, err)
return
}
} else {
d.Databasename = externalDatabaseInfo.DatabaseName
}
types, err := rawDataLogicallayerService.GetDatarawClassTableOneLogic(item.Type) //self_rpt_datarawclass_table
if err != nil {
if err != orm.ErrNoRows {
c.WriteJSON(nil, err)
return
}
} else {
d.Category = types.ClassName
d.CategoryID = item.Type
}
/*
if err != nil {
c.WriteJSON(nil, err)
return
}*/
/*
switch item.Type {
case 0:
d.Category = "表"
case 1:
d.Category = ""
}*/
listClass[i] = d
}
res.Body = listClass
c.WriteJSON(res, err)
}
=====================================================================
====================================列3============
type optionItemClass struct {
Value int64 `json:"value"`
Label string `json:"label"`
}
// Classifyall 分类下拉框
// @router /classifyall [post]
func (c *RawDataclassController) Classifyall() {
var datalist []models.QReportExternalDatarawClass
datalist, err := rawDataLogicallayerService.GetDataQueryLogic()
if err != nil {
c.WriteJSON(nil, err)
return
}
optionitem := make([]*optionItemClass, len(datalist))
for i, item := range datalist {
optionitem[i] = &optionItemClass{
Value: item.ID,
Label: item.ClassName,
}
}
c.WriteJSON(optionitem, err)
}
// Dataorigin 数据源类型
// @router /dataorigin [post]
func (c *RawDataclassController) Dataorigin() {
optionitem := []optionItemClass{
optionItemClass{Label: "表", Value: 1},
optionItemClass{Label: "模型", Value: 2},
}
c.WriteJSON(optionitem, nil)
}
======================================================================
====================================列4======================
// DebugInfo 前端下拉用
type DebugInfo struct {
Value string `json:"value"`
Label string `json:"label"`
}
// FieldType 字段类型
// @router /field-type [post]
func (c *RawDataclassController) FieldType() {
dbgInfs := []DebugInfo{
DebugInfo{"int", "int"},
DebugInfo{"varchar", "varchar"},
DebugInfo{"bigint", "bigint"},
DebugInfo{"double", "double"},
}
c.WriteJSON(dbgInfs, nil)
}
======================================================================