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

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

parent d4e12126
......@@ -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
}))
......
......@@ -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
}
......
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