2016-07-02 23:46:45 +08:00
#coding=utf-8
class ResourcesService
#发送资源到课程
2016-07-08 17:22:58 +08:00
def send_resource_to_course user , params
2016-07-02 23:46:45 +08:00
send_id = params [ :send_id ]
@ori = Attachment . find_by_id ( send_id )
course_ids = params [ :course_ids ]
@flag = false
unless course_ids . nil?
course_ids . each do | id |
next if @ori . blank?
@exist = false
Course . find ( id ) . attachments . each do | att | #如果课程中包含该资源
if att . id == @ori . id || ( ! att . copy_from . nil? && ! @ori . copy_from . nil? && att . copy_from == @ori . copy_from ) || att . copy_from == @ori . id || att . id == @ori . copy_from
att . created_on = Time . now
att . save
@exist = true
@flag = true
break
end
end
next if @exist
attach_copied_obj = @ori . copy
attach_copied_obj . tag_list . add ( @ori . tag_list ) # tag关联
attach_copied_obj . container = Course . find ( id )
attach_copied_obj . created_on = Time . now
2016-07-08 17:22:58 +08:00
attach_copied_obj . author_id = user . id
2016-07-02 23:46:45 +08:00
attach_copied_obj . is_public = 0
attach_copied_obj . copy_from = @ori . copy_from . nil? ? @ori . id : @ori . copy_from #发送要添加copy_from
if attach_copied_obj . attachtype == nil
attach_copied_obj . attachtype = 4
end
if attach_copied_obj . save
# 更新引用次数
quotes = @ori . quotes . to_i + 1
@ori . update_attribute ( :quotes , quotes ) unless @ori . nil?
@ori . forwards << Forward . new ( :to_type = > attach_copied_obj . class . name , :to_id = > attach_copied_obj . id , :created_at = > Time . now )
@flag = true
else
@flag = false
@save_message = attach_copied_obj . errors . full_messages
break
end
end
end
[ @ori , @flag , @save_message ]
end
2016-07-11 14:49:59 +08:00
# 我的资源-课件 已发布的
def all_course_attachments user
courses = user . courses . not_deleted
courses_ids = courses . empty? ? '(-1)' :" ( " + courses . map ( & :id ) . join ( " , " ) + " ) "
attchments = Attachment . where ( " (author_id = #{ user . id } and is_publish = 1 and container_id in #{ courses_ids } and container_type = 'Course') or (container_type = 'Course' and is_publish = 1 and container_id in #{ courses_ids } ) " ) . order ( " created_on desc " )
2016-07-14 16:54:43 +08:00
# attchments.each do |v|
# course = Course.where("id=?",v.container_id).first
# v[:coursename] = course.nil? ? "未知" : course.name
# v[:attafile_size] = (number_to_human_size(v[:filesize])).gsub("ytes", "").to_s
# end
2016-07-12 10:25:18 +08:00
2016-07-11 14:49:59 +08:00
attchments
end
# 我的资源-作业 已发布的
def all_homework_commons user
courses = user . courses . not_deleted
courses_ids = courses . empty? ? '(-1)' :" ( " + courses . map ( & :id ) . join ( " , " ) + " ) "
homeworks = HomeworkCommon . where ( " course_id in #{ courses_ids } and publish_time <= ? " , Time . now . strftime ( " %Y-%m-%d " ) ) . order ( " created_at desc " )
2016-07-14 16:54:43 +08:00
# homeworks.each do |v|
# course = Course.where("id=?",v.course_id).first
# v[:coursename] = course.nil? ? "未知" : course.name
# end
2016-07-12 10:25:18 +08:00
2016-07-11 14:49:59 +08:00
homeworks
end
# 我的资源-测验 已发布的
def all_exercises user
courses = user . courses . not_deleted
courses_ids = courses . empty? ? '(-1)' :" ( " + courses . map ( & :id ) . join ( " , " ) + " ) "
exercises = Exercise . where ( " exercise_status <> 1 and course_id in #{ courses_ids } " ) . order ( " created_at desc " )
2016-07-14 16:54:43 +08:00
# exercises.each do |v|
# course = Course.where("id=?",v.course_id).first
# v[:coursename] = course.nil? ? "未知" : course.name
# end
2016-07-12 10:25:18 +08:00
2016-07-11 14:49:59 +08:00
exercises
end
2016-07-02 23:46:45 +08:00
end