ReleaseRecordController.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace App\Http\Controllers\Behavior;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\ReleaseRecord;
  5. use App\Repositories\Behavior\ReleaseRecordRepository;
  6. use App\Transformers\Behavior\ReleaseRecordTransformer;
  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: 下午8:17
  16. */
  17. class ReleaseRecordController extends Controller
  18. {
  19. public function __construct(ReleaseRecordRepository $releaseRecordRepository)
  20. {
  21. $this->releaseRecordRepository = $releaseRecordRepository;
  22. }
  23. /**
  24. * 发布账本列表
  25. */
  26. public function index(Request $request)
  27. {
  28. $releaseList = $this->releaseRecordRepository->lists($request->all());
  29. $behavior_trigger_times = ReleaseRecord::select('trigger_type')->where('trigger_type', '!=', null)->count();//总触发数
  30. $behavior_effective_trigger = ReleaseRecord::select('trigger_type')->where('trigger_type', 1)->count();//有效触发数
  31. $physical_exertion = ReleaseRecord::select('physical_exertion')->sum('physical_exertion');//总消耗体力值
  32. $generation_quantity = ReleaseRecord::select('generation_quantity')->sum('generation_quantity');//总生成U米
  33. $quantity_issued = ReleaseRecord::select('quantity_issued')->sum('quantity_issued');//总发放U米
  34. $fractal = new Manager();
  35. $resource = new Collection($releaseList, new ReleaseRecordTransformer());
  36. $resource->setPaginator(new IlluminatePaginatorAdapter($releaseList));
  37. $data = $fractal->createData($resource)->toArray();
  38. $data['extra'] = [
  39. 'statistics' => [
  40. 'all_trigger_times' => $behavior_trigger_times,
  41. 'all_effective_trigger' => $behavior_effective_trigger,
  42. 'physical_exertion' => intval($physical_exertion),
  43. 'generation_quantity' => intval($generation_quantity),
  44. 'quantity_issued' => intval($quantity_issued)
  45. ],
  46. 'filters' => [
  47. 'id',
  48. 'uid',
  49. 'created_at',
  50. 'trigger_type',
  51. 'related_content_id'
  52. ],
  53. 'columns' => [
  54. 'id',
  55. 'created_at',
  56. 'uid',
  57. 'related_content_id',
  58. 'physical_exertion',
  59. 'trigger_type',
  60. 'generation_type',
  61. 'release_status',
  62. 'generation_quantity',
  63. 'quantity_issued',
  64. ]
  65. ];
  66. return $data;
  67. }
  68. }