diff --git a/app/models/challenge.rb b/app/models/challenge.rb index ca88efbb3..68d55a582 100644 --- a/app/models/challenge.rb +++ b/app/models/challenge.rb @@ -79,19 +79,14 @@ class Challenge < ApplicationRecord # end # end - - # # 开启挑战 - # def open_game(user_id, shixun) - # - # - # game = self.games.select([:status, :identifier]).where(user_id: user_id).first - # game = self.games.select{|game| game.user_id == user_id} - # if game.present? - # shixun.task_pass || game.status != 3 ? "/tasks/#{game.identifier}" : "" - # else - # "/api/shixuns/#{shixun.identifier}/shixun_exec" - # end - # end + def open_game user_id, shixun + game = self.games.where(user_id: user_id).first + if game.present? + shixun.task_pass || game.status != 3 ? "/tasks/#{game.identifier}" : "" + else + self.position == 1 ? "/api/shixuns/#{shixun.identifier}/shixun_exec" : "" + end + end ## 用户关卡状态 0: 不能开启实训; 1:直接开启; 2表示已完成 def user_tpi_status shixun, user_id diff --git a/app/views/challenges/index.json.jbuilder b/app/views/challenges/index.json.jbuilder index 409514643..2eb8093a4 100644 --- a/app/views/challenges/index.json.jbuilder +++ b/app/views/challenges/index.json.jbuilder @@ -22,6 +22,7 @@ if @challenges.present? json.playing_count challenge.playing_count json.name_url shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier) #json.open_game challenge.open_game(@shixun) + json.open_game challenge.open_game(@shixun, @user.id) if @editable json.edit_url edit_shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier) json.delete_url shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier)