停止匿评 api
This commit is contained in:
parent
0f9642e60b
commit
c5e298d24e
|
@ -337,18 +337,7 @@ module Mobile
|
|||
present :data,student_works.all,with:Mobile::Entities::StudentWork
|
||||
end
|
||||
|
||||
desc '开启匿评'
|
||||
params do
|
||||
requires :token,type:String
|
||||
requires :course_id,type:Integer,desc:'课程id'
|
||||
requires :homework_id,type:Integer,desc:'作业id'
|
||||
end
|
||||
get ':course_id/start_anonymous_comment' do
|
||||
cs = CoursesService.new
|
||||
status = cs.start_anonymous_comment params,current_user
|
||||
present :data,status
|
||||
present :status,0
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -31,33 +31,33 @@ module Mobile
|
|||
present :status, 0
|
||||
end
|
||||
|
||||
desc "启动匿评"
|
||||
params do
|
||||
requires :token, type: String
|
||||
end
|
||||
post ':id/start_anonymous_comment' do
|
||||
statue = Homeworks.get_service.start_anonymous_comment params,current_user.nil? ? User.find(2):current_user
|
||||
messages = ""
|
||||
case statue
|
||||
when 1
|
||||
messages = "启动成功"
|
||||
when 2
|
||||
messages = "启动失败,作业总数大于等于2份时才能启动匿评"
|
||||
when 3
|
||||
messages = "已开启匿评,请务重复开启"
|
||||
end
|
||||
present :data,messages
|
||||
present :status, statue
|
||||
end
|
||||
|
||||
desc "关闭匿评"
|
||||
params do
|
||||
requires :token, type: String
|
||||
end
|
||||
post ':id/stop_anonymous_comment' do
|
||||
Homeworks.get_service.stop_anonymous_comment params,current_user.nil? ? User.find(2):current_user
|
||||
present :status, 0
|
||||
end
|
||||
# desc "启动匿评"
|
||||
# params do
|
||||
# requires :token, type: String
|
||||
# end
|
||||
# post ':id/start_anonymous_comment' do
|
||||
# statue = Homeworks.get_service.start_anonymous_comment params,current_user.nil? ? User.find(2):current_user
|
||||
# messages = ""
|
||||
# case statue
|
||||
# when 1
|
||||
# messages = "启动成功"
|
||||
# when 2
|
||||
# messages = "启动失败,作业总数大于等于2份时才能启动匿评"
|
||||
# when 3
|
||||
# messages = "已开启匿评,请务重复开启"
|
||||
# end
|
||||
# present :data,messages
|
||||
# present :status, statue
|
||||
# end
|
||||
#
|
||||
# desc "关闭匿评"
|
||||
# params do
|
||||
# requires :token, type: String
|
||||
# end
|
||||
# post ':id/stop_anonymous_comment' do
|
||||
# Homeworks.get_service.stop_anonymous_comment params,current_user.nil? ? User.find(2):current_user
|
||||
# present :status, 0
|
||||
# end
|
||||
|
||||
desc "匿评作品详情"
|
||||
params do
|
||||
|
@ -111,6 +111,45 @@ module Mobile
|
|||
present :status, 0
|
||||
end
|
||||
|
||||
desc '开启匿评'
|
||||
params do
|
||||
requires :token,type:String
|
||||
requires :course_id,type:Integer,desc:'课程id'
|
||||
requires :homework_id,type:Integer,desc:'作业id'
|
||||
end
|
||||
post ':homework_id/start_anonymous_comment' do
|
||||
hs = Homeworks.get_service
|
||||
status = hs.start_anonymous_comment params,current_user
|
||||
messages = ""
|
||||
case status[:status]
|
||||
when 1
|
||||
messages = "启动成功"
|
||||
when 2
|
||||
messages = "启动失败,作业总数大于等于2份时才能启动匿评"
|
||||
when 3
|
||||
messages = "已开启匿评,请务重复开启"
|
||||
when 4
|
||||
messages = "没有开启匿评的权限"
|
||||
when 5
|
||||
messages = "截止日期之前不可启动匿评"
|
||||
end
|
||||
present :data,messages
|
||||
present :status,0
|
||||
end
|
||||
|
||||
desc '关闭匿评'
|
||||
params do
|
||||
requires :token,type:String
|
||||
requires :course_id,type:Integer,desc:'课程id'
|
||||
requires :homework_id,type:Integer,desc:'作业id'
|
||||
end
|
||||
post ':homework_id/stop_anonymous_comment' do
|
||||
hs = Homeworks.get_service
|
||||
hs.stop_anonymous_comment params,current_user
|
||||
message = "成功关闭"
|
||||
present :data, message
|
||||
present :status,0
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -58,6 +58,9 @@ module Mobile
|
|||
course_dynamic_expose :document_count
|
||||
course_dynamic_expose :topic_count
|
||||
course_dynamic_expose :homework_count
|
||||
|
||||
course_dynamic_expose :current_user_is_member
|
||||
course_dynamic_expose :current_user_is_teacher
|
||||
#在dynamics里解析出四种动态
|
||||
expose :documents,using:Mobile::Entities::Attachment do |f,opt|
|
||||
obj = nil
|
||||
|
|
|
@ -24,11 +24,11 @@ module Mobile
|
|||
f.course.members.count - f.student_works.count
|
||||
when :homework_submit_num
|
||||
f.student_works.count
|
||||
when :homework_status
|
||||
when :homework_status_student
|
||||
get_homework_status f
|
||||
when :homework_times
|
||||
f.course.homework_commons.index(f) + 1
|
||||
when :homework_status_desc
|
||||
when :homework_status_teacher
|
||||
homework_status_desc f
|
||||
end
|
||||
end
|
||||
|
@ -82,8 +82,8 @@ module Mobile
|
|||
expose :submit_student_list ,using: Mobile::Entities::User do |f,opt|
|
||||
get_submit_sutdent_list f
|
||||
end
|
||||
homework_expose :homework_status #作业的状态
|
||||
homework_expose :homework_status_desc #状态的解释
|
||||
homework_expose :homework_status_student #老师看到的作业的状态
|
||||
homework_expose :homework_status_teacher #老师看到的状态
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -699,7 +699,7 @@ class CoursesService
|
|||
latest_course_dynamics.sort! { |order, newer| newer[:time] <=> order[:time] }
|
||||
latest_course_dynamic = latest_course_dynamics.first
|
||||
unless latest_course_dynamic.nil?
|
||||
result << {:course_name => course.name, :course_id => course.id, :course_img_url => url_to_avatar(course), :course_time => course.time, :course_term => course.term,:message => dynamics_count, :dynamics => latest_course_dynamics, :count => dynamics_count}
|
||||
result << {:course_name => course.name,:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course), :course_id => course.id, :course_img_url => url_to_avatar(course), :course_time => course.time, :course_term => course.term,:message => dynamics_count, :dynamics => latest_course_dynamics, :count => dynamics_count}
|
||||
end
|
||||
end
|
||||
#返回数组集合
|
||||
|
@ -746,41 +746,41 @@ class CoursesService
|
|||
student_works
|
||||
end
|
||||
|
||||
# 开启匿评
|
||||
#statue 1:启动成功,2:启动失败,作业总数大于等于2份时才能启动匿评,3:已开启匿评,请务重复开启,4:没有开启匿评的权限
|
||||
def start_anonymous_comment params,current_user
|
||||
homework = HomeworkCommon.find(params[:homework_id])
|
||||
return {:status=>4} unless current_user.admin? || current_user.allowed_to?(:as_teacher,Course.find(params[:course_id]))
|
||||
return {:status=>5} if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d")
|
||||
homework_detail_manual = homework.homework_detail_manual
|
||||
if homework_detail_manual.comment_status == 1
|
||||
student_works = homework.student_works
|
||||
if student_works && student_works.size >=2
|
||||
student_works.each_with_index do |work, index|
|
||||
user = work.user
|
||||
n = homework_detail_manual.evaluation_num
|
||||
n = n < student_works.size ? n : student_works.size - 1
|
||||
assigned_homeworks = get_assigned_homeworks(student_works, n, index)
|
||||
assigned_homeworks.each do |h|
|
||||
student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: user.id, student_work_id: h.id)
|
||||
student_works_evaluation_distributions.save
|
||||
end
|
||||
end
|
||||
homework_detail_manual.update_column('comment_status', 2)
|
||||
statue = 1
|
||||
else
|
||||
statue = 2
|
||||
end
|
||||
else
|
||||
statue = 3
|
||||
end
|
||||
{:status => statue}
|
||||
end
|
||||
|
||||
def get_assigned_homeworks(student_works, n, index)
|
||||
student_works += student_works
|
||||
student_works[index + 1 .. index + n]
|
||||
end
|
||||
# # 开启匿评
|
||||
# #statue 1:启动成功,2:启动失败,作业总数大于等于2份时才能启动匿评,3:已开启匿评,请务重复开启,4:没有开启匿评的权限
|
||||
# def start_anonymous_comment params,current_user
|
||||
# homework = HomeworkCommon.find(params[:homework_id])
|
||||
# return {:status=>4} unless current_user.admin? || current_user.allowed_to?(:as_teacher,Course.find(params[:course_id]))
|
||||
# return {:status=>5} if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d")
|
||||
# homework_detail_manual = homework.homework_detail_manual
|
||||
# if homework_detail_manual.comment_status == 1
|
||||
# student_works = homework.student_works
|
||||
# if student_works && student_works.size >=2
|
||||
# student_works.each_with_index do |work, index|
|
||||
# user = work.user
|
||||
# n = homework_detail_manual.evaluation_num
|
||||
# n = n < student_works.size ? n : student_works.size - 1
|
||||
# assigned_homeworks = get_assigned_homeworks(student_works, n, index)
|
||||
# assigned_homeworks.each do |h|
|
||||
# student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: user.id, student_work_id: h.id)
|
||||
# student_works_evaluation_distributions.save
|
||||
# end
|
||||
# end
|
||||
# homework_detail_manual.update_column('comment_status', 2)
|
||||
# statue = 1
|
||||
# else
|
||||
# statue = 2
|
||||
# end
|
||||
# else
|
||||
# statue = 3
|
||||
# end
|
||||
# {:status => statue}
|
||||
# end
|
||||
#
|
||||
# def get_assigned_homeworks(student_works, n, index)
|
||||
# student_works += student_works
|
||||
# student_works[index + 1 .. index + n]
|
||||
# end
|
||||
|
||||
end
|
||||
|
||||
|
|
|
@ -57,47 +57,97 @@ class HomeworkService
|
|||
[@bid,@totle_size,@cur_size,@percent]
|
||||
end
|
||||
|
||||
#启动匿评
|
||||
#statue 1:启动成功,2:启动失败,作业总数大于等于2份时才能启动匿评,3:已开启匿评,请务重复开启
|
||||
def start_anonymous_comment params,current_user
|
||||
@bid = Bid.find(params[:id])
|
||||
@course = @bid.courses.first
|
||||
unless is_course_teacher(current_user,@course) || current_user.admin?
|
||||
@statue = 4
|
||||
raise '403'
|
||||
end
|
||||
if(@bid.comment_status == 0)
|
||||
homeworks = @bid.homeworks
|
||||
if(homeworks && homeworks.size >= 2)
|
||||
homeworks.each_with_index do |homework, index|
|
||||
user = homework.user
|
||||
n = @bid.evaluation_num
|
||||
n = n < homeworks.size ? n : homeworks.size - 1
|
||||
assigned_homeworks = get_assigned_homeworks(homeworks, n, index)
|
||||
assigned_homeworks.each do |h|
|
||||
@homework_evaluation = HomeworkEvaluation.new(user_id: user.id, homework_attach_id: h.id)
|
||||
@homework_evaluation.save
|
||||
end
|
||||
end
|
||||
@bid.update_column('comment_status', 1)
|
||||
@statue = 1
|
||||
else
|
||||
@statue = 2
|
||||
end
|
||||
else
|
||||
@statue = 3
|
||||
end
|
||||
@statue
|
||||
end
|
||||
#关闭匿评
|
||||
def stop_anonymous_comment params,current_user
|
||||
@bid = Bid.find(params[:id])
|
||||
@course = @bid.courses.first
|
||||
unless is_course_teacher(current_user,@course) || current_user.admin?
|
||||
raise '403'
|
||||
end
|
||||
@bid.update_column('comment_status', 2)
|
||||
end
|
||||
# 启动匿评 操作 逻辑改变,暂不删除
|
||||
# #启动匿评
|
||||
# #statue 1:启动成功,2:启动失败,作业总数大于等于2份时才能启动匿评,3:已开启匿评,请务重复开启
|
||||
# def start_anonymous_comment params,current_user
|
||||
# @bid = Bid.find(params[:id])
|
||||
# @course = @bid.courses.first
|
||||
# unless is_course_teacher(current_user,@course) || current_user.admin?
|
||||
# @statue = 4
|
||||
# raise '403'
|
||||
# end
|
||||
# if(@bid.comment_status == 0)
|
||||
# homeworks = @bid.homeworks
|
||||
# if(homeworks && homeworks.size >= 2)
|
||||
# homeworks.each_with_index do |homework, index|
|
||||
# user = homework.user
|
||||
# n = @bid.evaluation_num
|
||||
# n = n < homeworks.size ? n : homeworks.size - 1
|
||||
# assigned_homeworks = get_assigned_homeworks(homeworks, n, index)
|
||||
# assigned_homeworks.each do |h|
|
||||
# @homework_evaluation = HomeworkEvaluation.new(user_id: user.id, homework_attach_id: h.id)
|
||||
# @homework_evaluation.save
|
||||
# end
|
||||
# end
|
||||
# @bid.update_column('comment_status', 1)
|
||||
# @statue = 1
|
||||
# else
|
||||
# @statue = 2
|
||||
# end
|
||||
# else
|
||||
# @statue = 3
|
||||
# end
|
||||
# @statue
|
||||
# end
|
||||
# #关闭匿评
|
||||
# def stop_anonymous_comment params,current_user
|
||||
# @bid = Bid.find(params[:id])
|
||||
# @course = @bid.courses.first
|
||||
# unless is_course_teacher(current_user,@course) || current_user.admin?
|
||||
# raise '403'
|
||||
# end
|
||||
# @bid.update_column('comment_status', 2)
|
||||
# end
|
||||
|
||||
# 开启匿评
|
||||
#statue 1:启动成功,2:启动失败,作业总数大于等于2份时才能启动匿评,3:已开启匿评,请务重复开启,4:没有开启匿评的权限
|
||||
def start_anonymous_comment params,current_user
|
||||
homework = HomeworkCommon.find(params[:homework_id])
|
||||
return {:status=> 4} unless current_user.admin? || current_user.allowed_to?(:as_teacher,Course.find(params[:course_id]))
|
||||
return {:status=>5} if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d")
|
||||
homework_detail_manual = homework.homework_detail_manual
|
||||
if homework_detail_manual.comment_status == 1
|
||||
student_works = homework.student_works
|
||||
if student_works && student_works.size >=2
|
||||
student_works.each_with_index do |work, index|
|
||||
user = work.user
|
||||
n = homework_detail_manual.evaluation_num
|
||||
n = n < student_works.size ? n : student_works.size - 1
|
||||
assigned_homeworks = get_assigned_homeworks(student_works, n, index)
|
||||
assigned_homeworks.each do |h|
|
||||
student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: user.id, student_work_id: h.id)
|
||||
student_works_evaluation_distributions.save
|
||||
end
|
||||
end
|
||||
homework_detail_manual.update_column('comment_status', 2)
|
||||
statue = 1
|
||||
else
|
||||
statue = 2
|
||||
end
|
||||
else
|
||||
statue = 3
|
||||
end
|
||||
{:status => statue}
|
||||
end
|
||||
|
||||
def get_assigned_homeworks(student_works, n, index)
|
||||
student_works += student_works
|
||||
student_works[index + 1 .. index + n]
|
||||
end
|
||||
|
||||
def stop_anonymous_comment params,current_user
|
||||
homework = HomeworkCommon.find(params[:homework_id])
|
||||
homework_detail_manual = homework.homework_detail_manual
|
||||
homework_detail_manual.update_column('comment_status', 3)
|
||||
|
||||
work_ids = "(" << homework.student_works.map(&:id).join(",") << ")"
|
||||
homework.student_works.each do |student_work|
|
||||
absence_penalty_count = student_work.user.student_works_evaluation_distributions.where("student_work_id IN #{work_ids}").count - student_work.user.student_works_scores.where("student_work_id IN #{work_ids}").count
|
||||
student_work.absence_penalty = absence_penalty_count > 0 ? absence_penalty_count * homework_detail_manual.absence_penalty : 0
|
||||
student_work.save
|
||||
end
|
||||
end
|
||||
|
||||
# 匿评作品详情
|
||||
# attachs 该作品的所有附件
|
||||
|
|
Loading…
Reference in New Issue