From fd4727d83420e21862005118ca99e36fa056c9b4 Mon Sep 17 00:00:00 2001 From: zyd Date: Tue, 23 Jun 2020 14:40:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AD=97=E6=AE=B5=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/conf.go | 1 + src/handler/proxyhandler.go | 1 + src/service/field.go | 68 ++++++++++++++++++++++++++----------- 3 files changed, 51 insertions(+), 19 deletions(-) diff --git a/src/config/conf.go b/src/config/conf.go index 73ef5de..851ebe0 100644 --- a/src/config/conf.go +++ b/src/config/conf.go @@ -13,6 +13,7 @@ var ( const CallRecord string = "callRecord" const SvcTag string = "SVC" +const ServiceTag string = "SERVICE" const ApplyTag string = "APPLY" var ProxyConf = struct { diff --git a/src/handler/proxyhandler.go b/src/handler/proxyhandler.go index 81f2460..d1af467 100644 --- a/src/handler/proxyhandler.go +++ b/src/handler/proxyhandler.go @@ -55,6 +55,7 @@ func Proxy(c *gin.Context) { res = service.SensitiveFilter(proxyData, res) } //服务调用计次 + //err = service.CallCounts(proxyData) err = service.CallCounts(proxyData) if err != nil { Return(err.Error()) diff --git a/src/service/field.go b/src/service/field.go index f43f495..7da731e 100644 --- a/src/service/field.go +++ b/src/service/field.go @@ -113,6 +113,45 @@ func RecordCall(proxyData model.ProxyData, status int, res []byte) { return } +//服务调用计次 +//func CallCounts(proxyData model.ProxyData) (err error) { +// redis, err := client.GetRedisClient() +// if err != nil { +// fmt.Println(err.Error()) +// return +// } +// date := time.Now().Format(config.LocalDateFormat) +// aMonBefore := time.Now().AddDate(0, -1, 0).Format(config.LocalDateFormat) +// +// str, err := redis.Get(fmt.Sprintf("%s-%d", config.SvcTag, proxyData.Service_id)) +// if err != nil && err.Error() != `redis: nil` { +// return +// } +// +// dateMap := make(map[string]int) +// if str != "" { +// err = json.Unmarshal([]byte(str), &dateMap) +// if err != nil { +// return +// } +// if _, ok := dateMap[date]; ok { +// dateMap[date] = dateMap[date] + 1 +// } else { +// dateMap[date] = 1 +// } +// for k, _ := range dateMap { +// if tools.CompareDate(k, aMonBefore) { +// delete(dateMap, k) +// } +// } +// +// } else { +// dateMap[date] = 1 +// } +// content, err := json.Marshal(dateMap) +// err = redis.Set(fmt.Sprintf("%s-%d", config.SvcTag, proxyData.Service_id), content, -1) +// return +//} //服务调用计次 func CallCounts(proxyData model.ProxyData) (err error) { redis, err := client.GetRedisClient() @@ -120,37 +159,28 @@ func CallCounts(proxyData model.ProxyData) (err error) { fmt.Println(err.Error()) return } - date := time.Now().Format(config.LocalDateFormat) - aMonBefore := time.Now().AddDate(0, -1, 0).Format(config.LocalDateFormat) - - str, err := redis.Get(fmt.Sprintf("%s-%d", config.SvcTag, proxyData.Service_id)) + //date := time.Now().Format(config.LocalDateFormat) + //aMonBefore := time.Now().AddDate(0, -1, 0).Format(config.LocalDateFormat) + str, err := redis.Get(fmt.Sprintf("%s", config.ServiceTag)) if err != nil && err.Error() != `redis: nil` { return } - - dateMap := make(map[string]int) + dateMap := make(map[int]int) if str != "" { err = json.Unmarshal([]byte(str), &dateMap) if err != nil { return } - if _, ok := dateMap[date]; ok { - dateMap[date] = dateMap[date] + 1 + if _, ok := dateMap[proxyData.Service_id]; ok { + dateMap[proxyData.Service_id] = dateMap[proxyData.Service_id] + 1 } else { - dateMap[date] = 1 + dateMap[proxyData.Service_id] = 1 } - for k, _ := range dateMap { - if tools.CompareDate(k, aMonBefore) { - delete(dateMap, k) - } - } - } else { - dateMap[date] = 1 + dateMap[proxyData.Service_id] = 1 } content, err := json.Marshal(dateMap) - //fmt.Sprintf("SVCID-%d",proxyData.Service_id) - err = redis.Set(fmt.Sprintf("%s-%d", config.SvcTag, proxyData.Service_id), content, -1) + err = redis.Set(fmt.Sprintf("%s", config.ServiceTag), content, -1) return } @@ -361,7 +391,7 @@ func GetRealPath(applyId string) (res model.ProxyData, err error) { Join(`inner`, `service_apply`, `service_apply.service_id = service.id`). Join(`left`, `service_request_spcs`, `service_request_spcs.id = service_apply.request_spcs_id`). Join(`left`, `service_safe_config`, `service_apply.service_id = service_safe_config.service_id`). - Where(`service_apply.id=?`, applyId).Get(&res) + Where(`service_apply.uuid=?`, applyId).Get(&res) if !has { err = errors.New(`未找到发布的服务!`) } -- 2.26.0