WechatMinprogramUserController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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. $param = $request->all();
  44. $uid = $request->input('uid');
  45. if ($uid < 1){
  46. $this->errorMsg("用户参数必填");
  47. }
  48. $userContext = $this->getUserContext(null);
  49. // 公司账户处理
  50. if ($userContext['loginUserRoles']->contains('company')) {
  51. $param['puser_id'] = $userContext['operateUser']->id;
  52. }
  53. // 投手处理
  54. if ($userContext['loginUserRoles']->contains('optimizer')) {
  55. $param['user_id'] = $userContext['operateUser']->id;
  56. }
  57. return WechatMinprogramUserService::getUserOrderList($uid,$param);
  58. }
  59. /***
  60. * 观看记录
  61. * name: watchRecord
  62. * @param Request $request
  63. * date 2023/05/19 14:18
  64. */
  65. public function watchRecord (Request $request)
  66. {
  67. $uid = $request->input('uid');
  68. if ($uid < 1){
  69. $this->errorMsg("用户参数必填");
  70. }
  71. $list = WechatMinprogramUserService::getUserWatchRecord($uid);
  72. return $this->pageWithArray($request,$list,$request->input('limit',15));
  73. }
  74. /**
  75. * 消费记录
  76. * name: consumeRecord
  77. * @param Request $request
  78. * date 2023/05/19 14:19
  79. */
  80. public function consumeRecord (Request $request)
  81. {
  82. $uid = $request->input('uid');
  83. if ($uid < 1){
  84. $this->errorMsg("用户参数必填");
  85. }
  86. return WechatMinprogramUserService::getUserConsumeRecord($uid,$request->input('limit',15));
  87. }
  88. protected function errorMsg($msg,$code = 10005){
  89. throw new FailedException($msg,$code );
  90. }
  91. /**
  92. * 数组分页
  93. * name: pageWithArray
  94. * @param $request
  95. * @param $array
  96. * @param int $limit
  97. * @return \Illuminate\Pagination\LengthAwarePaginator
  98. * date 2023/05/19 16:44
  99. */
  100. protected function pageWithArray($request,$array,$limit = 15){
  101. $currentPage = \Illuminate\Pagination\LengthAwarePaginator::resolveCurrentPage();
  102. $itemCollection = collect($array);
  103. $currentPageItems = $itemCollection->slice(($currentPage*$limit)-$limit,$limit)->all();
  104. return new \Illuminate\Pagination\LengthAwarePaginator($currentPageItems,count($itemCollection),$limit);
  105. }
  106. }