StoreCartController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace app\api\controller\store;
  3. use app\models\store\StoreBargainUserHelp;
  4. use app\models\store\StoreCart;
  5. use app\Request;
  6. use crmeb\services\UtilService;
  7. /**
  8. * 购物车类
  9. * Class StoreCartController
  10. * @package app\api\controller\store
  11. */
  12. class StoreCartController
  13. {
  14. /**
  15. * @api {get} /cart/list 购物车列表
  16. * @apiName GetCartList
  17. * @apiGroup User.Cart
  18. *
  19. */
  20. public function lst(Request $request)
  21. {
  22. return app('json')->successful(StoreCart::getUserProductCartList($request->uid()));
  23. }
  24. /**
  25. * @api {post} /cart/add 购物车 添加
  26. * @apiName PostCartAdd
  27. * @apiGroup User.Cart
  28. *
  29. */
  30. public function add(Request $request)
  31. {
  32. list($productId, $cartNum, $uniqueId, $combinationId, $secKillId, $bargainId, $new) = UtilService::postMore([
  33. ['productId',0],//普通产品编号
  34. ['cartNum',1], //购物车数量
  35. ['uniqueId',''],//属性唯一值
  36. ['combinationId',0],//拼团产品编号
  37. ['secKillId',0],//秒杀产品编号
  38. ['bargainId',0],//砍价产品编号
  39. ['new',1], // 1 加入购物车直接购买 0 加入购物车
  40. ], $request, true);
  41. if (!$productId || !is_numeric($productId)) return app('json')->fail('参数错误');
  42. if ($bargainId && StoreBargainUserHelp::getSurplusPrice($bargainId, $request->uid())) return app('json')->fail('请先砍价');
  43. $res = StoreCart::setCart($request->uid(), $productId, $cartNum, $uniqueId, 'product', $new, $combinationId, $secKillId, $bargainId);
  44. if (!$res) return app('json')->fail(StoreCart::getErrorInfo());
  45. else return app('json')->successful('ok', ['cartId' => $res->id]);
  46. }
  47. /**
  48. * @api {post} /cart/del 购物车 删除产品
  49. * @apiName PostCartDel
  50. * @apiGroup User.Cart
  51. *
  52. */
  53. public function del(Request $request)
  54. {
  55. list($ids) = UtilService::postMore([
  56. ['ids',[]],//购物车编号
  57. ], $request, true);
  58. if (!count($ids))
  59. return app('json')->fail('参数错误!');
  60. if(StoreCart::removeUserCart($request->uid(), $ids))
  61. return app('json')->successful();
  62. return app('json')->fail('清除失败!');
  63. }
  64. /**
  65. * @api {post} /cart/num 购物车 修改产品数量
  66. * @apiName PostCartNum
  67. * @apiGroup User.Cart
  68. *
  69. */
  70. public function num(Request $request)
  71. {
  72. list($id, $number) = UtilService::postMore([
  73. ['id',0],//购物车编号
  74. ['number',0],//购物车编号
  75. ], $request, true);
  76. if (!$id || !$number || !is_numeric($id) || !is_numeric($number)) return app('json')->fail('参数错误!');
  77. $res = StoreCart::changeUserCartNum($id, $number, $request->uid());
  78. if ($res) return app('json')->successful();
  79. else return app('json')->fail(StoreCart::getErrorInfo('修改失败'));
  80. }
  81. /**
  82. * @api {get} /cart/count 购物车 获取数量
  83. * @apiName GetCartCount
  84. * @apiGroup User.Cart
  85. *
  86. */
  87. public function count(Request $request)
  88. {
  89. list($numType) = UtilService::postMore([
  90. ['numType',true],//购物车编号
  91. ], $request, true);
  92. if(!(int)$numType) $numType = false;
  93. return app('json')->success('ok', ['count'=>StoreCart::getUserCartNum($request->uid(), 'product', $numType)]);
  94. }
  95. }