Commit 05c86cf1 authored by liuyuzhen's avatar liuyuzhen

购物车已存在规格修改问题

parent 89f77007
......@@ -56,8 +56,11 @@ class CartServiceModel extends \Business\AbstractModel{
*/
public function editCart($data,$cart,$memberId,$pBundlind=null){
$validReturnData = $this->validEditCart($data,$cart,$memberId,$pBundlind);
$cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName);
if(isset($validReturnData['existCartFlag'])&&$validReturnData['existCartFlag']==\Our\ApiConst::one){
return $this->editDelCart($cart,$memberId);
}
$cartArray = $this->getFormattedCartDataForEdit($data,$cart,$memberId,$pBundlind,$validReturnData);
$cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $cartDao->update($cartArray['newCarts'][0],array('cart_id'=>$data['cartId']));
if(!$result){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartFailed);
......@@ -73,6 +76,26 @@ class CartServiceModel extends \Business\AbstractModel{
return $result;
}
/**
* 编辑规格时出现当前规格已经在购物车时,删除当前购物车
* @param $cart
* @param $memberId
* @return mixed
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public function editDelCart($cart,$memberId){
$cartRedis = \Redis\Db7\CartRedisModel::getInstance();
$cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $cartDao->del(array('cart_id'=>$cart['cart_id']));
if(!$result){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::editDelCartFailed);
}
$memberStoreCartsKey = \Our\NameConst::memberStoreCartsPrefix.$memberId.\Our\NameConst::underline.$cart['store_id'];
$cartRedis->tableDel($memberStoreCartsKey);
return $result;
}
/**
* 批量删除购物车
* @param $data
......@@ -358,6 +381,11 @@ class CartServiceModel extends \Business\AbstractModel{
if(!(isset($data['goodsNum'])&&intval($data['goodsNum'])>\Our\ApiConst::zero)){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyCartGoodsNum);
}
$cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$existCart = $cartDao->find(array('goods_id'=>$data['goodsId'],'buyer_id'=>$memberId,array('cart_id'=>array('neq ',$data['cartId']))));
if($existCart){
return array('existCartFlag'=>\Our\ApiConst::one);
}
$goodsDao = \DAO\GoodsModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$goodsValidStatus = $goodsDao->validEditCartGoods($data,$cart);
if(!$goodsValidStatus){
......
......@@ -40,6 +40,9 @@ class CartModel extends \DAO\AbstractModel{
*/
public function find($where,$field= \Our\NameConst::allField){
$this->setDb($this->dbName);
if(is_array($where)){
$where = $this->db->getSqlWhereByArray($where);
}
$data = $this->db->from($this->_tableName)->select($field)->where($where)->fetchOne();
return $data;
}
......
......@@ -163,6 +163,7 @@ class CodeConfigModel {
const emptyPBundlingdForOrder = 50038;
const pBundlingOfflineForOrder = 50039;
const pBundlingNoStorageForOrder = 50040;
const editDelCartFailed = 50041;
//订单相关错误码
......@@ -553,6 +554,7 @@ class CodeConfigModel {
self::emptyPBundlingdForOrder => '组合销售商品不存在',
self::pBundlingOfflineForOrder => '组合销售商品已经下架',
self::pBundlingNoStorageForOrder => '组合销售商品库存不足',
self::editDelCartFailed => '编辑购物车时删除数据失败',
self::addressNotExist=>'地址不存在',
self::emptyAddressId=>'地址主键参数不能为空',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment