|
|
|
@ -5,25 +5,33 @@ namespace App\Service\v3\Implementations; |
|
|
|
use App\Constants\v3\ErrorCode; |
|
|
|
use App\Exception\ErrorCodeException; |
|
|
|
use App\Service\v3\Interfaces\ShopCartUpdateServiceInterface; |
|
|
|
|
|
|
|
use App\Model\v3\ShoppingCart; |
|
|
|
use App\Model\v3\Goods; |
|
|
|
use App\Model\v3\GoodsActivity; |
|
|
|
use App\Constants\v3\Goods as GoodsConstants; |
|
|
|
class ShopCartUpdateService implements ShopCartUpdateServiceInterface |
|
|
|
{ |
|
|
|
public function do($params) |
|
|
|
{ |
|
|
|
switch ($params['goods_id']) |
|
|
|
public function do($user_id,$goods_id,$market_id,$num,$activity_type) |
|
|
|
{ |
|
|
|
case 1000: |
|
|
|
throw new ErrorCodeException(ErrorCode::GOODS_INVENTORY_ERROR); |
|
|
|
break; |
|
|
|
case 2000: |
|
|
|
throw new ErrorCodeException(ErrorCode::GOODS_RESTRICT_LIMIT); |
|
|
|
break; |
|
|
|
case 3000: |
|
|
|
throw new ErrorCodeException(ErrorCode::GOODS_ACTIVITY_BUY); |
|
|
|
break; |
|
|
|
default: |
|
|
|
return true; |
|
|
|
//判断是普通商品还是特价商品
|
|
|
|
if(isset($params['activity']) && $params['activity'] == GoodsConstants::IS_ACTIVITY){ |
|
|
|
$builder = GoodsActivity::query(); |
|
|
|
}else{ |
|
|
|
$builder = Goods::query(); |
|
|
|
} |
|
|
|
$goods = $builder->select('store_id')->find($goods_id); |
|
|
|
return ShoppingCart::query()->updateOrCreate( |
|
|
|
[ |
|
|
|
'user_id' => $user_id, |
|
|
|
'goods_id' => $goods_id, |
|
|
|
'activity_type' => $activity_type |
|
|
|
], |
|
|
|
[ |
|
|
|
'market_id' => $market_id, |
|
|
|
'store_id' => $goods->store_id, |
|
|
|
'num' => $num |
|
|
|
] |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
public function check() |
|
|
|
|