Ver código fonte

【Add】限购时排除赠品产品,后台提示限购与起购数据

liuxiangxin 4 meses atrás
pai
commit
b69ae0c7eb

+ 54 - 0
app/Http/Controllers/Admin/Product.php

@@ -235,6 +235,24 @@ class Product extends Auth{
 			if( $attr && !$skuList ) return json_send(['code'=>'error','msg'=>'规格属性存在时,请填写SKU','data'=>['error'=>'规格属性存在时,请填写SKU']]);
 			// 限购提示
 			if( $data['quota'] && ( !$data['quota_start'] || !$data['quota_end'] )) 	return json_send(['code'=>'error','msg'=>'限购必填限购时间','data'=>['error'=>'限购必填限购时间']]);
+			// 限购提示
+			if( $data['min_quota'] > $data['quota'] ) 	return json_send(['code'=>'error','msg'=>'起购数量请勿大于限购数量','data'=>['error'=>'起购数量请勿大于限购数量']]);
+			// SKU存在的时候,判断限购数量
+			if( $skuList )			{
+				// 循环处理
+				foreach ($skuList as $attrNames => $value) {
+					// SKU限购,所以限购时间也必须填
+					if( $value['quota'] && ( !$data['quota_start'] || !$data['quota_end'] )) 	return json_send(['code'=>'error','msg'=>'SKU限购时,请填限购时间','data'=>['error'=>'SKU限购时,请填限购时间']]);
+					// 限购提示
+					if( $value['min_quota'] > $value['quota'] ) 	return json_send(['code'=>'error','msg'=>$attrNames.'起购数量请勿大于限购数量','data'=>['error'=>$attrNames.'起购数量请勿大于限购数量']]);
+					// 提示起购数量异常,如果总起购数量小于SKU起购数量,提示
+					if( $data['min_quota'] && $value['min_quota'] < $data['min_quota'] ) 	return json_send(['code'=>'error','msg'=>'SKU的起购数量不能小于总起购数量','data'=>['error'=>'SKU的起购数量不能小于总起购数量']]);
+				}
+				// 限购数量
+				$quota 				= array_sum(array_column($skuList,'quota'));
+				// 提示限购数量异常
+				if( $data['quota']&& $data['quota'] < $quota ) 	return json_send(['code'=>'error','msg'=>'总限购数量不能小于SKU的限购数量','data'=>['error'=>'总限购数量不能小于SKU的限购数量']]);
+			}
 			// 上下架
 			if( $data['puton_time'] ) 	{
 				// 下架时间必填
@@ -438,6 +456,24 @@ class Product extends Auth{
 			if( $attr && !$skuList ) return json_send(['code'=>'error','msg'=>'规格属性存在时,请填写SKU','data'=>['error'=>'规格属性存在时,请填写SKU']]);
 			// 限购提示
 			if( $data['quota'] && ( !$data['quota_start'] || !$data['quota_end'] )) 	return json_send(['code'=>'error','msg'=>'限购必填限购时间','data'=>['error'=>'限购必填限购时间']]);
+			// 限购提示
+			if( $data['min_quota'] > $data['quota'] ) 	return json_send(['code'=>'error','msg'=>'起购数量请勿大于限购数量','data'=>['error'=>'起购数量请勿大于限购数量']]);
+			// SKU存在的时候,判断限购数量
+			if( $skuList )			{
+				// 循环处理
+				foreach ($skuList as $attrNames => $value) {
+					// SKU限购,所以限购时间也必须填
+					if( $value['quota'] && ( !$data['quota_start'] || !$data['quota_end'] )) 	return json_send(['code'=>'error','msg'=>'SKU限购时,请填限购时间','data'=>['error'=>'SKU限购时,请填限购时间']]);
+					// 限购提示
+					if( $value['min_quota'] > $value['quota'] ) 	return json_send(['code'=>'error','msg'=>$attrNames.'起购数量请勿大于限购数量','data'=>['error'=>$attrNames.'起购数量请勿大于限购数量']]);
+					// 提示起购数量异常,如果总起购数量小于SKU起购数量,提示
+					if( $data['min_quota'] && $value['min_quota'] < $data['min_quota'] ) 	return json_send(['code'=>'error','msg'=>'SKU的起购数量不能小于总起购数量','data'=>['error'=>'SKU的起购数量不能小于总起购数量']]);
+				}
+				// 限购数量
+				$quota 				= array_sum(array_column($skuList,'quota'));
+				// 提示限购数量异常
+				if( $data['quota']&& $data['quota'] < $quota ) 	return json_send(['code'=>'error','msg'=>'总限购数量不能小于SKU的限购数量','data'=>['error'=>'总限购数量不能小于SKU的限购数量']]);
+			}
 			// 上下架
 			if( $data['puton_time'] ) 	{
 				// 下架时间必填
@@ -670,8 +706,26 @@ class Product extends Auth{
 			if( $attr && !$skuList ) return json_send(['code'=>'error','msg'=>'规格属性存在时,请填写SKU','data'=>['error'=>'规格属性存在时,请填写SKU']]);
 			// 限购提示
 			if( $data['quota'] && ( !$data['quota_start'] || !$data['quota_end'] )) 	return json_send(['code'=>'error','msg'=>'限购必填限购时间','data'=>['error'=>'限购必填限购时间']]);
+			// 限购提示
+			if( $data['min_quota'] > $data['quota'] ) 	return json_send(['code'=>'error','msg'=>'起购数量请勿大于限购数量','data'=>['error'=>'起购数量请勿大于限购数量']]);
 			// 总库存
 			if( $skuList )			$data['stock'] = array_sum(array_column($skuList,'stock'));
+			// SKU存在的时候,判断限购数量
+			if( $skuList )			{
+				// 循环处理
+				foreach ($skuList as $attrNames => $value) {
+					// SKU限购,所以限购时间也必须填
+					if( $value['quota'] && ( !$data['quota_start'] || !$data['quota_end'] )) 	return json_send(['code'=>'error','msg'=>'SKU限购时,请填限购时间','data'=>['error'=>'SKU限购时,请填限购时间']]);
+					// 限购提示
+					if( $value['min_quota'] > $value['quota'] ) 	return json_send(['code'=>'error','msg'=>$attrNames.'起购数量请勿大于限购数量','data'=>['error'=>$attrNames.'起购数量请勿大于限购数量']]);
+					// 提示起购数量异常,如果总起购数量小于SKU起购数量,提示
+					if( $data['min_quota'] && $value['min_quota'] < $data['min_quota'] ) 	return json_send(['code'=>'error','msg'=>'SKU的起购数量不能小于总起购数量','data'=>['error'=>'SKU的起购数量不能小于总起购数量']]);
+				}
+				// 限购数量
+				$quota 				= array_sum(array_column($skuList,'quota'));
+				// 提示限购数量异常
+				if( $data['quota'] && $data['quota'] < $quota ) 	return json_send(['code'=>'error','msg'=>'总限购数量不能小于SKU的限购数量','data'=>['error'=>'总限购数量不能小于SKU的限购数量']]);
+			}
 			// 总库存
 			$data['stock_total']	= $data['stock'];
 			// 获取规格属性

+ 2 - 2
app/Http/Controllers/Api/Orders.php

@@ -131,7 +131,7 @@ class Orders extends Api{
 				// 是否在限购时间,当前时间大于开始时间,并且小于结束时间
 				if( $productInfo['quota_start'] <= $time && $time <= $productInfo['quota_end'] ){
 					// 通过时间查询商品的购买总数
-					$total 				= $OrdersProduct->query()->whereIn('status',[0,1,2,3,8,9])->where([['custom_uid','=',$uid],['product_id','=',$productInfo['id']],['insert_time','>=',$productInfo['quota_start']],['insert_time','<=',$productInfo['quota_end']]])->sum('buy_num');
+					$total 				= $OrdersProduct->query()->whereIn('status',[0,1,2,3,8,9])->where([['custom_uid','=',$uid],['is_rebate','=',0],['product_id','=',$productInfo['id']],['insert_time','>=',$productInfo['quota_start']],['insert_time','<=',$productInfo['quota_end']]])->sum('buy_num');
 					// 判断限购数量
 					$total	 			= $buyNum[$buyInfo['product_id']] + $total;
 					// 如果超过数量
@@ -159,7 +159,7 @@ class Orders extends Api{
 					// 是否在限购时间,当前时间大于开始时间,并且小于结束时间
 					if( $productInfo['quota_start'] <= $time && $time <= $productInfo['quota_end'] ){
 						// 通过时间查询商品的购买总数
-						$total 				= $OrdersProduct->query()->whereIn('status',[0,1,2,3,8,9])->where([['custom_uid','=',$uid],['product_id','=',$productInfo['id']],['sku_attr_names','=',$skuInfo['sku_attr_names']],['insert_time','>=',$productInfo['quota_start']],['insert_time','<=',$productInfo['quota_end']]])->sum('buy_num');
+						$total 				= $OrdersProduct->query()->whereIn('status',[0,1,2,3,8,9])->where([['custom_uid','=',$uid],['is_rebate','=',$uid],['product_id','=',$productInfo['id']],['sku_attr_names','=',$skuInfo['sku_attr_names']],['insert_time','>=',$productInfo['quota_start']],['insert_time','<=',$productInfo['quota_end']]])->sum('buy_num');
 						// 判断限购数量
 						$total	 			= $buyInfo['buy_num'] + $total;
 						// 如果超过数量