签到的编辑调整

schedule_job
cxt 5 years ago
parent 2ba5fd0120
commit 7dba79a618

@ -79,8 +79,26 @@ class AttendancesController < ApplicationController
new_end_time = "#{params[:attendance_date]} #{params[:end_time]}".to_time
@attendance.update!(update_params)
# 如果历史签到变为了正在签到,将未创建的学生签到数据补上
if a_end_time < Time.current && new_end_time > Time.current
old_group_ids = @attendance.course_attendance_groups.pluck(:course_group_id)
unless old_group_ids.include?(0)
all_groups_ids = old_group_ids + params[:group_ids]
# 如果新增的的分班加上之前的分班是课堂的全部分班,则只需创建一条记录
if all_groups_ids.uniq.count == @course.course_groups_count
@attendance.course_attendance_groups.destroy_all
@attendance.course_attendance_groups.create!(course_group_id: 0, course_id: @attendance.course_id)
new_group = true
else
new_group_ids = params[:group_ids] - old_group_ids
new_group_ids.each do |group_id|
@attendance.course_attendance_groups.create!(course_group_id: group_id, course_id: @attendance.course_id)
new_group = true
end
end
end
# 如果新增了分班或者历史签到变为了正在签到,将未创建的学生签到数据补上
if new_group || (a_end_time < Time.current && new_end_time > Time.current)
create_absence_student_data
end
render_ok

Loading…
Cancel
Save