| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- <?php
- declare (strict_types=1);
- namespace app\api\controller;
- use app\BaseController;
- use app\model\api\StoreCart;
- use app\model\api\StoreProductAttrValue;
- use app\Request;
- use library\services\UtilService;
- use think\facade\Db;
- class Cart extends BaseController
- {
- /**
- * 获取购物车列表
- * @param Request $request
- */
- public function list(Request $request)
- {
- $list = (new StoreCart())->getCartList($request->user['uid']);
- return app('json')->success($list);
- }
- /**
- * 添加购物车
- * @param Request $request
- */
- public function add(Request $request)
- {
- $post = UtilService::getMore([
- ['product_id', '', 'empty', '参数错误'],
- ['cart_num', 1],
- ['product_attr_unique', ''],
- ], $request);
- // 获取商品信息
- $product = Db::name('store_product')->where('id', $post['product_id'])->find();
- if (!$product) {
- return app('json')->fail('商品不存在');
- }
- // 获取SKU信息
- $skuInfo = null;
- if (!empty($post['product_attr_unique'])) {
- $skuInfo = (new StoreProductAttrValue())->getSkuBySuk($post['product_id'], $post['product_attr_unique']);
- if (!$skuInfo) {
- return app('json')->fail('商品规格不存在');
- }
- }
- $data = [
- 'uid' => $request->user['uid'],
- 'product_id' => $post['product_id'],
- 'cart_num' => $post['cart_num'],
- 'product_attr_unique' => $post['product_attr_unique'],
- 'time' => time(),
- ];
- $result = (new StoreCart())->addToCart($data);
- if ($result) {
- return app('json')->success('添加成功');
- } else {
- return app('json')->fail('添加失败');
- }
- }
- /**
- * 修改购物车数量
- * @param Request $request
- */
- public function updateNum(Request $request)
- {
- $post = UtilService::getMore([
- ['id', '', 'empty', '参数错误'],
- ['cart_num', 1],
- ], $request);
- if ($post['cart_num'] <= 0) {
- return app('json')->fail('数量必须大于0');
- }
- $result = (new StoreCart())->updateCartNum($post['id'], $post['cart_num'], $request->user['uid']);
- if ($result) {
- return app('json')->success('修改成功');
- } else {
- return app('json')->fail('修改失败');
- }
- }
- /**
- * 删除购物车
- * @param Request $request
- */
- public function delete(Request $request)
- {
- $post = UtilService::getMore([
- ['ids', '', 'empty', '参数错误'],
- ], $request);
- $ids = explode(',', $post['ids']);
- $result = (new StoreCart())->deleteCart($ids, $request->user['uid']);
- if ($result) {
- return app('json')->success('删除成功');
- } else {
- return app('json')->fail('删除失败');
- }
- }
- /**
- * 获取购物车数量
- * @param Request $request
- */
- public function count(Request $request)
- {
- $count = Db::name('store_cart')
- ->where('uid', $request->user['uid'])
- ->count();
- return app('json')->success(['count' => $count]);
- }
- }
|