Procházet zdrojové kódy

【Add】增加SKU全满足的起购功能

liuxiangxin před 3 měsíci
rodič
revize
cd4bbeaa60
2 změnil soubory, kde provedl 20 přidání a 1 odebrání
  1. 19 0
      app/Http/Controllers/Api/Orders.php
  2. 1 1
      app/Models/Product.php

+ 19 - 0
app/Http/Controllers/Api/Orders.php

@@ -132,6 +132,25 @@ class Orders extends Api{
 					if( $total > $productInfo['quota'] ) return json_send(['code'=>'error','msg'=>'限购'.$productInfo['quota'].'单-'.$productInfo['product_name'],'data'=>['error'=>'已超限=>'.($total - $productInfo['quota'])]]);
 				}
 			}
+			// 如果有限制产品的SKU起购规则是与
+			if( $productInfo['sku_min_quota_and'] ){
+				// 查询该产品的所有SKU
+				$skuMin 					= $ProductSkus->getListByProductId($productInfo['id']);
+				// 循环产品的SKU
+				foreach ($skuMin as $key => $value) {
+					// 如果SKU不限制起购数量,跳过
+					if( !$value['min_quota'] ) continue;
+					// 如果限购的SKU不在购买列表中
+					if( !in_array($value['id'],array_column($buyList,'product_skuid')) ) return json_send(['code'=>'error','msg'=>'最少购买'.$value['min_quota'].'单-'.$productInfo['product_name'].'【'.$value['attr_names'].'】','data'=>['error'=>'最少购买'.$value['min_quota'].'单-'.$productInfo['product_name']]]);;
+					// 如果购买数量小于最低起购数量
+					foreach ($buyList as $item) {
+						// 如果SKU不匹配,跳过
+						if( $item['product_skuid'] !=  $value['id'] ) continue;
+						// 如果购买数量小于最低起购数量
+						if( $item['buy_num'] < $value['min_quota'] ) return json_send(['code'=>'error','msg'=>'最少购买'.$value['min_quota'].'单-'.$productInfo['product_name'].'【'.$value['attr_names'].'】','data'=>['error'=>'最少购买'.$value['min_quota'].'单-'.$productInfo['product_name']]]);
+					}
+				}
+			}
 			// 如果存在SKU
 			if( $buyInfo['product_skuid'] ) {
 				// 判断SKU信息存不存在

+ 1 - 1
app/Models/Product.php

@@ -162,7 +162,7 @@ class Product extends Model
         // 写入数据表
         $data				    = $this->query();
         if( $citys )            $data = $data->join('product_city','product_city.product_id','=','product.id')->whereIn('product_city.city_id',$citys);
-        $data				    = $data->whereIn('product.id',$productIds)->where([['product.status','=',0]])->get(['product.id','product.name as product_name','product.thumb as product_thumb','product.spec as sku_attr_names','product.price','product.stock','product.status','product.business_id','product.quota','product.min_quota','sku_min_quota_and','product.quota_start','product.quota_end','product.tag_scope','product.tag_exclude'])->toArray();
+        $data				    = $data->whereIn('product.id',$productIds)->where([['product.status','=',0]])->get(['product.id','product.name as product_name','product.thumb as product_thumb','product.spec as sku_attr_names','product.price','product.stock','product.status','product.business_id','product.quota','product.min_quota','product.sku_min_quota_and','product.quota_start','product.quota_end','product.tag_scope','product.tag_exclude'])->toArray();
         // 列表
         $list                   = [];
         // 循环处理