Commit 3dc9a289 authored by 张宇迪's avatar 张宇迪

update计次方式,直接修改数据库

parent d4e12126
...@@ -44,10 +44,8 @@ func Proxy(c *gin.Context) { ...@@ -44,10 +44,8 @@ func Proxy(c *gin.Context) {
//判断是否超过调用次数是否可以调用 //判断是否超过调用次数是否可以调用
callflag, sensitiveflag, err := service.QueryCallsCount(proxyData) callflag, sensitiveflag, err := service.QueryCallsCount(proxyData)
if err != nil { if err != nil {
//Return(err.Error())
return nil return nil
} }
//callflag = false
if callflag == false { if callflag == false {
err = errors.New(`调用达到当日限定次数`) err = errors.New(`调用达到当日限定次数`)
Return(nil, err, resp) Return(nil, err, resp)
...@@ -64,19 +62,18 @@ func Proxy(c *gin.Context) { ...@@ -64,19 +62,18 @@ func Proxy(c *gin.Context) {
if sensitiveflag == false { if sensitiveflag == false {
res = service.SensitiveFilter(proxyData, res) res = service.SensitiveFilter(proxyData, res)
} }
//服务调用计次 //计次
//err = service.CallCounts(proxyData)
err = service.CallCounts(proxyData) err = service.CallCounts(proxyData)
if err != nil { if err != nil {
Return(nil, err, resp) Return(nil, err, resp)
return nil return nil
} }
////申请调用计次 ////个人申请调用计次
err = service.ApplyCallCounts(proxyData) //err = service.ApplyCallCounts(proxyData)
if err != nil { //if err != nil {
Return(nil, err, resp) // Return(nil, err, resp)
return nil // return nil
} //}
Return(res, nil, resp) Return(res, nil, resp)
return nil return nil
})) }))
......
...@@ -153,34 +153,44 @@ func RecordCall(proxyData model.ProxyData, status int, res []byte) { ...@@ -153,34 +153,44 @@ func RecordCall(proxyData model.ProxyData, status int, res []byte) {
// return // return
//} //}
//服务调用计次 //服务调用计次
//服务调用计次
func CallCounts(proxyData model.ProxyData) (err error) { 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 { if err != nil {
fmt.Println(err.Error())
return return
} }
//date := time.Now().Format(config.LocalDateFormat) sql1 := fmt.Sprintf(`BEGIN WORK;
//aMonBefore := time.Now().AddDate(0, -1, 0).Format(config.LocalDateFormat) LOCK TABLE service IN SHARE ROW EXCLUSIVE MODE;
str, err := redis.Get(fmt.Sprintf("%s", config.ServiceTag)) update service set request_count =request_count+1 where id = %d;
if err != nil && err.Error() != `redis: nil` { update service_apply set request_count =request_count+1 where id = %d;
return
} COMMIT WORK; `, proxyData.Service_id, proxyData.Apply_id)
dateMap := make(map[int]int) _, err = db.SQL(sql1).Execute()
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)
return return
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment