QuestionTransformer.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. if ($interestCircle['limit_condition']) {
  22. $answer = $interestCircle['limit_condition'] - intval(Redis::get('circle_error_count_' . $this->uid));
  23. } else {
  24. $answer = -1;
  25. }
  26. return [
  27. 'id' => $interestCircle['id'],
  28. 'join_question' => $this->formatQuestion($interestCircle),
  29. 'answer_count' => $answer > 0 ? $answer : 0
  30. ];
  31. }
  32. public function formatQuestion(InterestCircle $interestCircle)
  33. {
  34. $question = [];
  35. $ques = json_decode($interestCircle['join_question'], true);
  36. if (empty($ques)) {
  37. return $question;
  38. }
  39. foreach ($ques as $key => &$value) {
  40. $value['id'] = $key + 1;
  41. foreach ($value['answer'] as $k => &$v) {
  42. $v['id'] = $k + 1;
  43. }
  44. }
  45. return $ques;
  46. }
  47. }