parent
c746667796
commit
39b87564fe
@ -0,0 +1,39 @@
|
|||||||
|
# 毕设任务的交叉评阅分配
|
||||||
|
class GraduationTaskCrossCommentJob < ApplicationJob
|
||||||
|
queue_as :evaluation_comment
|
||||||
|
|
||||||
|
def perform(graduation_task_id)
|
||||||
|
task = GraduationTask.find_by(id: graduation_task_id)
|
||||||
|
return if task.blank?
|
||||||
|
|
||||||
|
course = task.course
|
||||||
|
task.graduation_task_group_assignations.each do |assignation|
|
||||||
|
graduation_group = assignation.graduation_group
|
||||||
|
assign_group = assignation.assign_group
|
||||||
|
if graduation_group.present? && assign_group.present?
|
||||||
|
course_group_ids = course.teacher_course_groups.where(course_member_id: graduation_group.course_members.pluck(:id)).pluck(:course_group_id)
|
||||||
|
graduation_works = task.graduation_works.where(user_id: course.course_members.where(:course_group_id => course_group_ids).map(&:user_id),
|
||||||
|
work_status: [1, 2])
|
||||||
|
if assign_group.course_members.count <= task.comment_num
|
||||||
|
graduation_works.each do |work|
|
||||||
|
assign_group.course_members.each do |member|
|
||||||
|
work.graduation_work_comment_assignations << GraduationWorkCommentAssignation.new(
|
||||||
|
graduation_group_id: assign_group.id, user_id: member.user_id, graduation_task_id: task.id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
member_user_ids = assign_group.course_members.pluck(:user_id)
|
||||||
|
count = 0
|
||||||
|
graduation_works.each do |work|
|
||||||
|
for i in 1 .. task.comment_num
|
||||||
|
assign_user_id = member_user_ids[count % member_user_ids.size]
|
||||||
|
work.graduation_work_comment_assignations << GraduationWorkCommentAssignation.new(
|
||||||
|
graduation_group_id: assign_group.id, user_id: assign_user_id, graduation_task_id: task.id)
|
||||||
|
count += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,5 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe GraduationTaskCrossCommentJob, type: :job do
|
||||||
|
pending "add some examples to (or delete) #{__FILE__}"
|
||||||
|
end
|
@ -0,0 +1,5 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe GraduationTaskPublishNotifyJob, type: :job do
|
||||||
|
pending "add some examples to (or delete) #{__FILE__}"
|
||||||
|
end
|
Loading…
Reference in new issue