关联产品

This commit is contained in:
古明 2025-03-24 09:36:04 +08:00
parent e59b5e1446
commit a900a6b19a
3 changed files with 20 additions and 4 deletions

View File

@ -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,

View File

@ -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);

View File

@ -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;