CommentRecordController.php 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace App\Http\Controllers\Behavior;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\CommentRecord;
  5. use App\Repositories\Behavior\CommentRecordRepository;
  6. use App\Transformers\Behavior\CommentRecordTransformer;
  7. use Illuminate\Http\Request;
  8. use League\Fractal\Manager;
  9. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  10. use League\Fractal\Resource\Collection;
  11. /**
  12. * Created by PhpStorm.
  13. * User: durong
  14. * Date: 2019/6/14
  15. * Time: 下午6:06
  16. */
  17. class CommentRecordController extends Controller
  18. {
  19. public function __construct(CommentRecordRepository $commentRecordRepository)
  20. {
  21. $this->commentRecordRepository = $commentRecordRepository;
  22. }
  23. /**
  24. * 评论账本列表
  25. */
  26. public function index(Request $request)
  27. {
  28. $commentList = $this->commentRecordRepository->lists($request->all());
  29. if (count($commentList)>0) {
  30. $behavior_trigger_times = CommentRecord::select('trigger_type')->where('trigger_type', '!=', null)->count();//总触发数
  31. $behavior_effective_trigger = CommentRecord::select('trigger_type')->where('trigger_type', 1)->count();//有效触发数
  32. $physical_exertion = CommentRecord::select('physical_exertion')->sum('physical_exertion');//总消耗体力值
  33. $generation_quantity = CommentRecord::select('generation_quantity')->sum('generation_quantity');//总生成彩虹豆
  34. $quantity_issued = CommentRecord::select('quantity_issued')->sum('quantity_issued');//总发放彩虹豆
  35. foreach ($commentList as $k => $v) {
  36. $v['all_trigger_times'] = $behavior_trigger_times;
  37. $v['all_effective_trigger'] = $behavior_effective_trigger;
  38. $v['physical_exertion'] = intval($physical_exertion);
  39. $v['generation_quantity'] = intval($generation_quantity);
  40. $v['quantity_issued'] = intval($quantity_issued);
  41. }
  42. }
  43. $fractal = new Manager();
  44. $resource = new Collection($commentList, new CommentRecordTransformer());
  45. $resource->setPaginator(new IlluminatePaginatorAdapter($commentList));
  46. $data = $fractal->createData($resource)->toArray();
  47. $data['extra'] = [
  48. 'filters' => [
  49. 'id',
  50. 'uid',
  51. 'created_at',
  52. 'trigger_type',
  53. 'virus_behavior_id'
  54. ],
  55. 'columns' => [
  56. 'id',
  57. 'created_at',
  58. 'virus_behavior_id',
  59. 'uid',
  60. 'upper_trigger_time',
  61. 'related_content_id',
  62. 'content_author_id',
  63. 'superior_commentator_id',
  64. 'physical_exertion',
  65. 'trigger_type',
  66. 'generation_type',
  67. 'absolute_progression',
  68. 'superior_uid',
  69. 'release_status',
  70. 'generation_quantity',
  71. 'quantity_issued',
  72. 'current_comment_id',
  73. 'superior_comment_id',
  74. 'behavior_cycle_type',
  75. 'name',
  76. 'relative_series',
  77. 'is_open',
  78. 'bahavior_created_at',
  79. 'all_trigger_times',
  80. 'all_effective_trigger',
  81. 'all_physical_exertion',
  82. 'all_generation_quantity',
  83. 'all_quantity_issued'
  84. ]
  85. ];
  86. return $data;
  87. }
  88. }