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 |   82 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 76 insertions(+), 6 deletions(-)

diff --git a/controllers/dbtablesCon.go b/controllers/dbtablesCon.go
index 9a3cf28..e942fc8 100644
--- a/controllers/dbtablesCon.go
+++ b/controllers/dbtablesCon.go
@@ -1,10 +1,13 @@
 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"
@@ -29,15 +32,20 @@
 	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\"}}}"
+		"{\"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)
@@ -71,6 +79,12 @@
 		uuid = dbtable.Id
 		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?refresh=wait_for"
 	dbtable.PriUpdate()
@@ -93,6 +107,34 @@
 	}
 }
 
+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 娣诲姞搴曞簱
 // @Description 娣诲姞鍚屾鎴栨湰鍦板簱
 // @Accept  json
@@ -107,9 +149,37 @@
 	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 + "?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)
@@ -142,7 +212,7 @@
 	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?refresh=wait_for"
-	params := "{\"doc\":{\"isDelete\":\"1\"}}"
+	params := "{\"doc\":{\"isDelete\":1}}"
 	logger.Debug("鍒犻櫎璇锋眰url:%s;\n 璇锋眰鍙傛暟params:%s", url, params)
 	data := esutil.GetEsDataReq(url, params, false)
 	//c.JSON(200, changeEsRespData(data, "鍒犻櫎鎴愬姛"))

--
Gitblit v1.8.0