注释代码

dev_aliyun2
daiao 5 years ago committed by harry
parent 6c9f1404f5
commit 3ee8b3d711

@ -155,15 +155,16 @@ class ChallengesController < ApplicationController
def index def index
uid_logger("identifier: #{params}") uid_logger("identifier: #{params}")
base_columns = "challenges.id, challenges.subject, challenges.st, challenges.score, challenges.position, #base_columns = "challenges.id, challenges.subject, challenges.st, challenges.score, challenges.position,
challenges.shixun_id, games.identifier, games.status" # challenges.shixun_id, games.identifier, games.status"
join_sql = "LEFT JOIN games ON games.challenge_id = challenges.id AND games.user_id = #{current_user.id}" #join_sql = "LEFT JOIN games ON games.challenge_id = challenges.id AND games.user_id = #{current_user.id}"
# 下面2个参数是为了解决列表获取通关人数与正在游玩人数的问题 # 下面2个参数是为了解决列表获取通关人数与正在游玩人数的问题
@pass_games_map = @shixun.challenges.joins(:games).where(games: {status:2}).group(:challenge_id).reorder(nil).count #@pass_games_map = @shixun.challenges.joins(:games).where(games: {status:2}).group(:challenge_id).reorder(nil).count
@play_games_map = @shixun.challenges.joins(:games).where(games: {status:[0,1]}).group(:challenge_id).reorder(nil).count #@play_games_map = @shixun.challenges.joins(:games).where(games: {status:[0,1]}).group(:challenge_id).reorder(nil).count
@challenges = @shixun.challenges.joins(join_sql).select(base_columns) #@challenges = @shixun.challenges.joins(join_sql).select(base_columns)
@challenges = @shixun.challenges.fields_for_list
@editable = @shixun.status == 0 # before_action有判断权限如果没发布则肯定是管理人员 @editable = @shixun.status == 0 # before_action有判断权限如果没发布则肯定是管理人员
@user = current_user @user = current_user
@shixun.increment!(:visits) @shixun.increment!(:visits)

@ -69,15 +69,16 @@ class Challenge < ApplicationRecord
end end
# 开启挑战 # 开启挑战
def open_game shixun # def open_game shixun
# 这里的identifier,status是关联了games取了games的identifier,status # # 这里的identifier,status是关联了games取了games的identifier,status
identifier = self.identifier # identifier = self.identifier
if identifier.present? # if identifier.present?
shixun.task_pass || self.status != 3 ? "/tasks/#{identifier}" : "" # shixun.task_pass || self.status != 3 ? "/tasks/#{identifier}" : ""
else # else
self.position == 1 ? "/api/shixuns/#{shixun.identifier}/shixun_exec" : "" # self.position == 1 ? "/api/shixuns/#{shixun.identifier}/shixun_exec" : ""
end # end
end # end
# # 开启挑战 # # 开启挑战
# def open_game(user_id, shixun) # def open_game(user_id, shixun)
@ -93,16 +94,16 @@ class Challenge < ApplicationRecord
# end # end
## 用户关卡状态 0: 不能开启实训; 1:直接开启; 2表示已完成 ## 用户关卡状态 0: 不能开启实训; 1:直接开启; 2表示已完成
def user_tpi_status shixun def user_tpi_status shixun, user_id
# todo: 以前没加索引导致相同关卡,同一用户有多个games # todo: 以前没加索引导致相同关卡,同一用户有多个games
# 允许跳关则直接开启 # 允许跳关则直接开启
identifier = self.identifier game = games.where(user_id: user_id).take
if identifier.blank? if game.blank?
self.position == 1 ? 1 : 0 position == 1 ? 1 : 0
else else
if status == 3 if game.status == 3
shixun.task_pass ? 1 : 0 shixun.task_pass ? 1 : 0
elsif status == 2 elsif game.status == 2
2 2
else else
1 1
@ -110,6 +111,24 @@ class Challenge < ApplicationRecord
end end
end end
# ## 用户关卡状态 0: 不能开启实训; 1:直接开启; 2表示已完成
# def user_tpi_status shixun
# # todo: 以前没加索引导致相同关卡,同一用户有多个games
# # 允许跳关则直接开启
# identifier = self.identifier
# if identifier.blank?
# self.position == 1 ? 1 : 0
# else
# if status == 3
# shixun.task_pass ? 1 : 0
# elsif status == 2
# 2
# else
# 1
# end
# end
# end
def tags_show def tags_show
if self.challenge_tags.nil? if self.challenge_tags.nil?
"--" "--"

@ -16,12 +16,12 @@ if @challenges.present?
json.st challenge.st json.st challenge.st
json.name challenge.subject json.name challenge.subject
json.score challenge.score json.score challenge.score
json.passed_count @pass_games_map.fetch(challenge.id, 0) #json.passed_count @pass_games_map.fetch(challenge.id, 0)
#json.passed_count challenge.user_passed_count json.passed_count challenge.user_passed_count
json.playing_count @play_games_map.fetch(challenge.id, 0) #json.playing_count @play_games_map.fetch(challenge.id, 0)
#json.playing_count challenge.playing_count json.playing_count challenge.playing_count
json.name_url shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier) 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)
if @editable if @editable
json.edit_url edit_shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier) json.edit_url edit_shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier)
json.delete_url shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier) json.delete_url shixun_challenge_path(challenge, shixun_identifier: @shixun.identifier)
@ -29,6 +29,6 @@ if @challenges.present?
json.down_url index_down_shixun_challenge_path(challenge, :shixun_identifier => @shixun.identifier) if @shixun.challenges_count != challenge.position json.down_url index_down_shixun_challenge_path(challenge, :shixun_identifier => @shixun.identifier) if @shixun.challenges_count != challenge.position
end end
#json.passed challenge.has_passed?(@user.id) #json.passed challenge.has_passed?(@user.id)
json.status challenge.user_tpi_status(@shixun) json.status challenge.user_tpi_status(@shixun, @user.id)
end end
end end

Loading…
Cancel
Save