|
@@ -120,18 +120,47 @@ class Order
|
|
|
*/
|
|
|
public function createOrderBefore(&$params, $extra)
|
|
|
{
|
|
|
+ if(empty($extra['cart'])){
|
|
|
|
|
|
- $specs = explode(',', $extra['spec']);
|
|
|
- foreach ($specs as &$spec) {
|
|
|
- $spec = str_replace('|', ',', $spec);
|
|
|
- }
|
|
|
- $numbers = explode(',', $extra['number']);
|
|
|
- $productIds = explode(',', $extra['product_id']);
|
|
|
+ $specs = explode(',', $extra['spec']);
|
|
|
+ foreach ($specs as &$spec) {
|
|
|
+ $spec = str_replace('|', ',', $spec);
|
|
|
+ }
|
|
|
+ $numbers = explode(',', $extra['number']);
|
|
|
+ $productIds = explode(',', $extra['product_id']);
|
|
|
+
|
|
|
+ if (count($specs) !== count($numbers) || count($specs) !== count($productIds)) {
|
|
|
+ throw new Exception(__('Parameter error'));
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+
|
|
|
+ $carts = Db::name('unishop_cart')->field('id,product_id,spec,number')
|
|
|
+ ->whereIn('id', $extra['cart'])
|
|
|
+ ->order(['id' => 'desc'])
|
|
|
+ ->select();
|
|
|
+
|
|
|
+// dump($carts);
|
|
|
+
|
|
|
+ $numbers = array_column($carts,'number');
|
|
|
+ $productIds = array_column($carts,'product_id');
|
|
|
+ $specs = array_column($carts,'spec');
|
|
|
+
|
|
|
+ foreach ($productIds as $key => $productId) {
|
|
|
+ $productIds[$key] = Hashids::encodeHex($productId);
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach ($specs as $key => $spec) {
|
|
|
+ $specs[$key] = is_null($spec) ? '' : $spec;
|
|
|
+ }
|
|
|
|
|
|
- if (count($specs) !== count($numbers) || count($specs) !== count($productIds)) {
|
|
|
- throw new Exception(__('Parameter error'));
|
|
|
}
|
|
|
|
|
|
+ /*dump($numbers);
|
|
|
+ dump($productIds);
|
|
|
+ dump($specs);
|
|
|
+ exit;*/
|
|
|
+
|
|
|
// 订单价格
|
|
|
$orderPrice = 0;
|
|
|
|