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