func loginAwardsHandler(request *http.Request, resp http.ResponseWriter, redis *models.RedisLogger, user *models.Account) { a := user.LoginAwards if (user.LoginDays-1)%7 == 0 || len(a) == 0 { a = []int64{} startDay := ((user.LoginDays - 1) / 7) * 7 level := user.Level() score := user.Props.Score for i := 0; i < 7; i++ { awards := loginAwards(startDay+i+1, int(level)) a = append(a, awards.Wealth, awards.Score) score = score + awards.Score level = models.Score2Level(score) } user.SetLoginAwards(a) } index := (user.LoginDays - 1) % 7 awards := Awards{Wealth: a[index*2], Score: a[index*2+1]} awards.Level = models.Score2Level(user.Props.Score+awards.Score) - user.Level() GiveAwards(user, awards, redis) loginAwards := []int64{} for i := 0; i < 7; i++ { loginAwards = append(loginAwards, a[i*2]) } respData := map[string]interface{}{ "continuous_logined_days": user.LoginDays, "login_reward_list": loginAwards, } writeResponse(request.RequestURI, resp, respData, nil) }