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
|
|
|
|
|
|
|
|
end
|