From eb2c3a8890a0e9695c0cd2bc3b3dc310c6fbcfa9 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期六, 26 十月 2019 11:28:23 +0800
Subject: [PATCH] fix user timeout

---
 controllers/dbtablesCon.go |   85 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 76 insertions(+), 9 deletions(-)

diff --git a/controllers/dbtablesCon.go b/controllers/dbtablesCon.go
index 9746d1d..7b588a9 100644
--- a/controllers/dbtablesCon.go
+++ b/controllers/dbtablesCon.go
@@ -6,11 +6,13 @@
 	"fmt"
 	"github.com/gin-gonic/gin"
 	"github.com/satori/go.uuid"
+	"strconv"
 	"time"
+	"webserver/cache"
 	"webserver/extend/code"
 	"webserver/extend/config"
 	"webserver/extend/esutil"
-	"webserver/extend/logger"
+	"basic.com/valib/logger.git"
 	"webserver/extend/util"
 	"webserver/models"
 )
@@ -24,8 +26,8 @@
 // @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}"
+// @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) {
 	isSync := c.Params.ByName("isSync")
@@ -38,9 +40,37 @@
 	}
 }
 
+// @Summary 鏌ヨ鏈満鎵�鏈夊簳搴撳垪琛�
+// @Description 鏌ヨ鏈満鎵�鏈夊簳搴撳垪琛�
+// @Accept  x-www-form-urlencoded
+// @Produce json
+// @Tags dbtable
+// @Param isDelete query string true "0锛氭煡鏈垹闄わ紝1锛氭煡宸插垹闄わ紝鍏朵粬锛氭煡鎵�鏈�"
+// @Success 200 {string} json "{"code":200, msg:"", success:true}"
+// @Failure 500 {string} json "{"code":500, msg:"", success:false}"
+// @Router /data/api-v/dbtable/findAllDbTablesByCurServer [GET]
+func (dbt DbTableController) FindAllDbTablesByCurServer(c *gin.Context) {
+	var api dbapi.DbTableApi
+	isDeleteStr := c.Query("isDelete")
+	if isDeleteStr == "" {
+		isDeleteStr = "0"
+	}
+	arr,e := api.FindAllDbTablesByCurServer(isDeleteStr)
+	if e == nil {
+		util.ResponseFormat(c,code.Success, arr)
+	} else {
+		util.ResponseFormat(c,code.ComError,[]interface{}{})
+	}
+}
+
 // 渚濇嵁搴曞簱id  鏌ヨ鏁版嵁
 func QueryDbTableInfo(tableId string) map[string]interface{} {
-	url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
+	localConf, err2 := cache.GetServerInfo()
+	if err2 !=nil || localConf.AlarmIp == "" || localConf.ServerId == "" {
+		logger.Debug("localConfig is wrong!!!")
+		return nil
+	}
+	url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
 		"/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + tableId
 	logger.Debug("璇锋眰url:%s;", url)
 	data := esutil.GetEsDataInfo(url, true)
@@ -129,7 +159,35 @@
 		util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎")
 		return
 	}
+
 	var dtApi dbapi.DbTableApi
+	dts, err := dtApi.DbtablesById([]string{ds.Id})
+	if err !=nil || dts == nil {
+		util.ResponseFormat(c,code.RequestParamError,"搴曞簱涓嶅瓨鍦�")
+		return
+	}
+	if ds.Enable == 1 {
+		str := dts[0].StartTime
+		etr := dts[0].EndTime
+		ct := time.Now()
+		st, _ := time.ParseInLocation("2006-01-02 15:04:05", str, time.Local)
+		b := false
+		if etr != "" {
+			et,_ := time.ParseInLocation("2006-01-02 15:04:05", etr, time.Local)
+			if et.After(ct) && st.Before(ct) {
+				b = true
+			}
+		} else {
+			if st.Before(ct) {
+				b = true
+			}
+		}
+		//b 涓簍rue鎵嶅厑璁稿紑鍚�
+		if !b {
+			util.ResponseFormat(c,code.UpdateFail,"褰撳墠涓嶅厑璁稿惎鐢�")
+			return
+		}
+	}
 
 	b,_ := dtApi.UpdateDbTableStatus(ds.Id, ds.Enable)
 	if b {
@@ -141,7 +199,12 @@
 
 func UpdateEndTime(id string) (flag bool) {
 	flag = false
-	url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
+	localConf, err2 := cache.GetServerInfo()
+	if err2 !=nil || localConf.AlarmIp == "" || localConf.ServerId == "" {
+		logger.Debug("localConfig is wrong!!!")
+		return false
+	}
+	url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
 		"/" + 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))
@@ -213,11 +276,15 @@
 		} else {
 			dbtable.Enable = 0
 		}
-	} else if st.Before(currentTime) && endTime == "" {
-		dbtable.Enable = 1
 	} else {
-		dbtable.Enable = 0
+		if st.Before(currentTime) {
+			dbtable.Enable = 1
+		} else {
+			dbtable.Enable = 0
+		}
 	}
+
+	logger.Debug("AddDbTableInfo dbtable.Enable:",dbtable.Enable,",startTime:",startTime,",endTime:",endTime,",st:",st,",curTime:",currentTime)
 
 	paramBody := util.Struct2Map(dbtable)
 	var tApi dbapi.DbTableApi
@@ -225,7 +292,7 @@
 	if b {
 		util.ResponseFormat(c,code.AddSuccess, data)
 	} else {
-		util.ResponseFormat(c,code.ComError,"鏂板澶辫触")
+		util.ResponseFormat(c,code.ComError, data)
 	}
 }
 

--
Gitblit v1.8.0