class CommentService include ApiHelper include Redmine::I18n #评论 def news_comments params,current_user @news = News.find(params[:id]) @course = @news.course if @course.nil? raise 'news in unknown course' end raise Unauthorized unless @news.commentable?(current_user) if current_user.nil? || !(current_user.admin? || @course.is_public == 1 || (@course.is_public == 0 && current_user.member_of_course?(@course))) raise '403' end @comment = Comment.new @comment.send(:safe_attributes=,params[:comment],current_user) @comment.author = current_user @news.comments << @comment @comment end #作业留言 def homework_message params,current_user @bid = Bid.find(params[:id], :include => [{:homeworks => :user}]) if params[:bid_message][:message].size>0 if params[:reference_content] message = params[:bid_message][:message] + "\n" + params[:reference_content] else message = params[:bid_message][:message] @m = message end refer_user_id = params[:bid_message][:reference_user_id].to_i jfm = @bid.add_jour(current_user, message, refer_user_id) end #@user = @bid.author #@jours = @bid.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC') #@jour = paginateHelper @jours,10 @bid.set_commit(@feedback_count) jfm end #课程留言接口 def leave_course_message params,current_user message = params[:new_form][:course_message] feedback = Course.add_new_jour(current_user, message, params[:id]) feedback end #回复留言接口 def create_reply params,current_user # 这里是创建回复所使用的方法,此方法只针对回复,每一个新的留言并不在此方法管理范围内。 # 由于多个地方用到了留言,而之前的表设计也有jour_type/jour_id这类信息 # 所以在方法 add_reply_adapter 中判断所有调用此方法的来源页面, # 为了保证兼容以往所有的代码,保证以往的方法可以调用,在返回页面中都做了各式各样的判断。 # 页面保证 render new_respond/journal_reply # 修改 add_reply_adapter 中可以确保留言创建成功 # 删除留言功能要调用destroy,也记得在destroy.js中修改 # deny api. api useless parent_id = params[:reference_id] author_id = current_user.id reply_user_id = params[:reference_user_id] reply_id = params[:reference_message_id] # 暂时不实现 content = params[:user_notes] jour_type = params[:jour_type] jour_id = params[:jour_id] @show_name = params[:show_name] == "true" options = { :jour_id => jour_id, :jour_type => jour_type, :user_id => author_id, :status => true, :m_parent_id => parent_id, :m_reply_id => reply_id, :reply_id => reply_user_id, :notes => content, :is_readed => false} @jfm = ::JournalsForMessage.new(options) #@save_succ = true if @jfm.errors.empty? @jfm.save @jfm end #发贴,用于意见反馈 def create_feedback params,current_user @memo = Memo.new(params[:memo]) @memo.forum_id = "1" @memo.author_id = current_user.id @memo.save message = "#{l(:label_commit_failed,:locale => get_user_language(current_user))}: #{@memo.errors.full_messages}" if @memo.new_record? [@memo,message] end #课程留言列表 def course_messages params,current_user @course = ::Course.find(params[:id]) if (current_user.admin? || @course.is_public == 1 || (@course.is_public == 0 && current_user.member_of_course?(@course))) @jours = @course.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC').page(params[:page] ||= 1).per(10) else raise '403' end @jours end def comment_detail params,current_user if !params[:course_id].nil? && params[:course_id] != 0 course = Course.find(params[:course_id]) jour = course.journals_for_messages.where("id = ? ",params[:comment_parent_id]) jour else jour1 = JournalsForMessage.where("id = ? ",params[:comment_parent_id]) jour1 end end # 获取课程里的某个通知的所有回复 def notice_comments params,current_user News.find(params[:notice_id]).comments.page(params[:page] || 1).per(10) end end