From b8d7ec2a77939b61103d1583a23314fdb2ff09de Mon Sep 17 00:00:00 2001
From: cxt <853663049@qq.com>
Date: Wed, 19 Feb 2020 15:58:27 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E4=BD=9C=E4=B8=9A=E5=88=97?=
 =?UTF-8?q?=E8=A1=A8=E5=A2=9E=E5=8A=A0=E5=AE=8C=E6=88=90=E5=81=9A=E9=A2=98?=
 =?UTF-8?q?=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/helpers/homework_commons_helper.rb         | 11 +++++++++++
 app/views/homework_commons/index.json.jbuilder |  8 +++++---
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/app/helpers/homework_commons_helper.rb b/app/helpers/homework_commons_helper.rb
index 3061a6e80..2ffc3872f 100644
--- a/app/helpers/homework_commons_helper.rb
+++ b/app/helpers/homework_commons_helper.rb
@@ -177,6 +177,17 @@ module HomeworkCommonsHelper
     type == 2 ? student_works.size : (type == 1 ? student_works.where("work_status != 0").size : student_works.where(work_status: 0).size)
   end
 
+  # 作品数统计
+  def calculate_work_count homework_common, member
+    count = {}
+    student_works = homework_common.teacher_works(member)
+    count[:commit_count] = student_works.select{|work| work.work_status != 0 }.size
+    count[:uncommit_count] = student_works.select{|work| work.work_status == 0 }.size
+    count[:compelete_count] = Myshixun.where(id: student_works.pluck(:myshixun_id).reject(&:blank?), status: 1).size
+    count[:all_count] = student_works.size
+    count
+  end
+
   # 上次查重的时间
   def last_review_time homework_common, course_group
     review = homework_common.homework_group_reviews.where(:course_group_id => course_group.id).last
diff --git a/app/views/homework_commons/index.json.jbuilder b/app/views/homework_commons/index.json.jbuilder
index 6b34eb220..6d64cf1f1 100644
--- a/app/views/homework_commons/index.json.jbuilder
+++ b/app/views/homework_commons/index.json.jbuilder
@@ -25,9 +25,11 @@ json.homeworks @homework_commons.each do |homework|
   json.upper_category_name homework.course_second_category&.name unless params[:category]
 
   unless curr_status[:status].include?("未发布")
-    json.commit_count studentwork_count homework, 1, @member
-    json.uncommit_count studentwork_count homework, 0, @member
-    json.all_count studentwork_count homework, 2, @member
+    work_count = calculate_work_count homework, @member
+    json.commit_count work_count[:commit_count]
+    json.uncommit_count work_count[:uncommit_count]
+    json.all_count work_count[:all_count]
+    json.compelete_count work_count[:compelete_count]
   end
 
   if homework.homework_type == "practice"