Commit f04749607444740334555e7271c8404270ab6e66
1 parent
35b0ac74
Exists in
master
单个用户没提50次,每次最大200金币加好了
Showing
1 changed file
with
56 additions
and
4 deletions
Show diff stats
src/HttpServer/logic/function.go
| ... | ... | @@ -275,11 +275,60 @@ func GetCoinFromToutiao(openid string, deviceid int) (int, error) { |
| 275 | 275 | return tmp.Data, nil |
| 276 | 276 | } |
| 277 | 277 | |
| 278 | +//检查今日次数上限 | |
| 279 | +func checkTodayAddCoinCount(openid string, amount int) (nums int, err error) { | |
| 280 | + | |
| 281 | + tim := time.Unix(time.Now().Unix(), 0).Format("0102") | |
| 282 | + redkey := "ttcc::" + openid + tim | |
| 283 | + | |
| 284 | + numstr, err := redishandler.GetRedisClient().GetString(redkey) | |
| 285 | + if err != nil { | |
| 286 | + return | |
| 287 | + } | |
| 288 | + | |
| 289 | + if numstr != "" { | |
| 290 | + nums, _ = strconv.Atoi(numstr) | |
| 291 | + } | |
| 292 | + | |
| 293 | + return | |
| 294 | +} | |
| 295 | + | |
| 296 | +//添加头条金币今日次数 | |
| 297 | +func addTodayAddCoinCount(openid string, amount int, nums int) (err error) { | |
| 298 | + nums++ | |
| 299 | + | |
| 300 | + tim := time.Unix(time.Now().Unix(), 0).Format("0102") | |
| 301 | + redkey := "ttcc::" + openid + tim | |
| 302 | + | |
| 303 | + expiretime := 86400 | |
| 304 | + redishandler.GetRedisClient().SetString(redkey, fmt.Sprintf("%d", nums)) | |
| 305 | + redishandler.GetRedisClient().Expire(redkey, expiretime) | |
| 306 | + | |
| 307 | + return | |
| 308 | +} | |
| 309 | + | |
| 278 | 310 | func AddCoinToTouTiao(openid string, deviceid, amount int, descr string, btype string, appname string) (int, int, int, bool, error) { |
| 279 | 311 | |
| 280 | 312 | gold_coin_extra_add := 0 |
| 281 | 313 | gold_coin_extra_limit := false |
| 282 | 314 | |
| 315 | + if amount > 200 { | |
| 316 | + err := errors.New("amount > 200") | |
| 317 | + logger.Error("AddCoinToTouTiao amount err=%v", err) | |
| 318 | + return 0, 0, gold_coin_extra_add, gold_coin_extra_limit, err | |
| 319 | + } | |
| 320 | + | |
| 321 | + ttnums, err := checkTodayAddCoinCount(openid, amount) | |
| 322 | + if err != nil { | |
| 323 | + logger.Error("AddCoinToTouTiao checkTodayAddCoinCount err=%v", err) | |
| 324 | + } | |
| 325 | + | |
| 326 | + if ttnums > 50 { | |
| 327 | + err := errors.New(fmt.Sprintf("ttnums > 50::%d", ttnums)) | |
| 328 | + logger.Error("AddCoinToTouTiao ttnums err=%v", err) | |
| 329 | + return 0, 0, gold_coin_extra_add, gold_coin_extra_limit, err | |
| 330 | + } | |
| 331 | + | |
| 283 | 332 | acctoken, err := GetAccessToken() |
| 284 | 333 | if err != nil { |
| 285 | 334 | logger.Error("AddCoinToTouTiao err=%v", err) |
| ... | ... | @@ -307,7 +356,7 @@ func AddCoinToTouTiao(openid string, deviceid, amount int, descr string, btype s |
| 307 | 356 | reqdata.TaskID = aidconfig.TaskID |
| 308 | 357 | reqdata.Extra.TaskKey = aidconfig.TaskKey |
| 309 | 358 | if aidconfig.Description != "" { |
| 310 | - reqdata.Description = fmt.Sprintf("%s+%d", aidconfig.Description, amount) | |
| 359 | + reqdata.Description = aidconfig.Description | |
| 311 | 360 | } |
| 312 | 361 | } |
| 313 | 362 | |
| ... | ... | @@ -325,22 +374,25 @@ func AddCoinToTouTiao(openid string, deviceid, amount int, descr string, btype s |
| 325 | 374 | |
| 326 | 375 | res, err := BeegoHttpPost(apiurl, reqdata) |
| 327 | 376 | if err != nil { |
| 328 | - logger.Error("AddCoinToTouTiao failed=%v", err) | |
| 377 | + logger.Error("AddCoinToTouTiao failed=%v", err, apiurl) | |
| 329 | 378 | return 0, 0, gold_coin_extra_add, gold_coin_extra_limit, err |
| 330 | 379 | } |
| 331 | 380 | |
| 332 | 381 | var resp AddcointotoutiaoResp |
| 333 | 382 | err = json.Unmarshal([]byte(res), &resp) |
| 334 | 383 | if err != nil { |
| 335 | - logger.Error("AddCoinToTouTiao failed=%v", err) | |
| 384 | + logger.Error("AddCoinToTouTiao failed=%v", err, apiurl) | |
| 336 | 385 | return 0, 0, gold_coin_extra_add, gold_coin_extra_limit, err |
| 337 | 386 | } |
| 338 | 387 | |
| 339 | 388 | if resp.Errcode != 0 { |
| 340 | - logger.Error("AddCoinToTouTiao failed=%v", resp) | |
| 389 | + logger.Error("AddCoinToTouTiao failed=%v", resp, apiurl) | |
| 341 | 390 | return 0, 0, gold_coin_extra_add, gold_coin_extra_limit, errors.New(resp.Errmsg) |
| 342 | 391 | } |
| 343 | 392 | |
| 393 | + //添加今日调用次数 | |
| 394 | + go addTodayAddCoinCount(openid, amount, ttnums) | |
| 395 | + | |
| 344 | 396 | newcoin, err := GetCoinFromToutiao(openid, 1) |
| 345 | 397 | if err != nil { |
| 346 | 398 | logger.Error("AddCoinToTouTiao failed=%v", err) | ... | ... |