package controllers
|
|
import (
|
"encoding/json"
|
"fmt"
|
"github.com/gin-gonic/gin"
|
"webserver/extend/code"
|
"webserver/extend/config"
|
"webserver/extend/esutil"
|
"webserver/extend/util"
|
"webserver/models"
|
"github.com/satori/go.uuid"
|
"log"
|
)
|
|
type DbTableController struct {
|
}
|
|
// @Summary 显示底库列表
|
// @Description 显示同步或本地库列表
|
// @Accept x-www-form-urlencoded
|
// @Produce json
|
// @Tags dbtable
|
// @Param isSync path string true "是否同步库 1 同步库 2本地库 qita 全部库"
|
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"返回错误信息", success:false}"
|
// @Router /data/api-v/dbtable/queryDbTables/{isSync} [POST]
|
func (dbt DbTableController) QueryDbTables(c *gin.Context) {
|
url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
|
"/" + config.EsInfo.EsIndex.DbTables.IndexName + "/_search"
|
isSync := c.Params.ByName("isSync")
|
syncTerm := ""
|
if isSync == "1" {
|
syncTerm = ",{\"term\":{\"syncType\":\"1\"}}" // 同步库
|
} else if isSync == "2" {
|
syncTerm = ",{\"term\":{\"syncType\":\"2\"}}" // / 本地库
|
}
|
params := "{\"query\":{\"bool\":{\"must\":[" +
|
"{\"term\":{\"del_flag\":\"0\"}}" + syncTerm + "]}}," +
|
"\"from\":0,\"size\":100,\"sort\":{\"uuid\":{\"order\":\"asc\"}}}"
|
fmt.Print("请求url:%s;\n 请求参数params:%s", url, params)
|
|
data := esutil.GetEsDataReq(url, params, true)
|
//c.JSON(200, data)
|
util.ResponseFormat(c, code.Success, data)
|
}
|
|
// 依据底库id 查询数据
|
func QueryDbTableInfo(tableId string) map[string]interface{} {
|
url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
|
"/" + config.EsInfo.EsIndex.DbTables.IndexName +"/" + config.EsInfo.EsIndex.DbTables.IndexName + "/"+tableId
|
fmt.Print("请求url:%s;", url)
|
data := esutil.GetEsDataInfo(url, true)
|
return data
|
}
|
|
|
|
|
|
// @Summary 修改底库
|
// @Description 修改同步或本地库
|
// @Accept json
|
// @Produce json
|
// @Tags dbtable
|
// @Param table body models.Dbtables true "底库数据"
|
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"返回错误信息", success:false}"
|
// @Router /data/api-v/dbtable/updateDbTables [POST]
|
func (dbt DbTableController) UpdateDbTables(c *gin.Context) {
|
dbtable := new(models.Dbtables)
|
c.BindJSON(&dbtable)
|
uuid := c.Params.ByName("uuid")
|
if uuid == "" {
|
uuid = dbtable.Uuid
|
fmt.Println("body中获取底库uuid")
|
}
|
url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
|
"/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + uuid + "/_update"
|
dbtable.PriUpdate()
|
dbTableByte, err := json.Marshal(dbtable)
|
if err != nil {
|
log.Fatalf("Json marshaling failed:%s", err)
|
}
|
fmt.Printf("%s\n", dbTableByte)
|
params := "{\"doc\":" + string(dbTableByte) + "}"
|
fmt.Print("请求url:%s;\n 请求参数params:%s", url, params)
|
data := esutil.GetEsDataReq(url, params, false)
|
//c.JSON(200, changeEsRespData(data, "修改成功"))
|
result := changeEsRespData(data, "修改成功")
|
if result["success"].(bool) {
|
//code.Success.Message = "修改底库成功"
|
util.ResponseFormat(c, code.Success, result["data"])
|
} else {
|
//code.ServiceInsideError.Message += result["msg"].(string)
|
util.ResponseFormat(c, code.ServiceInsideError, result["data"])
|
}
|
}
|
|
// @Summary 添加底库
|
// @Description 添加同步或本地库
|
// @Accept json
|
// @Produce json
|
// @Tags dbtable
|
// @Param obj body models.Dbtables true "底库数据"
|
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"返回错误信息", success:false}"
|
// @Router /data/api-v/dbtable/addDbTableInfo [PUT]
|
func (dbt DbTableController) AddDbTableInfo(c *gin.Context) {
|
dbtable := new(models.Dbtables)
|
c.BindJSON(&dbtable)
|
tableId := uuid.NewV4().String()
|
dbtable.Uuid = tableId
|
url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
|
"/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + tableId
|
dbtable.PriInsert() // 添加时间和创建人
|
dbTableByte, err := json.Marshal(dbtable)
|
if err != nil {
|
log.Fatalf("Json marshaling failed:%s", err)
|
}
|
//fmt.Printf("%s\n", dbTableByte)
|
params := string(dbTableByte)
|
fmt.Print("请求url:%s;\n 请求参数params:%s", url, params)
|
data,_ := esutil.PutEsDataReq(url, params)
|
//c.JSON(200, changeEsRespData(data, "添加成功"))
|
result := changeEsRespData(data, "添加成功")
|
if result["success"].(bool) {
|
//code.Success.Message = "添加底库成功"
|
util.ResponseFormat(c, code.Success, result["data"])
|
} else {
|
//code.ServiceInsideError.Message += result["msg"].(string)
|
util.ResponseFormat(c, code.ServiceInsideError, result["data"])
|
}
|
}
|
|
// @Summary 删除底库
|
// @Description 删除同步或本地库
|
// @Accept x-www-form-urlencoded
|
// @Produce json
|
// @Tags dbtable
|
// @Param uuid path string true "底库id "
|
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"返回错误信息", success:false}"
|
// @Router /data/api-v/dbtable/deleteDBtablesById/{uuid} [POST]
|
func (dbt DbTableController) DeleteDbTables(c *gin.Context) {
|
uuid := c.Params.ByName("uuid")
|
url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
|
"/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + uuid + "/_update"
|
params := "{\"doc\":{\"del_flag\":\"1\"}}"
|
fmt.Print("删除请求url:%s;\n 请求参数params:%s", url, params)
|
data := esutil.GetEsDataReq(url, params, false)
|
//c.JSON(200, changeEsRespData(data, "删除成功"))
|
result := changeEsRespData(data, "删除成功")
|
if result["success"].(bool) {
|
//code.Success.Message = "删除底库成功"
|
util.ResponseFormat(c, code.Success, result["data"])
|
} else {
|
//code.ServiceInsideError.Message += result["msg"].(string)
|
util.ResponseFormat(c, code.ServiceInsideError, result["data"])
|
}
|
}
|
|
func changeEsRespData(respData map[string]interface{}, successMsg string) (result map[string]interface{}) {
|
id := respData["_id"]
|
result = map[string]interface{}{}
|
if id != "" {
|
result["code"] = 200
|
data := make(map[string]interface{})
|
data["uuid"] = id
|
result["data"] = data
|
result["success"] = true
|
result["msg"] = successMsg
|
} else {
|
result["data"] = nil
|
result["success"] = false
|
status := respData["status"]
|
if status != nil {
|
result["code"] = status
|
result["msg"] = respData["error"].(map[string]interface{})["reason"]
|
} else {
|
result["msg"] = "服务器异常"
|
result["code"] = 500
|
}
|
}
|
return result
|
}
|