From f79f18bf3e65ad0eaf8fd1feb788bf792e362520 Mon Sep 17 00:00:00 2001 From: sunty <suntianyu0923@163.com> Date: 星期四, 01 八月 2019 15:05:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- controllers/dbtablesCon.go | 106 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 88 insertions(+), 18 deletions(-) diff --git a/controllers/dbtablesCon.go b/controllers/dbtablesCon.go index 2eb472c..e942fc8 100644 --- a/controllers/dbtablesCon.go +++ b/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涓幏鍙栧簳搴搃d") + logger.Debug("body涓幏鍙栧簳搴搃d") + } + 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, "娣诲姞鎴愬姛") @@ -137,13 +207,13 @@ // @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] +// @Router /data/api-v/dbtable/deleteDBtablesById/{id} [POST] 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, "鍒犻櫎鎴愬姛") -- Gitblit v1.8.0