Merge branch 'dev_military_server_local' into dev_jk_server

This commit is contained in:
xiaoxiaoqiong 2022-03-29 17:50:54 +08:00
commit e4ec205890
3 changed files with 17 additions and 5 deletions

View File

@ -48,9 +48,11 @@ class CompetitionInfosController < ApplicationController
def enroll_list
competition_users = CompetitionUser.where(competition_info: @competition_info.id).order("updated_at desc")
competition_users = competition_users.where(zone: manager_competition_zones)
zones = @competition_info.manager_zones(current_user)
if params[:zone].present?
competition_users = competition_users.where(zone: params[:zone].to_s)
competition_users = zones.include?(params[:zone].to_s) ? competition_users.where(zone: params[:zone].to_s) : competition_users.where(zone: [])
else
competition_users = current_user.admin? ? competition_users : competition_users.where(zone: zones)
end
if params[:sub_competition].present?
competition_users = competition_users.where(sub_competition: params[:sub_competition].to_s)
@ -148,7 +150,7 @@ class CompetitionInfosController < ApplicationController
if current_user.admin?
@competition_info.competition_zones
else
@competition_info.manager_zones(current_user.id)
@competition_info.manager_zones(current_user)
end
end
end

View File

@ -34,15 +34,23 @@ class CompetitionInfo < ApplicationRecord
end
# 管理员配置方式id:赛区名称,id:赛区名称
def manager_zones(user_id)
def manager_zones(user)
return self.competition_zones if user.admin?
return [] if self.manager_ids.blank?
zones = []
managers = manager_ids.split(",")
managers.each do |u|
zones.push(u.split(":")[1]) if u.split(":")[0].to_s == user_id.to_s
zones.push(u.split(":")[1]) if u.split(":")[0].to_s == user.id.to_s
end
zones
end
# 管理员配置方式id:赛区名称,id:赛区名称
def is_manager?(user)
return true if user.admin?
managers = manager_ids.split(",")
managers.select { |u| u.split(":")[0].to_s == user.id.to_s }.size > 0
end
end

View File

@ -4,4 +4,6 @@ json.data do
json.extract! @competition_info, :id, :identifier, :title, :content, :video_url, :is_local, :enroll_date, :upload_date, :guide, :about_us
json.zones @competition_info.competition_zones
json.sub_competitions @competition_info.sub_competitions.to_s.split(",")
json.is_manager? @competition_info.is_manager?(current_user)
json.manager_zones @competition_info.manager_zones(current_user)
end