From 3566c2630dc2ac33e03fb6df5ec2cd19e1625a68 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期五, 27 九月 2019 15:49:55 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.14:10010/r/webserver
---
controllers/dbtablesCon.go | 310 +++++++++++++++++++++++++++++++++++++++------------
1 files changed, 235 insertions(+), 75 deletions(-)
diff --git a/controllers/dbtablesCon.go b/controllers/dbtablesCon.go
index e74d046..760fcc9 100644
--- a/controllers/dbtablesCon.go
+++ b/controllers/dbtablesCon.go
@@ -1,14 +1,18 @@
package controllers
import (
+ "basic.com/dbapi.git"
"encoding/json"
"fmt"
"github.com/gin-gonic/gin"
"github.com/satori/go.uuid"
- "log"
+ "strconv"
+ "time"
+ "webserver/cache"
"webserver/extend/code"
"webserver/extend/config"
"webserver/extend/esutil"
+ "basic.com/valib/logger.git"
"webserver/extend/util"
"webserver/models"
)
@@ -22,34 +26,53 @@
// @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) {
- 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\":{\"isSync\":\"1\"}}" // 鍚屾搴�
- } else if isSync == "2" {
- syncTerm = ",{\"term\":{\"isSync\":\"2\"}}" // / 鏈湴搴�
+ var tApi dbapi.DbTableApi
+ b, data := tApi.QueryDbTables(isSync)
+ if b{
+ util.ResponseFormat(c, code.Success, data)
+ } else {
+ util.ResponseFormat(c,code.ComError,[]interface{}{})
}
- 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)
+}
- data := esutil.GetEsDataReq(url, params, true)
- //c.JSON(200, data)
- util.ResponseFormat(c, code.Success, data)
+// @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
- fmt.Print("璇锋眰url:%s;", url)
+ logger.Debug("璇锋眰url:%s;", url)
data := esutil.GetEsDataInfo(url, true)
return data
}
@@ -65,32 +88,146 @@
// @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("id")
- if uuid == "" {
- uuid = dbtable.Id
- fmt.Println("body涓幏鍙栧簳搴搃d")
+ err := c.BindJSON(&dbtable)
+ if err !=nil || dbtable.Id == "" || dbtable.TableName == "" {
+ util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎")
+ return
}
- 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()
- dbTableByte, err := json.Marshal(dbtable)
- if err != nil {
- log.Fatalf("Json marshaling failed锛�%s", err)
+ currentTime := time.Now()
+ startTime := dbtable.StartTime
+ endTime := ""
+ if dbtable.EndTime != "" {
+ endTime = dbtable.EndTime
}
- 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"])
+ 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 {
- //code.ServiceInsideError.Message += result["msg"].(string)
- util.ResponseFormat(c, code.ServiceInsideError, result["data"])
+ dbtable.Enable = 0
}
+ paramBody := util.Struct2Map(dbtable)
+ var tApi dbapi.DbTableApi
+ b, data := tApi.UpdateDbTables(paramBody)
+ if b{
+ util.ResponseFormat(c,code.UpdateSuccess,data)
+ } else {
+ util.ResponseFormat(c,code.ComError,"鏇存柊澶辫触")
+ }
+
+ //if dbtable.EndTime == "" {
+ // flag := UpdateEndTime(dbtable.Id)
+ // if flag == false {
+ // util.ResponseFormat(c, code.ServiceInsideError, "淇敼澶辫触")
+ // }
+ //}
+ //
+ //if dbtable.Enable == 0 {
+ // res := UpdateDbPersonsOfDbTable(dbtable.Id)
+ //}
+ //if result["success"].(bool) {
+ // util.ResponseFormat(c, code.Success, result["data"])
+ //} else {
+ // util.ResponseFormat(c, code.ServiceInsideError, result["data"])
+ //}
+}
+
+type DbTStatusVo struct {
+ Id string `json:"id"`
+ Enable int `json:"enable"`
+}
+
+// @Summary 淇敼搴曞簱鐘舵��
+// @Description 淇敼鍚屾鎴栨湰鍦板簱搴曞簱鐘舵��
+// @Accept json
+// @Produce json
+// @Tags dbtable
+// @Param obj body controllers.DbTStatusVo true "搴曞簱鐘舵�佷慨鏀瑰弬鏁�"
+// @Success 200 {string} json "{"code":200, msg:"鐩綍缁撴瀯鏁版嵁", success:true}"
+// @Failure 500 {string} json "{"code":500, msg:"杩斿洖閿欒淇℃伅", success:false}"
+// @Router /data/api-v/dbtable/updateDbTableStatus [POST]
+func (dbt DbTableController) UpdateDbTableStatus(c *gin.Context) {
+ var ds DbTStatusVo
+ err := c.BindJSON(&ds)
+ if err !=nil || ds.Id == "" || (ds.Enable !=0 && ds.Enable !=1) {
+ 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 {
+ util.ResponseFormat(c,code.UpdateSuccess,"鏇存柊鎴愬姛")
+ } else {
+ util.ResponseFormat(c,code.ComError,"鏇存柊澶辫触")
+ }
+}
+
+func UpdateEndTime(id string) (flag bool) {
+ flag = false
+ 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))
+ 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 娣诲姞搴曞簱
@@ -104,28 +241,54 @@
// @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.Id = tableId
- url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
- "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + tableId + "?refresh=wait_for"
- dbtable.PriInsert() // 娣诲姞鏃堕棿鍜屽垱寤轰汉
- dbTableByte, err := json.Marshal(dbtable)
- if err != nil {
- log.Fatalf("Json marshaling failed锛�%s", err)
+ err := c.BindJSON(&dbtable)
+ if err!=nil || dbtable.TableName==""{
+ util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎")
+ return
}
- //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"])
+ dbtable.Id = uuid.NewV4().String()
+ if dbtable.AnalyServerId == "sync" {
+ dbtable.AnalyServerId = ""
+ }
+ if dbtable.AnalyServerId == "local" {
+ var setApi dbapi.SysSetApi
+ flag, sysconf := setApi.GetServerInfo()
+ if !flag {
+ util.ResponseFormat(c,code.ComError,"鏈嶅姟鍣ㄥ熀鏈厤缃湁璇�,璇锋鏌�")
+ return
+ }
+ dbtable.AnalyServerId = sysconf.ServerId
+ }
+
+ 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 {
- //code.ServiceInsideError.Message += result["msg"].(string)
- util.ResponseFormat(c, code.ServiceInsideError, result["data"])
+ dbtable.Enable = 0
+ }
+
+ paramBody := util.Struct2Map(dbtable)
+ var tApi dbapi.DbTableApi
+ b, data := tApi.AddDbTableInfo(paramBody)
+ if b {
+ util.ResponseFormat(c,code.AddSuccess, data)
+ } else {
+ util.ResponseFormat(c,code.ComError, data)
}
}
@@ -134,25 +297,22 @@
// @Accept x-www-form-urlencoded
// @Produce json
// @Tags dbtable
-// @Param uuid path string true "搴曞簱id "
+// @Param id 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/{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?refresh=wait_for"
- params := "{\"doc\":{\"isDelete\":\"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"])
+ id := c.Params.ByName("id")
+ if id == "" {
+ util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎")
+ return
+ }
+ var tApi dbapi.DbTableApi
+ b, data := tApi.DeleteById(id)
+ if b {
+ util.ResponseFormat(c,code.DelSuccess,data)
} else {
- //code.ServiceInsideError.Message += result["msg"].(string)
- util.ResponseFormat(c, code.ServiceInsideError, result["data"])
+ util.ResponseFormat(c,code.ComError,"鍒犻櫎澶辫触")
}
}
--
Gitblit v1.8.0