From 3dc9a289540ac250f459f670ac09032842e9814a Mon Sep 17 00:00:00 2001 From: zyd Date: Sun, 28 Jun 2020 19:12:44 +0800 Subject: [PATCH] =?UTF-8?q?update=E8=AE=A1=E6=AC=A1=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=EF=BC=8C=E7=9B=B4=E6=8E=A5=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/handler/proxyhandler.go | 17 +++++------ src/service/field.go | 58 ++++++++++++++++++++++--------------- 2 files changed, 41 insertions(+), 34 deletions(-) diff --git a/src/handler/proxyhandler.go b/src/handler/proxyhandler.go index b357b8d..fd016e4 100644 --- a/src/handler/proxyhandler.go +++ b/src/handler/proxyhandler.go @@ -44,10 +44,8 @@ func Proxy(c *gin.Context) { //判断是否超过调用次数是否可以调用 callflag, sensitiveflag, err := service.QueryCallsCount(proxyData) if err != nil { - //Return(err.Error()) return nil } - //callflag = false if callflag == false { err = errors.New(`调用达到当日限定次数`) Return(nil, err, resp) @@ -64,19 +62,18 @@ func Proxy(c *gin.Context) { if sensitiveflag == false { res = service.SensitiveFilter(proxyData, res) } - //服务调用计次 - //err = service.CallCounts(proxyData) + //计次 err = service.CallCounts(proxyData) if err != nil { Return(nil, err, resp) return nil } - ////申请调用计次 - err = service.ApplyCallCounts(proxyData) - if err != nil { - Return(nil, err, resp) - return nil - } + ////个人申请调用计次 + //err = service.ApplyCallCounts(proxyData) + //if err != nil { + // Return(nil, err, resp) + // return nil + //} Return(res, nil, resp) return nil })) diff --git a/src/service/field.go b/src/service/field.go index 3d5f775..697f4e4 100644 --- a/src/service/field.go +++ b/src/service/field.go @@ -153,34 +153,44 @@ func RecordCall(proxyData model.ProxyData, status int, res []byte) { // return //} //服务调用计次 +//服务调用计次 func CallCounts(proxyData model.ProxyData) (err error) { - redis, err := client.GetRedisClient() + //redis, err := client.GetRedisClient() + //if err != nil { + // fmt.Println(err.Error()) + // return + //} + //str, err := redis.Get(fmt.Sprintf("%s", config.ServiceTag)) + //if err != nil && err.Error() != `redis: nil` { + // return + //} + //dateMap := make(map[int]int) + //if str != "" { + // err = json.Unmarshal([]byte(str), &dateMap) + // if err != nil { + // return + // } + // if _, ok := dateMap[proxyData.Service_id]; ok { + // dateMap[proxyData.Service_id] = dateMap[proxyData.Service_id] + 1 + // } else { + // dateMap[proxyData.Service_id] = 1 + // } + //} else { + // dateMap[proxyData.Service_id] = 1 + //} + //content, err := json.Marshal(dateMap) + //err = redis.Set(fmt.Sprintf("%s", config.ServiceTag), content, -1) + db, err := client.GetConnect() 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", config.ServiceTag)) - if err != nil && err.Error() != `redis: nil` { - return - } - dateMap := make(map[int]int) - if str != "" { - err = json.Unmarshal([]byte(str), &dateMap) - if err != nil { - return - } - if _, ok := dateMap[proxyData.Service_id]; ok { - dateMap[proxyData.Service_id] = dateMap[proxyData.Service_id] + 1 - } else { - dateMap[proxyData.Service_id] = 1 - } - } else { - dateMap[proxyData.Service_id] = 1 - } - content, err := json.Marshal(dateMap) - err = redis.Set(fmt.Sprintf("%s", config.ServiceTag), content, -1) + sql1 := fmt.Sprintf(`BEGIN WORK; +LOCK TABLE service IN SHARE ROW EXCLUSIVE MODE; + update service set request_count =request_count+1 where id = %d; + update service_apply set request_count =request_count+1 where id = %d; + +COMMIT WORK; `, proxyData.Service_id, proxyData.Apply_id) + _, err = db.SQL(sql1).Execute() return } -- 2.26.0