关联产品

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 = [ $data = [
'cart_ids' => isset($this->params[ 'cart_ids' ]) ? $this->params[ 'cart_ids' ] : '', 'cart_ids' => isset($this->params[ 'cart_ids' ]) ? $this->params[ 'cart_ids' ] : '',
'sku_id' => isset($this->params[ 'sku_id' ]) ? $this->params[ 'sku_id' ] : '', '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' ] : '', 'num' => isset($this->params[ 'num' ]) ? $this->params[ 'num' ] : '',
'site_id' => $this->site_id,//站点id 'site_id' => $this->site_id,//站点id
'member_id' => $this->member_id, 'member_id' => $this->member_id,
@ -201,6 +202,7 @@ class Ordercreate extends BaseApi
$data = [ $data = [
'cart_ids' => isset($this->params[ 'cart_ids' ]) ? $this->params[ 'cart_ids' ] : '', 'cart_ids' => isset($this->params[ 'cart_ids' ]) ? $this->params[ 'cart_ids' ] : '',
'sku_id' => isset($this->params[ 'sku_id' ]) ? $this->params[ 'sku_id' ] : '', '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 'site_id' => $this->site_id,//站点id
'num' => isset($this->params[ 'num' ]) ? $this->params[ 'num' ] : '', 'num' => isset($this->params[ 'num' ]) ? $this->params[ 'num' ] : '',
'member_id' => $this->member_id, 'member_id' => $this->member_id,

View File

@ -1072,7 +1072,7 @@ class Goods extends BaseModel
* @param string $order * @param string $order
* @param string $limit * @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); $list = model('goods')->getList($condition, $field, $order, $alias, $join, '', $limit);
if (!empty($list)) { if (!empty($list)) {
@ -1089,6 +1089,7 @@ class Goods extends BaseModel
if (isset($v['real_stock'])) { if (isset($v['real_stock'])) {
$list[$k]['real_stock'] = numberFormat($list[$k]['real_stock']); $list[$k]['real_stock'] = numberFormat($list[$k]['real_stock']);
} }
$list[$k]['select'] = false;
} }
} }
return $this->success($list); return $this->success($list);

View File

@ -748,6 +748,8 @@ class OrderCreate extends BaseModel
{ {
$site_id = $data['site_id']; $site_id = $data['site_id'];
$cart_ids = $data['cart_ids'] ?? []; $cart_ids = $data['cart_ids'] ?? [];
$sku_array = $data['sku_array'] ?? [];
$sku_id = $data['sku_id'] ?? [];
$member_id = $data['member_id']; $member_id = $data['member_id'];
$condition = array( $condition = array(
['ngs.site_id', '=', $site_id], ['ngs.site_id', '=', $site_id],
@ -788,8 +790,13 @@ class OrderCreate extends BaseModel
} }
$condition[] = ['ngc.cart_id', 'in', $cart_ids]; $condition[] = ['ngc.cart_id', 'in', $cart_ids];
$condition[] = ['ngc.member_id', '=', $member_id]; $condition[] = ['ngc.member_id', '=', $member_id];
} else { } else if(!empty($sku_array)) {
$sku_id = $data['sku_id']; $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']; $num = $data['num'];
$field .= ',' . $num . ' as num'; $field .= ',' . $num . ' as num';
$condition[] = [ $condition[] = [
@ -804,9 +811,15 @@ class OrderCreate extends BaseModel
if (!empty($goods_list)) { if (!empty($goods_list)) {
$express_type_list = (new \app\model\express\Config())->getExpressTypeList($data['site_id']); $express_type_list = (new \app\model\express\Config())->getExpressTypeList($data['site_id']);
foreach ($goods_list as $k => $v) { 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'); $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 = $v;
$goods_item['delivery'] = $delivery_array; $goods_item['delivery'] = $delivery_array;
$goods_item['store_id'] = $store_id; $goods_item['store_id'] = $store_id;