...
|
...
|
@@ -17,632 +17,683 @@ use Plugin\Images; |
|
|
class CartModel
|
|
|
{
|
|
|
|
|
|
/**
|
|
|
* 加入购物车
|
|
|
*
|
|
|
* @param int $productSku 商品SKU
|
|
|
* @param int $buyNumber 购买数量
|
|
|
* @param int $goodsType 商品类型,0表示普通商品,1表示加价购商品
|
|
|
* @param int $isEdit 是否是编辑商品SKU,0表示不是编辑
|
|
|
* @param null|int $promotionId 促销id,默认null(加价购有关)
|
|
|
* @param null|int $uid 用户UID,可以不传
|
|
|
* @return array 加入购物车接口返回的数据
|
|
|
*/
|
|
|
public static function addToCart($productSku, $buyNumber, $goodsType, $isEdit, $promotionId, $uid)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~~');
|
|
|
|
|
|
$addCart = CartData::addToCart($productSku, $buyNumber, $goodsType, $isEdit, $promotionId, $uid);
|
|
|
if ($addCart && isset($addCart['code'])) {
|
|
|
$result = $addCart;
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @param integer $uid 用户ID
|
|
|
* @param string $shoppingKey 未登录用户唯一识别码
|
|
|
* @param bool $onlyGift 只获取赠品的商品数据
|
|
|
* @param bool $onlyAdvanceBuy 只获取加价购的商品数据
|
|
|
* @return array|mixed 处理之后的购物车数据
|
|
|
*/
|
|
|
public static function getCartData($uid, $shoppingKey, $onlyGift = false, $onlyAdvanceBuy = false)
|
|
|
{
|
|
|
$result = array('cartNav' => true);
|
|
|
|
|
|
// 用户是否登录
|
|
|
if (empty($uid)) {
|
|
|
$result['showLoginInfo'] = true;
|
|
|
}
|
|
|
|
|
|
// 调用接口获取购物车的数据
|
|
|
$cartData = CartData::cartData($uid, $shoppingKey);
|
|
|
|
|
|
// 处理普通购物车和预售购物车的数据
|
|
|
if (isset($cartData['data']) && !empty($cartData['data'])) {
|
|
|
$cart = $cartData['data'];
|
|
|
|
|
|
/* 普通购物车 */
|
|
|
if(isset($cart['ordinary_cart_data'])) {
|
|
|
$result['commonGoodsCount'] = $cart['ordinary_cart_data']['shopping_cart_data']['goods_count'];
|
|
|
$result['commonCart'] = self::procCartData($cart['ordinary_cart_data'], $onlyGift, $onlyAdvanceBuy);
|
|
|
}
|
|
|
|
|
|
/* 预售购物车 */
|
|
|
if(isset($cart['advance_cart_data'])) {
|
|
|
$result['presellGoodsCount'] = $cart['advance_cart_data']['shopping_cart_data']['goods_count'];
|
|
|
$result['preSellCart'] = self::procCartData($cart['advance_cart_data'], $onlyGift, $onlyAdvanceBuy);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 购物车商品选择与取消接口返回的数据处理
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $sku 商品sku列表
|
|
|
* @param string $shoppingKey 未登录用户唯一识别码
|
|
|
* @return array 处理之后的数据的数据
|
|
|
*/
|
|
|
public static function selectGoods($uid, $sku, $shoppingKey)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
// 处理sku
|
|
|
$sku_list = json_encode(array($sku => 1));
|
|
|
|
|
|
$select = CartData::selectGoods($uid, $sku_list, $shoppingKey);
|
|
|
if ($select && isset($select['code'])) {
|
|
|
$result['code'] = $select['code'];
|
|
|
$result['message'] = $select['message'];
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 移出购物车
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $sku 商品sku列表
|
|
|
* @param string $shoppingKey 未登录用户唯一识别码
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function removeFromCart($uid, $sku, $shoppingKey)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
// 处理sku
|
|
|
$sku_list = json_encode(array($sku => 1));
|
|
|
|
|
|
$remove = CartData::removeFromCart($uid, $sku_list, $shoppingKey);
|
|
|
if ($remove && isset($remove['code'])) {
|
|
|
$result['code'] = $remove['code'];
|
|
|
$result['message'] = $remove['message'];
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 移入收藏夹
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $sku 商品sku列表
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function addToFav($uid, $sku)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
if (empty($uid)) {
|
|
|
$result['code'] = 300;
|
|
|
$reult['message'] = '请先登录';
|
|
|
$result['data'] = '/signin.html';
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
// 处理sku
|
|
|
$sku_list = json_encode(array($sku => 1));
|
|
|
|
|
|
$add = CartData::addToFav($uid, $sku_list);
|
|
|
if ($add && isset($add['code'])) {
|
|
|
$result['code'] = $add['code'];
|
|
|
$result['message'] = $add['message'];
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 处理购物车商品数据
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param int $skn 商品skn
|
|
|
* @param int $num 购买数目
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function cartProductData($uid, $skn, $num)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
$product = CartData::cartProductData($uid, $skn);
|
|
|
if (isset($product['code']) && $product['code'] === 200) {
|
|
|
$result['code'] = 200;
|
|
|
$data = array();
|
|
|
$productData = $product['data'];
|
|
|
|
|
|
// 品牌信息
|
|
|
if (isset($productData['brand_info']) && !empty($productData['brand_info'])) {
|
|
|
$data['thumb'] = Helpers::getImageUrl($productData['brand_info']['brand_ico'], 120, 120);
|
|
|
}
|
|
|
|
|
|
$data['name'] = $productData['product_name'];
|
|
|
$data['price'] = $productData['market_price'];
|
|
|
$data['salePrice'] = $productData['sales_price'];
|
|
|
$data['storage'] = $productData['storage_sum'];
|
|
|
$data['num'] = $num;
|
|
|
|
|
|
// 商品选择
|
|
|
if (isset($productData['goods_list'])) {
|
|
|
$goodsList = $productData['goods_list'];
|
|
|
|
|
|
$colors = array();
|
|
|
$oneColor = array();
|
|
|
$sizes = array();
|
|
|
$oneSize = array();
|
|
|
foreach ($goodsList as $val) {
|
|
|
// 颜色
|
|
|
$oneColor = array();
|
|
|
$oneColor['id'] = $val['color_id'];
|
|
|
$oneColor['name'] = $val['color_name'];
|
|
|
|
|
|
// 尺码
|
|
|
foreach ($val['size_list'] as $one) {
|
|
|
$oneSize = array();
|
|
|
$oneSize['id'] = $one['size_id'];
|
|
|
$oneSize['name'] = $one['size_name'];
|
|
|
}
|
|
|
$sizes[] = $oneSize;
|
|
|
|
|
|
$oneColor['sizes'] = $sizes;
|
|
|
$colors[] = $oneColor;
|
|
|
}
|
|
|
|
|
|
$data['colors'] = $colors;
|
|
|
}
|
|
|
|
|
|
$result['data'] = $data;
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 处理加价购商品数据
|
|
|
*
|
|
|
* @param int $skn 商品skn
|
|
|
* @param int $promotionId 加价购商品促销ID
|
|
|
* @return array
|
|
|
*/
|
|
|
public static function giftProductData($skn, $promotionId)
|
|
|
{
|
|
|
$result = array();
|
|
|
|
|
|
$product = CartData::giftProductData($skn, $promotionId);
|
|
|
if (isset($product['code']) && $product['code'] === 200) {
|
|
|
$result['code'] = 200;
|
|
|
$data = array();
|
|
|
$productData = $product['data'];
|
|
|
|
|
|
// 品牌信息
|
|
|
if (isset($productData['brand_info']) && !empty($productData['brand_info'])) {
|
|
|
$data['thumb'] = Helpers::getImageUrl($productData['brand_info']['brand_ico'], 120, 120);
|
|
|
}
|
|
|
|
|
|
$data['name'] = $productData['product_name'];
|
|
|
$data['price'] = $productData['market_price'];
|
|
|
$data['salePrice'] = $productData['sales_price'];
|
|
|
$data['storage'] = $productData['storage_sum'];
|
|
|
|
|
|
// 商品选择
|
|
|
if (isset($productData['goods_list'])) {
|
|
|
$goodsList = $productData['goods_list'];
|
|
|
|
|
|
$colors = array();
|
|
|
$oneColor = array();
|
|
|
$sizes = array();
|
|
|
$oneSize = array();
|
|
|
foreach ($goodsList as $val) {
|
|
|
// 颜色
|
|
|
$oneColor = array();
|
|
|
$oneColor['id'] = $val['color_id'];
|
|
|
$oneColor['name'] = $val['color_name'];
|
|
|
|
|
|
// 尺码
|
|
|
foreach ($val['size_list'] as $one) {
|
|
|
$oneSize = array();
|
|
|
$oneSize['id'] = $one['size_id'];
|
|
|
$oneSize['name'] = $one['size_name'];
|
|
|
}
|
|
|
$sizes[] = $oneSize;
|
|
|
|
|
|
$oneColor['sizes'] = $sizes;
|
|
|
$colors[] = $oneColor;
|
|
|
}
|
|
|
|
|
|
$data['colors'] = $colors;
|
|
|
}
|
|
|
|
|
|
$result['data'] = $data;
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 修改购物车商品数据
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $param 要更改的数据
|
|
|
* @param string $shoppingKey 未登录用户唯一识别码
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function modifyCartProduct($uid, $param, $shoppingKey)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
// 处理要更改的数据
|
|
|
$swapData = json_encode(array($param));
|
|
|
|
|
|
$modify = CartData::modifyCartProduct($uid, $swapData, $shoppingKey);
|
|
|
if ($modify && isset($modify['code'])) {
|
|
|
$result['code'] = $modify['code'];
|
|
|
$result['message'] = $modify['message'];
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 调用购物车结算接口返回的数据处理
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $cartType 购物车类型,ordinary表示普通购物车
|
|
|
* @param null|string $cookieData cookie中记录的一些订单有关数据
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function cartPay($uid, $cartType, $cookieData)
|
|
|
{
|
|
|
$result = array();
|
|
|
|
|
|
$pay = CartData::cartPay($uid, $cartType);
|
|
|
|
|
|
if ($pay && isset($pay['code']) && $pay['code'] === 200) {
|
|
|
$payReturn = $pay['data'];
|
|
|
$orderInfo = array();
|
|
|
$address = array();
|
|
|
$orderCompute = array();
|
|
|
|
|
|
// cookie保存的数据
|
|
|
if (!empty($cookieData)) {
|
|
|
$orderInfo = json_decode($cookieData, true);
|
|
|
$orderCompute = self::orderCompute($uid, $cartType, $orderInfo['deliveryId'], $orderInfo['paymentTypeId'], $orderInfo['couponCode'], $orderInfo['yohoCoin']);
|
|
|
}
|
|
|
|
|
|
// 根据地址id查询地址信息
|
|
|
if (isset($orderInfo['addressId'])) {
|
|
|
$address = UserModel::getAddressDataById($uid, $orderInfo['addressId']);
|
|
|
}
|
|
|
|
|
|
// 收货人有关信息
|
|
|
if (isset($payReturn['delivery_address']) && !empty($payReturn['delivery_address'])) {
|
|
|
$result['addressId'] = isset($address['address_id']) ? $address['address_id'] : $payReturn['delivery_address']['address_id'];
|
|
|
$result['name'] = isset($address['consignee']) ? $address['consignee'] : $payReturn['delivery_address']['consignee'];
|
|
|
$result['phoneNum'] = isset($address['mobile']) ? $address['mobile'] : $payReturn['delivery_address']['mobile'];
|
|
|
/**
|
|
|
* 加入购物车
|
|
|
*
|
|
|
* @param int $productSku 商品SKU
|
|
|
* @param int $buyNumber 购买数量
|
|
|
* @param int $goodsType 商品类型,0表示普通商品,1表示加价购商品
|
|
|
* @param int $isEdit 是否是编辑商品SKU,0表示不是编辑
|
|
|
* @param null|int $promotionId 促销id,默认null(加价购有关)
|
|
|
* @param null|int $uid 用户UID,可以不传
|
|
|
* @return array 加入购物车接口返回的数据
|
|
|
*/
|
|
|
public static function addToCart($productSku, $buyNumber, $goodsType, $isEdit, $promotionId, $uid)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~~');
|
|
|
|
|
|
$addCart = CartData::addToCart($productSku, $buyNumber, $goodsType, $isEdit, $promotionId, $uid);
|
|
|
if ($addCart && isset($addCart['code'])) {
|
|
|
$result = $addCart;
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @param integer $uid 用户ID
|
|
|
* @param string $shoppingKey 未登录用户唯一识别码
|
|
|
* @param string $cartType 购物车类型
|
|
|
* @param bool $onlyGift 只获取赠品的商品数据
|
|
|
* @param bool $onlyAdvanceBuy 只获取加价购的商品数据
|
|
|
* @return array|mixed 处理之后的购物车数据
|
|
|
*/
|
|
|
public static function getCartData($uid, $shoppingKey, $cartType = 'all', $onlyGift = false, $onlyAdvanceBuy = false)
|
|
|
{
|
|
|
$result = array('cartNav' => true);
|
|
|
|
|
|
// 用户是否登录
|
|
|
if (empty($uid)) {
|
|
|
$result['showLoginInfo'] = true;
|
|
|
}
|
|
|
|
|
|
// 调用接口获取购物车的数据
|
|
|
$cartData = CartData::cartData($uid, $shoppingKey);
|
|
|
|
|
|
// 处理普通购物车和预售购物车的数据
|
|
|
do {
|
|
|
if (!isset($cartData['data']) || empty($cartData['data'])) {
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
$cart = $cartData['data'];
|
|
|
|
|
|
if ($cartType !== 'all') { // 加价购或者赠品数据
|
|
|
$result = self::procCartData($cart['ordinary_cart_data'], $onlyGift, $onlyAdvanceBuy);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
$ordinaryCount = intval($cart['ordinary_cart_data']['shopping_cart_data']['goods_count']);
|
|
|
$advanceCount = intval($cart['advance_cart_data']['shopping_cart_data']['goods_count']);
|
|
|
// 普通购物车和预售购物车都为空
|
|
|
if ($ordinaryCount === 0 && $advanceCount === 0) {
|
|
|
$result['isEmptyCart'] = true;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
/* 普通购物车 */
|
|
|
$result['commonGoodsCount'] = $ordinaryCount;
|
|
|
$result['commonCart'] = self::procCartData($cart['ordinary_cart_data'], $onlyGift, $onlyAdvanceBuy);
|
|
|
/* 预售购物车 */
|
|
|
$result['presellGoodsCount'] = $advanceCount;
|
|
|
$result['preSellCart'] = self::procCartData($cart['advance_cart_data'], $onlyGift, $onlyAdvanceBuy);
|
|
|
}while(0);
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 购物车商品选择与取消接口返回的数据处理
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $sku 商品sku列表
|
|
|
* @param string $shoppingKey 未登录用户唯一识别码
|
|
|
* @return array 处理之后的数据的数据
|
|
|
*/
|
|
|
public static function selectGoods($uid, $sku, $shoppingKey)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
// 处理sku
|
|
|
$sku_list = json_encode(array($sku => 1));
|
|
|
|
|
|
$select = CartData::selectGoods($uid, $sku_list, $shoppingKey);
|
|
|
if ($select && isset($select['code'])) {
|
|
|
$result['code'] = $select['code'];
|
|
|
$result['message'] = $select['message'];
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 移出购物车
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $sku 商品sku列表
|
|
|
* @param string $shoppingKey 未登录用户唯一识别码
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function removeFromCart($uid, $sku, $shoppingKey)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
// 处理sku
|
|
|
$sku_list = json_encode(array($sku => 1));
|
|
|
|
|
|
$remove = CartData::removeFromCart($uid, $sku_list, $shoppingKey);
|
|
|
if ($remove && isset($remove['code'])) {
|
|
|
$result['code'] = $remove['code'];
|
|
|
$result['message'] = $remove['message'];
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 移入收藏夹
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $sku 商品sku列表
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function addToFav($uid, $sku)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
if (empty($uid)) {
|
|
|
$result['code'] = 300;
|
|
|
$reult['message'] = '请先登录';
|
|
|
$result['data'] = '/signin.html';
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
// 处理sku
|
|
|
$sku_list = json_encode(array($sku => 1));
|
|
|
|
|
|
$add = CartData::addToFav($uid, $sku_list);
|
|
|
if ($add && isset($add['code'])) {
|
|
|
$result['code'] = $add['code'];
|
|
|
$result['message'] = $add['message'];
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 处理购物车商品数据
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param int $skn 商品skn
|
|
|
* @param int $num 购买数目
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function cartProductData($uid, $skn, $num)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
$product = CartData::cartProductData($uid, $skn);
|
|
|
if (isset($product['code']) && $product['code'] === 200) {
|
|
|
$result['code'] = 200;
|
|
|
$data = array();
|
|
|
$productData = $product['data'];
|
|
|
|
|
|
// 品牌信息
|
|
|
if (isset($productData['brand_info']) && !empty($productData['brand_info'])) {
|
|
|
$data['thumb'] = Helpers::getImageUrl($productData['brand_info']['brand_ico'], 120, 120);
|
|
|
}
|
|
|
|
|
|
$data['name'] = $productData['product_name'];
|
|
|
$data['price'] = $productData['market_price'];
|
|
|
$data['salePrice'] = $productData['sales_price'];
|
|
|
$data['storage'] = $productData['storage_sum'];
|
|
|
$data['num'] = $num;
|
|
|
|
|
|
// 商品选择
|
|
|
if (isset($productData['goods_list'])) {
|
|
|
$goodsList = $productData['goods_list'];
|
|
|
|
|
|
$colors = array();
|
|
|
$oneColor = array();
|
|
|
$sizes = array();
|
|
|
$oneSize = array();
|
|
|
foreach ($goodsList as $val) {
|
|
|
// 颜色
|
|
|
$oneColor = array();
|
|
|
$oneColor['id'] = $val['color_id'];
|
|
|
$oneColor['name'] = $val['color_name'];
|
|
|
|
|
|
// 尺码
|
|
|
foreach ($val['size_list'] as $one) {
|
|
|
$oneSize = array();
|
|
|
$oneSize['id'] = $one['size_id'];
|
|
|
$oneSize['name'] = $one['size_name'];
|
|
|
}
|
|
|
$sizes[] = $oneSize;
|
|
|
|
|
|
$oneColor['sizes'] = $sizes;
|
|
|
$colors[] = $oneColor;
|
|
|
}
|
|
|
|
|
|
$data['colors'] = $colors;
|
|
|
}
|
|
|
|
|
|
$result['data'] = $data;
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 处理加价购商品数据
|
|
|
*
|
|
|
* @param int $skn 商品skn
|
|
|
* @param int $promotionId 加价购商品促销ID
|
|
|
* @return array
|
|
|
*/
|
|
|
public static function giftProductData($skn, $promotionId)
|
|
|
{
|
|
|
$result = array();
|
|
|
|
|
|
$product = CartData::giftProductData($skn, $promotionId);
|
|
|
if (isset($product['code']) && $product['code'] === 200) {
|
|
|
$result['code'] = 200;
|
|
|
$data = array();
|
|
|
$productData = $product['data'];
|
|
|
|
|
|
// 品牌信息
|
|
|
if (isset($productData['brand_info']) && !empty($productData['brand_info'])) {
|
|
|
$data['thumb'] = Helpers::getImageUrl($productData['brand_info']['brand_ico'], 120, 120);
|
|
|
}
|
|
|
|
|
|
$data['name'] = $productData['product_name'];
|
|
|
$data['price'] = $productData['market_price'];
|
|
|
$data['salePrice'] = $productData['sales_price'];
|
|
|
$data['storage'] = $productData['storage_sum'];
|
|
|
|
|
|
// 商品选择
|
|
|
if (isset($productData['goods_list'])) {
|
|
|
$goodsList = $productData['goods_list'];
|
|
|
|
|
|
$colors = array();
|
|
|
$oneColor = array();
|
|
|
$sizes = array();
|
|
|
$oneSize = array();
|
|
|
foreach ($goodsList as $val) {
|
|
|
// 颜色
|
|
|
$oneColor = array();
|
|
|
$oneColor['id'] = $val['color_id'];
|
|
|
$oneColor['name'] = $val['color_name'];
|
|
|
|
|
|
// 尺码
|
|
|
foreach ($val['size_list'] as $one) {
|
|
|
$oneSize = array();
|
|
|
$oneSize['id'] = $one['size_id'];
|
|
|
$oneSize['name'] = $one['size_name'];
|
|
|
}
|
|
|
$sizes[] = $oneSize;
|
|
|
|
|
|
$oneColor['sizes'] = $sizes;
|
|
|
$colors[] = $oneColor;
|
|
|
}
|
|
|
|
|
|
$data['colors'] = $colors;
|
|
|
}
|
|
|
|
|
|
$result['data'] = $data;
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 修改购物车商品数量
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $sku 商品SKU
|
|
|
* @param int $increaseNum 增加的数目
|
|
|
* @param int $decreaseNum 减少的数目
|
|
|
* @param string $shoppingKey 未登录用户唯一识别码
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function modifyProductNum($uid, $sku, $increaseNum, $decreaseNum, $shoppingKey)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
$modify = CartData::modifyProductNum($uid, $sku, $increaseNum, $decreaseNum, $shoppingKey);
|
|
|
if ($modify && isset($modify['code'])) {
|
|
|
$result['code'] = $modify['code'];
|
|
|
$result['message'] = $modify['message'];
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 修改购物车商品数据
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $param 要更改的数据
|
|
|
* @param string $shoppingKey 未登录用户唯一识别码
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function modifyCartProduct($uid, $param, $shoppingKey)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
// 处理要更改的数据
|
|
|
$swapData = json_encode(array($param));
|
|
|
|
|
|
$modify = CartData::modifyCartProduct($uid, $swapData, $shoppingKey);
|
|
|
if ($modify && isset($modify['code'])) {
|
|
|
$result['code'] = $modify['code'];
|
|
|
$result['message'] = $modify['message'];
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 调用购物车结算接口返回的数据处理
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $cartType 购物车类型,ordinary表示普通购物车
|
|
|
* @param null|string $cookieData cookie中记录的一些订单有关数据
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function cartPay($uid, $cartType, $cookieData)
|
|
|
{
|
|
|
$result = array();
|
|
|
|
|
|
$pay = CartData::cartPay($uid, $cartType);
|
|
|
|
|
|
if ($pay && isset($pay['code']) && $pay['code'] === 200) {
|
|
|
$payReturn = $pay['data'];
|
|
|
$orderInfo = array();
|
|
|
$address = array();
|
|
|
$orderCompute = array();
|
|
|
|
|
|
// cookie保存的数据
|
|
|
if (!empty($cookieData)) {
|
|
|
$orderInfo = json_decode($cookieData, true);
|
|
|
$orderCompute = self::orderCompute($uid, $cartType, $orderInfo['deliveryId'], $orderInfo['paymentTypeId'], $orderInfo['couponCode'], $orderInfo['yohoCoin']);
|
|
|
}
|
|
|
|
|
|
// 根据地址id查询地址信息
|
|
|
if (isset($orderInfo['addressId'])) {
|
|
|
$address = UserModel::getAddressDataById($uid, $orderInfo['addressId']);
|
|
|
}
|
|
|
|
|
|
// 收货人有关信息
|
|
|
if (isset($payReturn['delivery_address']) && !empty($payReturn['delivery_address'])) {
|
|
|
$result['addressId'] = isset($address['address_id']) ? $address['address_id'] : $payReturn['delivery_address']['address_id'];
|
|
|
$result['name'] = isset($address['consignee']) ? $address['consignee'] : $payReturn['delivery_address']['consignee'];
|
|
|
$result['phoneNum'] = isset($address['mobile']) ? $address['mobile'] : $payReturn['delivery_address']['mobile'];
|
|
|
$result['area'] = isset($address['area']) ? $address['area'] : $payReturn['delivery_address']['area'];
|
|
|
$result['address'] = isset($address['address']) ? $address['address'] : $payReturn['delivery_address']['address'];
|
|
|
$result['isSupport'] = ($payReturn['delivery_address']['is_support'] === 'Y');
|
|
|
}
|
|
|
|
|
|
// 配送方式
|
|
|
if (isset($payReturn['delivery_way'])) {
|
|
|
$idArr = array();
|
|
|
$defaultKey = 0;
|
|
|
$oneDeliv = array();
|
|
|
foreach ($payReturn['delivery_way'] as $key => $val) {
|
|
|
$oneDeliv = array();
|
|
|
$oneDeliv['id'] = $val['delivery_way_id'];
|
|
|
$oneDeliv['name'] = $val['delivery_way_name'];
|
|
|
($val['default'] === 'Y') && $defaultKey = $key;
|
|
|
|
|
|
$idArr[$key] = $oneDeliv['id'];
|
|
|
|
|
|
$result['dispatchMode'][$key] = $oneDeliv;
|
|
|
}
|
|
|
|
|
|
if (isset($orderInfo['deliveryId'])) {
|
|
|
$flag = array_search($orderInfo['deliveryId'], $idArr);
|
|
|
$flag !== false && $result['dispatchMode'][$flag]['isSelected'] = true;
|
|
|
} else {
|
|
|
$result['dispatchMode'][$defaultKey]['isSelected'] = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 配送时间
|
|
|
if (isset($payReturn['delivery_time'])) {
|
|
|
$idArr = array();
|
|
|
$defaultKey = 0;
|
|
|
$oneDelivTime = array();
|
|
|
foreach ($payReturn['delivery_time'] as $key => $one) {
|
|
|
$oneDelivTime = array();
|
|
|
$oneDelivTime['id'] = $one['delivery_time_id'];
|
|
|
$oneDelivTime['name'] = $one['delivery_time_string'];
|
|
|
($one['default'] === 'Y') && $defaultKey = $key;
|
|
|
|
|
|
$idArr[$key] = $oneDelivTime['id'];
|
|
|
|
|
|
$result['dispatchTime'][] = $oneDelivTime;
|
|
|
}
|
|
|
|
|
|
if (isset($orderInfo['deliveryTimeId'])) {
|
|
|
$flag = array_search($orderInfo['deliveryTimeId'], $idArr);
|
|
|
$flag !== false && $result['dispatchTime'][$flag]['isSelected'] = true;
|
|
|
} else {
|
|
|
$result['dispatchTime'][$defaultKey]['isSelected'] = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 订单商品
|
|
|
if (isset($payReturn['goods_list'])) {
|
|
|
$oneGoods = array();
|
|
|
foreach ($payReturn['goods_list'] as $single) {
|
|
|
$oneGoods = array();
|
|
|
$oneGoods['id'] = $single['product_sku']; // TODO 未确定用哪个
|
|
|
$oneGoods['thumb'] = Images::getImageUrl($single['goods_images'], 120, 120);
|
|
|
$oneGoods['name'] = $single['product_name'];
|
|
|
$oneGoods['color'] = $single['color_name'];
|
|
|
$oneGoods['size'] = $single['size_name'];
|
|
|
$oneGoods['price'] = Helpers::transPrice($single['sales_price']);
|
|
|
$oneGoods['count'] = $single['buy_number'];
|
|
|
|
|
|
$result['goods'][] = $oneGoods;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 支付方式
|
|
|
if (isset($payReturn['payment_way'])) {
|
|
|
$onePay = array();
|
|
|
foreach ($payReturn['payment_way'] as $pay) {
|
|
|
$onePay = array();
|
|
|
$onePay['id'] = $pay['payment_id'];
|
|
|
$onePay['paymentType'] = $pay['payment_type'];
|
|
|
$onePay['name'] = $pay['payment_type_name'];
|
|
|
$onePay['default'] = ($pay['default'] === 'Y');
|
|
|
|
|
|
$result['paymentWay'][] = $onePay;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 有货币
|
|
|
$result['yohoCoin'] = (isset($orderCompute['use_yoho_coin']) && !empty($orderCompute['use_yoho_coin'])) ? $orderCompute['use_yoho_coin'] : $payReturn['yoho_coin'];
|
|
|
|
|
|
// 订单数据
|
|
|
if (isset($payReturn['shopping_cart_data']) && !empty($payReturn['shopping_cart_data'])) {
|
|
|
$sumPrice = isset($orderCompute['order_amount']) ? $orderCompute['order_amount'] : $payReturn['shopping_cart_data']['order_amount'];
|
|
|
$freight = isset($orderCompute['promotion_formula_list']['promotion_amount']) ? $orderCompute['promotion_formula_list'][1]['promotion_amount'] : $payReturn['shopping_cart_data']['promotion_formula_list'][1]['promotion_amount'];
|
|
|
$couponPrice = isset($orderCompute['coupon_amount']) ? $orderCompute['coupon_amount'] : false;
|
|
|
$salePrice = isset($orderCompute['discount_amount']) ? $orderCompute['discount_amount'] : $payReturn['shopping_cart_data']['promotion_formula_list'][3]['promotion_amount'];
|
|
|
$price = isset($orderCompute['last_order_amount']) ? $orderCompute['last_order_amount'] : $payReturn['shopping_cart_data']['last_order_amount'];
|
|
|
$result['sumPrice'] = Helpers::transPrice($sumPrice);
|
|
|
$result['salePrice'] = Helpers::transPrice($salePrice);
|
|
|
$result['price'] = Helpers::transPrice($price);
|
|
|
$result['freight'] = $freight;
|
|
|
$result['couponPrice'] = $couponPrice;
|
|
|
}
|
|
|
|
|
|
// 发票有关数据
|
|
|
if (isset($payReturn['invoices']) && !empty($payReturn['invoices'])) {
|
|
|
$one = array();
|
|
|
foreach ($payReturn['invoices']['invoices_type_list'] as $inv) {
|
|
|
$one = array();
|
|
|
$one['id'] = $inv['invoices_type_id'];
|
|
|
$one['name'] = $inv['invoices_type_name'];
|
|
|
$result['isSupport'] = ($payReturn['delivery_address']['is_support'] === 'Y');
|
|
|
}
|
|
|
|
|
|
// 配送方式
|
|
|
if (isset($payReturn['delivery_way'])) {
|
|
|
$idArr = array();
|
|
|
$defaultKey = 0;
|
|
|
$oneDeliv = array();
|
|
|
foreach ($payReturn['delivery_way'] as $key => $val) {
|
|
|
$oneDeliv = array();
|
|
|
$oneDeliv['id'] = $val['delivery_way_id'];
|
|
|
$oneDeliv['name'] = $val['delivery_way_name'];
|
|
|
($val['default'] === 'Y') && $defaultKey = $key;
|
|
|
|
|
|
$idArr[$key] = $oneDeliv['id'];
|
|
|
|
|
|
$result['dispatchMode'][$key] = $oneDeliv;
|
|
|
}
|
|
|
|
|
|
if (isset($orderInfo['deliveryId'])) {
|
|
|
$flag = array_search($orderInfo['deliveryId'], $idArr);
|
|
|
$flag !== false && $result['dispatchMode'][$flag]['isSelected'] = true;
|
|
|
} else {
|
|
|
$result['dispatchMode'][$defaultKey]['isSelected'] = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 配送时间
|
|
|
if (isset($payReturn['delivery_time'])) {
|
|
|
$idArr = array();
|
|
|
$defaultKey = 0;
|
|
|
$oneDelivTime = array();
|
|
|
foreach ($payReturn['delivery_time'] as $key => $one) {
|
|
|
$oneDelivTime = array();
|
|
|
$oneDelivTime['id'] = $one['delivery_time_id'];
|
|
|
$oneDelivTime['name'] = $one['delivery_time_string'];
|
|
|
($one['default'] === 'Y') && $defaultKey = $key;
|
|
|
|
|
|
$idArr[$key] = $oneDelivTime['id'];
|
|
|
|
|
|
$result['dispatchTime'][] = $oneDelivTime;
|
|
|
}
|
|
|
|
|
|
if (isset($orderInfo['deliveryTimeId'])) {
|
|
|
$flag = array_search($orderInfo['deliveryTimeId'], $idArr);
|
|
|
$flag !== false && $result['dispatchTime'][$flag]['isSelected'] = true;
|
|
|
} else {
|
|
|
$result['dispatchTime'][$defaultKey]['isSelected'] = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 订单商品
|
|
|
if (isset($payReturn['goods_list'])) {
|
|
|
$oneGoods = array();
|
|
|
foreach ($payReturn['goods_list'] as $single) {
|
|
|
$oneGoods = array();
|
|
|
$oneGoods['id'] = $single['product_sku']; // TODO 未确定用哪个
|
|
|
$oneGoods['thumb'] = Images::getImageUrl($single['goods_images'], 120, 120);
|
|
|
$oneGoods['name'] = $single['product_name'];
|
|
|
$oneGoods['color'] = $single['color_name'];
|
|
|
$oneGoods['size'] = $single['size_name'];
|
|
|
$oneGoods['price'] = Helpers::transPrice($single['sales_price']);
|
|
|
$oneGoods['count'] = $single['buy_number'];
|
|
|
|
|
|
$result['goods'][] = $oneGoods;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 支付方式
|
|
|
if (isset($payReturn['payment_way'])) {
|
|
|
$onePay = array();
|
|
|
foreach ($payReturn['payment_way'] as $pay) {
|
|
|
$onePay = array();
|
|
|
$onePay['id'] = $pay['payment_id'];
|
|
|
$onePay['paymentType'] = $pay['payment_type'];
|
|
|
$onePay['name'] = $pay['payment_type_name'];
|
|
|
$onePay['default'] = ($pay['default'] === 'Y');
|
|
|
|
|
|
$result['paymentWay'][] = $onePay;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 有货币
|
|
|
$result['yohoCoin'] = (isset($orderCompute['use_yoho_coin']) && !empty($orderCompute['use_yoho_coin'])) ? $orderCompute['use_yoho_coin'] : $payReturn['yoho_coin'];
|
|
|
|
|
|
// 订单数据
|
|
|
if (isset($payReturn['shopping_cart_data']) && !empty($payReturn['shopping_cart_data'])) {
|
|
|
$sumPrice = isset($orderCompute['order_amount']) ? $orderCompute['order_amount'] : $payReturn['shopping_cart_data']['order_amount'];
|
|
|
$freight = isset($orderCompute['promotion_formula_list']['promotion_amount']) ? $orderCompute['promotion_formula_list'][1]['promotion_amount'] : $payReturn['shopping_cart_data']['promotion_formula_list'][1]['promotion_amount'];
|
|
|
$couponPrice = isset($orderCompute['coupon_amount']) ? $orderCompute['coupon_amount'] : false;
|
|
|
$salePrice = isset($orderCompute['discount_amount']) ? $orderCompute['discount_amount'] : $payReturn['shopping_cart_data']['promotion_formula_list'][3]['promotion_amount'];
|
|
|
$price = isset($orderCompute['last_order_amount']) ? $orderCompute['last_order_amount'] : $payReturn['shopping_cart_data']['last_order_amount'];
|
|
|
$result['sumPrice'] = Helpers::transPrice($sumPrice);
|
|
|
$result['salePrice'] = Helpers::transPrice($salePrice);
|
|
|
$result['price'] = Helpers::transPrice($price);
|
|
|
$result['freight'] = $freight;
|
|
|
$result['couponPrice'] = $couponPrice;
|
|
|
}
|
|
|
|
|
|
// 发票有关数据
|
|
|
if (isset($payReturn['invoices']) && !empty($payReturn['invoices'])) {
|
|
|
$one = array();
|
|
|
foreach ($payReturn['invoices']['invoices_type_list'] as $inv) {
|
|
|
$one = array();
|
|
|
$one['id'] = $inv['invoices_type_id'];
|
|
|
$one['name'] = $inv['invoices_type_name'];
|
|
|
isset($orderInfo['invoiceType']) && $one['id'] == $orderInfo['invoiceType'] && $one['isSelected'] = true;
|
|
|
|
|
|
$result['invoice'][] = $one;
|
|
|
}
|
|
|
$result['invoice'][] = $one;
|
|
|
}
|
|
|
|
|
|
// 发票信息需要记录
|
|
|
if (isset($orderInfo['invoice'])) {
|
|
|
$result['needInvoice'] = $orderInfo['invoice'];
|
|
|
$result['invoiceText'] = $orderInfo['invoiceText'];
|
|
|
}
|
|
|
if (isset($orderInfo['invoice'])) {
|
|
|
$result['needInvoice'] = $orderInfo['invoice'];
|
|
|
$result['invoiceText'] = $orderInfo['invoiceText'];
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 留言
|
|
|
isset($orderInfo['msg']) && $result['msg'] = $orderInfo['msg'];
|
|
|
|
|
|
// 优惠券数据
|
|
|
$coupons = array();
|
|
|
!empty($orderCompute['coupon_amount']) && $coupons['value'] = $orderInfo['couponValue'];
|
|
|
$coupons += self::getCouponList($uid, true);
|
|
|
$result['coupon'] = $coupons;
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 购物车结算--支付方式和配送方式选择以及是否使用YOHO币接口返回的数据处理
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $cartType 购物车类型,ordinary表示普通购物车
|
|
|
* @param int $deliveryWay 配送方式,1表示普通快递,2表示顺丰速运
|
|
|
* @param int $paymentType 支付方式,1表示在线支付,2表示货到付款
|
|
|
* @param string $couponCode 优惠券码
|
|
|
* @param mixed $yohoCoin 使用的YOHO币数量
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function orderCompute($uid, $cartType, $deliveryWay, $paymentType, $couponCode, $yohoCoin)
|
|
|
{
|
|
|
$result = array();
|
|
|
|
|
|
$compute = CartData::orderCompute($uid, $cartType, $deliveryWay, $paymentType, $couponCode, $yohoCoin);
|
|
|
if ($compute && isset($compute['code']) && $compute['code'] === 200) {
|
|
|
$result = $compute['data'];
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 购物车结算--输入优惠券代码返回的结果处理
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $couponCode 优惠券代码
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function searchCoupon($uid, $couponCode)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
$coupon = CartData::searchCoupon($uid, $couponCode);
|
|
|
if ($coupon && isset($coupon['code'])) {
|
|
|
$result = $coupon;
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 处理优惠券列表数据
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param boolean $onlyTotal 只返回总数
|
|
|
* @return array|mixed 处理之后的优惠券数据
|
|
|
*/
|
|
|
public static function getCouponList($uid, $onlyTotal = false)
|
|
|
{
|
|
|
$result = array();
|
|
|
|
|
|
// 调用接口获取优惠券数据
|
|
|
$coupons = CartData::getCouponList($uid);
|
|
|
|
|
|
// 处理优惠券数据
|
|
|
if (isset($coupons['data'])) {
|
|
|
|
|
|
if ($onlyTotal) {
|
|
|
$result['count'] = count($coupons['data']['couponList']);
|
|
|
} else {
|
|
|
$couponArr = array();
|
|
|
isset($coupons['data']['couponList']) && $couponArr = $coupons['data']['couponList'];
|
|
|
|
|
|
foreach ($couponArr as &$val) {
|
|
|
$notAvailableRes = self::searchCoupon($uid, $val['couponCode']);
|
|
|
// 处理可用的优惠券
|
|
|
if (isset($notAvailableRes['code']) && $notAvailableRes['code'] !== 200) {
|
|
|
$val['notAvailable'] = true;
|
|
|
}
|
|
|
}
|
|
|
!empty($couponArr) && $result = $couponArr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 购物车结算--提交结算信息
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param int $addressId 地址ID
|
|
|
* @param int $cartType 购物车类型ID
|
|
|
* @param int $deliveryTime 寄送时间ID
|
|
|
* @param int $deliveryWay 寄送方式ID
|
|
|
* @param string $invoiceTitle 发票说明
|
|
|
* @param int $invoiceId 发票类型ID
|
|
|
* @param int $paymentId 支付方式ID
|
|
|
* @param int $paymentType 支付类型ID
|
|
|
* @param string $remark 留言
|
|
|
* @param string $couponCode 优惠券码
|
|
|
* @param mixed $yohoCoin 使用的YOHO币数量或为空
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function orderSub($uid, $addressId, $cartType, $deliveryTime, $deliveryWay, $invoiceTitle, $invoiceId, $paymentId, $paymentType, $remark, $couponCode, $yohoCoin)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦');
|
|
|
|
|
|
if (empty($addressId)) {
|
|
|
$result['code'] = 401;
|
|
|
$result['message'] = '配送地址不能为空';
|
|
|
} elseif (empty($deliveryTime)) {
|
|
|
$result['code'] = 402;
|
|
|
$result['message'] = '请选择配送时间';
|
|
|
} elseif (empty($deliveryWay)) {
|
|
|
$result['code'] = 403;
|
|
|
$result['message'] = '请选择配送方式';
|
|
|
} else {
|
|
|
$orderSubRes = CartData::orderSub($uid, $addressId, $cartType, $deliveryTime, $deliveryWay, $invoiceTitle, $invoiceId, $paymentId, $paymentType, $remark, $couponCode, $yohoCoin);
|
|
|
// 优惠券数据
|
|
|
$coupons = array();
|
|
|
!empty($orderCompute['coupon_amount']) && $coupons['value'] = $orderInfo['couponValue'];
|
|
|
$coupons += self::getCouponList($uid, true);
|
|
|
$result['coupon'] = $coupons;
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 购物车结算--支付方式和配送方式选择以及是否使用YOHO币接口返回的数据处理
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $cartType 购物车类型,ordinary表示普通购物车
|
|
|
* @param int $deliveryWay 配送方式,1表示普通快递,2表示顺丰速运
|
|
|
* @param int $paymentType 支付方式,1表示在线支付,2表示货到付款
|
|
|
* @param string $couponCode 优惠券码
|
|
|
* @param mixed $yohoCoin 使用的YOHO币数量
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function orderCompute($uid, $cartType, $deliveryWay, $paymentType, $couponCode, $yohoCoin)
|
|
|
{
|
|
|
$result = array();
|
|
|
|
|
|
$compute = CartData::orderCompute($uid, $cartType, $deliveryWay, $paymentType, $couponCode, $yohoCoin);
|
|
|
if ($compute && isset($compute['code']) && $compute['code'] === 200) {
|
|
|
$result = $compute['data'];
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 购物车结算--输入优惠券代码返回的结果处理
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param string $couponCode 优惠券代码
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function searchCoupon($uid, $couponCode)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦~');
|
|
|
|
|
|
$coupon = CartData::searchCoupon($uid, $couponCode);
|
|
|
if ($coupon && isset($coupon['code'])) {
|
|
|
$result = $coupon;
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 处理优惠券列表数据
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param boolean $onlyTotal 只返回总数
|
|
|
* @return array|mixed 处理之后的优惠券数据
|
|
|
*/
|
|
|
public static function getCouponList($uid, $onlyTotal = false)
|
|
|
{
|
|
|
$result = array();
|
|
|
|
|
|
// 调用接口获取优惠券数据
|
|
|
$coupons = CartData::getCouponList($uid);
|
|
|
|
|
|
// 处理优惠券数据
|
|
|
if (isset($coupons['data'])) {
|
|
|
|
|
|
if ($onlyTotal) {
|
|
|
$result['count'] = count($coupons['data']['couponList']);
|
|
|
} else {
|
|
|
$couponArr = array();
|
|
|
isset($coupons['data']['couponList']) && $couponArr = $coupons['data']['couponList'];
|
|
|
|
|
|
foreach ($couponArr as &$val) {
|
|
|
$notAvailableRes = self::searchCoupon($uid, $val['couponCode']);
|
|
|
// 处理可用的优惠券
|
|
|
if (isset($notAvailableRes['code']) && $notAvailableRes['code'] !== 200) {
|
|
|
$val['notAvailable'] = true;
|
|
|
}
|
|
|
}
|
|
|
!empty($couponArr) && $result = $couponArr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 购物车结算--提交结算信息
|
|
|
*
|
|
|
* @param int $uid 用户ID
|
|
|
* @param int $addressId 地址ID
|
|
|
* @param int $cartType 购物车类型ID
|
|
|
* @param int $deliveryTime 寄送时间ID
|
|
|
* @param int $deliveryWay 寄送方式ID
|
|
|
* @param string $invoiceTitle 发票说明
|
|
|
* @param int $invoiceId 发票类型ID
|
|
|
* @param int $paymentId 支付方式ID
|
|
|
* @param int $paymentType 支付类型ID
|
|
|
* @param string $remark 留言
|
|
|
* @param string $couponCode 优惠券码
|
|
|
* @param mixed $yohoCoin 使用的YOHO币数量或为空
|
|
|
* @return array 接口返回的数据
|
|
|
*/
|
|
|
public static function orderSub($uid, $addressId, $cartType, $deliveryTime, $deliveryWay, $invoiceTitle, $invoiceId, $paymentId, $paymentType, $remark, $couponCode, $yohoCoin)
|
|
|
{
|
|
|
$result = array('code' => 400, 'message' => '出错啦');
|
|
|
|
|
|
if (empty($addressId)) {
|
|
|
$result['code'] = 401;
|
|
|
$result['message'] = '配送地址不能为空';
|
|
|
} elseif (empty($deliveryTime)) {
|
|
|
$result['code'] = 402;
|
|
|
$result['message'] = '请选择配送时间';
|
|
|
} elseif (empty($deliveryWay)) {
|
|
|
$result['code'] = 403;
|
|
|
$result['message'] = '请选择配送方式';
|
|
|
} else {
|
|
|
$orderSubRes = CartData::orderSub($uid, $addressId, $cartType, $deliveryTime, $deliveryWay, $invoiceTitle, $invoiceId, $paymentId, $paymentType, $remark, $couponCode, $yohoCoin);
|
|
|
if ($orderSubRes && isset($orderSubRes['code'])) {
|
|
|
$result = $orderSubRes;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 处理不同类型的购物车数据
|
|
|
*
|
|
|
* @param array $data 不同类型购物车数据
|
|
|
* @param bool $onlyGift 只获取赠品的商品数据
|
|
|
* @param bool $onlyAdvanceBuy 只获取加价购的商品数据
|
|
|
* @return array $result 处理之后的不同类型购物车数据
|
|
|
*/
|
|
|
private static function procCartData($data, $onlyGift = false, $onlyAdvanceBuy = false)
|
|
|
{
|
|
|
$result = array();
|
|
|
|
|
|
if (!$onlyAdvanceBuy) {
|
|
|
// 赠品
|
|
|
$result['giftCount'] = 0;
|
|
|
$result['freebie'] = Helpers::formatAdvanceGoods($data['gift_list'], $result['giftCount']);
|
|
|
}
|
|
|
|
|
|
if (!$onlyGift) {
|
|
|
// 加价购
|
|
|
$result['advanceBuyCount'] = 0;
|
|
|
$result['advanceBuy'] = Helpers::formatAdvanceGoods($data['price_gift'], $result['advanceBuyCount']);
|
|
|
}
|
|
|
|
|
|
if (!$onlyGift && !$onlyAdvanceBuy) {
|
|
|
// 购买的可用商品列表
|
|
|
$validGoods = Helpers::formatCartGoods($data['goods_list']);
|
|
|
!empty($validGoods) && $result['goods'] = $validGoods;
|
|
|
|
|
|
// 失效商品列表
|
|
|
$notValidGoods = Helpers::formatCartGoods($data['sold_out_goods_list']);
|
|
|
!empty($notValidGoods) && $result['$notValidGoods'] = $notValidGoods;
|
|
|
|
|
|
// 赠品和加价购商品
|
|
|
(count($data['gift_list']) || count($data['price_gift'])) && $result['freebieOrAdvanceBuy'] = true;
|
|
|
|
|
|
// 结算数据
|
|
|
$result['price'] = Helpers::transPrice($data['shopping_cart_data']['order_amount']);
|
|
|
$result['activityPrice'] = Helpers::transPrice($data['shopping_cart_data']['discount_amount']);
|
|
|
$result['count'] = $data['shopping_cart_data']['goods_count'];
|
|
|
$result['sumPrice'] = Helpers::transPrice($data['shopping_cart_data']['order_amount']);
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
$result = $orderSubRes;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 处理不同类型的购物车数据
|
|
|
*
|
|
|
* @param array $data 不同类型购物车数据
|
|
|
* @param bool $onlyGift 只获取赠品的商品数据
|
|
|
* @param bool $onlyAdvanceBuy 只获取加价购的商品数据
|
|
|
* @return array $result 处理之后的不同类型购物车数据
|
|
|
*/
|
|
|
private static function procCartData($data, $onlyGift = false, $onlyAdvanceBuy = false)
|
|
|
{
|
|
|
$result = array();
|
|
|
|
|
|
do {
|
|
|
// 数据为空时返回空的标志
|
|
|
if (empty($data)) {
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
if ($onlyAdvanceBuy) {
|
|
|
// 赠品
|
|
|
$result['freebie'] = Helpers::formatAdvanceGoods($data['gift_list']);
|
|
|
break;
|
|
|
}
|
|
|
if ($onlyGift) {
|
|
|
// 加价购
|
|
|
$result['advanceBuy'] = Helpers::formatAdvanceGoods($data['price_gift']);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 购买的可用商品列表
|
|
|
$validGoods = Helpers::formatCartGoods($data['goods_list']);
|
|
|
if (!empty($validGoods)) {
|
|
|
$result['goods'] = $validGoods;
|
|
|
}
|
|
|
|
|
|
// 失效商品列表
|
|
|
$notValidGoods = Helpers::formatCartGoods($data['sold_out_goods_list']);
|
|
|
if (!empty($notValidGoods)) {
|
|
|
$result['$notValidGoods'] = $notValidGoods;
|
|
|
}
|
|
|
|
|
|
// 赠品和加价购商品
|
|
|
if (count($data['gift_list']) || count($data['price_gift'])) {
|
|
|
$result['freebieOrAdvanceBuy'] = true;
|
|
|
// 赠品
|
|
|
$result['giftCount'] = 0;
|
|
|
$result['freebie'] = Helpers::formatAdvanceGoods($data['gift_list'], $result['giftCount']);
|
|
|
// 加价购
|
|
|
$result['advanceBuyCount'] = 0;
|
|
|
$result['advanceBuy'] = Helpers::formatAdvanceGoods($data['price_gift'], $result['advanceBuyCount']);
|
|
|
}
|
|
|
|
|
|
// 结算数据
|
|
|
$result['price'] = Helpers::transPrice($data['shopping_cart_data']['order_amount']);
|
|
|
$result['activityPrice'] = Helpers::transPrice($data['shopping_cart_data']['discount_amount']);
|
|
|
$result['count'] = $data['shopping_cart_data']['goods_count'];
|
|
|
$result['sumPrice'] = Helpers::transPrice($data['shopping_cart_data']['order_amount']);
|
|
|
}while(0);
|
|
|
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
} |
...
|
...
|
|