export_application_chat_ee.sql 2.0 KB

123456789101112131415161718192021222324252627282930313233
  1. SELECT application_chat_record_temp.id AS id,
  2. application_chat."id" as chat_id,
  3. application_chat.abstract as abstract,
  4. application_chat_record_temp.problem_text as problem_text,
  5. application_chat_record_temp.answer_text as answer_text,
  6. application_chat_record_temp.message_tokens as message_tokens,
  7. application_chat_record_temp.answer_tokens as answer_tokens,
  8. application_chat_record_temp.run_time as run_time,
  9. application_chat_record_temp.details::JSON as details, application_chat_record_temp."index" as "index",
  10. application_chat_record_temp.improve_paragraph_list as improve_paragraph_list,
  11. application_chat_record_temp.vote_status as vote_status,
  12. application_chat_record_temp.vote_reason as vote_reason,
  13. application_chat_record_temp.vote_other_content as vote_other_content,
  14. application_chat_record_temp.create_time as create_time,
  15. (CASE
  16. WHEN "chat_user".id is NULL THEN application_chat.asker
  17. ELSE jsonb_build_object('id', chat_user.id, 'username',
  18. chat_user.username) END)::json AS asker, application_chat_record_temp.ip_address as ip_address,
  19. application_chat_record_temp.source::json AS source
  20. FROM application_chat application_chat
  21. left join chat_user chat_user on chat_user.id::varchar = application_chat.chat_user_id
  22. LEFT JOIN (
  23. SELECT
  24. *,
  25. CASE
  26. WHEN array_length( application_chat_record.improve_paragraph_id_list, 1 ) IS NULL THEN
  27. '{}' ELSE ( SELECT ARRAY_AGG ( row_to_json ( paragraph ) ) FROM paragraph WHERE "id" = ANY ( application_chat_record.improve_paragraph_id_list ) )
  28. END as improve_paragraph_list
  29. FROM
  30. application_chat_record application_chat_record
  31. ) application_chat_record_temp
  32. ON application_chat_record_temp.chat_id = application_chat."id"
  33. ${default_queryset}