diff --git a/app/api/controller/Ordercreate.php b/app/api/controller/Ordercreate.php index f12828d..06b40d7 100644 --- a/app/api/controller/Ordercreate.php +++ b/app/api/controller/Ordercreate.php @@ -145,6 +145,7 @@ class Ordercreate extends BaseApi $data = [ 'cart_ids' => isset($this->params[ 'cart_ids' ]) ? $this->params[ 'cart_ids' ] : '', 'sku_id' => isset($this->params[ 'sku_id' ]) ? $this->params[ 'sku_id' ] : '', + 'sku_array' => isset($this->params[ 'sku_array' ]) ? $this->params[ 'sku_array' ] : [], 'num' => isset($this->params[ 'num' ]) ? $this->params[ 'num' ] : '', 'site_id' => $this->site_id,//站点id 'member_id' => $this->member_id, @@ -201,6 +202,7 @@ class Ordercreate extends BaseApi $data = [ 'cart_ids' => isset($this->params[ 'cart_ids' ]) ? $this->params[ 'cart_ids' ] : '', 'sku_id' => isset($this->params[ 'sku_id' ]) ? $this->params[ 'sku_id' ] : '', + 'sku_array' => isset($this->params[ 'sku_array' ]) ? $this->params[ 'sku_array' ] : [], 'site_id' => $this->site_id,//站点id 'num' => isset($this->params[ 'num' ]) ? $this->params[ 'num' ] : '', 'member_id' => $this->member_id, diff --git a/app/model/goods/Goods.php b/app/model/goods/Goods.php index 549ea5f..e92d5a1 100644 --- a/app/model/goods/Goods.php +++ b/app/model/goods/Goods.php @@ -1072,7 +1072,7 @@ class Goods extends BaseModel * @param string $order * @param string $limit */ - public function getGoodsList($condition = [], $field = 'goods_id,goods_class,goods_class_name,goods_attr_name,goods_name,site_id,sort,goods_image,goods_content,goods_state,price,market_price,cost_price,goods_stock,goods_stock_alarm,is_virtual,is_free_shipping,shipping_template,goods_spec_format,goods_attr_format,create_time', $order = 'create_time desc', $limit = null, $alias = '', $join = []) + public function getGoodsList($condition = [], $field = 'goods_id,goods_class,goods_class_name,goods_attr_name,goods_name,site_id,sort,goods_image,goods_content,goods_state,price,market_price,cost_price,goods_stock,goods_stock_alarm,is_virtual,is_free_shipping,shipping_template,goods_spec_format,goods_attr_format,create_time,sale_num', $order = 'create_time desc', $limit = null, $alias = '', $join = []) { $list = model('goods')->getList($condition, $field, $order, $alias, $join, '', $limit); if (!empty($list)) { @@ -1089,6 +1089,7 @@ class Goods extends BaseModel if (isset($v['real_stock'])) { $list[$k]['real_stock'] = numberFormat($list[$k]['real_stock']); } + $list[$k]['select'] = false; } } return $this->success($list); diff --git a/app/model/order/OrderCreate.php b/app/model/order/OrderCreate.php index 15d55ef..eb036c6 100644 --- a/app/model/order/OrderCreate.php +++ b/app/model/order/OrderCreate.php @@ -748,6 +748,8 @@ class OrderCreate extends BaseModel { $site_id = $data['site_id']; $cart_ids = $data['cart_ids'] ?? []; + $sku_array = $data['sku_array'] ?? []; + $sku_id = $data['sku_id'] ?? []; $member_id = $data['member_id']; $condition = array( ['ngs.site_id', '=', $site_id], @@ -788,8 +790,13 @@ class OrderCreate extends BaseModel } $condition[] = ['ngc.cart_id', 'in', $cart_ids]; $condition[] = ['ngc.member_id', '=', $member_id]; - } else { - $sku_id = $data['sku_id']; + } else if(!empty($sku_array)) { + $sku_array = json_decode($sku_array,true); + $sku_ids = array_column($sku_array,'sku_id'); + $condition[] = [ + ['ngs.sku_id' ,'in' ,$sku_ids] + ]; + }else{ $num = $data['num']; $field .= ',' . $num . ' as num'; $condition[] = [ @@ -804,9 +811,15 @@ class OrderCreate extends BaseModel if (!empty($goods_list)) { $express_type_list = (new \app\model\express\Config())->getExpressTypeList($data['site_id']); foreach ($goods_list as $k => $v) { - if ($v['num'] < 1) { + if ((!empty($cart_ids) || !empty($sku_id) && empty($sku_array)) && $v['num'] < 1) { $this->setError(1, '商品项的购买数量不能小于1'); } + if(!empty($sku_array)){ + $key = array_search($v['sku_id'],$sku_ids); + if($k !== false){ + $v['num'] = $sku_array[$key]['num']; + } + } $goods_item = $v; $goods_item['delivery'] = $delivery_array; $goods_item['store_id'] = $store_id;