From 6b22c5254911c324e318f99fcced8d5a6022aa9f Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 5 Mar 2020 16:17:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=BE=E5=88=B0=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 2 +- .../weapps/attendances_controller.rb | 7 ++++--- app/helpers/weapps/attendances_helper.rb | 6 +++--- app/models/course_group.rb | 2 ++ .../weapps/attendances/show.json.jbuilder | 21 ++++++++++++++++--- 5 files changed, 28 insertions(+), 10 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index c50c2a185..59ec88fc7 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -330,7 +330,7 @@ class ApplicationController < ActionController::Base end if !User.current.logged? && Rails.env.development? - User.current = User.find 3117 + User.current = User.find 1 end diff --git a/app/controllers/weapps/attendances_controller.rb b/app/controllers/weapps/attendances_controller.rb index 2ed1d2b14..fc379d16e 100644 --- a/app/controllers/weapps/attendances_controller.rb +++ b/app/controllers/weapps/attendances_controller.rb @@ -90,12 +90,13 @@ class Weapps::AttendancesController < ApplicationController @_is_current_attendance = @attendance.current_attendance? if @attendance.course_attendance_groups.first&.course_group_id.to_i == 0 - @groups = @course.course_groups + @group_ids = @course.course_groups.pluck(:id) + [0] else - @groups = @course.course_groups.where(id: @attendance.course_attendance_groups.pluck(:course_group_id)) + @group_ids = @attendance.course_attendance_groups.pluck(:course_group_id) end - @groups = @groups.includes(:course_members) if @_is_current_attendance + @groups = @course.course_groups.where(id: @group_ids) + @course_members = @course.students if @_is_current_attendance @all_attendances = @attendance.course_member_attendances end diff --git a/app/helpers/weapps/attendances_helper.rb b/app/helpers/weapps/attendances_helper.rb index 30591c149..e0223ad74 100644 --- a/app/helpers/weapps/attendances_helper.rb +++ b/app/helpers/weapps/attendances_helper.rb @@ -5,9 +5,9 @@ module Weapps::AttendancesHelper st_attendance.present? ? st_attendance.attendance_status : "ABSENCE" end - def group_attendance_count attendances, group - course_member_ids = group.course_members.pluck(:id) - attendances.select{|attendance| course_member_ids.include?(attendance.course_member_id) && attendance.attendance_status == "NORMAL"}.size + def group_attendance_count attendances, member_ids + # course_member_ids = group.course_members.pluck(:id) + attendances.select{|attendance| member_ids.include?(attendance.course_member_id) && attendance.attendance_status == "NORMAL"}.size end def history_member_count member_attendances, status, attendance_id diff --git a/app/models/course_group.rb b/app/models/course_group.rb index 5bd27804f..79bc6fcab 100644 --- a/app/models/course_group.rb +++ b/app/models/course_group.rb @@ -9,6 +9,8 @@ class CourseGroup < ApplicationRecord has_many :homework_group_settings, :dependent => :destroy scope :by_group_ids, lambda { |ids| where(id: ids)} + has_many :course_attendance_groups, dependent: :destroy + validates :name, length: { maximum: 60, too_long: "不能超过60个字符" } validates_uniqueness_of :name, scope: :course_id, message: "不能创建相同名称的分班" diff --git a/app/views/weapps/attendances/show.json.jbuilder b/app/views/weapps/attendances/show.json.jbuilder index 54d3e870a..1eb73347e 100644 --- a/app/views/weapps/attendances/show.json.jbuilder +++ b/app/views/weapps/attendances/show.json.jbuilder @@ -9,7 +9,22 @@ json.attendance_date @attendance.attendance_date.strftime("%Y/%m/%d") json.start_time @attendance.start_time.strftime("%H:%M") json.end_time @attendance.end_time.strftime("%H:%M") -json.course_groups @groups do |group| - json.(group, :id, :name, :course_members_count) - json.attendance_count group_attendance_count(@all_attendances, group) if @_is_current_attendance +# json.course_groups @group_ids do |group| +# json.(group, :id, :name, :course_members_count) +# json.attendance_count group_attendance_count(@all_attendances, group) if @_is_current_attendance +# end + +json.course_groups @group_ids do |group_id| + if group_id != 0 + group = @groups.select{|group| group.id == group_id}.first + json.(group, :id, :name, :course_members_count) + else + json.id 0 + json.name "未分班" + json.course_members_count @course.none_group_count + end + if @_is_current_attendance + member_ids = @course_members.select{|member| member.course_group_id == group_id}.map(&:id) + json.attendance_count group_attendance_count(@all_attendances, member_ids) + end end \ No newline at end of file