UserStatisticsController.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. $userContext = $this->getUserContext(null);
  63. if (getProp($param, 'puser_id')) {
  64. $param['puser_id'] = $param['puser_id'];
  65. }
  66. if (getProp($param, 'user_id')) {
  67. $param['user_id'] = $param['user_id'];
  68. }
  69. // 公司账户处理
  70. if ($userContext['loginUserRoles']->contains('company')) {
  71. $param['puser_id'] = $userContext['operateUser']->id;
  72. }
  73. // 投手处理
  74. if ($userContext['loginUserRoles']->contains('optimizer')) {
  75. $param['user_id'] = $userContext['operateUser']->id;
  76. $param['puser_id'] = $userContext['operateUser']->pid;
  77. }
  78. if (!getProp($param,'end_at')){
  79. $param['end_at'] = date('Y-m-d');
  80. }else{
  81. $param['end_at'] = date('Y-m-d',strtotime($param['end_at']));
  82. }
  83. if (!getProp($param,'start_at')){
  84. // 默认最近7天
  85. $param['start_at'] = date('Y-m-d',strtotime($param['end_at'])-86400*7);
  86. }else{
  87. $param['start_at'] = date('Y-m-d',strtotime($param['start_at']));
  88. }
  89. return UserStatisticsService::list($param);
  90. }
  91. }