UserStatisticsController.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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. $uid = $this->getLoginUserId();
  33. return UserStatisticsService::getTodayData($uid,$type);
  34. }
  35. /**
  36. * 历史统计
  37. * name: stats
  38. * @param Request $request
  39. * date 2023/06/25 14:24
  40. */
  41. public function stats(Request $request)
  42. {
  43. $miniProgramId = $request->input('miniprogram_id',0);
  44. $userContext = $this->getUserContext(null);
  45. $type = 1;
  46. if( $userContext['loginUserRoles']->contains('company')){
  47. $type = 2;
  48. }else if ($userContext['loginUserRoles']->contains('optimizer')){
  49. $type = 3;
  50. }
  51. $uid = $this->getLoginUserId();
  52. return UserStatisticsService::historyStats($uid,$type);
  53. }
  54. /**
  55. * 列表查询
  56. * name: list
  57. * @param Request $request
  58. * date 2023/06/25 14:24
  59. */
  60. public function list(Request $request){
  61. $param = $request->all();
  62. $param = $this->getlistParams($param);
  63. return UserStatisticsService::list($param);
  64. }
  65. public function listStatistics(Request $request){
  66. $param = $request->all();
  67. $param = $this->getlistParams($param);
  68. return UserStatisticsService::listStatistics($param);
  69. }
  70. private function getlistParams($param)
  71. {
  72. $userContext = $this->getUserContext(null);
  73. if (getProp($param, 'puser_id')) {
  74. $param['puser_id'] = $param['puser_id'];
  75. }
  76. if (getProp($param, 'user_id')) {
  77. $param['user_id'] = $param['user_id'];
  78. }
  79. // 公司账户处理
  80. if ($userContext['loginUserRoles']->contains('company')) {
  81. $param['puser_id'] = $userContext['operateUser']->id;
  82. }
  83. // 投手处理
  84. if ($userContext['loginUserRoles']->contains('optimizer')) {
  85. $param['user_id'] = $userContext['operateUser']->id;
  86. $param['puser_id'] = $userContext['operateUser']->pid;
  87. }
  88. if (!getProp($param,'end_at')){
  89. $param['end_at'] = date('Y-m-d');
  90. }else{
  91. $param['end_at'] = date('Y-m-d',strtotime($param['end_at']));
  92. }
  93. if (!getProp($param,'start_at')){
  94. // 默认最近7天
  95. $param['start_at'] = date('Y-m-d',strtotime($param['end_at'])-86400*7);
  96. }else{
  97. $param['start_at'] = date('Y-m-d',strtotime($param['start_at']));
  98. }
  99. return $param;
  100. }
  101. }