getOneData([ ['user_id', '=', USER_ID] ], 'count(id)'); return sendSuccessMessage([ 'cart_number' => $cart_number ]); } /** * 获取用户购物车现有有效和无效产品列表 * @date 2021-03-01 */ public function listUserCartEffectiveAndInvalid() { $param = input('post.'); $cart_logic = new \app\mall\logic\Cart(); // 更新购物车产品选中状态 $result = $cart_logic -> listUserCartEffectiveAndInvalid(); return sendSuccessMessage($result); } /** * 更新购物车产品选中状态 * @date 2022-08-25 */ public function updateCartProductSelectedStatus() { $param = input('post.'); $cart_logic = new \app\mall\logic\Cart(); // 更新购物车产品选中状态 $result = $cart_logic -> updateCartProductSelectedStatus($param['cart_id'],$param['is_select']); // 有报错 if($result['code']){ return json($result); } return sendSuccessMessage([ 'cart_effective' => $result['data']['cart_effective'] ]); } /** * 删除购物车选中商品 * @date 2022-10-27 */ public function deleteChooseProduct() { $param = input('post.'); $cart_logic = new \app\mall\logic\Cart(); // 删除购物车选中商品 $result = $cart_logic->deleteChooseProduct(); return json($result); } /** * 全选/取消全选购物车商品 * @date 2021-03-01 */ public function chooseAllProduct() { $param = input('post.'); $cart_model = new MallCart(); $cart_service = new \app\mall\service\Cart(); if ($param['choose'] == 0) { $data = [ 'is_select' => 0, 'update_time' => time() ]; } else if ($param['choose'] == 1) { $data = [ 'is_select' => 1, 'update_time' => time() ]; } $number = $cart_model -> getNumber([ ['user_id', '=', USER_ID] ]); if(!empty($number)){ $res = $cart_model->where([ ['user_id', '=', USER_ID] ])->update($data); if (!$res) { return sendErrorMessage(4001, '更新购物车失败'); } } // 更新购物车产品选中状态 list($cart_effective, $cart_invalid) = $cart_service->listUserCartEffectiveAndInvalid(); return sendSuccessMessage([ 'cart_effective' => $cart_effective ]); } /** * 购物车页新加或更新购物车 * @date 2021-03-01 */ public function cartNumberChange() { $param = input('post.'); $cart_model = new MallCart(); $product_logic = new \app\mall\logic\Product(); $cart_service = new \app\mall\service\Cart(); //获取购物车详情 $cart = $cart_model->getOneData([ ['id', '=', $param['cart_id']] ]); //判断库存是否足够 if ($param['type'] == 1) { $number = $cart['number'] + 1; } else if ($param['type'] == 2) { $number = $cart['number'] - 1; } else if ($param['type'] == 3) { $number = $param['number']; } $res = $product_logic->isStockEnough($cart['product_id'], $cart['product_sku'], $number); if ($res['code'] != 0) { return json($res); } //更新购物车数量 $data['id'] = $param['cart_id']; $data['number'] = $number; $res = $cart_model->dataUpdate($data); if (!$res) { return sendErrorMessage(4001, '更新购物车失败'); } //获取购物车商品 list($cart_effective, $cart_invalid) = $cart_service->listUserCartEffectiveAndInvalid();; return sendSuccessMessage([ 'cart_effective' => $cart_effective ]); } /** * 商品详情页新加或更新购物车 * @date 2021-03-01 */ public function cartUpdate() { $param = input('post.'); $cart_model = new MallCart(); $product_model = new MallProduct(); $product_logic = new \app\mall\logic\Product(); //获取商品详情 $product = $product_model->getOneData([ ['id', '=', $param['product_id']] ]); //判断库存是否足够 $cart_number = $cart_model->getOneData([ ['user_id', '=', USER_ID], ['product_id', '=', $param['product_id']], ['product_sku', '=', $param['sku']], ], 'number'); $cart_number = $cart_number ?? 0; $number = $param['number'] + $cart_number;//购物车本身的数量+新增数量 $res = $product_logic->isStockEnough($param['product_id'], $param['sku'], $number); if ($res['code'] != 0) { return json($res); } //加入购物车 $data = [ 'uid' => UID, 'user_agent' => USER_AGENT, 'user_id' => USER_ID, 'product_id' => $param['product_id'], 'is_product_spec_open' => $product['is_spec_open'], 'product_sku' => $param['sku'], 'number' => $param['number'] ]; //凑单的商品默认选中 if (!empty($param['is_select']) && $param['is_select'] == 1) { $data['is_select'] = 1; } $res = $cart_model->updateCart($data); if (!$res) { return sendErrorMessage(4001, '更新购物车失败'); } //获取购物车种类数量 $cart_number = $cart_model->getOneData([ ['user_id', '=', USER_ID] ], 'count(id)'); return sendSuccessMessage([ 'cart_number' => $cart_number ], '加入购物车成功'); } /** * 清空失效宝贝 * @date 2021-03-01 */ public function clearInvalidProduct() { $cart_model = new MallCart(); $res = $cart_model->deleteInvalidCart(); if (!$res) { return sendErrorMessage(4001, '清空失效宝贝失败'); } return sendSuccessMessage([], '清空失效宝贝成功'); } /** * 去凑单 * @date 2021-03-01 */ public function getPool() { $param = input('post.'); $pool_model = new MallPool(); $pool = $pool_model->getAllData([ ['uid', '=', UID] ], 'limit', 'limit asc')->toArray(); //组合数组 $index = 0; foreach ($pool as $k => $v) { $pool[$k]['name'] = ($k == 0 ? 0 : $pool[$k - 1]['limit']) . '-' . $pool[$k]['limit'] . '元'; $pool[$k]['price_min'] = $k == 0 ? 0 : $pool[$k - 1]['limit']; $pool[$k]['price_max'] = $pool[$k]['limit']; if ($param['differ_money'] >= $pool[$k]['price_min'] && $param['differ_money'] < $pool[$k]['price_max']) { $index = $k; } if ($k == count($pool) - 1) { $pool[$k + 1]['name'] = $pool[$k]['limit'] . '元以上'; $pool[$k + 1]['price_min'] = $pool[$k]['limit']; $pool[$k + 1]['price_max'] = ''; if ($param['differ_money'] >= $pool[$k + 1]['price_min']) { $index = $k + 1; } } } return sendSuccessMessage([ 'pool' => $pool, 'index' => $index ]); } }