|
|
|
@@ -3,7 +3,7 @@ class Api::V1::Issues::Journals::ListService < ApplicationService |
|
|
|
include ActiveModel::Model |
|
|
|
|
|
|
|
attr_reader :issue, :category, :keyword, :sort_by, :sort_direction |
|
|
|
attr_accessor :queried_journals |
|
|
|
attr_accessor :queried_journals, :total_journals_count, :total_operate_journals_count, :total_comment_journals_count |
|
|
|
|
|
|
|
validates :category, inclusion: {in: %w(all comment operate), message: "请输入正确的Category"} |
|
|
|
validates :sort_by, inclusion: {in: Journal.column_names, message: '请输入正确的SortBy'}, allow_blank: true |
|
|
|
@@ -22,7 +22,7 @@ class Api::V1::Issues::Journals::ListService < ApplicationService |
|
|
|
begin |
|
|
|
journal_query_data |
|
|
|
|
|
|
|
@queried_journals |
|
|
|
{data: @queried_journals, total_journals_count: @total_journals_count, total_operate_journals_count: total_operate_journals_count, total_comment_journals_count: total_comment_journals_count} |
|
|
|
rescue |
|
|
|
raise Error, "服务器错误,请联系系统管理员!" |
|
|
|
end |
|
|
|
@@ -33,17 +33,21 @@ class Api::V1::Issues::Journals::ListService < ApplicationService |
|
|
|
|
|
|
|
@queried_journals = issue.journals |
|
|
|
|
|
|
|
@queried_journals = @queried_journals.parent_journals |
|
|
|
|
|
|
|
@queried_journals = @queried_journals.ransack(notes_cont: keyword).result if keyword.present? |
|
|
|
|
|
|
|
@total_journals_count = queried_journals.distinct.size |
|
|
|
@total_operate_journals_count = @queried_journals.where(notes: nil).distinct.size |
|
|
|
@total_comment_journals_count = @queried_journals.where.not(notes: nil).distinct.size |
|
|
|
|
|
|
|
case category |
|
|
|
when 'comment' |
|
|
|
@queried_journals = issue.comment_journals |
|
|
|
@queried_journals = @queried_journals.where.not(notes: nil) |
|
|
|
when 'operate' |
|
|
|
@queried_journals = issue.operate_journals |
|
|
|
@queried_journals = @queried_journals.where(notes: nil) |
|
|
|
end |
|
|
|
|
|
|
|
@queried_journals = @queried_journals.parent_journals |
|
|
|
|
|
|
|
@queried_journals = @queried_journals.ransack(notes_cont: keyword).result if keyword.present? |
|
|
|
|
|
|
|
@queried_journals = @queried_journals.includes(:journal_details, :user, :attachments, first_ten_children_journals: [:parent_journal, :reply_journal]) |
|
|
|
@queried_journals = @queried_journals.reorder("journals.#{sort_by} #{sort_direction}").distinct |
|
|
|
|
|
|
|
|