StoreCartController.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\api\controller\v2\store;
  12. use app\services\order\StoreCartServices;
  13. use app\Request;
  14. class StoreCartController
  15. {
  16. protected $services;
  17. public function __construct(StoreCartServices $services)
  18. {
  19. $this->services = $services;
  20. }
  21. /**
  22. * 购物车重选
  23. * @param Request $request
  24. * @return mixed
  25. */
  26. public function resetCart(Request $request)
  27. {
  28. list($id, $unique, $num, $product_id) = $request->postMore([
  29. ['id', 0],
  30. ['unique', ''],
  31. ['num', 1],
  32. ['product_id', 0]
  33. ], true);
  34. $this->services->resetCart($id, $request->uid(), $product_id, $unique, $num);
  35. return app('json')->success(100001);
  36. }
  37. /**
  38. * 获取用户购物车
  39. * @param Request $request
  40. * @return mixed
  41. */
  42. public function getCartList(Request $request)
  43. {
  44. $uid = (int)$request->uid();
  45. $data = $this->services->getCartList(['uid' => $uid, 'is_del' => 0, 'is_new' => 0, 'is_pay' => 0, 'combination_id' => 0, 'seckill_id' => 0, 'bargain_id' => 0], 0, 0, ['productInfo', 'attrInfo']);
  46. [$data, $valid, $invalid] = $this->services->handleCartList($uid, $data);
  47. return app('json')->success($data);
  48. }
  49. /**
  50. * 首页加入购物车
  51. * @param Request $request
  52. * @return mixed
  53. * @throws \think\db\exception\DataNotFoundException
  54. * @throws \think\db\exception\DbException
  55. * @throws \think\db\exception\ModelNotFoundException
  56. */
  57. public function setCartNum(Request $request)
  58. {
  59. list($product_id, $num, $unique, $type) = $request->postMore([
  60. ['product_id', 0],
  61. ['num', 1],
  62. ['unique', ''],
  63. ['type', -1]
  64. ], true);
  65. /** @var StoreCartServices $cartService */
  66. $cartService = app()->make(StoreCartServices::class);
  67. if (!$product_id || !is_numeric($product_id)) return app('json')->fail(100100);
  68. $res = $cartService->setCartNum($request->uid(), $product_id, $num, $unique, $type);
  69. if ($res) return app('json')->success(100001);
  70. return app('json')->fail(100007);
  71. }
  72. }