RegisteredRecordController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace App\Http\Controllers\Behavior;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\RegisteredRecord;
  5. use App\Repositories\Behavior\RegisteredRecordRepository;
  6. use App\Transformers\Behavior\RegisteredRecordTransformer;
  7. use League\Fractal\Manager;
  8. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  9. use League\Fractal\Resource\Collection;
  10. use Illuminate\Http\Request;
  11. /**
  12. * Created by PhpStorm.
  13. * User: durong
  14. * Date: 2019/6/14
  15. * Time: 上午11:30
  16. */
  17. class RegisteredRecordController extends Controller
  18. {
  19. public function __construct(RegisteredRecordRepository $registeredRecordRepository)
  20. {
  21. $this->registeredRecordRepository = $registeredRecordRepository;
  22. }
  23. /**
  24. * 新用户注册账本列表
  25. */
  26. public function index(Request $request)
  27. {
  28. $registeredList = $this->registeredRecordRepository->lists($request->all());
  29. $behavior_absolute_progression = 0;
  30. $behavior_trigger_times = 0;
  31. $behavior_effective_trigger = 0;
  32. $physical_exertion = 0;
  33. $generation_quantity = 0;
  34. $quantity_issued = 0;
  35. if (count($registeredList)>0) {
  36. $behavior_absolute_progression = RegisteredRecord::select('absolute_progression')->orderBy('id', 'DESC')->first();//行为绝对级数
  37. $behavior_trigger_times = RegisteredRecord::select('trigger_type')->where('trigger_type', '!=', null)->count();//总触发数
  38. $behavior_effective_trigger = RegisteredRecord::select('trigger_type')->where('trigger_type', 1)->count();//有效触发数
  39. $physical_exertion = RegisteredRecord::select('physical_exertion')->sum('physical_exertion');//总消耗体力值
  40. $generation_quantity = RegisteredRecord::select('generation_quantity')->sum('generation_quantity');//总生成彩虹豆
  41. $quantity_issued = RegisteredRecord::select('quantity_issued')->sum('quantity_issued');//总发放彩虹豆
  42. }
  43. $fractal = new Manager();
  44. $resource = new Collection($registeredList, new RegisteredRecordTransformer());
  45. $resource->setPaginator(new IlluminatePaginatorAdapter($registeredList));
  46. $data = $fractal->createData($resource)->toArray();
  47. $data['extra'] = [
  48. 'statistics' => [
  49. 'all_absolute_progression' => $behavior_absolute_progression->absolute_progression,
  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. 'absolute_progression',
  61. 'trigger_type',
  62. 'virus_behavior_id'
  63. ],
  64. 'columns' => [
  65. 'id',
  66. 'created_at',
  67. 'virus_behavior_id',
  68. 'uid',
  69. 'trigger_time',
  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. 'behavior_cycle_type',
  79. 'name',
  80. 'relative_series',
  81. 'is_open',
  82. 'bahavior_created_at'
  83. ]
  84. ];
  85. return $data;
  86. }
  87. }