QuestionTransformer.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/6/6
  6. * Time: 14:08
  7. */
  8. namespace App\Transformers\Circle;
  9. use App\Models\InterestCircle;
  10. use App\Models\InterestCircleUser;
  11. use Illuminate\Support\Facades\Redis;
  12. use League\Fractal\TransformerAbstract;
  13. class QuestionTransformer extends TransformerAbstract
  14. {
  15. public function __construct($uid)
  16. {
  17. $this->uid = $uid;
  18. }
  19. public function transform(InterestCircle $interestCircle)
  20. {
  21. $answer = $interestCircle['limit_condition'] - intval(Redis::get('circle_error_count_' . $this->uid));
  22. return [
  23. 'id' => $interestCircle['id'],
  24. 'join_question' => $this->formatQuestion($interestCircle),
  25. 'answer_count' => $answer > 0 ? $answer : 0
  26. ];
  27. }
  28. public function formatQuestion(InterestCircle $interestCircle)
  29. {
  30. $question = [];
  31. $ques = json_decode($interestCircle['join_question'], true);
  32. if (empty($ques)) {
  33. return $question;
  34. }
  35. foreach ($ques as $key => &$value) {
  36. $value['id'] = $key + 1;
  37. foreach ($value['answer'] as $k => &$v) {
  38. $v['id'] = $k + 1;
  39. }
  40. }
  41. return $ques;
  42. }
  43. }