RegisteredRecordController.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace App\Http\Controllers\Behavior;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Behavior;
  5. use App\Models\RegisteredRecord;
  6. use App\Repositories\Behavior\RegisteredRecordRepository;
  7. use App\Transformers\Behavior\RegisteredRecordTransformer;
  8. use League\Fractal\Manager;
  9. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  10. use League\Fractal\Resource\Collection;
  11. use Illuminate\Http\Request;
  12. /**
  13. * Created by PhpStorm.
  14. * User: durong
  15. * Date: 2019/6/14
  16. * Time: 上午11:30
  17. */
  18. class RegisteredRecordController extends Controller
  19. {
  20. public function __construct(RegisteredRecordRepository $registeredRecordRepository)
  21. {
  22. $this->registeredRecordRepository = $registeredRecordRepository;
  23. }
  24. /**
  25. * 新用户注册账本列表
  26. */
  27. public function index(Request $request)
  28. {
  29. $registeredList = $this->registeredRecordRepository->lists($request->all());
  30. $behavior_absolute_progression = Behavior::select('absolute_progression')->where('behavior_identification', 'register')->first();//行为绝对级数
  31. $behavior_trigger_times = RegisteredRecord::select('trigger_type')->where('trigger_type', '!=', null)->count();//总触发数
  32. $behavior_effective_trigger = RegisteredRecord::select('trigger_type')->where('trigger_type', 1)->count();//有效触发数
  33. $physical_exertion = RegisteredRecord::select('physical_exertion')->sum('physical_exertion');//总消耗体力值
  34. $generation_quantity = RegisteredRecord::select('generation_quantity')->sum('generation_quantity');//总生成彩虹豆
  35. $quantity_issued = RegisteredRecord::select('quantity_issued')->sum('quantity_issued');//总发放彩虹豆
  36. $fractal = new Manager();
  37. $resource = new Collection($registeredList, new RegisteredRecordTransformer());
  38. $resource->setPaginator(new IlluminatePaginatorAdapter($registeredList));
  39. $data = $fractal->createData($resource)->toArray();
  40. $data['extra'] = [
  41. 'statistics' => [
  42. 'all_absolute_progression' => $behavior_absolute_progression->absolute_progression ?? 0,
  43. 'all_trigger_times' => $behavior_trigger_times,
  44. 'all_effective_trigger' => $behavior_effective_trigger,
  45. 'physical_exertion' => intval($physical_exertion),
  46. 'generation_quantity' => intval($generation_quantity),
  47. 'quantity_issued' => intval($quantity_issued)
  48. ],
  49. 'filters' => [
  50. 'id',
  51. 'uid',
  52. 'created_at',
  53. 'absolute_progression',
  54. 'trigger_type',
  55. 'virus_behavior_id'
  56. ],
  57. 'columns' => [
  58. 'id',
  59. 'created_at',
  60. 'uid',
  61. 'physical_exertion',
  62. 'trigger_type',
  63. 'generation_type',
  64. 'absolute_progression',
  65. 'superior_uid',
  66. 'release_status',
  67. 'generation_quantity',
  68. 'quantity_issued',
  69. ]
  70. ];
  71. return $data;
  72. }
  73. }