NoticeRuleDetailTransformer.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace App\Transformers;
  3. use App\Models\NoticeRule;
  4. use Illuminate\Support\Carbon;
  5. use League\Fractal\TransformerAbstract;
  6. class NoticeRuleDetailTransformer extends TransformerAbstract
  7. {
  8. public function transform(NoticeRule $noticeRule)
  9. {
  10. $noticeStatus = $noticeRule['notice_status'];
  11. if($noticeStatus == 0 && $noticeRule['send_time'] && $noticeRule['send_time'] <= Carbon::now()->toDateTimeString()){
  12. $noticeStatus = 1;
  13. }
  14. $noticeUsers = json_decode($noticeRule['notice_users'], true);
  15. $attribute = $noticeUsers['attribute']??0;
  16. $category = $noticeUsers['category']??[];
  17. $uids = '';
  18. if(isset($noticeUsers['uids'])){
  19. $uids = implode('、', $noticeUsers['uids']);
  20. }
  21. return [
  22. 'id' => $noticeRule['id'],
  23. 'title' => $noticeRule['title'],
  24. 'content' => $noticeRule['content'],
  25. 'cover' => $noticeRule['cover'],
  26. 'updated_at' => Carbon::parse($noticeRule['updated_at'])->toDateTimeString(),
  27. 'send_count' => $noticeRule['send_count'],
  28. 'notice_user_type' => $noticeRule['notice_user_type'],
  29. 'notice_status' => $noticeStatus,
  30. 'attribute' => $attribute,
  31. 'category' => $category,
  32. 'uids' => $uids,
  33. ];
  34. }
  35. }