WechatMinprogramUserController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. /**
  3. * 微信小程序用户
  4. * @file:WechatMinprogramUserController.php
  5. * @Date: 2023/5/19
  6. * @Time: 10:24
  7. */
  8. namespace Modules\Channel\Http\Controllers;
  9. use Catch\Base\CatchController;
  10. use Illuminate\Http\Request;
  11. use Catch\Exceptions\FailedException;
  12. use Modules\Channel\Services\WechatMinprogram\WechatMinprogramUserService;
  13. use Modules\User\Http\Controllers\UserTrait;
  14. class WechatMinprogramUserController extends CatchController
  15. {
  16. use UserTrait;
  17. /***
  18. * 获取用户信息
  19. * name: userInfoDetail
  20. * @param $uid
  21. * @return array|\Illuminate\Database\Eloquent\Model|\Illuminate\Database\Query\Builder|object
  22. * date 2023/05/19 14:13
  23. */
  24. public function userInfoDetail($uid)
  25. {
  26. if ($uid < 1) {
  27. $this->$this->errorMsg('缺少微信小程序用户id参数');
  28. }
  29. $userInfo = WechatMinprogramUserService::userInfoDetail($uid);
  30. if (!$userInfo) {
  31. $this->errorMsg('用户不存在');
  32. }
  33. return $userInfo;
  34. }
  35. /**
  36. * 订单记录
  37. * name: orderList
  38. * @param Request $request
  39. * date 2023/05/19 14:14
  40. */
  41. public function orderList(Request $request)
  42. {
  43. $uid = $request->input('uid');
  44. if ($uid < 1){
  45. $this->errorMsg("用户参数必填");
  46. }
  47. $userContext = $this->getUserContext(null);
  48. // 公司账户处理
  49. if ($userContext['loginUserRoles']->contains('company')) {
  50. $param['puser_id'] = $userContext['operateUser']->id;
  51. }
  52. // 投手处理
  53. if ($userContext['loginUserRoles']->contains('optimizer')) {
  54. $param['user_id'] = $userContext['operateUser']->id;
  55. }
  56. return WechatMinprogramUserService::getUserOrderList($uid,$param);
  57. }
  58. /***
  59. * 观看记录
  60. * name: watchRecord
  61. * @param Request $request
  62. * date 2023/05/19 14:18
  63. */
  64. public function watchRecord (Request $request)
  65. {
  66. $uid = $request->input('uid');
  67. if ($uid < 1){
  68. $this->errorMsg("用户参数必填");
  69. }
  70. $list = WechatMinprogramUserService::getUserWatchRecord($uid);
  71. return $this->pageWithArray($request,$list,$request->input('limit',15));
  72. }
  73. /**
  74. * 消费记录
  75. * name: consumeRecord
  76. * @param Request $request
  77. * date 2023/05/19 14:19
  78. */
  79. public function consumeRecord (Request $request)
  80. {
  81. $uid = $request->input('uid');
  82. if ($uid < 1){
  83. $this->errorMsg("用户参数必填");
  84. }
  85. return WechatMinprogramUserService::getUserConsumeRecord($uid);
  86. }
  87. protected function errorMsg($msg,$code = 10005){
  88. throw new FailedException($msg,$code );
  89. }
  90. /**
  91. * 数组分页
  92. * name: pageWithArray
  93. * @param $request
  94. * @param $array
  95. * @param int $limit
  96. * @return \Illuminate\Pagination\LengthAwarePaginator
  97. * date 2023/05/19 16:44
  98. */
  99. protected function pageWithArray($request,$array,$limit = 15){
  100. $currentPage = \Illuminate\Pagination\LengthAwarePaginator::resolveCurrentPage();
  101. $itemCollection = collect($array);
  102. $currentPageItems = $itemCollection->slice(($currentPage*$limit)-$limit,$limit)->all();
  103. return new \Illuminate\Pagination\LengthAwarePaginator($currentPageItems,count($itemCollection),$limit);
  104. }
  105. }