|
@@ -5,7 +5,7 @@
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
-
|
|
|
|
|
|
+
|
|
*/
|
|
*/
|
|
|
|
|
|
//use Shopnc\Tpl;
|
|
//use Shopnc\Tpl;
|
|
@@ -14,32 +14,33 @@ defined('InShopNC') or exit('Access Invalid!');
|
|
|
|
|
|
class member_cartControl extends mobileMemberControl
|
|
class member_cartControl extends mobileMemberControl
|
|
{
|
|
{
|
|
- public function __construct() {
|
|
|
|
- parent::__construct();
|
|
|
|
- }
|
|
|
|
|
|
+ public function __construct()
|
|
|
|
+ {
|
|
|
|
+ parent::__construct();
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 购物车列表
|
|
* 购物车列表
|
|
*/
|
|
*/
|
|
- public function cart_listOp() {
|
|
|
|
|
|
+ public function cart_listOp()
|
|
|
|
+ {
|
|
$model_cart = Model('cart');
|
|
$model_cart = Model('cart');
|
|
$model_goods = Model('goods');
|
|
$model_goods = Model('goods');
|
|
|
|
|
|
$condition = array('buyer_id' => $this->member_info['member_id']);
|
|
$condition = array('buyer_id' => $this->member_info['member_id']);
|
|
- $cart_list = $model_cart->listCart('db', $condition);
|
|
|
|
|
|
+ $cart_list = $model_cart->listCart('db', $condition);
|
|
$sum = 0;
|
|
$sum = 0;
|
|
- foreach ($cart_list as $key => $value)
|
|
|
|
- {
|
|
|
|
|
|
+ foreach ($cart_list as $key => $value) {
|
|
$goods_id = $value['goods_id'];
|
|
$goods_id = $value['goods_id'];
|
|
$goods_promotion = $model_goods->getGoodsInfoAndPromotionById($goods_id);
|
|
$goods_promotion = $model_goods->getGoodsInfoAndPromotionById($goods_id);
|
|
$goods_storage = $model_goods->getGoodsStorageById($goods_id);
|
|
$goods_storage = $model_goods->getGoodsStorageById($goods_id);
|
|
$promotion_type = '';
|
|
$promotion_type = '';
|
|
$promotion_price = '0.00';
|
|
$promotion_price = '0.00';
|
|
- if(!empty( $goods_promotion['groupbuy_info'])){
|
|
|
|
|
|
+ if (!empty($goods_promotion['groupbuy_info'])) {
|
|
$promotion_type = '抢购';
|
|
$promotion_type = '抢购';
|
|
$promotion_price = $goods_promotion['groupbuy_info']['groupbuy_price'];
|
|
$promotion_price = $goods_promotion['groupbuy_info']['groupbuy_price'];
|
|
}
|
|
}
|
|
- if(!empty( $goods_promotion['xianshi_info'])){
|
|
|
|
|
|
+ if (!empty($goods_promotion['xianshi_info'])) {
|
|
$promotion_type = '限时折扣';
|
|
$promotion_type = '限时折扣';
|
|
$promotion_price = $goods_promotion['xianshi_info']['xianshi_price'];
|
|
$promotion_price = $goods_promotion['xianshi_info']['xianshi_price'];
|
|
}
|
|
}
|
|
@@ -69,45 +70,45 @@ class member_cartControl extends mobileMemberControl
|
|
{
|
|
{
|
|
$goods_id = intval($_POST['goods_id']);
|
|
$goods_id = intval($_POST['goods_id']);
|
|
$quantity = intval($_POST['quantity']);
|
|
$quantity = intval($_POST['quantity']);
|
|
- if($goods_id <= 0 || $quantity <= 0) {
|
|
|
|
|
|
+ if ($goods_id <= 0 || $quantity <= 0) {
|
|
return joutput_error(errcode::ErrCart, '参数错误');
|
|
return joutput_error(errcode::ErrCart, '参数错误');
|
|
}
|
|
}
|
|
|
|
|
|
$model_goods = Model('goods');
|
|
$model_goods = Model('goods');
|
|
- $model_cart = Model('cart');
|
|
|
|
|
|
+ $model_cart = Model('cart');
|
|
$logic_buy_1 = Logic('buy_1');
|
|
$logic_buy_1 = Logic('buy_1');
|
|
|
|
|
|
$goods_info = $model_goods->getGoodsOnlineInfoAndPromotionById($goods_id);
|
|
$goods_info = $model_goods->getGoodsOnlineInfoAndPromotionById($goods_id);
|
|
|
|
|
|
//验证是否可以购买
|
|
//验证是否可以购买
|
|
- if(empty($goods_info)) {
|
|
|
|
|
|
+ if (empty($goods_info)) {
|
|
return joutput_error(errcode::ErrCart, '商品已下架或不存在');
|
|
return joutput_error(errcode::ErrCart, '商品已下架或不存在');
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- //抢购
|
|
|
|
- $logic_buy_1->getGroupbuyInfo($goods_info);
|
|
|
|
-
|
|
|
|
- //限时折扣
|
|
|
|
- $logic_buy_1->getXianshiInfo($goods_info,$quantity);
|
|
|
|
|
|
+ //抢购
|
|
|
|
+ $logic_buy_1->getGroupbuyInfo($goods_info);
|
|
|
|
+
|
|
|
|
+ //限时折扣
|
|
|
|
+ $logic_buy_1->getXianshiInfo($goods_info, $quantity);
|
|
|
|
|
|
if ($goods_info['store_id'] == $this->member_info['store_id']) {
|
|
if ($goods_info['store_id'] == $this->member_info['store_id']) {
|
|
return joutput_error(errcode::ErrCart, '不能购买自己发布的商品');
|
|
return joutput_error(errcode::ErrCart, '不能购买自己发布的商品');
|
|
- }
|
|
|
|
- if(intval($goods_info['goods_storage']) < 1 || intval($goods_info['goods_storage']) < $quantity) {
|
|
|
|
|
|
+ }
|
|
|
|
+ if (intval($goods_info['goods_storage']) < 1 || intval($goods_info['goods_storage']) < $quantity) {
|
|
return joutput_error(errcode::ErrCart, '库存不足');
|
|
return joutput_error(errcode::ErrCart, '库存不足');
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
|
|
$param = array();
|
|
$param = array();
|
|
- $param['buyer_id'] = $this->member_info['member_id'];
|
|
|
|
- $param['store_id'] = $goods_info['store_id'];
|
|
|
|
- $param['goods_id'] = $goods_info['goods_id'];
|
|
|
|
|
|
+ $param['buyer_id'] = $this->member_info['member_id'];
|
|
|
|
+ $param['store_id'] = $goods_info['store_id'];
|
|
|
|
+ $param['goods_id'] = $goods_info['goods_id'];
|
|
$param['goods_name'] = $goods_info['goods_name'];
|
|
$param['goods_name'] = $goods_info['goods_name'];
|
|
$param['goods_price'] = $goods_info['goods_price'];
|
|
$param['goods_price'] = $goods_info['goods_price'];
|
|
$param['goods_image'] = $goods_info['goods_image'];
|
|
$param['goods_image'] = $goods_info['goods_image'];
|
|
$param['store_name'] = $goods_info['store_name'];
|
|
$param['store_name'] = $goods_info['store_name'];
|
|
|
|
|
|
$result = $model_cart->addCart($param, 'db', $quantity);
|
|
$result = $model_cart->addCart($param, 'db', $quantity);
|
|
- if($result) {
|
|
|
|
|
|
+ if ($result) {
|
|
joutput_data(array('result' => '1'));
|
|
joutput_data(array('result' => '1'));
|
|
} else {
|
|
} else {
|
|
return joutput_error(errcode::ErrCart, '添加购物车失败!');
|
|
return joutput_error(errcode::ErrCart, '添加购物车失败!');
|
|
@@ -117,11 +118,9 @@ class member_cartControl extends mobileMemberControl
|
|
public function cart_editOp()
|
|
public function cart_editOp()
|
|
{
|
|
{
|
|
$cart_list = explode(',', urldecode($_POST['cart_list']));
|
|
$cart_list = explode(',', urldecode($_POST['cart_list']));
|
|
- $new_cart_list= array();
|
|
|
|
- if (is_array($cart_list))
|
|
|
|
- {
|
|
|
|
- foreach ($cart_list as $value)
|
|
|
|
- {
|
|
|
|
|
|
+ $new_cart_list = array();
|
|
|
|
+ if (is_array($cart_list)) {
|
|
|
|
+ foreach ($cart_list as $value) {
|
|
if (preg_match_all('/^(\d{1,10})\|(\d{1,6})$/', $value, $match)) {
|
|
if (preg_match_all('/^(\d{1,10})\|(\d{1,6})$/', $value, $match)) {
|
|
if (intval($match[2][0]) > 0) {
|
|
if (intval($match[2][0]) > 0) {
|
|
$new_cart_list[$match[1][0]] = $match[2][0];
|
|
$new_cart_list[$match[1][0]] = $match[2][0];
|
|
@@ -131,44 +130,37 @@ class member_cartControl extends mobileMemberControl
|
|
|
|
|
|
$model_cart = Model('cart');
|
|
$model_cart = Model('cart');
|
|
$condition = array('buyer_id' => $this->member_info['member_id']);
|
|
$condition = array('buyer_id' => $this->member_info['member_id']);
|
|
- $original_cart_list = $model_cart->listCart('db', $condition);
|
|
|
|
|
|
+ $original_cart_list = $model_cart->listCart('db', $condition);
|
|
$quantity_error = array();
|
|
$quantity_error = array();
|
|
- foreach ($original_cart_list as $key => $value)
|
|
|
|
- {
|
|
|
|
- if(array_key_exists($value['cart_id'], $new_cart_list))
|
|
|
|
- {
|
|
|
|
|
|
+ foreach ($original_cart_list as $key => $value) {
|
|
|
|
+ if (array_key_exists($value['cart_id'], $new_cart_list)) {
|
|
$quantity = intval($new_cart_list[$value['cart_id']]);
|
|
$quantity = intval($new_cart_list[$value['cart_id']]);
|
|
- if(intval($value['goods_num']) !== $quantity)
|
|
|
|
- {
|
|
|
|
- if(!$this->_check_goods_storage($value, $quantity, $this->member_info['member_id'])) {
|
|
|
|
- array_push($quantity_error, array('cart_id' => $value['cart_id'], 'quantity' => $quantity,'err_info'=>'库存不足'));
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
|
|
+ if (intval($value['goods_num']) !== $quantity) {
|
|
|
|
+ if (!$this->_check_goods_storage($value, $quantity, $this->member_info['member_id'])) {
|
|
|
|
+ array_push($quantity_error, array('cart_id' => $value['cart_id'], 'quantity' => $quantity, 'err_info' => '库存不足'));
|
|
|
|
+ } else {
|
|
$data = array();
|
|
$data = array();
|
|
$data['goods_num'] = $quantity;
|
|
$data['goods_num'] = $quantity;
|
|
- $update = $model_cart->editCart($data, array('cart_id'=> $value['cart_id']));
|
|
|
|
- if(!$update) {
|
|
|
|
|
|
+ $update = $model_cart->editCart($data, array('cart_id' => $value['cart_id']));
|
|
|
|
+ if (!$update) {
|
|
return joutput_error(errcode::ErrCart, '购物车修改失败');
|
|
return joutput_error(errcode::ErrCart, '购物车修改失败');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- $delete = $model_cart->delCart('db', array('cart_id'=>$value['cart_id']));
|
|
|
|
- if(!$delete) {
|
|
|
|
|
|
+ } else {
|
|
|
|
+ $delete = $model_cart->delCart('db', array('cart_id' => $value['cart_id']));
|
|
|
|
+ if (!$delete) {
|
|
return joutput_error(errcode::ErrCart, '购物车修改失败');
|
|
return joutput_error(errcode::ErrCart, '购物车修改失败');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if(count($quantity_error) > 0) {
|
|
|
|
- joutput_data(array('result'=> '0', 'quantity_error' => $quantity_error));
|
|
|
|
|
|
+ if (count($quantity_error) > 0) {
|
|
|
|
+ joutput_data(array('result' => '0', 'quantity_error' => $quantity_error));
|
|
} else {
|
|
} else {
|
|
joutput_data(array('result' => '1'));
|
|
joutput_data(array('result' => '1'));
|
|
}
|
|
}
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
return joutput_error(errcode::ErrCart, '购物车列表格式错误');
|
|
return joutput_error(errcode::ErrCart, '购物车列表格式错误');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -182,7 +174,7 @@ class member_cartControl extends mobileMemberControl
|
|
|
|
|
|
$model_cart = Model('cart');
|
|
$model_cart = Model('cart');
|
|
|
|
|
|
- if($cart_id > 0) {
|
|
|
|
|
|
+ if ($cart_id > 0) {
|
|
$condition = array();
|
|
$condition = array();
|
|
$condition['buyer_id'] = $this->member_info['member_id'];
|
|
$condition['buyer_id'] = $this->member_info['member_id'];
|
|
$condition['cart_id'] = $cart_id;
|
|
$condition['cart_id'] = $cart_id;
|
|
@@ -198,38 +190,38 @@ class member_cartControl extends mobileMemberControl
|
|
*/
|
|
*/
|
|
public function cart_edit_quantityOp()
|
|
public function cart_edit_quantityOp()
|
|
{
|
|
{
|
|
- $cart_id = intval(abs($_POST['cart_id']));
|
|
|
|
- $quantity = intval(abs($_POST['quantity']));
|
|
|
|
- if(empty($cart_id) || empty($quantity)) {
|
|
|
|
|
|
+ $cart_id = intval(abs($_POST['cart_id']));
|
|
|
|
+ $quantity = intval(abs($_POST['quantity']));
|
|
|
|
+ if (empty($cart_id) || empty($quantity)) {
|
|
return joutput_error(errcode::ErrCart, '参数错误');
|
|
return joutput_error(errcode::ErrCart, '参数错误');
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- $model_cart = Model('cart');
|
|
|
|
|
|
+ $model_cart = Model('cart');
|
|
|
|
|
|
- $cart_info = $model_cart->getCartInfo(array('cart_id'=>$cart_id, 'buyer_id' => $this->member_info['member_id']));
|
|
|
|
|
|
+ $cart_info = $model_cart->getCartInfo(array('cart_id' => $cart_id, 'buyer_id' => $this->member_info['member_id']));
|
|
|
|
|
|
//检查是否为本人购物车
|
|
//检查是否为本人购物车
|
|
- if($cart_info['buyer_id'] != $this->member_info['member_id']) {
|
|
|
|
|
|
+ if ($cart_info['buyer_id'] != $this->member_info['member_id']) {
|
|
return joutput_error(errcode::ErrCart, '参数错误');
|
|
return joutput_error(errcode::ErrCart, '参数错误');
|
|
}
|
|
}
|
|
|
|
|
|
//检查库存是否充足
|
|
//检查库存是否充足
|
|
- if(!$this->_check_goods_storage($cart_info, $quantity, $this->member_info['member_id'])) {
|
|
|
|
|
|
+ if (!$this->_check_goods_storage($cart_info, $quantity, $this->member_info['member_id'])) {
|
|
return joutput_error(errcode::ErrCart, '库存不足');
|
|
return joutput_error(errcode::ErrCart, '库存不足');
|
|
}
|
|
}
|
|
|
|
|
|
- $data = array();
|
|
|
|
|
|
+ $data = array();
|
|
$data['goods_num'] = $quantity;
|
|
$data['goods_num'] = $quantity;
|
|
- $update = $model_cart->editCart($data, array('cart_id'=>$cart_id));
|
|
|
|
- if ($update) {
|
|
|
|
- $return = array();
|
|
|
|
|
|
+ $update = $model_cart->editCart($data, array('cart_id' => $cart_id));
|
|
|
|
+ if ($update) {
|
|
|
|
+ $return = array();
|
|
$return['quantity'] = $quantity;
|
|
$return['quantity'] = $quantity;
|
|
- $return['goods_price'] = ncPriceFormat($cart_info['goods_price']);
|
|
|
|
- $return['total_price'] = ncPriceFormat($cart_info['goods_price'] * $quantity);
|
|
|
|
|
|
+ $return['goods_price'] = ncPriceFormat($cart_info['goods_price']);
|
|
|
|
+ $return['total_price'] = ncPriceFormat($cart_info['goods_price'] * $quantity);
|
|
joutput_data($return);
|
|
joutput_data($return);
|
|
- } else {
|
|
|
|
|
|
+ } else {
|
|
return joutput_error(errcode::ErrCart, '修改失败');
|
|
return joutput_error(errcode::ErrCart, '修改失败');
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -237,39 +229,39 @@ class member_cartControl extends mobileMemberControl
|
|
*/
|
|
*/
|
|
private function _check_goods_storage($cart_info, $quantity, $member_id)
|
|
private function _check_goods_storage($cart_info, $quantity, $member_id)
|
|
{
|
|
{
|
|
- $model_goods= Model('goods');
|
|
|
|
|
|
+ $model_goods = Model('goods');
|
|
$model_bl = Model('p_bundling');
|
|
$model_bl = Model('p_bundling');
|
|
$logic_buy_1 = Logic('buy_1');
|
|
$logic_buy_1 = Logic('buy_1');
|
|
|
|
|
|
- if ($cart_info['bl_id'] == '0') {
|
|
|
|
|
|
+ if ($cart_info['bl_id'] == '0') {
|
|
//普通商品
|
|
//普通商品
|
|
- $goods_info = $model_goods->getGoodsOnlineInfoAndPromotionById($cart_info['goods_id']);
|
|
|
|
|
|
+ $goods_info = $model_goods->getGoodsOnlineInfoAndPromotionById($cart_info['goods_id']);
|
|
|
|
|
|
- //抢购
|
|
|
|
- $logic_buy_1->getGroupbuyInfo($goods_info);
|
|
|
|
|
|
+ //抢购
|
|
|
|
+ $logic_buy_1->getGroupbuyInfo($goods_info);
|
|
|
|
|
|
- //限时折扣
|
|
|
|
- $logic_buy_1->getXianshiInfo($goods_info,$quantity);
|
|
|
|
|
|
+ //限时折扣
|
|
|
|
+ $logic_buy_1->getXianshiInfo($goods_info, $quantity);
|
|
|
|
|
|
- if(intval($goods_info['goods_storage']) < $quantity) {
|
|
|
|
|
|
+ if (intval($goods_info['goods_storage']) < $quantity) {
|
|
return false;
|
|
return false;
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- //优惠套装商品
|
|
|
|
- $bl_goods_list = $model_bl->getBundlingGoodsList(array('bl_id' => $cart_info['bl_id']));
|
|
|
|
- $goods_id_array = array();
|
|
|
|
- foreach ($bl_goods_list as $goods) {
|
|
|
|
- $goods_id_array[] = $goods['goods_id'];
|
|
|
|
- }
|
|
|
|
- $bl_goods_list = $model_goods->getGoodsOnlineListAndPromotionByIdArray($goods_id_array);
|
|
|
|
-
|
|
|
|
- //如果有商品库存不足,更新购买数量到目前最大库存
|
|
|
|
- foreach ($bl_goods_list as $goods_info) {
|
|
|
|
- if (intval($goods_info['goods_storage']) < $quantity) {
|
|
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //优惠套装商品
|
|
|
|
+ $bl_goods_list = $model_bl->getBundlingGoodsList(array('bl_id' => $cart_info['bl_id']));
|
|
|
|
+ $goods_id_array = array();
|
|
|
|
+ foreach ($bl_goods_list as $goods) {
|
|
|
|
+ $goods_id_array[] = $goods['goods_id'];
|
|
|
|
+ }
|
|
|
|
+ $bl_goods_list = $model_goods->getGoodsOnlineListAndPromotionByIdArray($goods_id_array);
|
|
|
|
+
|
|
|
|
+ //如果有商品库存不足,更新购买数量到目前最大库存
|
|
|
|
+ foreach ($bl_goods_list as $goods_info) {
|
|
|
|
+ if (intval($goods_info['goods_storage']) < $quantity) {
|
|
return false;
|
|
return false;
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|