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 | 426 | resp.Code = 0 |
427 | 427 | resp.Message = "success" |
428 | 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 | 446 | uinfo, err := GetUserInfo(strconv.Itoa(uuid)) |
430 | 447 | if err != nil || uinfo == nil { |
431 | 448 | logger.Error("HandlerGetMainPageInfo getuserinfo failed=%v", err) |
... | ... | @@ -433,6 +450,47 @@ func HandlerGetMainPageInfo(w http.ResponseWriter, data string, uuid int) { |
433 | 450 | resp.Message = "get userinfo failed" |
434 | 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 | 494 | redlist := uinfo.GetRedCatIdList() |
437 | 495 | resp.Data.LimitCatList = append(resp.Data.LimitCatList, redlist...) |
438 | 496 | ... | ... |