From aefb715bc36ae94fed2b693a115fb107ebea2e74 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Mon, 9 Mar 2020 15:17:13 +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 --- .../course_member_attendances_controller.rb | 17 +++++++++++------ app/models/course_member_attendance.rb | 2 +- ...0309071103_migrate_member_attendance_mode.rb | 5 +++++ 3 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 db/migrate/20200309071103_migrate_member_attendance_mode.rb diff --git a/app/controllers/weapps/course_member_attendances_controller.rb b/app/controllers/weapps/course_member_attendances_controller.rb index 7e315fc85..196d20fda 100644 --- a/app/controllers/weapps/course_member_attendances_controller.rb +++ b/app/controllers/weapps/course_member_attendances_controller.rb @@ -29,18 +29,23 @@ class Weapps::CourseMemberAttendancesController < ApplicationController def create tip_exception("签到码不能为空") if params[:code].blank? - tip_exception("attendance_mode参数不对") unless ["NUMBER", "QRCODE"].include?(params[:attendance_mode]) + tip_exception("attendance_mode参数不对") unless ["NUMBER", "QRCODE", "QUICK"].include?(params[:attendance_mode]) - attendance = CourseAttendance.find_by(attendance_code: params[:code]) - tip_exception("签到码输入有误") if attendance.blank? || attendance.course.blank? + if params[:attendance_mode] == "QUICK" + attendance = CourseAttendance.find_by(id: params[:attendance_id]) + else + attendance = CourseAttendance.find_by(attendance_code: params[:code]) + end + tip_exception("该签到不存在") if attendance.blank? || attendance.course.blank? member = attendance.course.students.find_by(user_id: current_user.id) - tip_exception("签到码输入有误") if member.blank? + tip_exception("该签到不存在") if member.blank? tip_exception("不在签到时间内") unless attendance.current_attendance? - tip_exception("只支持数字签到") if attendance.mode != "ALL" && attendance.mode == "NUMBER" && params[:attendance_mode] == "QRCODE" - tip_exception("只支持二维码签到") if attendance.mode != "ALL" && attendance.mode == "QRCODE" && params[:attendance_mode] == "NUMBER" + tip_exception("只支持数字签到") if attendance.mode != "ALL" && attendance.mode == "NUMBER" && params[:attendance_mode] != "NUMBER" + tip_exception("只支持二维码签到") if attendance.mode != "ALL" && attendance.mode == "QRCODE" && params[:attendance_mode] != "QRCODE" + tip_exception("只支持快捷签到") if attendance.mode == "QUICK" && params[:attendance_mode] != "QUICK" current_attendance = attendance.course_member_attendances.find_by(user_id: current_user.id) if current_attendance.present? diff --git a/app/models/course_member_attendance.rb b/app/models/course_member_attendance.rb index 152bb48b6..b854acfe7 100644 --- a/app/models/course_member_attendance.rb +++ b/app/models/course_member_attendance.rb @@ -1,6 +1,6 @@ class CourseMemberAttendance < ApplicationRecord # attendance_mode :0 初始数据,1 二维码签到,2 数字签到,3 老师签到 - enum attendance_mode: { DEFAULT: 0, QRCODE: 1, NUMBER: 2, TEACHER: 3} + enum attendance_mode: { DEFAULT: 0, QRCODE: 1, NUMBER: 2, QUICK: 3, TEACHER: 4} # attendance_status :1 正常签到,2 请假,0 旷课 enum attendance_status: { NORMAL: 1, LEAVE: 2, ABSENCE: 0 } belongs_to :course_member diff --git a/db/migrate/20200309071103_migrate_member_attendance_mode.rb b/db/migrate/20200309071103_migrate_member_attendance_mode.rb new file mode 100644 index 000000000..41f81444a --- /dev/null +++ b/db/migrate/20200309071103_migrate_member_attendance_mode.rb @@ -0,0 +1,5 @@ +class MigrateMemberAttendanceMode < ActiveRecord::Migration[5.2] + def change + CourseMemberAttendance.where(attendance_mode: 3).update_all(attendance_mode: 4) + end +end