UserStatisticsController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. /**
  3. *
  4. * @file:UserStatisticsController.php
  5. * @Date: 2023/6/20
  6. * @Time: 09:29
  7. */
  8. namespace Modules\Statistic\Http\Controllers;
  9. use Catch\Base\CatchController;
  10. use Catch\Exceptions\FailedException;
  11. use Illuminate\Http\Request;
  12. use Modules\Common\Services\Statistic\OptimizerDayUser;
  13. use Modules\Statistic\Services\UserStatisticsService;
  14. use Modules\User\Http\Controllers\UserTrait;
  15. class UserStatisticsController extends CatchController
  16. {
  17. use UserTrait;
  18. /**
  19. * 获取当日数据
  20. * name: todayData
  21. * date 2023/06/20 09:45
  22. */
  23. public function todayData(Request $request)
  24. {
  25. $userContext = $this->getUserContext(null);
  26. $type = 1;
  27. if( $userContext['loginUserRoles']->contains('company')){
  28. $type = 2;
  29. }else if ($userContext['loginUserRoles']->contains('optimizer')){
  30. $type = 3;
  31. }
  32. $miniProgramId = $request->input('miniprogram_id',0);
  33. $uid = $this->getLoginUserId();
  34. return UserStatisticsService::getTodayData($uid,$type,$miniProgramId);
  35. }
  36. /**
  37. * 历史统计
  38. * name: stats
  39. * @param Request $request
  40. * date 2023/06/25 14:24
  41. */
  42. public function stats(Request $request)
  43. {
  44. $miniProgramId = $request->input('miniprogram_id',0);
  45. $userContext = $this->getUserContext(null);
  46. $type = 1;
  47. if( $userContext['loginUserRoles']->contains('company')){
  48. $type = 2;
  49. }else if ($userContext['loginUserRoles']->contains('optimizer')){
  50. $type = 3;
  51. }
  52. $uid = $this->getLoginUserId();
  53. return UserStatisticsService::historyStats($uid,$type,$miniProgramId);
  54. }
  55. /**
  56. * 列表查询
  57. * name: list
  58. * @param Request $request
  59. * date 2023/06/25 14:24
  60. */
  61. public function list(Request $request){
  62. $param = $request->all();
  63. $param = $this->getlistParams($param);
  64. return UserStatisticsService::list($param);
  65. }
  66. public function listStatistics(Request $request){
  67. $param = $request->all();
  68. $param = $this->getlistParams($param);
  69. return UserStatisticsService::listStatistics($param);
  70. }
  71. private function getlistParams($param)
  72. {
  73. $userContext = $this->getUserContext(null);
  74. if (getProp($param, 'puser_id')) {
  75. $param['puser_id'] = $param['puser_id'];
  76. }
  77. if (getProp($param, 'user_id')) {
  78. $param['user_id'] = $param['user_id'];
  79. }
  80. // 公司账户处理
  81. if ($userContext['loginUserRoles']->contains('company')) {
  82. $param['puser_id'] = $userContext['operateUser']->id;
  83. }
  84. // 投手处理
  85. if ($userContext['loginUserRoles']->contains('optimizer')) {
  86. $param['user_id'] = $userContext['operateUser']->id;
  87. $param['puser_id'] = $userContext['operateUser']->pid;
  88. }
  89. if (!getProp($param,'end_at')){
  90. $param['end_at'] = date('Y-m-d');
  91. }else{
  92. $param['end_at'] = date('Y-m-d',strtotime($param['end_at']));
  93. }
  94. if (!getProp($param,'start_at')){
  95. // 默认最近7天
  96. $param['start_at'] = date('Y-m-d',strtotime($param['end_at'])-86400*7);
  97. }else{
  98. $param['start_at'] = date('Y-m-d',strtotime($param['start_at']));
  99. }
  100. return $param;
  101. }
  102. }