浏览代码

【Add】产品自动上下架功能,二维码城市优先

liuxiangxin 6 月之前
父节点
当前提交
7084fa8443

+ 9 - 3
app/Console/Commands/ProductDelist.php

@@ -21,7 +21,7 @@ class ProductDelist extends Command
      *
      * @var string
      */
-    protected $description = '限购产品自动下架';
+    protected $description = '产品自动下架';
 
     /**
      * Create a new command instance.
@@ -50,8 +50,14 @@ class ProductDelist extends Command
 	 * 
 	 * */
 	public function run_task(){
-		// 获取数据
-		( New Model() )->query()->where([['quota_end','>',0],['quota_end','<=',time()]])->update(['status'=>1,'update_time'=>time()]);
+        // 实例化
+        $Model          = New Model();
+		// 限购自动下架
+		$Model->query()->where([['quota_end','>',0],['quota_end','<=',time()],['status','=',0]])->update(['status'=>1,'update_time'=>time()]);
+        // 自动上架
+		$Model->query()->where([['puton_time','>',0],['puton_time','<=',time()],['status','=',1],['putoff_time','>=',time()]])->update(['status'=>0,'update_time'=>time()]);
+        // 自动下架
+		$Model->query()->where([['putoff_time','>',0],['putoff_time','<=',time()],['status','=',0]])->update(['status'=>1,'update_time'=>time()]);
 	}
 
 }

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

