parent
d97281b04d
commit
c267b69fea
@ -0,0 +1,39 @@
|
||||
class AddScoreForPassGames < ActiveRecord::Migration
|
||||
def up
|
||||
games = Game.where("final_score = 0 and status = 2 and answer_open = 0 and end_time > '2019-03-08 00:00:00'").includes(:challenge)
|
||||
puts "game_count: #{games.count}"
|
||||
games.find_each do |game|
|
||||
puts "#{game.id}"
|
||||
challenge = game.challenge
|
||||
# 选择题和实践题的分数
|
||||
score = challenge.choose_score
|
||||
user = game.user
|
||||
game.update_column(:final_score, score)
|
||||
# 奖励金币和提供记录
|
||||
grade = Grade.where(:user_id => user.id, :container_id => game.id, :container_type => "Game").first
|
||||
if grade.nil?
|
||||
Grade.create!(:user_id => user.id,
|
||||
:container_id => game.id,
|
||||
:container_type => "Game",
|
||||
:score => score,
|
||||
:created_at => game.end_time,
|
||||
:updated_at => game.end_time)
|
||||
user.update_column(:grade, (score + user.grade.to_i))
|
||||
end
|
||||
# 经验奖励
|
||||
experience = Experience.where(:user_id => user.id, :container_id => game.id, :container_type => "Game").first
|
||||
if experience.nil?
|
||||
Experience.create!(:user_id => user.id,
|
||||
:container_id => game.id,
|
||||
:container_type => "Game",
|
||||
:score => score,
|
||||
:created_at => game.end_time,
|
||||
:updated_at => game.end_time)
|
||||
user.update_column(:experience, (score + user.experience.to_i))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
Loading…
Reference in new issue