SentSimResource.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Http\Resources;
  3. use Illuminate\Http\Resources\Json\JsonResource;
  4. use App\Models\PaliSentence;
  5. use App\Models\PaliText;
  6. use App\Http\Api\StudioApi;
  7. use App\Http\Api\UserApi;
  8. use App\Http\Api\ChannelApi;
  9. use App\Http\Controllers\CorpusController;
  10. class SentSimResource extends JsonResource
  11. {
  12. /**
  13. * Transform the resource into an array.
  14. *
  15. * @param \Illuminate\Http\Request $request
  16. * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
  17. */
  18. public function toArray($request)
  19. {
  20. //获取实际句子信息
  21. $sent = PaliSentence::find($this->sent2);
  22. $channelId = ChannelApi::getSysChannel('_System_Pali_VRI_');
  23. $sentOrg = [
  24. "id"=>$sent->id,
  25. "book"=> $sent->book,
  26. "para"=> $sent->paragraph,
  27. "wordStart"=> $sent->word_begin,
  28. "wordEnd"=> $sent->word_end,
  29. "editor"=> StudioApi::getById(config("app.admin.root_uuid")),
  30. "channel"=> ChannelApi::getById($channelId),
  31. "content"=>$sent->text,
  32. "html"=> "<span>{$sent->text}</span>",
  33. "role"=>"member",
  34. "created_at"=> $sent->created_at,
  35. "updated_at"=> $sent->updated_at,
  36. ];
  37. $resCount = CorpusController::sentResCount($sent->book,$sent->paragraph,$sent->word_begin,$sent->word_end);
  38. $result = [
  39. "id" => "{$sent->book}-{$sent->paragraph}-{$sent->word_begin}-{$sent->word_end}",
  40. "book"=> $sent->book,
  41. "para"=> $sent->paragraph,
  42. "wordStart"=> $sent->word_begin,
  43. "wordEnd"=> $sent->word_end,
  44. "origin" => [$sentOrg],
  45. "translation" => [],
  46. "layout" => "column",
  47. "tranNum" => $resCount['tranNum'],
  48. "nissayaNum" => $resCount['nissayaNum'],
  49. "commNum" => $resCount['commNum'],
  50. "originNum" => $resCount['originNum'],
  51. "simNum" => $resCount['simNum'],
  52. ];
  53. $result['path'] = json_decode(PaliText::where('book',$sent->book)
  54. ->where('paragraph',$sent->paragraph)
  55. ->value('path'));
  56. return $result;
  57. }
  58. }