sunty
2019-08-01 f79f18bf3e65ad0eaf8fd1feb788bf792e362520
controllers/dbtablesCon.go
@@ -1,14 +1,17 @@
package controllers
import (
   "basic.com/dbapi.git"
   "encoding/json"
   "fmt"
   "github.com/gin-gonic/gin"
   "github.com/satori/go.uuid"
   "log"
   "time"
   "webserver/extend/code"
   "webserver/extend/config"
   "webserver/extend/esutil"
   "webserver/extend/logger"
   "webserver/extend/util"
   "webserver/models"
)
@@ -29,16 +32,21 @@
   url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
      "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/_search"
   isSync := c.Params.ByName("isSync")
   syncTerm := ""
   var setApi dbapi.SysSetApi
   _, sysconf := setApi.GetServerInfo()
   analyServerFilterStr := ""
   if isSync == "1" {
      syncTerm = ",{\"term\":{\"isSync\":\"1\"}}" // 同步库
      analyServerFilterStr = "{\"term\":{\"analyServerId\":\"\"}}" // / 同步库
   } else if isSync == "2" {
      syncTerm = ",{\"term\":{\"isSync\":\"2\"}}" // / 本地库
      analyServerFilterStr = "{\"term\":{\"analyServerId\":\"" + sysconf.ServerId + "\"}}" // 本地库
   }
   if analyServerFilterStr != "" {
      analyServerFilterStr = "," + analyServerFilterStr
   }
   params := "{\"query\":{\"bool\":{\"must\":[" +
      "{\"term\":{\"isDelete\":\"0\"}}" + syncTerm + "]}}," +
      "\"from\":0,\"size\":100,\"sort\":{\"id\":{\"order\":\"asc\"}}}"
   fmt.Print("请求url:%s;\n 请求参数params:%s", url, params)
      "{\"term\":{\"isDelete\":\"0\"}}" + analyServerFilterStr + "]}}," +
      "\"from\":0,\"size\":1000,\"sort\":{\"id\":{\"order\":\"asc\"}}}"
   logger.Debug("请求url:%s;\n 请求参数params:%s", url, params)
   data := esutil.GetEsDataReq(url, params, true)
   //c.JSON(200, data)
@@ -49,7 +57,7 @@
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)
   logger.Debug("请求url:%s;", url)
   data := esutil.GetEsDataInfo(url, true)
   return data
}
@@ -69,18 +77,24 @@
   uuid := c.Params.ByName("id")
   if uuid == "" {
      uuid = dbtable.Id
      fmt.Println("body中获取底库id")
      logger.Debug("body中获取底库id")
   }
   if dbtable.EndTime == "" {
      flag := UpdateEndTime(dbtable.Id)
      if flag == false {
         util.ResponseFormat(c, code.ServiceInsideError, "修改失败")
      }
   }
   url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
      "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + uuid + "/_update"
      "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + uuid + "/_update?refresh=wait_for"
   dbtable.PriUpdate()
   dbTableByte, err := json.Marshal(dbtable)
   if err != nil {
      log.Fatalf("Json marshaling failed:%s", err)
   }
   fmt.Printf("%s\n", dbTableByte)
   logger.Debug("%s\n", dbTableByte)
   params := "{\"doc\":" + string(dbTableByte) + "}"
   fmt.Print("请求url:%s;\n 请求参数params:%s", url, params)
   logger.Debug("请求url:%s;\n 请求参数params:%s", url, params)
   data := esutil.GetEsDataReq(url, params, false)
   //c.JSON(200, changeEsRespData(data, "修改成功"))
   result := changeEsRespData(data, "修改成功")
@@ -91,6 +105,34 @@
      //code.ServiceInsideError.Message += result["msg"].(string)
      util.ResponseFormat(c, code.ServiceInsideError, result["data"])
   }
}
func UpdateEndTime(id string) (flag bool) {
   flag = false
   url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
      "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + id + "/_update?refresh=wait_for"
   prama := "{\"script\":\"ctx._source.remove(\\\"endTime\\\")\"}"
   buf, err := esutil.EsReq("POST", url, []byte(prama))
   if err != nil {
      fmt.Println("http request info is err!")
      return
   }
   var info interface{}
   json.Unmarshal(buf, &info)
   out, ok := info.(map[string]interface{})
   if !ok {
      fmt.Println("http response interface can not change map[string]interface{}")
      return
   }
   middle, ok := out["result"].(string)
   if !ok {
      fmt.Println("first result change error!")
      return
   }
   if middle == "updated" {
      flag = true
   }
   return flag
}
// @Summary 添加底库
@@ -107,16 +149,44 @@
   c.BindJSON(&dbtable)
   tableId := uuid.NewV4().String()
   dbtable.Id = tableId
   if dbtable.AnalyServerId == "sync" {
      dbtable.AnalyServerId = ""
   }
   if dbtable.AnalyServerId == "local" {
      var setApi dbapi.SysSetApi
      _, sysconf := setApi.GetServerInfo()
      dbtable.AnalyServerId = sysconf.ServerId
   }
   url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
      "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + tableId
      "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + tableId + "?refresh=wait_for"
   dbtable.PriInsert() // 添加时间和创建人
   currentTime := time.Now()
   startTime := dbtable.StartTime
   endTime := ""
   if dbtable.EndTime != "" {
      endTime = dbtable.EndTime
   }
   st, _ := time.ParseInLocation("2006-01-02 15:04:05", startTime, time.Local)
   if endTime != "" {
      et, _ := time.ParseInLocation("2006-01-02 15:04:05", endTime, time.Local)
      if et.After(currentTime) && st.Before(currentTime) {
         dbtable.Enable = 1
      } else {
         dbtable.Enable = 0
      }
   } else if st.Before(currentTime) && endTime == "" {
      dbtable.Enable = 1
   } else {
      dbtable.Enable = 0
   }
   dbTableByte, err := json.Marshal(dbtable)
   if err != nil {
      log.Fatalf("Json marshaling failed:%s", err)
   }
   //fmt.Printf("%s\n", dbTableByte)
   //logger.Debugf("%s\n", dbTableByte)
   params := string(dbTableByte)
   fmt.Print("请求url:%s;\n 请求参数params:%s", url, params)
   logger.Debug("请求url:%s;\n 请求参数params:%s", url, params)
   data, _ := esutil.PutEsDataReq(url, params)
   //c.JSON(200, changeEsRespData(data, "添加成功"))
   result := changeEsRespData(data, "添加成功")
@@ -141,9 +211,9 @@
func (dbt DbTableController) DeleteDbTables(c *gin.Context) {
   uuid := c.Params.ByName("id")
   url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
      "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + uuid + "/_update"
   params := "{\"doc\":{\"isDelete\":\"1\"}}"
   fmt.Print("删除请求url:%s;\n 请求参数params:%s", url, params)
      "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + uuid + "/_update?refresh=wait_for"
   params := "{\"doc\":{\"isDelete\":1}}"
   logger.Debug("删除请求url:%s;\n 请求参数params:%s", url, params)
   data := esutil.GetEsDataReq(url, params, false)
   //c.JSON(200, changeEsRespData(data, "删除成功"))
   result := changeEsRespData(data, "删除成功")