diff --git a/app/api/mobile/apis/comments.rb b/app/api/mobile/apis/comments.rb index edc7bcf54..544ebf0ce 100644 --- a/app/api/mobile/apis/comments.rb +++ b/app/api/mobile/apis/comments.rb @@ -99,6 +99,19 @@ module Mobile present :status, 0 end + desc '留言详情' + params do + requires :token, type: String + requires :comment_parent_id,type:Integer,desc:'留言id' + optional :course_id,type:Integer,desc:'课程id' + end + get ':comment_parent_id/comment_details' do + cs = CommentService.new + jour = cs.comment_detail params,current_user + present :data, jour, with: Mobile::Entities::Jours + present :status, 0 + end + end end end diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 96b788dab..583a130d1 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -115,6 +115,8 @@ module Mobile requires :ref_user_id,type:Integer,desc:'被回复的用户id' requires :parent_id,type:Integer,desc:'留言父id' requires :ref_message_id,type:Integer,desc:'引用消息id' + optional :type,type:Integer,desc:'回复类型' + optional :course_id,type:Integer,desc:'课程id' end post ':user_id/reply_message' do us = UsersService.new @@ -133,6 +135,18 @@ module Mobile us.leave_message params,current_user present :data,0 end + + desc "与我相关" + params do + requires :token, type: String + requires :page,type:Integer,desc:'页码' + end + get ':user_id/all_my_dynamic' do + us = UsersService.new + my_jours = us.reply_my_messages params,current_user + present :data,my_jours,with:Mobile::Entities::Jours + present :status,0 + end end end end diff --git a/app/api/mobile/entities/jours.rb b/app/api/mobile/entities/jours.rb index 10fd0f893..97eabd21f 100644 --- a/app/api/mobile/entities/jours.rb +++ b/app/api/mobile/entities/jours.rb @@ -14,6 +14,11 @@ module Mobile else f.send(field) end + else + case f + when :course_name + f[:jour_type] == "Course" ? f.course.name : "" + end end end end @@ -27,6 +32,11 @@ module Mobile jours_expose :notes jours_expose :m_reply_id jours_expose :m_parent_id + expose :course,using:Mobile::Entities::Course do |f,opt| + if f.is_a?(::JournalsForMessage) && f[:jour_type] == "Course" + f.course + end + end expose :reply_user,using: Mobile::Entities::User do |f, opt| f.at_user end diff --git a/app/services/comment_service.rb b/app/services/comment_service.rb index f75e14b85..a742d0eee 100644 --- a/app/services/comment_service.rb +++ b/app/services/comment_service.rb @@ -101,4 +101,17 @@ class CommentService @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 + + + end \ No newline at end of file diff --git a/app/services/users_service.rb b/app/services/users_service.rb index 7d7976bb5..77cebe0b1 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -169,19 +169,26 @@ class UsersService # 回复用户 def reply_user_messages params,current_user user = User.find(params[:user_id]) - parent_id = params[:parent_id] + + m_parent_id = params[:parent_id] author_id = current_user.id - reply_user_id = params[:ref_user_id] - reply_id = params[:ref_message_id] + reply_id = params[:ref_user_id] + ref_message_id = params[:ref_message_id] content = params[:content] - options = {:user_id => author_id, + options = {:user_id => author_id, # 作者id :status => true, - :m_parent_id => parent_id, - :m_reply_id => reply_id, - :reply_id => reply_user_id, + :m_parent_id => m_parent_id,# 父留言id + :m_reply_id => ref_message_id, # 子留言 id + :reply_id => reply_id, # 被留言用户id :notes => content, :is_readed => false} - user.add_jour(nil, nil,nil,options) + if(params[:type] == 1) + user.add_jour(nil, nil,nil,options) + elsif(params[:type] == 2) + Course.find(params[:course_id]).journals_for_messages.build(options).save! unless params[:course_id].nil? + else + end + end # 给用户留言 @@ -258,4 +265,41 @@ class UsersService scope end + # 课程留言中与我相关的回复 + def my_course_messages params,current_user + #找到我所有的课程 + @user = current_user + if !current_user.admin? && !@user.active? + raise '404' + return + end + if current_user == @user || current_user.admin? + membership = @user.coursememberships.all + end + # membership.sort! {|older, newer| newer.created_on <=> older.created_on } + message_list = [] + membership.each do |mp| + #课程轮询找到与我相关的回复 + message_list << mp.course.journals_for_messages.where("reply_id = ?",current_user.id) + end + message_list + end + + # 获取与我相关的留言:我的留言,回复我的留言 + def my_personal_messages params,current_user + jours = current_user.journals_for_messages.where('m_parent_id is null or reply_id = ?',current_user.id) + jours.update_all(:is_readed => true, :status => false) + jours + end + + def reply_my_messages params,current_user + jours = my_personal_messages params,current_user + jours1 = my_course_messages params,current_user + my_jours = [] + my_jours << jours << jours1 + my_jours.flatten!.sort! {|older, newer| newer.created_on <=> older.created_on } + my_jours_arr = Kaminari.paginate_array(my_jours, total_count: my_jours.count).page(params[:page] || 1).per(10) + my_jours_arr + end + end