@@ -88,6 +88,8 @@ class Product extends Auth{
 			$data['quota']			= request('quota',0);
 			$data['quota_start']	= request('quota_start','');
 			$data['quota_end']		= request('quota_end','');
+			$data['puton_time']		= request('puton_time','');
+			$data['putoff_time']	= request('putoff_time','');
 			$data['stock']			= request('stock',0);
 			$data['status']			= 1;
 			$data['admin_uid']		= admin('uid');
@@ -99,10 +101,19 @@ class Product extends Auth{
 			$cityIds				= $cityIds ? $cityIds : [1];
 			$data['quota_start']	= $data['quota_start'] ? strtotime($data['quota_start']) : 0;
 			$data['quota_end']		= $data['quota_end'] ? strtotime($data['quota_end']) : 0;
+			$data['puton_time']		= $data['puton_time'] ? strtotime($data['puton_time']) : 0;
+			$data['putoff_time']	= $data['putoff_time'] ? strtotime($data['putoff_time']) : 0;
 			// 限购提示
 			if( !$data['thumb'] ) 	return json_send(['code'=>'error','msg'=>'请上传产品主图','data'=>['error'=>'请上传产品主图']]);
 			// 限购提示
 			if( $data['quota'] && ( !$data['quota_start'] || !$data['quota_end'] )) 	return json_send(['code'=>'error','msg'=>'限购必填限购时间','data'=>['error'=>'限购必填限购时间']]);
+			// 上下架
+			if( $data['puton_time'] ) 	{
+				// 下架时间必填
+				if( !$data['putoff_time'] )	return json_send(['code'=>'error','msg'=>'请填写自动下架时间','data'=>['error'=>'自动上架请填写下架时间']]);
+				// 下架时间必填
+				if( $data['putoff_time'] <= $data['puton_time'] ) return json_send(['code'=>'error','msg'=>'下架时间请晚于上架时间','data'=>['error'=>'下架时间请晚于上架时间']]);
+			}
 			// 总库存
 			if( $skuList )			$data['stock'] = array_sum(array_column($skuList,'stock'));
 			// 获取规格属性
@@ -232,6 +243,8 @@ class Product extends Auth{
 			$data['quota']			= request('quota',0);
 			$data['quota_start']	= request('quota_start','');
 			$data['quota_end']		= request('quota_end','');
+			$data['puton_time']		= request('puton_time','');
+			$data['putoff_time']	= request('putoff_time','');
 			$data['producer_id']	= request('producer_id',0);
 			$data['business_id']	= request('business_id',0);
 			$data['stock']			= request('stock',0);
@@ -244,10 +257,19 @@ class Product extends Auth{
 			$cityIds				= $cityIds ? $cityIds : [1];
 			$data['quota_start']	= $data['quota_start'] ? strtotime($data['quota_start']) : 0;
 			$data['quota_end']		= $data['quota_end'] ? strtotime($data['quota_end']) : 0;
+			$data['puton_time']		= $data['puton_time'] ? strtotime($data['puton_time']) : 0;
+			$data['putoff_time']	= $data['putoff_time'] ? strtotime($data['putoff_time']) : 0;
 			// 限购提示
 			if( !$data['thumb'] ) 	return json_send(['code'=>'error','msg'=>'请上传产品主图','data'=>['error'=>'请上传产品主图']]);
 			// 限购提示
 			if( $data['quota'] && ( !$data['quota_start'] || !$data['quota_end'] )) 	return json_send(['code'=>'error','msg'=>'限购必填限购时间','data'=>['error'=>'限购必填限购时间']]);
+			// 上下架
+			if( $data['puton_time'] ) 	{
+				// 下架时间必填
+				if( !$data['putoff_time'] )	return json_send(['code'=>'error','msg'=>'请填写自动下架时间','data'=>['error'=>'自动上架请填写下架时间']]);
+				// 下架时间必填
+				if( $data['putoff_time'] <= $data['puton_time'] ) return json_send(['code'=>'error','msg'=>'下架时间请晚于上架时间','data'=>['error'=>'下架时间请晚于上架时间']]);
+			}
 			// 总库存
 			if( $skuList )			$data['stock'] = array_sum(array_column($skuList,'stock'));
 			// 获取规格属性

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

@@ -80,7 +80,7 @@ class Orders extends Api{
 					// 判断限购数量
 					$total	 			= $buyNum[$buyInfo['product_id']] + $total;
 					// 如果超过数量
-					if( $total > $productInfo['quota'] ) return json_send(['code'=>'error','msg'=>'已限购'.$productInfo['product_name'],'data'=>['error'=>'已超限=>'.($total - $productInfo['quota'])]]);
+					if( $total > $productInfo['quota'] ) return json_send(['code'=>'error','msg'=>'已限购次数-'.$productInfo['product_name'],'data'=>['error'=>'已超限=>'.($total - $productInfo['quota'])]]);
 				}
 			}
 			// 如果存在SKU

+ 14 - 4
app/Models/WeiBan/Qrcode.php

@@ -116,19 +116,29 @@ class Qrcode extends Model
         $list                   = $this->getList();
         // 列表数据不存在
         if( !$list )            return ['thumb'=>'','link_url'=>''];
+        // 全国的码
+        $all                    = [];
+        // 城市的码
+        $city                   = [];
         // 循环列表
         foreach ($list as $key => $value) {
             //  如果没有限制城市
-			if( empty($value['city_ids']) )	continue;
+			if( empty($value['city_ids']) )	{
+                $all[]         = $value;
+                continue;
+            }
 			// 如果限制了的话,转数组
 			$value['city_ids']			= explode(',',$value['city_ids']);
 			// 判断用户的城市是否在内
-			if( in_array($cityId,$value['city_ids']) )  continue;
+			if( in_array($cityId,$value['city_ids']) )  {
+                $city[]         = $value;
+                continue;
+            }
 			// 不在范围的删除
 			unset($list[$key]);
         }
-        // 存在的话,获取第一个的数据
-        $one                    = array_shift($list);
+        // 先获取城市的,再获取全国的
+        $one                    = $city ? array_shift($city) : array_shift($all);
         // 判断是否存在二维码
         return                  ['thumb'=>( empty($one['thumb']) ? '' : $one['thumb']),'link_url'=>( empty($one['link_url']) ? '' : $one['link_url'])];
     }

+ 8 - 0
resources/views/admin/product/add.blade.php

@@ -90,6 +90,14 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
+	<div class="form-group col-sm-2">
+		<label class="control-label">上架时间</label>
+		<input class="form-control" type="datetime-local" placeholder="上架时间"  name="puton_time" value="" />
+	</div>
+	<div class="form-group col-sm-2">
+		<label class="control-label">下架时间</label>
+		<input class="form-control" type="datetime-local" placeholder="下架时间" name="putoff_time" value="" />
+	</div>
 	<div class="form-group col-sm-12" id="add_spec">
 		
 	</div>

+ 10 - 2
resources/views/admin/product/edit.blade.php

@@ -48,11 +48,11 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	</div>
 	<div class="form-group col-sm-2">
 		<label class="control-label">限购开始</label>
-		<input class="form-control" type="datetime-local" placeholder="限购开始时间"  name="quota_start" value="{{date('Y-m-d H:i',$oldData['quota_start'])}}" />
+		<input class="form-control" type="datetime-local" placeholder="限购开始时间"  name="quota_start" value="{{$oldData['quota_end']?date('Y-m-d H:i',$oldData['quota_start']):''}}" />
 	</div>
 	<div class="form-group col-sm-2">
 		<label class="control-label">限购结束</label>
-		<input class="form-control" type="datetime-local" placeholder="限购结束时间" name="quota_end" value="{{date('Y-m-d H:i',$oldData['quota_end'])}}" />
+		<input class="form-control" type="datetime-local" placeholder="限购结束时间" name="quota_end" value="{{$oldData['quota_end']?date('Y-m-d H:i',$oldData['quota_end']):''}}" />
 	</div>
 	<div class="form-group col-sm-2">
 		<label class="control-label">服务城市</label>
@@ -90,6 +90,14 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
+	<div class="form-group col-sm-2">
+		<label class="control-label">上架时间</label>
+		<input class="form-control" type="datetime-local" placeholder="上架时间"  name="puton_time" value="{{$oldData['puton_time']?date('Y-m-d H:i',$oldData['puton_time']):''}}" />
+	</div>
+	<div class="form-group col-sm-2">
+		<label class="control-label">下架时间</label>
+		<input class="form-control" type="datetime-local" placeholder="下架时间" name="putoff_time" value="{{$oldData['putoff_time']?date('Y-m-d H:i',$oldData['putoff_time']):''}}" />
+	</div>
 	<div class="form-group col-sm-12" id="add_spec">
 		@foreach ($specList as $spec)
 		<div class="form-group col-sm-12">