GO 学习笔记例子二

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)
}
======================================================================





猜你喜欢

转载自blog.csdn.net/zhaoliang831214/article/details/80006136
今日推荐