Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
YOHOBUYPC
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
2
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Plain Diff
Browse Files
Authored by
毕凯
9 years ago
Commit
e236e7ed66d7e208a41a908885437ba340f0e8ca
2 parents
9f0f4137
5cfd01eb
Merge branch 'develop' of
http://git.dev.yoho.cn/web/yohobuy
into develop
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
652 additions
and
629 deletions
framework
yohobuy/huodong.m.yohobuy.com/application/modules/Cuxiao/controllers/Coupon.php
yohobuy/m.yohobuy.com/application/controllers/ShoppingCart.php
yohobuy/m.yohobuy.com/application/models/Index/Cart.php
framework
@
e9d066dd
Subproject commit
75bbc3b075de19f239532f60c5995d06c5f814e2
Subproject commit
e9d066dd88a8e7e37103021c427a205a5cfcdcec
...
...
yohobuy/huodong.m.yohobuy.com/application/modules/Cuxiao/controllers/Coupon.php
View file @
e236e7e
...
...
@@ -52,7 +52,7 @@ class CouponController extends HuodongAction
$urlGirls
=
Helpers
::
url
(
'/cuxiao/coupon/girlsbrand'
);
$urlKids
=
Helpers
::
url
(
'/cuxiao/coupon/kidsbrand'
);
$urlLifestyle
=
Helpers
::
url
(
'/cuxiao/coupon/lifestylebrand'
);
$urlShare
=
Yohobuy
::
SERVICE_URL
.
'/operations/api/v5/webshare
/getShare'
;
$urlShare
=
'\/operations\/api\/v5\/webshare\
/getShare'
;
$urlEncode
=
strtr
(
$urlBoys
,
array
(
'/'
=>
'\\/'
));
$this
->
_view
->
display
(
'boysbrand'
,
array
(
...
...
@@ -67,7 +67,7 @@ class CouponController extends HuodongAction
'shareImg'
=>
'http://img12.static.yhbimg.com/couponImg/2015/11/26/09/0226ad7f8bcf5467a789e17b761c7557e0.jpg'
,
'shareDesc'
=>
'2015感恩季!品牌专属优惠券限时送!先领券,再购物,让你乐享整个冬季!'
,
'url_boys'
=>
$urlBoys
.
'?yohobuy={"action":"go.h5","params":{"id":"364","share":"'
.
$urlShare
.
'","shareparam":{"share_id":"406"},"islogin":"
N
","type":0,"url":"'
.
$urlBoys
.
'","param":{}}}'
,
'url_boys'
=>
$urlBoys
.
'?yohobuy={"action":"go.h5","params":{"id":"364","share":"'
.
$urlShare
.
'","shareparam":{"share_id":"406"},"islogin":"
Y
","type":0,"url":"'
.
$urlBoys
.
'","param":{}}}'
,
'url_girls'
=>
$urlGirls
.
'?yohobuy={"action":"go.h5","params":{"id":"366","share":"'
.
$urlShare
.
'","shareparam":{"share_id":"408"},"islogin":"N","type":0,"url":"'
.
$urlGirls
.
'","param":{}}}'
,
'url_kids'
=>
$urlKids
.
'?yohobuy={"action":"go.h5","params":{"id":"368","share":"'
.
$urlShare
.
'","shareparam":{"share_id":"410"},"islogin":"N","type":0,"url":"'
.
$urlKids
.
'","param":{}}}'
,
'url_lifestyle'
=>
$urlLifestyle
.
'?yohobuy={"action":"go.h5","params":{"id":"370","share":"'
.
$urlShare
.
'","shareparam":{"share_id":"412"},"islogin":"N","type":0,"url":"'
.
$urlLifestyle
.
'","param":{}}}'
,
...
...
yohobuy/m.yohobuy.com/application/controllers/ShoppingCart.php
View file @
e236e7e
...
...
@@ -122,11 +122,9 @@ class ShoppingcartController extends AbstractAction
$shoppingKey
=
Helpers
::
getShoppingKeyByCookie
();
$uid
=
$this
->
getUid
(
true
);
$data
=
array
(
'shoppingCartPage'
=>
true
,
'shoppingCart'
=>
CartModel
::
getCartData
(
$uid
,
$shoppingKey
,
true
)
);
$cartType
=
$this
->
get
(
'cartType'
,
'ordinary'
);
$data
=
array
(
'shoppingCartPage'
=>
true
);
$data
+=
CartModel
::
getCartData
(
$uid
,
$shoppingKey
,
$cartType
,
true
);
// 渲染模板
$this
->
_view
->
display
(
'gift-advance-good'
,
$data
);
...
...
@@ -142,12 +140,9 @@ class ShoppingcartController extends AbstractAction
$shoppingKey
=
Helpers
::
getShoppingKeyByCookie
();
$uid
=
$this
->
getUid
(
true
);
$data
=
array
(
'shoppingCartPage'
=>
true
,
'shoppingCart'
=>
CartModel
::
getCartData
(
$uid
,
$shoppingKey
,
false
,
true
)
);
print_r
(
$data
);
$cartType
=
$this
->
get
(
'cartType'
,
'ordinary'
);
$data
=
array
(
'shoppingCartPage'
=>
true
);
$data
+=
CartModel
::
getCartData
(
$uid
,
$shoppingKey
,
$cartType
,
false
,
true
);
// 渲染模板
$this
->
_view
->
display
(
'gift-advance-good'
,
$data
);
...
...
yohobuy/m.yohobuy.com/application/models/Index/Cart.php
View file @
e236e7e
...
...
@@ -17,632 +17,660 @@ 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 $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
;
}
}
...
...
Please
register
or
login
to post a comment