From d38d140069b9220782f5a39d432b5e7cd934beec Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 4 Mar 2020 15:21:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=BE=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 2 +- app/controllers/weapps/attendances_controller.rb | 14 +++++++++++++- app/models/course_attendance.rb | 5 +++++ app/views/weapps/attendances/index.json.jbuilder | 11 +++++++++++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 90a5e494e..b7a74cbc1 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -321,7 +321,7 @@ class ApplicationController < ActionController::Base end if !User.current.logged? && Rails.env.development? - User.current = User.find 1 + User.current = User.find 3117 end diff --git a/app/controllers/weapps/attendances_controller.rb b/app/controllers/weapps/attendances_controller.rb index 2127abc12..567bfae77 100644 --- a/app/controllers/weapps/attendances_controller.rb +++ b/app/controllers/weapps/attendances_controller.rb @@ -24,7 +24,18 @@ class Weapps::AttendancesController < ApplicationController end def index + tip_exception(403) if @user_course_identity >= Course::STUDENT + current_date = Date.current + current_end_time = Time.current.strftime("%H:%M:%S") + @current_attendance = @course.course_attendances.where("attendance_date = '#{current_date}' and start_time <= '#{current_end_time}' and end_time > '#{current_end_time}'").take + all_attendances = @course.course_attendances + if params[:group_id].present? + all_attendances = all_attendances.where(course_group_id: [params[:group_id], 0]) + end + + @history_attendances = all_attendances.where("attendance_date < '#{current_date}' or (attendance_date = '#{current_date}' and end_time < '#{current_end_time}')").order("id asc") + @all_history_count = @history_attendances.size end def student_attendances @@ -101,7 +112,8 @@ class Weapps::AttendancesController < ApplicationController end def end - tip_exception("该签到不在签到时间内,无法截止") unless @attendance.current_attendance? + a_end_time = "#{@attendance.attendance_date} #{@attendance.end_time}".to_time + tip_exception("该签到已截止") unless @attendance.current_attendance? @attendance.update!(end_time: Time.current) render_ok end diff --git a/app/models/course_attendance.rb b/app/models/course_attendance.rb index fd6710fff..72a09750c 100644 --- a/app/models/course_attendance.rb +++ b/app/models/course_attendance.rb @@ -32,6 +32,11 @@ class CourseAttendance < ApplicationRecord course_member_attendances.select{|member_attendance| member_attendance.attendance_status == "ABSENCE"}.size end + # 总人数 + def all_count + course_member_attendances.size + end + def current_attendance? a_start_time = "#{attendance_date} #{start_time}".to_time a_end_time = "#{attendance_date} #{end_time}".to_time diff --git a/app/views/weapps/attendances/index.json.jbuilder b/app/views/weapps/attendances/index.json.jbuilder index e69de29bb..9541fe231 100644 --- a/app/views/weapps/attendances/index.json.jbuilder +++ b/app/views/weapps/attendances/index.json.jbuilder @@ -0,0 +1,11 @@ +json.current_attendance do + json.(@current_attendance, :id, :normal_count, :all_count) +end + +json.history_attendances @history_attendances do |attendance| +end + +json.all_history_count @all_history_count +json.normal_count @normal_count +json.leave_count @leave_count +json.absence_count @absence_count \ No newline at end of file