Commit 8fddadc52f4957279042a5f8ec5bf369960890dc
1 parent
48cd35a4
Exists in
master
提交修改
Showing
1 changed file
with
58 additions
and
0 deletions
Show diff stats
src/HttpServer/logic/logic.go
| @@ -426,6 +426,23 @@ func HandlerGetMainPageInfo(w http.ResponseWriter, data string, uuid int) { | @@ -426,6 +426,23 @@ func HandlerGetMainPageInfo(w http.ResponseWriter, data string, uuid int) { | ||
| 426 | resp.Code = 0 | 426 | resp.Code = 0 |
| 427 | resp.Message = "success" | 427 | resp.Message = "success" |
| 428 | for { | 428 | for { |
| 429 | + | ||
| 430 | + v, err := redishandler.GetRedisClient().HGet(redis.USER_LAST_CALC_TIME, strconv.Itoa(uuid)) | ||
| 431 | + if err != nil { | ||
| 432 | + logger.Info("HandlerGetMainPageInfo get USER_LAST_CALC_TIME failed=%v", err) | ||
| 433 | + resp.Message = "redishandler failed" | ||
| 434 | + resp.Code = 1 | ||
| 435 | + break | ||
| 436 | + } | ||
| 437 | + | ||
| 438 | + lasttime, _ := strconv.Atoi(v) | ||
| 439 | + nowtime := time.Now().Unix() | ||
| 440 | + if nowtime-int64(lasttime) < 0 { | ||
| 441 | + logger.Error("HandlerGetUserData nowtime=%v lasttime=%v", nowtime, lasttime) | ||
| 442 | + resp.Message = "request time small than zero" | ||
| 443 | + resp.Code = 1 | ||
| 444 | + break | ||
| 445 | + } | ||
| 429 | uinfo, err := GetUserInfo(strconv.Itoa(uuid)) | 446 | uinfo, err := GetUserInfo(strconv.Itoa(uuid)) |
| 430 | if err != nil || uinfo == nil { | 447 | if err != nil || uinfo == nil { |
| 431 | logger.Error("HandlerGetMainPageInfo getuserinfo failed=%v", err) | 448 | logger.Error("HandlerGetMainPageInfo getuserinfo failed=%v", err) |
| @@ -433,6 +450,47 @@ func HandlerGetMainPageInfo(w http.ResponseWriter, data string, uuid int) { | @@ -433,6 +450,47 @@ func HandlerGetMainPageInfo(w http.ResponseWriter, data string, uuid int) { | ||
| 433 | resp.Message = "get userinfo failed" | 450 | resp.Message = "get userinfo failed" |
| 434 | break | 451 | break |
| 435 | } | 452 | } |
| 453 | + | ||
| 454 | + if nowtime-int64(lasttime) > 5*60 { | ||
| 455 | + //在同步资源的时候计算 | ||
| 456 | + | ||
| 457 | + } else { | ||
| 458 | + //按费离线收益计算 | ||
| 459 | + //先计算一下双倍时间是否过期了 | ||
| 460 | + addgold := int64(0) | ||
| 461 | + offsec := nowtime - int64(lasttime) | ||
| 462 | + if uinfo.IsDouble == 1 { | ||
| 463 | + if nowtime > int64(uinfo.IsDouble+150) { | ||
| 464 | + | ||
| 465 | + //加速过期了 | ||
| 466 | + //计算部分三倍的 | ||
| 467 | + if lasttime > uinfo.IsDouble+150 { | ||
| 468 | + addgold = uinfo.Goldrate * offsec | ||
| 469 | + } else { | ||
| 470 | + noroffsec := nowtime - int64(uinfo.IsDouble+150) | ||
| 471 | + accoffsec := offsec - noroffsec | ||
| 472 | + addgold = uinfo.Goldrate*accoffsec*3 + noroffsec*uinfo.Goldrate | ||
| 473 | + } | ||
| 474 | + uinfo.IsDouble = 0 | ||
| 475 | + uinfo.StartDoubleTime = 0 | ||
| 476 | + | ||
| 477 | + } else { | ||
| 478 | + //还在加速期 | ||
| 479 | + addgold = uinfo.Goldrate * offsec * 3 | ||
| 480 | + } | ||
| 481 | + | ||
| 482 | + } | ||
| 483 | + | ||
| 484 | + uinfo.Gold = addgold | ||
| 485 | + uinfo.GoldSum += addgold | ||
| 486 | + uinfo.AddToRank() | ||
| 487 | + } | ||
| 488 | + | ||
| 489 | + //保存此次计算时间 | ||
| 490 | + nowtimestr := strconv.FormatInt(nowtime, 10) | ||
| 491 | + redishandler.GetRedisClient().HSet(redis.USER_LAST_CALC_TIME, strconv.Itoa(uuid), nowtimestr) | ||
| 492 | + logger.Info("HandlerGetUserData save USER_LAST_CALC_TIME time=%v", nowtimestr) | ||
| 493 | + | ||
| 436 | redlist := uinfo.GetRedCatIdList() | 494 | redlist := uinfo.GetRedCatIdList() |
| 437 | resp.Data.LimitCatList = append(resp.Data.LimitCatList, redlist...) | 495 | resp.Data.LimitCatList = append(resp.Data.LimitCatList, redlist...) |
| 438 | 496 |