ajaxReturn($res); } if (empty(self::$uid) || self::$user['login_state'] != 1) { $res['status'] = -1; $res['msg'] = '用户未登录'; $this->ajaxReturn($res); } } /** * 获取购物车列表 */ public function getShoppingGoods_v1() { $uid = self::$uid; $store_id = self::$store_id; $XcxConfigModel = D('RetailStoreXcxConfig'); $promotion_status = $XcxConfigModel->getFindField(array($XcxConfigModel::STORE_ID => $store_id), $XcxConfigModel::PROMOTION_STATUS); $ShoppingModel = D('RetailShopping'); $GoodsModel = D('RetailGoods'); $SkuGoodsModel = D('RetailSkuGoods'); $SkuListModel = D('RetailSkuList'); $skuFields = array( $SkuGoodsModel::ID, $SkuGoodsModel::RETAIL_PRICE, $SkuGoodsModel::ONLINE_PRICE, $SkuGoodsModel::SHOP_MEM_PRICE, $SkuGoodsModel::SKU_ID_LIST, $SkuGoodsModel::STATE, $SkuGoodsModel::SKU_NUM, $SkuGoodsModel::GOODS_IMG_ID, $SkuGoodsModel::PLUS_PRICE, ); $goods_list = $ShoppingModel->getShoppingGoods($uid, $store_id, '', '', '1'); foreach ($goods_list as &$val) { // 普通购买 if (!$val[$GoodsModel::ONLINE_PRICE] || floatval($val[$GoodsModel::ONLINE_PRICE]) < 0.01) { $val[$GoodsModel::ONLINE_PRICE] = $val[$GoodsModel::RETAIL_PRICE]; } if (!$promotion_status) { $val['h_status'] = 0; } if ($val['h_status'] == 1) { $val[$GoodsModel::VIP_ONLINE_STATE] = 0; // 促销商品 不打折 $val['online_price'] = $val['act_price']; } $val['goods_img'] = $this->getGoodsImage($val[$GoodsModel::GOODS_IMG_ID]); if ($val[$GoodsModel::SHOP_MEM_STATUS] == 1 && (!$val[$GoodsModel::SHOP_MEM_PRICE] || $val[$GoodsModel::SHOP_MEM_PRICE] < 0.01) && !$val[$ShoppingModel::SKU_ID]) { $val[$GoodsModel::SHOP_MEM_STATUS] = 2; } if ($val[$GoodsModel::PLUS_MEM_STATUS] == 1 && (!$val[$GoodsModel::PLUS_PRICE] || $val[$GoodsModel::PLUS_PRICE] < 0.01) && !$val[$ShoppingModel::SKU_ID]) { $val[$GoodsModel::PLUS_MEM_STATUS] = 2; } $val['checked'] = true; $val['error'] = 0; if (!empty($val[$ShoppingModel::SKU_ID])) { $val[$ShoppingModel::NUM] = round($val[$ShoppingModel::NUM], 3); if ($val[$GoodsModel::ATTRIBUTE_STATE] == 1) { $val[$GoodsModel::GOODS_NUM] = 0; $val['msg'] = '商品失效'; $val['error'] = 1; $val['checked'] = false; } else { $sku = $SkuGoodsModel->getFind(array($SkuGoodsModel::ID => $val[$ShoppingModel::SKU_ID]), $skuFields); if (empty($sku) || $sku[$SkuGoodsModel::STATE] == 1) { $val[$GoodsModel::GOODS_NUM] = 0; $val[$ShoppingModel::NUM] = 0; $val['msg'] = '商品失效'; $val['error'] = 1; $val['checked'] = false; } $sku_num = A('Api/Inventory')->goods_num(1, self::$store_id, $val[$ShoppingModel::GOODS_ID], $val[$ShoppingModel::SKU_ID]); $sku['goods_num'] = $sku_num; $name = $SkuListModel->getFindField(array($SkuListModel::ID => array('in', $sku[$SkuGoodsModel::SKU_ID_LIST])), $SkuListModel::NAME, true); $sku['name'] = implode(',', $name); $sku['goods_img'] = $this->getGoodsImage($sku[$SkuGoodsModel::GOODS_IMG_ID]); $val['goods_img'] = $sku['goods_img']; if ($sku[$SkuGoodsModel::STATE] == 0) { $val['goods_num'] = $sku_num; if (!$val['h_status']) { if (!$sku[$SkuGoodsModel::ONLINE_PRICE] || floatval($sku[$SkuGoodsModel::ONLINE_PRICE]) < 0.01) { $sku[$SkuGoodsModel::ONLINE_PRICE] = $sku[$SkuGoodsModel::RETAIL_PRICE]; } $val[$GoodsModel::ONLINE_PRICE] = $sku[$SkuGoodsModel::ONLINE_PRICE]; } } else { $val['goods_num'] = A('Api/Inventory')->goods_num(2, $store_id, $val[$ShoppingModel::GOODS_ID]); } if (!empty($sku[$SkuGoodsModel::SHOP_MEM_PRICE]) && $sku[$SkuGoodsModel::SHOP_MEM_PRICE] > 0) { $val[$GoodsModel::SHOP_MEM_PRICE] = $sku[$SkuGoodsModel::SHOP_MEM_PRICE]; } if (!empty($sku[$SkuGoodsModel::PLUS_PRICE]) && $sku[$SkuGoodsModel::PLUS_PRICE] > 0) { $val[$GoodsModel::PLUS_PRICE] = $sku[$SkuGoodsModel::PLUS_PRICE]; } $val['sku'] = $sku; } } else { if (($val[$GoodsModel::SHOP_MEM_STATUS] == 1 && (!$val[$GoodsModel::SHOP_MEM_PRICE] || $val[$GoodsModel::SHOP_MEM_PRICE] < 0.01)) || !$val[$GoodsModel::ONLINE_PRICE] || $val[$GoodsModel::ONLINE_PRICE] < 0.01) { $val[$GoodsModel::GOODS_NUM] = 0; $val[$ShoppingModel::NUM] = 0; $val['msg'] = '商品失效'; $val['error'] = 1; $val['checked'] = false; } else { $val['goods_num'] = A('Api/Inventory')->goods_num(1, $store_id, $val[$ShoppingModel::GOODS_ID]); $val[$ShoppingModel::NUM] = round($val[$ShoppingModel::NUM], 3); } } $redis_key = 'retail_goods_' . $val[$ShoppingModel::GOODS_ID] . '_*'; $wait_pay_num = $this->getWaitNum($redis_key); $val['wait_pay_num'] = $wait_pay_num; $val['goods_num'] = round($val['goods_num'] - $wait_pay_num, 3); if ($val['goods_num'] < $val[$ShoppingModel::NUM]) { $val['msg'] = '库存不足'; $val['error'] = 1; $val['checked'] = false; } $val['maxBuyNum'] = $val['goods_num']; if ($val[$GoodsModel::ATTRIBUTE_STATE] == 2 && empty($val[$ShoppingModel::SKU_ID]) || $val[$GoodsModel::ATTRIBUTE_STATE] == 1 && !empty($val[$ShoppingModel::SKU_ID])) { $val['msg'] = '商品失效'; $val['error'] = 1; $val['checked'] = false; } } $res['status'] = 1; $res['msg'] = '查询成功'; $res['goods_list'] = $goods_list; $vipInfo = $this->getVipInfo(); if (empty($vipInfo)) { $vipInfo = self::$user; $vipInfo['discount'] = 1; } $res['user_info'] = $vipInfo; $this->ajaxBack($res); } /** * 添加到购物车 */ public function addShopping_v1() { $platform_type = self::$merchant['platform_type'] ? self::$merchant['platform_type'] : 1; //商户平台类型 1默认系统 2微礼平台 $goods_id = I('post.goods_id'); //商品id $num = I('post.num'); //数量 $type = I('post.type') == 2 ? 2 : 1;//1添加购物车 2购买 $sku_id = I('post.sku_id'); //规格id $fixed_num = I('post.fixed_num') == 1 ? 1 : 0;//是否属固定数量 0不是 1是(针对扫码购扫称重商品条码) if (empty($goods_id)) { $res['status'] = 0; $res['msg'] = '缺少商品id'; $this->ajaxReturn($res); } if (empty($num)) { $res['status'] = 0; $res['msg'] = '缺少商品数量'; $this->ajaxReturn($res); } if (!verifyWeight($num, 2)) { $res['status'] = 0; $res['msg'] = '商品数量有误'; $this->ajaxReturn($res); } $ShoppingModel = D('RetailShopping'); $merchant_id = self::$merchant_id; $uid = self::$uid; $GoodsModel = new RetailGoodsModel(); $map = array( $GoodsModel::ID => $goods_id, $GoodsModel::MERCHANT_ID => $merchant_id, $GoodsModel::STATUS => 0, $GoodsModel::ONLINE_STATE => 1 ); $fields = array( $GoodsModel::ID, $GoodsModel::ATTRIBUTE_STATE, $GoodsModel::SHOP_MEM_PRICE, $GoodsModel::ONLINE_PRICE, $GoodsModel::SHOP_MEM_STATUS, 'pricing_method', 'store_id', ); if ($platform_type == 2) { $fields[] = 'third_goods_code'; } $goods = $GoodsModel->getFind($map, $fields); if (empty($goods)) { $res['status'] = 0; $res['msg'] = '商品不存在'; $this->ajaxReturn($res); } $store_id = $goods['store_id']; $item = array( $ShoppingModel::GOODS_ID => $goods_id, $ShoppingModel::STORE_ID => $store_id, $ShoppingModel::UID => $uid, $ShoppingModel::MERCHANT_ID => $merchant_id, $ShoppingModel::NUM => $num, $ShoppingModel::ADD_TIME => time(), $ShoppingModel::CHANGE_STATE => $fixed_num ? 0 : 1 ); if (!empty($sku_id)) { $item[$ShoppingModel::SKU_ID] = $sku_id; } if (!verifyWeight($num, $goods['pricing_method'])) { $res['status'] = 0; $res['msg'] = '商品数量有误'; $this->ajaxReturn($res); } if ($goods[$GoodsModel::ATTRIBUTE_STATE] == 1) { //无规格商品数量 if ($platform_type == 2) { //第三方平台 $goods['goods_num'] = 0; $ThirdGoodsClass = new Goods(); $result = $ThirdGoodsClass->goodsNumQuery([ 'merchant_id' => self::$merchant_id, 'type' => 2, 'code_arr' => [$goods['third_goods_code']], 'Customer_Codes' => self::$store['third_code'] ]); if ($result['status'] == 1 && !empty($result['data'])) { $goods['goods_num'] = $result['data'][0]; } } else { $goods['goods_num'] = A('Api/Inventory')->goods_num(1, $store_id, $goods_id); } } $item[$ShoppingModel::TYPE] = 1;// 来源于加入购物车。 /** * 规格商品 */ if ($goods[$GoodsModel::ATTRIBUTE_STATE] == 2) { if (!empty($sku_id)) { $SkuModel = D('RetailSkuGoods'); $map = array( $SkuModel::ID => $sku_id, $SkuModel::STATE => 0, $SkuModel::GOODS_ID => $goods_id ); $sku = $SkuModel->getFind($map); if (empty($sku)) { $res['status'] = 0; $res['msg'] = '该商品设置有误,暂不能购买'; $this->ajaxReturn($res); } if ($platform_type == 2) { //第三方平台 $goods['goods_num'] = 0; $ThirdGoodsClass = new Goods(); $result = $ThirdGoodsClass->goodsNumQuery([ 'merchant_id' => self::$merchant_id, 'type' => 2, 'code_arr' => [$sku['third_goods_code']], 'Customer_Codes' => self::$store['third_code'] ]); if ($result['status'] == 1 && !empty($result['data'])) { $goods['goods_num'] = $result['data'][0]; } } else { $goods['goods_num'] = A('Api/Inventory')->goods_num(1, $store_id, $goods_id, $sku_id); } $goods[$GoodsModel::SHOP_MEM_PRICE] = $sku[$SkuModel::SHOP_MEM_PRICE]; $goods[$GoodsModel::ONLINE_PRICE] = $sku[$SkuModel::ONLINE_PRICE]; $item[$ShoppingModel::SKU_ID] = $sku_id; } else if ($goods[$GoodsModel::PRICING_METHOD] != 2) { $res['status'] = 2; $res['msg'] = '该商品规格有变动,请重试'; $res['attribute_state'] = 2; $this->ajaxReturn($res); } } else if (!empty($sku_id)) { $res['status'] = 2; $res['msg'] = '该商品规格有变动,请重试'; $res['attribute_state'] = 1; $this->ajaxReturn($res); } if (round($goods['goods_num'] - $num) < 0) { $res['status'] = 0; $res['msg'] = '库存不足' . $num; $this->ajaxReturn($res); } if (($goods[$GoodsModel::SHOP_MEM_STATUS] == 1 && (!$goods[$GoodsModel::SHOP_MEM_PRICE] || $goods[$GoodsModel::SHOP_MEM_PRICE] < 0.01)) || !$goods[$GoodsModel::ONLINE_PRICE] || $goods[$GoodsModel::ONLINE_PRICE] < 0.01) { $res['status'] = 0; $res['msg'] = '商品价格设置有误,请联系商家'; $this->ajaxReturn($res); } if ($type == 2) { //立即购买 $item[$ShoppingModel::TYPE] = 2; $id = $ShoppingModel->addOrder($item); } else { //加入购物车 $map = array( $ShoppingModel::GOODS_ID => $goods_id, $ShoppingModel::UID => $uid, $ShoppingModel::STATE => 1, $ShoppingModel::TYPE => 1, $ShoppingModel::CHANGE_STATE => 1 ); if (!empty($sku_id)) { $map[$ShoppingModel::SKU_ID] = $sku_id; } $oldOrder = $ShoppingModel->getFind($map);//该商品是否加过购物车 if (!empty($oldOrder)) { $goods['goods_num'] = round($goods['goods_num'] - $oldOrder[$ShoppingModel::NUM], 3); } if (round($goods['goods_num'] - $num) < 0) { $num = $goods['goods_num']; } if ($num <= 0) { $res['status'] = 0; $res['msg'] = '商品库存不足'; $this->ajaxReturn($res); } if (!empty($oldOrder)) { $success = $ShoppingModel->toSetInc($map, $ShoppingModel::NUM, $num); if ($success) { $id = $oldOrder[$ShoppingModel::ID]; } else { $id = 0; } } else { $id = $ShoppingModel->addOrder($item); } } if ($id) { $res['id'] = $id; $res['status'] = 1; $res['msg'] = '加入成功'; } else { $res['status'] = 0; $res['msg'] = '加入失败'; } $this->ajaxBack($res); } /** * 获取商品规格 */ public function getGoodsSku_v1() { $goods_id = I('post.goods_id'); if (empty($goods_id)) { $result['status'] = 0; $result['msg'] = '缺少参数商品id'; $this->ajaxReturn($result); } $GoodsModel = new RetailGoodsModel(); $map = array( $GoodsModel::MERCHANT_ID => self::$merchant_id, $GoodsModel::ONLINE_STATE => 1, $GoodsModel::STATUS => 0, $GoodsModel::ID => $goods_id ); $goods = $GoodsModel->getFind($map); if (!empty($goods)) { if ($goods[$GoodsModel::ATTRIBUTE_STATE] != 2) { $result['status'] = 2; $result['msg'] = '该商品未启用规格'; return $result; } $data = $this->getGoodsSku($goods_id); $result['goods_img'] = $this->getGoodsImage($goods[$GoodsModel::GOODS_IMG_ID]); $result['goods_name'] = $goods['goods_name']; $result['goods_num'] = A('Api/Inventory')->goods_num(2, $goods['store_id'], $goods_id); $result['data'] = $data; $result['status'] = 1; $result['msg'] = '查询成功'; } else { $result['status'] = 0; $result['msg'] = '商品不存在或已下架'; } $this->ajaxReturn($result); } /** * 修改选择的商品规格 */ public function changeSelectSku_v1() { $platform_type = self::$merchant['platform_type']; //商户平台类型 1默认系统 2微礼平台 $id = I('post.id'); $sku_id = I('post.sku_id'); if (empty($id) || empty($sku_id)) { $result['status'] = 0; $result['msg'] = '缺少参数'; $this->ajaxReturn($result); } $uid = self::$uid; $ShoppingModel = new RetailShoppingModel(); $sMap = array( $ShoppingModel::ID => $id, $ShoppingModel::STORE_ID => self::$store_id, $ShoppingModel::STATE => 1, $ShoppingModel::TYPE => 1, ); $shopping = $ShoppingModel->getFind($sMap); if (empty($shopping)) { $result['status'] = 0; $result['msg'] = '请求购物车信息不存在'; $this->ajaxReturn($result); } $GoodsModel = new RetailGoodsModel(); $map = array( $GoodsModel::ID => $shopping[$ShoppingModel::GOODS_ID], $GoodsModel::STORE_ID => self::$store_id, $GoodsModel::STATUS => 0, $GoodsModel::ONLINE_STATE => 1, ); $goods = $GoodsModel->getFind($map); if (empty($goods)) { $result['status'] = 0; $result['msg'] = '商品不存在或已下架'; $this->ajaxReturn($result); } if ($goods[$GoodsModel::ATTRIBUTE_STATE] == 1) { $result['status'] = 0; $result['msg'] = '商品规格已关闭'; $this->ajaxReturn($result); } $SkuModel = D('RetailSkuGoods'); $skuInfo = $SkuModel->getFind(array($SkuModel::ID => $sku_id, $SkuModel::STATE => 0)); if (empty($skuInfo)) { $result['status'] = 0; $result['msg'] = '规格不存在'; $this->ajaxReturn($result); } $skuInfo['goods_num'] = 0; if ($platform_type == 2) { $LittleClass = new Goods(); $thirdResult = $LittleClass->goodsNumQuery([ 'merchant_id'=>self::$merchant_id, 'type' => 2, 'code_arr' => [$skuInfo['third_goods_code']], 'Customer_Codes' => self::$store['third_code'] ]); if ($thirdResult['status'] == 1 && !empty($thirdResult['data'])) { $skuInfo['goods_num'] = $thirdResult['data'][0]; } } else { $skuInfo['goods_num'] = A('Api/Inventory')->goods_num(1, self::$store_id, $skuInfo[$SkuModel::GOODS_ID], $sku_id); } if ($sku_id == $shopping[$ShoppingModel::SKU_ID]) { $result['status'] = 1; $result['msg'] = '修改成功'; } else { $otherMap = array( $ShoppingModel::SKU_ID => $sku_id, $ShoppingModel::UID => $uid, $ShoppingModel::TYPE => 1, $ShoppingModel::STATE => 1, $ShoppingModel::ID => array('neq', $id) ); $otherShop = $ShoppingModel->getFind($otherMap); if (!empty($otherShop)) { //购物车里有相同规格的商品 if (round($shopping[$ShoppingModel::NUM] + $otherShop[$ShoppingModel::NUM], 3) <= round($skuInfo['goods_num'], 3)) { $num = round($shopping[$ShoppingModel::NUM] + $otherShop[$ShoppingModel::NUM]); } else { $num = round($skuInfo['goods_num'], 3); } } else { if (round($skuInfo['goods_num'], 3) >= $shopping[$ShoppingModel::NUM]) { $num = $shopping[$ShoppingModel::NUM]; } else { $num = round($skuInfo['goods_num'], 3); } } if ($num > 0) { $update = $ShoppingModel->updateOrder($sMap, array($ShoppingModel::SKU_ID => $sku_id, $ShoppingModel::NUM => $num)); } else { $update = false; } if ($update) { $ShoppingModel->deleteOrder($otherMap);//删除旧数据 $result['num'] = $num; $result['status'] = 2; $result['msg'] = '修改成功'; } else { $result['status'] = 0; $result['msg'] = '修改失败 '; } } $this->ajaxReturn($result); } /** * 修改购物车数量 */ public function changeCartNum_v1() { $platform_type = self::$merchant['platform_type']; //商户平台类型 1默认系统 2微礼平台 $id = I('post.id'); $num = I('post.num'); if (empty($id) || empty($num) || $num < 0) { $result['status'] = 0; $result['msg'] = '参数有误'; $this->ajaxReturn($result); } $uid = self::$uid; $merchant_id = self::$merchant_id; $ShoppingModel = D('RetailShopping'); $sMap = array( $ShoppingModel::UID => $uid, $ShoppingModel::MERCHANT_ID => $merchant_id, $ShoppingModel::ID => $id, $ShoppingModel::STATE => 1 ); $order = $ShoppingModel->getFind($sMap); if (empty($order)) { $result['status'] = 0; $result['msg'] = '信息有误'; $this->ajaxReturn($result); } $GoodsModel = D('RetailGoods'); $map = array( $GoodsModel::ID => $order[$ShoppingModel::GOODS_ID], $GoodsModel::STORE_ID => self::$store_id, $GoodsModel::STATUS => 0, $GoodsModel::ONLINE_STATE => 1 ); $goods = $GoodsModel->getFind($map); if (empty($goods)) { $result['status'] = 0; $result['msg'] = '商品已下架'; $this->ajaxReturn($result); } if (!empty($order[$ShoppingModel::SKU_ID])) { if ($goods[$GoodsModel::ATTRIBUTE_STATE] == 1) { $result['status'] = 0; $result['msg'] = '商品已失效'; $this->ajaxReturn($result); } $SkuModel = D('RetailSkuGoods'); $map = array( $SkuModel::GOODS_ID => $order[$ShoppingModel::GOODS_ID], $SkuModel::ID => $order[$ShoppingModel::SKU_ID], $SkuModel::STATE => 0 ); $sku = $SkuModel->getFind($map); if (empty($sku)) { $result['status'] = 0; $result['msg'] = '商品规格已失效'; $this->ajaxReturn($result); } if ($platform_type == 2) { $third_code = $sku['third_goods_code']; } else { $goods['goods_num'] = A('Api/Inventory')->goods_num(1, self::$store_id, $order[$ShoppingModel::GOODS_ID], $order[$ShoppingModel::SKU_ID]); } } else { if ($platform_type == 2) { $third_code = $goods['third_goods_code']; } else { $goods['goods_num'] = A('Api/Inventory')->goods_num(1, self::$store_id, $order[$ShoppingModel::GOODS_ID]); } } if ($platform_type == 2) { //第三方平台 $goods['goods_num'] = 0; $ThirdGoodsClass = new Goods(); $thirdResult = $ThirdGoodsClass->goodsNumQuery([ 'merchant_id' => self::$merchant_id, 'type' => 2, 'code_arr' => [$third_code], 'Customer_Codes' => self::$store['third_code'] ]); if ($thirdResult['status'] == 1 && !empty($thirdResult['data'])) { $goods['goods_num'] = $thirdResult['data'][0]; } } if (round($goods['goods_num'] - $num, 3) < 0) { $num = floor($goods['goods_num']); } $update = $ShoppingModel->updateOrder($sMap, array($ShoppingModel::NUM => $num)); if ($update !== false) { $result['num'] = $num; $result['status'] = 1; $result['msg'] = '修改成功'; } else { $result['status'] = 0; $result['msg'] = '修改失败'; } $this->ajaxReturn($result); } /** * 删除购物车商品 */ public function deleteShopping_v1() { $id = I('post.id'); if (empty($id) || !is_string($id)) { $result['status'] = 0; $result['msg'] = '参数值有误'; $this->ajaxReturn($result); } $id = htmlspecialchars_decode($id); $id = json_decode($id, true); if (empty($id)) { $result['status'] = 0; $result['msg'] = '参数值有误'; $this->ajaxReturn($result); } foreach ($id as $value) { if (!is_numeric($value)) { $result['status'] = 0; $result['msg'] = '参数值有误'; $this->ajaxReturn($result); } } $ShoppingModel = new RetailShoppingModel(); $map = array( $ShoppingModel::MERCHANT_ID => self::$merchant_id, $ShoppingModel::UID => self::$uid, $ShoppingModel::ID => array('in', $id) ); $delete = $ShoppingModel->updateOrder($map, array($ShoppingModel::STATE => 0)); if ($delete) { $res['status'] = 1; $res['msg'] = '删除成功'; } else { $res['status'] = 0; $res['msg'] = '删除失败'; } $this->ajaxReturn($res); } /** * 扫码购 */ public function scavenging_v1() { $code = I('post.goods_code'); if (empty($code)) { $res['status'] = 0; $res['msg'] = '缺少参数'; $this->ajaxReturn($res); } $store_id = self::$store_id; $merchant_id = self::$merchant_id; $num = 1; $GoodsModel = new RetailGoodsModel(); $map = array( 'store_id' => $store_id, 'merchant_id' => $merchant_id, 'status' => 0, 'online_state' => 1, 'advance_sale_status' => 0, ); $canChangeCarNum = 1;//是否可以修改购物车数量 1可以 0不可以 if (preg_match("/^\d{18}$/", $code)) { $goods_number = substr($code, 2, 5); $num = substr($code, 12, 5); $num = round($num / 1000, 3); $map[$GoodsModel::GOODS_NUMBER] = $goods_number; $canChangeCarNum = 0; } else { $map[$GoodsModel::GOODS_CODE] = $code; } $SkuGoodsModel = D('RetailSkuGoods'); $goodsFields = array( $GoodsModel::ID, $GoodsModel::ID . ' as goods_id', $GoodsModel::GOODS_NAME, $GoodsModel::SELL_NUM, $GoodsModel::FICTITIOUS_NUM, $GoodsModel::COMPANY, $GoodsModel::SPECIFICATIONS, $GoodsModel::SHOP_MEM_STATUS, $GoodsModel::SHOP_MEM_PRICE, $GoodsModel::PLUS_MEM_STATUS, $GoodsModel::PLUS_PRICE, $GoodsModel::ATTRIBUTE_STATE, $GoodsModel::GOODS_IMG_ID, $GoodsModel::RETAIL_PRICE, $GoodsModel::ONLINE_PRICE, ); $goods = $GoodsModel->getFind($map, $goodsFields); $promotion_status = 0; $promotion_price = 0; if ($goods) { $StoreXcxConfigModel = D('RetailStoreXcxConfig'); $promotion_status = $StoreXcxConfigModel->getFindField(array($StoreXcxConfigModel::STORE_ID => $store_id), $StoreXcxConfigModel::PROMOTION_STATUS); //判断是否开启促销 if ($promotion_status == 1) { $HostModel = D('RetailHost'); $time = time(); $hMap = array( $HostModel::GOODS_ID => $goods[$GoodsModel::ID], $HostModel::START_TIME => array('elt', $time), $HostModel::END_TIME => array('gt', $time), $HostModel::STATUS => 1, $HostModel::TYPE => 2, ); $promotion_price = $HostModel->getOrderFindField($hMap, $HostModel::ACT_PRICE, $HostModel::ACT_PRICE . ' asc'); } //商品条码 if (!$goods[$GoodsModel::ONLINE_PRICE] || floatval($goods[$GoodsModel::ONLINE_PRICE]) < 0.01) { $goods[$GoodsModel::ONLINE_PRICE] = $goods[$GoodsModel::RETAIL_PRICE]; } if ($goods[$GoodsModel::SHOP_MEM_STATUS] == 1 && !$goods[$GoodsModel::SHOP_MEM_PRICE] || $goods[$GoodsModel::SHOP_MEM_STATUS] == 2) { $goods[$GoodsModel::SHOP_MEM_PRICE] = 0; $goods[$GoodsModel::SHOP_MEM_STATUS] = 2; } if ($goods[$GoodsModel::ATTRIBUTE_STATE] == 2) { $goodsSku = $SkuGoodsModel->getFind(array($SkuGoodsModel::STATE => 0, $SkuGoodsModel::GOODS_ID => $goods[$GoodsModel::ID])); if (empty($goodsSku)) { $goods[$GoodsModel::ATTRIBUTE_STATE] = 1; } } $goods['goods_num'] = A('Api/Inventory')->goods_num(2, $store_id, $goods[$GoodsModel::ID]); $redis_key = 'retail_goods_' . $goods[$GoodsModel::ID] . '_*'; $wait_pay_num = $this->getWaitNum($redis_key); $value['goods_num'] = round($goods['goods_num'] - $wait_pay_num, 3); $goods['goods_img'] = $this->getGoodsImage($goods[$GoodsModel::GOODS_IMG_ID]); $res['status'] = 1; $res['msg'] = '查找成功'; $res['goods'] = $goods; } else { //规格条码 $map = array( $SkuGoodsModel::STATE => 0, $SkuGoodsModel::STORE_ID => $store_id, $SkuGoodsModel::SKU_CODE => $code ); $skuGoods = $SkuGoodsModel->getFind($map); if (!empty($skuGoods)) { $map = array( $GoodsModel::ID => $skuGoods[$SkuGoodsModel::GOODS_ID], $GoodsModel::STATUS => 0, $GoodsModel::STORE_ID => $store_id, $GoodsModel::MERCHANT_ID => $merchant_id, $GoodsModel::ONLINE_STATE => 1, ); $goods = $GoodsModel->getFind($map); if (!empty($goods)) { if (!$goods[$GoodsModel::ONLINE_PRICE] || floatval($goods[$GoodsModel::ONLINE_PRICE]) < 0.01) { $goods[$GoodsModel::ONLINE_PRICE] = $goods[$GoodsModel::RETAIL_PRICE]; } $goods['goods_img'] = $this->getGoodsImage($goods[$GoodsModel::GOODS_IMG_ID]); $goods['goods_id'] = $goods[$GoodsModel::ID]; $goods['goods_num'] = A('Api/Inventory')->goods_num(2, $store_id, $goods[$GoodsModel::ID]); $redis_key = 'retail_goods_' . $goods[$GoodsModel::ID] . '_*'; $wait_pay_num = $this->getWaitNum($redis_key); $value['goods_num'] = round($goods['goods_num'] - $wait_pay_num, 3); $res['goods'] = $goods; $res['skuSelect'] = explode(',', $skuGoods['sku_id_list']); $res['status'] = 1; $res['msg'] = '查找成功'; } else { $res['status'] = 0; $res['msg'] = '暂无该商品'; } } else { $res['status'] = 0; $res['msg'] = '暂无该商品'; } } $res['canChangeCarNum'] = $canChangeCarNum; $res['num'] = $num; $res['act_price'] = $promotion_price; $res['promotion_status'] = $promotion_status; $this->ajaxReturn($res); } /** * 套餐加入购物车 */ public function addMealShopping() { $groupId = I('post.groupId'); $merchant_id = self::$merchant_id; $store_id = self::$store_id; $uid = self::$uid; $time = time(); $MealPlusGoodsModel = D('RetailMealPlusGoods'); $where[$MealPlusGoodsModel::GROUP_ID] = $groupId; $where[$MealPlusGoodsModel::STATUS] = 1; $groupGoodsIds = $MealPlusGoodsModel->getFindField($where, $MealPlusGoodsModel::GOODS_ID, true); $groupGoodsIds = $groupGoodsIds ? $groupGoodsIds : array(0); $GoodsModel = D('RetailGoods'); $map['g.' . $GoodsModel::ID] = array('in', $groupGoodsIds); $map['g.' . $GoodsModel::ONLINE_STATE] = 1; $map['g.' . $GoodsModel::STATUS] = 0; $map['s.goods_num'] = array('gt', 0); $field = "g.id,g.attribute_state"; $goodsInfo = $GoodsModel->getGoodsList($map, $field); if (count($goodsInfo) != count($groupGoodsIds)) { $res['status'] = 0; $res['msg'] = '该套餐已下架,请选择其他商品'; $this->ajaxReturn($res); exit; } //判断条件 foreach ($goodsInfo as $key => &$val) { if ($val[$GoodsModel::ATTRIBUTE_STATE] == 2) { $SkuGoodsModel = D('RetailSkuGoods'); $wap['k.' . $SkuGoodsModel::GOODS_ID] = $val[$GoodsModel::ID]; $wap['k.' . $SkuGoodsModel::STATUS] = 1; $wap['k.' . $SkuGoodsModel::STATE] = 0; $wap['s.goods_num'] = array('gt', 0); $field = 'k.' . $SkuGoodsModel::ID; $order = 'k.' . $SkuGoodsModel::ID . ' asc'; $skuId = $SkuGoodsModel->getSkuGoodsFields($wap, $field, $order); if (!$skuId) { $res['status'] = 0; $res['msg'] = '该套餐已下架,请选择其他商品'; $this->ajaxReturn($res); exit; } $val['sku_id'] = $skuId; } } $ShoppingModel = D('RetailShopping'); $tap[$ShoppingModel::UID] = $uid; $tap[$ShoppingModel::MERCHANT_ID] = $merchant_id; $tap[$ShoppingModel::STORE_ID] = $store_id; $tap[$ShoppingModel::TYPE] = 1; $tap[$ShoppingModel::STATE] = 1; $shopGoodsIds = $ShoppingModel->getFindField($tap, $ShoppingModel::GOODS_ID, true); //当前购物车存在的商品 $content[$ShoppingModel::UID] = $uid; $content[$ShoppingModel::NUM] = 1; $content[$ShoppingModel::MERCHANT_ID] = $merchant_id; $content[$ShoppingModel::STORE_ID] = $store_id; $content[$ShoppingModel::ADD_TIME] = $time; $content[$ShoppingModel::TYPE] = 1; $content[$ShoppingModel::CHANGE_STATE] = 1; foreach ($goodsInfo as $key => &$val) { if ($shopGoodsIds) { if (in_array($val[$GoodsModel::ID], $shopGoodsIds)) { continue; } } $content[$ShoppingModel::GOODS_ID] = $val[$GoodsModel::ID]; $content[$ShoppingModel::NUM] = 1; if ($val[$GoodsModel::ATTRIBUTE_STATE] == 2) { $content[$ShoppingModel::SKU_ID] = $val['sku_id']; } $ShoppingModel->addOrder($content); } $res['status'] = 1; $res['msg'] = '添加成功'; $this->ajaxReturn($res); } /** * 获取购物车列表 */ public function getShoppingGoods_v2() { $uid = self::$uid; $store_id = self::$store_id; $XcxConfigModel = D('RetailStoreXcxConfig'); $promotion_status = $XcxConfigModel->getFindField(array($XcxConfigModel::STORE_ID => $store_id), $XcxConfigModel::PROMOTION_STATUS); $ShoppingModel = D('RetailShopping'); $GoodsModel = D('RetailGoods'); $SkuGoodsModel = D('RetailSkuGoods'); $SkuListModel = D('RetailSkuList'); $skuFields = array( $SkuGoodsModel::ID, $SkuGoodsModel::RETAIL_PRICE, $SkuGoodsModel::ONLINE_PRICE, $SkuGoodsModel::SHOP_MEM_PRICE, $SkuGoodsModel::SKU_ID_LIST, $SkuGoodsModel::STATE, $SkuGoodsModel::SKU_NUM, $SkuGoodsModel::GOODS_IMG_ID, $SkuGoodsModel::PLUS_PRICE, ); $goods_list = $ShoppingModel->getShoppingGoods_v1($uid, $store_id, '', '', '1'); foreach ($goods_list as &$val) { // 普通购买 if (!$val[$GoodsModel::ONLINE_PRICE] || floatval($val[$GoodsModel::ONLINE_PRICE]) < 0.01) { $val[$GoodsModel::ONLINE_PRICE] = $val[$GoodsModel::RETAIL_PRICE]; } if (!$promotion_status) { $val['promotion_status'] = 0; } if ($val['promotion_status'] == 1) { $val[$GoodsModel::VIP_ONLINE_STATE] = 0; // 促销商品 不打折 } $val['goods_img'] = $this->getGoodsImage($val[$GoodsModel::GOODS_IMG_ID]); if ($val[$GoodsModel::SHOP_MEM_STATUS] == 1 && (!$val[$GoodsModel::SHOP_MEM_PRICE] || $val[$GoodsModel::SHOP_MEM_PRICE] < 0.01) && !$val[$ShoppingModel::SKU_ID]) { $val[$GoodsModel::SHOP_MEM_STATUS] = 2; } if ($val[$GoodsModel::PLUS_MEM_STATUS] == 1 && (!$val[$GoodsModel::PLUS_PRICE] || $val[$GoodsModel::PLUS_PRICE] < 0.01) && !$val[$ShoppingModel::SKU_ID]) { $val[$GoodsModel::PLUS_MEM_STATUS] = 2; } $val['checked'] = true; $val['error'] = 0; if (!empty($val[$ShoppingModel::SKU_ID])) { $val[$ShoppingModel::NUM] = round($val[$ShoppingModel::NUM], 3); if ($val[$GoodsModel::ATTRIBUTE_STATE] == 1) { $val[$GoodsModel::GOODS_NUM] = 0; $val['msg'] = '商品失效'; $val['error'] = 1; $val['checked'] = false; } else { $sku = $SkuGoodsModel->getFind(array($SkuGoodsModel::ID => $val[$ShoppingModel::SKU_ID]), $skuFields); if (empty($sku) || $sku[$SkuGoodsModel::STATE] == 1) { $val[$GoodsModel::GOODS_NUM] = 0; $val[$ShoppingModel::NUM] = 0; $val['msg'] = '商品失效'; $val['error'] = 1; $val['checked'] = false; } $sku_num = A('Api/Inventory')->goods_num(1, self::$store_id, $val[$ShoppingModel::GOODS_ID], $val[$ShoppingModel::SKU_ID]); $sku['goods_num'] = $sku_num; $name = $SkuListModel->getFindField(array($SkuListModel::ID => array('in', $sku[$SkuGoodsModel::SKU_ID_LIST])), $SkuListModel::NAME, true); $sku['name'] = implode(',', $name); $sku['goods_img'] = $this->getGoodsImage($sku[$SkuGoodsModel::GOODS_IMG_ID]); $val['goods_img'] = $sku['goods_img']; $val[$GoodsModel::ONLINE_PRICE] = $sku[$SkuGoodsModel::ONLINE_PRICE]; if ($sku[$SkuGoodsModel::STATE] == 0) { $val['goods_num'] = $sku_num; if (!$val['promotion_status']) { if (!$sku[$SkuGoodsModel::ONLINE_PRICE] || floatval($sku[$SkuGoodsModel::ONLINE_PRICE]) < 0.01) { $sku[$SkuGoodsModel::ONLINE_PRICE] = $sku[$SkuGoodsModel::RETAIL_PRICE]; } $val[$GoodsModel::ONLINE_PRICE] = $sku[$SkuGoodsModel::ONLINE_PRICE]; } } else { $val['goods_num'] = A('Api/Inventory')->goods_num(2, $store_id, $val[$ShoppingModel::GOODS_ID]); } if (!empty($sku[$SkuGoodsModel::SHOP_MEM_PRICE]) && $sku[$SkuGoodsModel::SHOP_MEM_PRICE] > 0) { $val[$GoodsModel::SHOP_MEM_PRICE] = $sku[$SkuGoodsModel::SHOP_MEM_PRICE]; } if (!empty($sku[$SkuGoodsModel::PLUS_PRICE]) && $sku[$SkuGoodsModel::PLUS_PRICE] > 0) { $val[$GoodsModel::PLUS_PRICE] = $sku[$SkuGoodsModel::PLUS_PRICE]; } $val['sku'] = $sku; } } else { if (($val[$GoodsModel::SHOP_MEM_STATUS] == 1 && (!$val[$GoodsModel::SHOP_MEM_PRICE] || $val[$GoodsModel::SHOP_MEM_PRICE] < 0.01)) || !$val[$GoodsModel::ONLINE_PRICE] || $val[$GoodsModel::ONLINE_PRICE] < 0.01) { $val[$GoodsModel::GOODS_NUM] = 0; $val[$ShoppingModel::NUM] = 0; $val['msg'] = '商品失效'; $val['error'] = 1; $val['checked'] = false; } else { $val['goods_num'] = A('Api/Inventory')->goods_num(1, $store_id, $val[$ShoppingModel::GOODS_ID]); $val[$ShoppingModel::NUM] = round($val[$ShoppingModel::NUM], 3); } } $redis_key = 'retail_goods_' . $val[$ShoppingModel::GOODS_ID] . '_*'; $wait_pay_num = $this->getWaitNum($redis_key); $val['wait_pay_num'] = $wait_pay_num; $val['goods_num'] = round($val['goods_num'] - $wait_pay_num, 3); if ($val['goods_num'] < $val[$ShoppingModel::NUM]) { $val['msg'] = '库存不足'; $val['error'] = 1; $val['checked'] = false; } $val['maxBuyNum'] = $val['goods_num']; if ($val[$GoodsModel::ATTRIBUTE_STATE] == 2 && empty($val[$ShoppingModel::SKU_ID]) || $val[$GoodsModel::ATTRIBUTE_STATE] == 1 && !empty($val[$ShoppingModel::SKU_ID])) { $val['msg'] = '商品失效'; $val['error'] = 1; $val['checked'] = false; } } $res['status'] = 1; $res['msg'] = '查询成功'; $res['goods_list'] = $goods_list; $vipInfo = $this->getVipInfo(); if (empty($vipInfo)) { $vipInfo = self::$user; $vipInfo['discount'] = 1; } $res['user_info'] = $vipInfo; $this->ajaxBack($res); } /** * 获取用户购物车商品数量 */ public function getShopCarGoodsCount() { $uid = self::$uid; $store_id = self::$store_id; $ShoppingModel = D('RetailShopping'); $GoodsModel = D('RetailGoods'); $map = array( 's.' . $ShoppingModel::UID => $uid, 's.' . $ShoppingModel::TYPE => 1, 's.' . $ShoppingModel::STORE_ID => $store_id, 's.' . $ShoppingModel::STATE => 1, 'g.' . $GoodsModel::STATUS => 0, 'g.' . $GoodsModel::ONLINE_STATE => 1, ); $count = M('retail_shopping as s') ->join('ls_retail_goods as g on g.id=s.goods_id') ->where($map) ->count(); $res['status'] = 1; $res['msg'] = '获取成功'; $res['count'] = intval($count); $this->ajaxReturn($res); } /** * 获取购物车列表 快递发货版 */ public function getShoppingGoods_v3() { $platform_type = self::$merchant['platform_type'] ? self::$merchant['platform_type'] : 1; $page = I('post.page') ? I('post.page') : 1; $limit = I('post.limit') ? I('post.limit') : 10; $uid = self::$uid; $store_id = self::$store_id; $XcxConfigModel = D('RetailStoreXcxConfig'); $promotion_status = $XcxConfigModel->getFindField(array($XcxConfigModel::STORE_ID => $store_id), $XcxConfigModel::PROMOTION_STATUS); $ShoppingModel = D('RetailShopping'); $GoodsModel = D('RetailGoods'); $SkuGoodsModel = D('RetailSkuGoods'); $SkuListModel = D('RetailSkuList'); //免配送费门槛金额 $delivery_cost = self::$store['delivery_cost']; $delivery_status = self::$store['delivery_status']; $skuFields = array( $SkuGoodsModel::ID, $SkuGoodsModel::RETAIL_PRICE, $SkuGoodsModel::ONLINE_PRICE, $SkuGoodsModel::SHOP_MEM_PRICE, $SkuGoodsModel::SKU_ID_LIST, $SkuGoodsModel::STATE, $SkuGoodsModel::SKU_NUM, $SkuGoodsModel::GOODS_IMG_ID, $SkuGoodsModel::PLUS_PRICE, ); if ($platform_type == 2) { $skuFields[] = 'third_goods_code'; } $goods_list = $ShoppingModel->getShoppingGoods_v2($uid, $store_id, '', $page, $limit); if ($platform_type == 2) { //第三平台 $code_arr = []; } foreach ($goods_list as &$val) { //处理配送方式 $val['delivery_set'] = $this->handleDelivery($val['delivery_type']); // 普通购买 if (!$val[$GoodsModel::ONLINE_PRICE] || floatval($val[$GoodsModel::ONLINE_PRICE]) < 0.01) { $val[$GoodsModel::ONLINE_PRICE] = $val[$GoodsModel::RETAIL_PRICE]; } if (!$promotion_status) { $val['promotion_status'] = 0; } if ($val['promotion_status'] == 1) { $val[$GoodsModel::VIP_ONLINE_STATE] = 0; // 促销商品 不打折 } $val['goods_img'] = $this->getGoodsImage($val[$GoodsModel::GOODS_IMG_ID]); if ($val[$GoodsModel::SHOP_MEM_STATUS] == 1 && (!$val[$GoodsModel::SHOP_MEM_PRICE] || $val[$GoodsModel::SHOP_MEM_PRICE] < 0.01) && !$val[$ShoppingModel::SKU_ID]) { $val[$GoodsModel::SHOP_MEM_STATUS] = 2; } if ($val[$GoodsModel::PLUS_MEM_STATUS] == 1 && (!$val[$GoodsModel::PLUS_PRICE] || $val[$GoodsModel::PLUS_PRICE] < 0.01) && !$val[$ShoppingModel::SKU_ID]) { $val[$GoodsModel::PLUS_MEM_STATUS] = 2; } $val['checked'] = false; $val['error'] = 0; if (!empty($val[$ShoppingModel::SKU_ID])) { $val[$ShoppingModel::NUM] = round($val[$ShoppingModel::NUM], 3); if ($val[$GoodsModel::ATTRIBUTE_STATE] == 1) { $val[$GoodsModel::GOODS_NUM] = 0; $val['msg'] = '商品失效'; $val['error'] = 1; } else { $sku = $SkuGoodsModel->getFind(array($SkuGoodsModel::ID => $val[$ShoppingModel::SKU_ID]), $skuFields); if (empty($sku) || $sku[$SkuGoodsModel::STATE] == 1) { $val[$GoodsModel::GOODS_NUM] = 0; $val[$ShoppingModel::NUM] = 0; $val['msg'] = '商品失效'; $val['error'] = 1; } if ($platform_type == 2) { //第三方平台 $sku_num = 0; $code_arr[$val['id']] = $sku['third_goods_code']; } else { $sku_num = A('Api/Inventory')->goods_num(1, self::$store_id, $val[$ShoppingModel::GOODS_ID], $val[$ShoppingModel::SKU_ID]); } $sku['goods_num'] = $sku_num; $name = $SkuListModel->getFindField(array($SkuListModel::ID => array('in', $sku[$SkuGoodsModel::SKU_ID_LIST])), $SkuListModel::NAME, true); $sku['name'] = implode(',', $name); $sku['goods_img'] = $this->getGoodsImage($sku[$SkuGoodsModel::GOODS_IMG_ID]); $val['goods_img'] = $sku['goods_img']; $val[$GoodsModel::ONLINE_PRICE] = $sku[$SkuGoodsModel::ONLINE_PRICE]; if ($sku[$SkuGoodsModel::STATE] == 0) { $val['goods_num'] = $sku_num; if (!$val['promotion_status']) { if (!$sku[$SkuGoodsModel::ONLINE_PRICE] || floatval($sku[$SkuGoodsModel::ONLINE_PRICE]) < 0.01) { $sku[$SkuGoodsModel::ONLINE_PRICE] = $sku[$SkuGoodsModel::RETAIL_PRICE]; } $val[$GoodsModel::ONLINE_PRICE] = $sku[$SkuGoodsModel::ONLINE_PRICE]; } } if (!empty($sku[$SkuGoodsModel::SHOP_MEM_PRICE]) && $sku[$SkuGoodsModel::SHOP_MEM_PRICE] > 0) { $val[$GoodsModel::SHOP_MEM_PRICE] = $sku[$SkuGoodsModel::SHOP_MEM_PRICE]; } if (!empty($sku[$SkuGoodsModel::PLUS_PRICE]) && $sku[$SkuGoodsModel::PLUS_PRICE] > 0) { $val[$GoodsModel::PLUS_PRICE] = $sku[$SkuGoodsModel::PLUS_PRICE]; } $val['sku'] = $sku; } } else { if (($val[$GoodsModel::SHOP_MEM_STATUS] == 1 && (!$val[$GoodsModel::SHOP_MEM_PRICE] || $val[$GoodsModel::SHOP_MEM_PRICE] < 0.01)) || !$val[$GoodsModel::ONLINE_PRICE] || $val[$GoodsModel::ONLINE_PRICE] < 0.01) { $val[$GoodsModel::GOODS_NUM] = 0; $val[$ShoppingModel::NUM] = 0; $val['msg'] = '商品失效'; $val['error'] = 1; } else { if ($platform_type == 2) { $code_arr[$val['id']] = $val['third_goods_code']; $val['goods_num'] = 0; $val['wait_pay_num'] = 0; $val['maxBuyNum'] = 0; } else { $val['goods_num'] = A('Api/Inventory')->goods_num(1, $store_id, $val[$ShoppingModel::GOODS_ID]); } $val[$ShoppingModel::NUM] = round($val[$ShoppingModel::NUM], 3); } } if ($platform_type == 1) { $redis_key = 'retail_goods_' . $val[$ShoppingModel::GOODS_ID] . '_*'; $wait_pay_num = $this->getWaitNum($redis_key); $val['wait_pay_num'] = $wait_pay_num; $val['goods_num'] = round($val['goods_num'] - $wait_pay_num, 3); if ($val['goods_num'] < $val[$ShoppingModel::NUM]) { $val['msg'] = '库存不足'; $val['error'] = 1; } $val['maxBuyNum'] = $val['goods_num']; } if ($val[$GoodsModel::ATTRIBUTE_STATE] == 2 && empty($val[$ShoppingModel::SKU_ID]) || $val[$GoodsModel::ATTRIBUTE_STATE] == 1 && !empty($val[$ShoppingModel::SKU_ID])) { $val['msg'] = '商品失效'; $val['error'] = 1; } } if ($platform_type == 2 && !empty($code_arr)) { //第三方平台 $ThirdGoodsClass = new Goods(); $thirdResult = $ThirdGoodsClass->goodsNumQuery([ 'merchant_id' => self::$merchant_id, 'type' => 2, 'code_arr' => $code_arr, 'Customer_Codes' => self::$store['third_code'] ]); if ($thirdResult['status'] == 1 && !empty($thirdResult['data'])) { $goods_stock = $thirdResult['data']; foreach ($goods_list as &$val) { if (!empty($goods_stock[$val['id']])) { if (!empty($val[$ShoppingModel::SKU_ID])) { $val['goods_num'] = $goods_stock[$val['id']]; $val['sku']['goods_num'] = $goods_stock[$val['id']]; } else { $val['goods_num'] = $goods_stock[$val['id']]; } if ($val['goods_num'] < $val[$ShoppingModel::NUM]) { $val['msg'] = '库存不足'; $val['error'] = 1; } } else { $val['msg'] = '库存不足'; $val['error'] = 1; } } } else { $this->ajaxReturn([ 'status' => 0, 'msg' => $thirdResult['message'] ]); } } $res['status'] = 1; $res['msg'] = '查询成功'; $res['data'] = $goods_list; $res['vip'] = $this->getVipInfo(); $res['delivery_cost'] = $delivery_cost; $res['delivery_status'] = $delivery_status; $this->ajaxReturn($res); } }