From dc30bd9491c7a2dd108a320e22f8499a447bc686 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Sat, 29 Feb 2020 16:41:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=9A=84=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_commons_controller.rb | 12 ++++++++++-- app/models/homework_common.rb | 1 + app/models/homework_group_setting.rb | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index c2e09fe2b..27b5c1b33 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -70,9 +70,17 @@ class HomeworkCommonsController < ApplicationController else case order when '1' - sql_str = %Q(homework_detail_manuals.comment_status = #{order} and homework_commons.end_time > '#{Time.now}') + unified_homework_ids = @homework_commons.published_no_end.unified_setting.pluck(:id) + group_homework_ids = @course.homework_group_settings.published_no_end.pluck(:homework_common_id) + homework_ids = unified_homework_ids + group_homework_ids + homework_ids = homework_ids.blank? ? "(-1)" : "(" + homework_ids.join(",") + ")" + sql_str = %Q(homework_commons.id in #{homework_ids}) when '2' - sql_str = %Q(allow_late = 1 and homework_commons.end_time < '#{Time.now}' and (late_time is null or late_time > '#{Time.now}')) + unified_homework_ids = @homework_commons.homework_ended.unified_setting.pluck(:id) + group_homework_ids = @course.homework_group_settings.has_end.pluck(:homework_common_id) + homework_ids = unified_homework_ids + group_homework_ids + homework_ids = homework_ids.blank? ? "(-1)" : "(" + homework_ids.join(",") + ")" + sql_str = %Q(homework_commons.id in #{homework_ids} and allow_late = 1 and (late_time is null or late_time > '#{Time.now}')) when '3' sql_str = %Q(homework_detail_manuals.comment_status = #{order} and homework_detail_manuals.evaluation_end > '#{Time.now}') when '4' diff --git a/app/models/homework_common.rb b/app/models/homework_common.rb index a3030a728..65c2e6f21 100644 --- a/app/models/homework_common.rb +++ b/app/models/homework_common.rb @@ -47,6 +47,7 @@ class HomeworkCommon < ApplicationRecord scope :homework_published, -> {where("homework_commons.publish_time IS NOT NULL AND homework_commons.publish_time <= ? ",Time.now)} scope :published_no_end, -> {where("homework_commons.publish_time IS NOT NULL AND homework_commons.publish_time < ? and homework_commons.end_time > ?", Time.now, Time.now)} + scope :homework_ended, -> {where("homework_commons.end_time IS NOT NULL AND homework_commons.end_time <= ? ",Time.now)} scope :search_homework_type, lambda {|num| where(homework_type:num)} scope :unified_setting, -> {where("unified_setting = ? ", 1)} diff --git a/app/models/homework_group_setting.rb b/app/models/homework_group_setting.rb index 7a06d5a7a..457afeb5b 100644 --- a/app/models/homework_group_setting.rb +++ b/app/models/homework_group_setting.rb @@ -7,5 +7,6 @@ class HomeworkGroupSetting < ApplicationRecord scope :published_no_end, -> {where("homework_group_settings.publish_time IS NOT NULL AND homework_group_settings.publish_time < ? and homework_group_settings.end_time > ?", Time.now, Time.now)} scope :none_end, -> {where("homework_group_settings.end_time IS NULL or homework_group_settings.end_time > ?", Time.now)} + scope :has_end, -> {where("homework_group_settings.end_time IS NOT NULL AND homework_group_settings.end_time <= ?", Time.now)} end