You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.7 KiB
31 lines
1.7 KiB
class Weapps::CourseMemberAttendancesController < ApplicationController
|
|
before_action :require_login
|
|
|
|
def create
|
|
tip_exception("签到码不能为空") if params[:code].blank?
|
|
tip_exception("attendance_mode参数不对") if [1, 2].include?(params[:attendance_mode])
|
|
|
|
attendance = CourseAttendance.find_by(attendance_code: params[:code])
|
|
tip_exception("签到码输入有误") if attendance.blank? || attendance.course.blank?
|
|
|
|
member = attendance.course.students.find_by(user_id: current_user.id)
|
|
tip_exception("签到码输入有误") if member.blank?
|
|
|
|
start_time = "#{attendance.attendance_date} #{attendance.start_time}".to_time
|
|
end_time = "#{attendance.attendance_date} #{attendance.end_time}".to_time
|
|
Rails.logger.info("##############{start_time} #{end_time}")
|
|
tip_exception("不在签到时间内") unless start_time < Time.current && Time.current < end_time
|
|
|
|
current_attendance = attendance.course_member_attendances.find_by(user_id: current_user.id)
|
|
tip_exception("请勿重复签到") if current_attendance.present? && current_attendance.attendance_status == 1
|
|
tip_exception("您当前是请假状态,无法签到") if current_attendance.present? && current_attendance.attendance_status == 2
|
|
tip_exception("您当前是旷课状态,无法签到") if current_attendance.present? && current_attendance.attendance_status == 0
|
|
|
|
unless current_attendance.present?
|
|
attendance.course_member_attendances.create!(course_member_id: member.id, user_id: current_user.id, course_id: attendance.course_id,
|
|
course_group_id: member.course_group_id, attendance_status: 1, attendance_mode: params[:attendance_mode] || 2)
|
|
end
|
|
render_ok
|
|
end
|
|
|
|
end |