GeneralRecordController.php 3.4 KB

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