Cart.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace app\api\controller\order;
  3. use app\api\controller\Controller;
  4. use app\api\model\order\Cart as CartModel;
  5. use app\api\model\settings\Setting as SettingModel;
  6. /**
  7. * 购物车控制器
  8. */
  9. class Cart extends Controller
  10. {
  11. private $user;
  12. // $model
  13. private $model;
  14. /**
  15. * 构造方法
  16. */
  17. public function initialize()
  18. {
  19. $this->user = $this->getUser();
  20. $this->model = new CartModel($this->user);
  21. }
  22. /**
  23. * 购物车列表
  24. */
  25. public function lists()
  26. {
  27. // 请求参数
  28. $param = $this->request->param();
  29. $cartIds = isset($param['cart_ids']) ? $param['cart_ids'] : '';
  30. // 购物车商品列表
  31. $productList = $this->model->getList($cartIds);
  32. //是否显示店铺信息
  33. $store_open=SettingModel::getStoreOpen();
  34. return $this->renderSuccess('', compact('productList','store_open'));
  35. }
  36. /**
  37. * 加入购物车
  38. * @param int $product_id 商品id
  39. * @param int $product_num 商品数量
  40. * @param string $product_sku_id 商品sku索引
  41. */
  42. public function add()
  43. {
  44. $data = $this->request->param();
  45. $product_id = $data['product_id'];
  46. $product_num = $data['total_num'];
  47. $product_sku_id = $data['product_sku_id'];
  48. $model = $this->model;
  49. if (!$result = $model->add($product_id, $product_num, $product_sku_id)) {
  50. return $this->renderError($model->getError() ?:'加入购物车失败');
  51. }
  52. // 购物车商品总数量
  53. $totalNum = $model->getProductNum();
  54. return $this->renderSuccess('加入购物车成功', ['cart_total_num' => $totalNum,'total_num'=> isset($result['product_num'])? $result['product_num']: 0]);
  55. }
  56. /**
  57. * 减少购物车商品数量
  58. * @param $product_id
  59. * @param $product_sku_id
  60. * @return array
  61. */
  62. public function sub($product_id, $product_sku_id)
  63. {
  64. $this->model->sub($product_id, $product_sku_id);
  65. return $this->renderSuccess('');
  66. }
  67. /**
  68. * 删除购物车中指定商品
  69. * @param $product_sku_id (支持字符串ID集)
  70. * @return array
  71. */
  72. public function delete($product_sku_id)
  73. {
  74. $this->model->delete($product_sku_id);
  75. return $this->renderSuccess('删除成功');
  76. }
  77. }