From 7c811247ecf143e08c576986a884bedadc57dd66 Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期五, 05 六月 2020 18:29:41 +0800 Subject: [PATCH] add refresh token to resp --- controllers/dbtablesCon.go | 271 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 178 insertions(+), 93 deletions(-) diff --git a/controllers/dbtablesCon.go b/controllers/dbtablesCon.go index a0dd2eb..6be81ba 100644 --- a/controllers/dbtablesCon.go +++ b/controllers/dbtablesCon.go @@ -2,14 +2,11 @@ import ( "basic.com/dbapi.git" - "encoding/json" + "basic.com/valib/logger.git" "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" ) @@ -17,49 +14,52 @@ type DbTableController struct { } +// @Security ApiKeyAuth // @Summary 鏄剧ず搴曞簱鍒楄〃 // @Description 鏄剧ず鍚屾鎴栨湰鍦板簱鍒楄〃 // @Accept x-www-form-urlencoded // @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") - var setApi dbapi.SysSetApi - _, sysconf := setApi.GetServerInfo() - analyServerFilterStr := "" - if isSync == "1" { - analyServerFilterStr = "{\"term\":{\"analyServerId\":\"\"}}" // / 鍚屾搴� - } else if isSync == "2" { - analyServerFilterStr = "{\"term\":{\"analyServerId\":\"" + sysconf.ServerId + "\"}}" // 鏈湴搴� + var tApi dbapi.DbTableApi + b, data := tApi.QueryDbTables(isSync) + if b{ + util.ResponseFormat(c, code.Success, data) + } else { + util.ResponseFormat(c,code.ComError,[]interface{}{}) } - if analyServerFilterStr !="" { - analyServerFilterStr = ","+ analyServerFilterStr - } - params := "{\"query\":{\"bool\":{\"must\":[" + - "{\"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) - util.ResponseFormat(c, code.Success, data) -} -锟� -// 渚濇嵁搴曞簱id 鏌ヨ鏁版嵁 -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 - logger.Debug("璇锋眰url:%s;", url) - data := esutil.GetEsDataInfo(url, true) - return data } +// @Security ApiKeyAuth +// @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{}{}) + } +} + +// @Security ApiKeyAuth // @Summary 淇敼搴曞簱 // @Description 淇敼鍚屾鎴栨湰鍦板簱 // @Accept json @@ -71,34 +71,99 @@ // @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 - logger.Debug("body涓幏鍙栧簳搴搃d") + err := c.BindJSON(&dbtable) + if err !=nil || dbtable.Id == "" || dbtable.TableName == "" || (dbtable.Enable !=0 && dbtable.Enable !=1) { + 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) - } - logger.Debug("%s\n", dbTableByte) - params := "{\"doc\":" + string(dbTableByte) + "}" - logger.Debug("璇锋眰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"]) + + paramBody := util.Struct2Map(dbtable) + var tApi dbapi.DbTableApi + b, data := tApi.UpdateDbTables(paramBody) + if b{ + util.ResponseFormat(c,code.UpdateSuccess,data) } else { - //code.ServiceInsideError.Message += result["msg"].(string) - util.ResponseFormat(c, code.ServiceInsideError, result["data"]) + 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"` +} + +// @Security ApiKeyAuth +// @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,"鏇存柊澶辫触") } } +// @Security ApiKeyAuth // @Summary 娣诲姞搴曞簱 // @Description 娣诲姞鍚屾鎴栨湰鍦板簱 // @Accept json @@ -110,63 +175,83 @@ // @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 + err := c.BindJSON(&dbtable) + if err!=nil || dbtable.TableName==""{ + util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎") + return + } + dbtable.Id = uuid.NewV4().String() if dbtable.AnalyServerId == "sync" { dbtable.AnalyServerId = "" } if dbtable.AnalyServerId == "local" { var setApi dbapi.SysSetApi - _, sysconf := setApi.GetServerInfo() + flag, sysconf := setApi.GetServerInfo() + if !flag { + util.ResponseFormat(c,code.ComError,"鏈嶅姟鍣ㄥ熀鏈厤缃湁璇�,璇锋鏌�") + return + } 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() // 娣诲姞鏃堕棿鍜屽垱寤轰汉 - 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 } - //logger.Debugf("%s\n", dbTableByte) - params := string(dbTableByte) - logger.Debug("璇锋眰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"]) + 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 { - //code.ServiceInsideError.Message += result["msg"].(string) - util.ResponseFormat(c, code.ServiceInsideError, result["data"]) + 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 + b, data := tApi.AddDbTableInfo(paramBody) + if b { + util.ResponseFormat(c,code.AddSuccess, data) + } else { + util.ResponseFormat(c,code.ComError, data) } } +// @Security ApiKeyAuth // @Summary 鍒犻櫎搴曞簱 // @Description 鍒犻櫎鍚屾鎴栨湰鍦板簱 // @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}}" - logger.Debug("鍒犻櫎璇锋眰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