From 10d3b3f5c124b85ec05ad58d8fb02c49acbb3b42 Mon Sep 17 00:00:00 2001
From: cxt <853663049@qq.com>
Date: Thu, 31 Oct 2019 16:47:43 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/models/competition.rb                                   | 6 ++++++
 .../competitions/competitions/common_header.json.jbuilder   | 2 +-
 app/views/competitions/competitions/index.json.jbuilder     | 2 +-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/app/models/competition.rb b/app/models/competition.rb
index 9eac28616..cd26088dd 100644
--- a/app/models/competition.rb
+++ b/app/models/competition.rb
@@ -46,6 +46,12 @@ class Competition < ApplicationRecord
     end
   end
 
+  # 报名数
+  def team_member_count
+    course = competition_mode_setting&.course if mode == 2
+    course ? course.students.count : team_members.count
+  end
+
   def sponsor_schools_name
     sponsor_schools.map{|sponsor| sponsor.school.name}
   end
diff --git a/app/views/competitions/competitions/common_header.json.jbuilder b/app/views/competitions/competitions/common_header.json.jbuilder
index a869d920b..0d0f3f4ca 100644
--- a/app/views/competitions/competitions/common_header.json.jbuilder
+++ b/app/views/competitions/competitions/common_header.json.jbuilder
@@ -1,6 +1,6 @@
 json.extract! @competition, :id, :name, :sub_title, :identifier, :bonus, :mode
 json.visits_count @competition.visits
-member_count = @competition.team_members.count
+member_count = @competition.team_member_count
 json.member_count member_count.zero? ? 268 : member_count
 
 json.start_time @competition.start_time&.strftime("%Y-%m-%d")
diff --git a/app/views/competitions/competitions/index.json.jbuilder b/app/views/competitions/competitions/index.json.jbuilder
index 5027cdee0..b7a3f20e0 100644
--- a/app/views/competitions/competitions/index.json.jbuilder
+++ b/app/views/competitions/competitions/index.json.jbuilder
@@ -5,7 +5,7 @@ json.competitions do
 
     json.competition_status competition.competition_status
     json.visits_count competition.visits
-    course = competition.competition_mode_setting.course if competition.mode == 2
+    course = competition.competition_mode_setting&.course if competition.mode == 2
     member_count = course ? course.students.count : (@member_count_map&.fetch(competition.id, 0) || competition.team_members.count)
     json.member_count member_count.zero? ? 268 : member_count