RequestController.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace app\backend\modules\order\controllers;
  3. use app\common\components\BaseController;
  4. use app\common\models\Member;
  5. use app\common\models\Order;
  6. use app\common\modules\memberCart\PreMemberCart;
  7. use app\framework\Http\Request;
  8. use app\frontend\modules\memberCart\MemberCartCollection;
  9. class RequestController extends BaseController
  10. {
  11. private $order;
  12. private $member;
  13. public function index()
  14. {
  15. dd($this->order()->orderRequest->request);
  16. }
  17. private function order()
  18. {
  19. if (!isset($this->order)) {
  20. $this->order = Order::find(request()->input('order_id'));
  21. }
  22. return $this->order;
  23. }
  24. private function uid()
  25. {
  26. if (request()->input('uid')) {
  27. return request()->input('uid');
  28. }
  29. return $this->order()->uid;
  30. }
  31. public function member()
  32. {
  33. if (!isset($this->member)) {
  34. $this->member = Member::find($this->uid());
  35. }
  36. return $this->member;
  37. }
  38. /**
  39. * @return \Illuminate\Http\JsonResponse
  40. * @throws \app\common\exceptions\AppException
  41. */
  42. public function reappear()
  43. {
  44. $request = new Request($this->order()->orderRequest->request);
  45. $goods = json_decode($request->input('goods'), true);
  46. $trade = $this->getMemberCarts($goods)->getTrade($this->order()->belongsToMember, $request);
  47. return $this->successJson('成功', $trade);
  48. }
  49. /**
  50. * @param $goods
  51. * @return MemberCartCollection
  52. */
  53. private function getMemberCarts($goods)
  54. {
  55. app('OrderManager')->bind('MemberCart', function ($manager, $params) {
  56. return new PreMemberCart($params);
  57. });
  58. $result = new MemberCartCollection();
  59. foreach ($goods as $memberCart) {
  60. $memberCart['member_id'] = $this->uid();
  61. $cart = app('OrderManager')->make('MemberCart', $memberCart);
  62. $result->push($cart);
  63. }
  64. return $result;
  65. }
  66. }