| 
					
					
						
							
						
					
					
				 | 
				@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api; | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				use App\Http\Controllers\Controller; | 
				 | 
				 | 
				use App\Http\Controllers\Controller; | 
			
		
		
	
		
			
				 | 
				 | 
				use App\Models\AgentProduct; | 
				 | 
				 | 
				use App\Models\AgentProduct; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				use App\Models\Coupon; | 
			
		
		
	
		
			
				 | 
				 | 
				use App\Models\UserMoneyLog; | 
				 | 
				 | 
				use App\Models\UserMoneyLog; | 
			
		
		
	
		
			
				 | 
				 | 
				use App\Models\Order; | 
				 | 
				 | 
				use App\Models\Order; | 
			
		
		
	
		
			
				 | 
				 | 
				use Illuminate\Http\Request; | 
				 | 
				 | 
				use Illuminate\Http\Request; | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -22,25 +23,48 @@ class OrderController extends Controller | 
			
		
		
	
		
			
				 | 
				 | 
						$formData = $request->only(['page', 'status']); | 
				 | 
				 | 
						$formData = $request->only(['page', 'status']); | 
			
		
		
	
		
			
				 | 
				 | 
						$request->validate([ | 
				 | 
				 | 
						$request->validate([ | 
			
		
		
	
		
			
				 | 
				 | 
							'page' => 'regex:/^\d+$/', | 
				 | 
				 | 
							'page' => 'regex:/^\d+$/', | 
			
		
		
	
		
			
				 | 
				 | 
							'status' => 'integer' | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							'status' => 'nullable|integer' | 
			
		
		
	
		
			
				 | 
				 | 
						], [ | 
				 | 
				 | 
						], [ | 
			
		
		
	
		
			
				 | 
				 | 
							'page.regex' => '页码错误', | 
				 | 
				 | 
							'page.regex' => '页码错误', | 
			
		
		
	
		
			
				 | 
				 | 
							'status.integer' => '未指定订单状态' | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							'status.integer' => '订单状态错误' | 
			
		
		
	
		
			
				 | 
				 | 
						]); | 
				 | 
				 | 
						]); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
						if (array_key_exists('status', $formData) && $formData['status'] !== null) { | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if (isset($formData['status'])) { | 
			
		
		
	
		
			
				 | 
				 | 
							$where['status'] = $formData['status']; | 
				 | 
				 | 
							$where['status'] = $formData['status']; | 
			
		
		
	
		
			
				 | 
				 | 
						} | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
						$where['user_id'] = $this->user_id; | 
				 | 
				 | 
						$where['user_id'] = $this->user_id; | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
						$list = Order::where($where) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							->with(['product' => fn($query) => $query->select('id', 'title', 'pictures')]) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							->select('id', 'product_id', 'price', 'num', 'created_at') | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						$order_list = Order::where($where) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							->with('product:id,title,pictures') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							->select('id', 'product_id', 'price', 'num', 'status', 'created_at') | 
			
		
		
	
		
			
				 | 
				 | 
							->orderBy('id', 'DESC') | 
				 | 
				 | 
							->orderBy('id', 'DESC') | 
			
		
		
	
		
			
				 | 
				 | 
							->simplePaginate(15); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
						return $this->success($list); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							->simplePaginate(15) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							->toArray(); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						$time = time(); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						$timeout_ids = []; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						//10分钟内未付款订单提示付款
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						foreach ($order_list['data'] as &$v) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							if ($v['status'] == 0) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								$minute = $time - $v['created_at']; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								//订单创建后10分钟内未付款则提示,否则取消订单
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								if ($minute < 600) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									$v['status_text'] = '请在' . ceil($minute / 60) . '分钟内付款'; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								} else { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									$timeout_ids[] = $v['id']; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									$v['status'] = -1; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									$v['status_text'] = '已取消'; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						//超时订单设置为已取消
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						Order::query()->whereIn('id', $timeout_ids)->update(['status' => -1]); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						return $this->success($order_list); | 
			
		
		
	
		
			
				 | 
				 | 
					} | 
				 | 
				 | 
					} | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					//提交订单
 | 
			
		
		
	
		
			
				 | 
				 | 
					public function create(Request $request) | 
				 | 
				 | 
					public function create(Request $request) | 
			
		
		
	
		
			
				 | 
				 | 
					{ | 
				 | 
				 | 
					{ | 
			
		
		
	
		
			
				 | 
				 | 
						$formData = $request->only(['id', 'name', 'mobile', 'pay_type', 'num']); | 
				 | 
				 | 
						$formData = $request->only(['id', 'name', 'mobile', 'pay_type', 'num']); | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -66,22 +90,36 @@ class OrderController extends Controller | 
			
		
		
	
		
			
				 | 
				 | 
							'num.min' => '购买数量输入错误', | 
				 | 
				 | 
							'num.min' => '购买数量输入错误', | 
			
		
		
	
		
			
				 | 
				 | 
						]); | 
				 | 
				 | 
						]); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
						$agent_product = AgentProduct::query() | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						$ap = AgentProduct::query() | 
			
		
		
	
		
			
				 | 
				 | 
							->where('id', $formData['id']) | 
				 | 
				 | 
							->where('id', $formData['id']) | 
			
		
		
	
		
			
				 | 
				 | 
							->with('coupon') | 
				 | 
				 | 
							->with('coupon') | 
			
		
		
	
		
			
				 | 
				 | 
							->with('product') | 
				 | 
				 | 
							->with('product') | 
			
		
		
	
		
			
				 | 
				 | 
							->first(); | 
				 | 
				 | 
							->first(); | 
			
		
		
	
		
			
				 | 
				 | 
						if (!$agent_product || !$agent_product->product) { | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if (!$ap || !$ap->product) { | 
			
		
		
	
		
			
				 | 
				 | 
							$this->error('产品不存在'); | 
				 | 
				 | 
							$this->error('产品不存在'); | 
			
		
		
	
		
			
				 | 
				 | 
						} | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if ($ap->product->stock < $formData['num']) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							$this->error('对不起,库存不足'); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						$coupon_ids = []; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if ($ap->coupon) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							foreach ($ap->coupon as $v) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								$coupon_ids[] = $v['id']; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
						DB::beginTransaction(); | 
				 | 
				 | 
						DB::beginTransaction(); | 
			
		
		
	
		
			
				 | 
				 | 
						try { | 
				 | 
				 | 
						try { | 
			
		
		
	
		
			
				 | 
				 | 
							$price = $this->calc($agent_product, $formData['num']); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							$title = $agent_product->product->title; //产品标题
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							//增加销量
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							$agent_product->increment('sale', $formData['num']); //代理商产品表销量
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							$agent_product->product->increment('sale', $formData['num']); //供应商产品表
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							$price = $this->calc($ap, $formData['num']); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							$title = $ap->product->title; //产品标题
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							//代理商产品表增加销量
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							$ap->increment('sale', $formData['num']); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							//供应商产品表加销量、减库存
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							$ap->product->sale += $formData['num']; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							$ap->product->stock -= $formData['num']; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							$ap->product->save(); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
							// 存入订单表
 | 
				 | 
				 | 
							// 存入订单表
 | 
			
		
		
	
		
			
				 | 
				 | 
							$order = Order::query()->create([ | 
				 | 
				 | 
							$order = Order::query()->create([ | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -92,10 +130,12 @@ class OrderController extends Controller | 
			
		
		
	
		
			
				 | 
				 | 
								'name' => $formData['name'], | 
				 | 
				 | 
								'name' => $formData['name'], | 
			
		
		
	
		
			
				 | 
				 | 
								'mobile' => $formData['mobile'], | 
				 | 
				 | 
								'mobile' => $formData['mobile'], | 
			
		
		
	
		
			
				 | 
				 | 
								'title' => $title, | 
				 | 
				 | 
								'title' => $title, | 
			
		
		
	
		
			
				 | 
				 | 
								'agent_product_id' => $agent_product->id, | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
								'product_id' => $agent_product->product_id, | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								'picture' => $ap->product->picture, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								'agent_product_id' => $ap->id, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								'product_id' => $ap->product_id, | 
			
		
		
	
		
			
				 | 
				 | 
								'status' => 0, | 
				 | 
				 | 
								'status' => 0, | 
			
		
		
	
		
			
				 | 
				 | 
								'pay_type' => $formData['pay_type'], | 
				 | 
				 | 
								'pay_type' => $formData['pay_type'], | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								'coupon_id' => join(',', $coupon_ids), | 
			
		
		
	
		
			
				 | 
				 | 
							]); | 
				 | 
				 | 
							]); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
							//资金流水
 | 
				 | 
				 | 
							//资金流水
 | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -128,12 +168,35 @@ class OrderController extends Controller | 
			
		
		
	
		
			
				 | 
				 | 
						} | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
						$agent_product = AgentProduct::query() | 
				 | 
				 | 
						$agent_product = AgentProduct::query() | 
			
		
		
	
		
			
				 | 
				 | 
							->with(['coupon' => fn($query) => $query->select('*')]) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							->with('coupon:agent_product_id,type,detail,agent_id,start_at,end_at') | 
			
		
		
	
		
			
				 | 
				 | 
							->find($id); | 
				 | 
				 | 
							->find($id); | 
			
		
		
	
		
			
				 | 
				 | 
						$final_price = $this->calc($agent_product, $num); | 
				 | 
				 | 
						$final_price = $this->calc($agent_product, $num); | 
			
		
		
	
		
			
				 | 
				 | 
						return $this->success(['price' => $final_price]); | 
				 | 
				 | 
						return $this->success(['price' => $final_price]); | 
			
		
		
	
		
			
				 | 
				 | 
					} | 
				 | 
				 | 
					} | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					//订单详情
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					public function show() | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					{ | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						$id = (int)request()->input('id'); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						$fields = ['id', 'order_no', 'agent_product_id', 'num', 'price', 'title', | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							'picture', 'status', 'pay_type', 'coupon_id', 'paid_at', 'created_at']; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						$order = Order::query() | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							->where('user_id', $this->user_id) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							->find($id, $fields); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if (!$order) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							return $this->error('订单不存在'); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						$order->coupon = Coupon::query() | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							->whereIn('id', $order->coupon_id) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							->where(['agent_id' => $this->agent_id, 'agent_product_id' => $order->agent_product_id,]) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							->get(['tag']); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						return $this->success($order); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
					/** | 
				 | 
				 | 
					/** | 
			
		
		
	
		
			
				 | 
				 | 
					 * 计算最终价格(扣除优惠券之后的价格) | 
				 | 
				 | 
					 * 计算最终价格(扣除优惠券之后的价格) | 
			
		
		
	
		
			
				 | 
				 | 
					 * @param $agent_product | 
				 | 
				 | 
					 * @param $agent_product | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -150,6 +213,7 @@ class OrderController extends Controller | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
						$coupon = $agent_product->coupon->toArray(); | 
				 | 
				 | 
						$coupon = $agent_product->coupon->toArray(); | 
			
		
		
	
		
			
				 | 
				 | 
						foreach ($coupon as $v) { | 
				 | 
				 | 
						foreach ($coupon as $v) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							// TODO 未判断优惠券有效期
 | 
			
		
		
	
		
			
				 | 
				 | 
							if ($v['type'] == 1 && !empty($v['detail']['full']) && !empty($v['detail']['reduction'])) { //满减
 | 
				 | 
				 | 
							if ($v['type'] == 1 && !empty($v['detail']['full']) && !empty($v['detail']['reduction'])) { //满减
 | 
			
		
		
	
		
			
				 | 
				 | 
								if ($total_price >= $v['detail']['full']) { | 
				 | 
				 | 
								if ($total_price >= $v['detail']['full']) { | 
			
		
		
	
		
			
				 | 
				 | 
									$total_price -= $v['detail']['reduction']; | 
				 | 
				 | 
									$total_price -= $v['detail']['reduction']; | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -162,10 +226,10 @@ class OrderController extends Controller | 
			
		
		
	
		
			
				 | 
				 | 
					} | 
				 | 
				 | 
					} | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
					// 生成订单号
 | 
				 | 
				 | 
					// 生成订单号
 | 
			
		
		
	
		
			
				 | 
				 | 
					private function getOrderNo() | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					private function getOrderNo(): string | 
			
		
		
	
		
			
				 | 
				 | 
					{ | 
				 | 
				 | 
					{ | 
			
		
		
	
		
			
				 | 
				 | 
						list($micro, $sec) = explode(' ', microtime()); | 
				 | 
				 | 
						list($micro, $sec) = explode(' ', microtime()); | 
			
		
		
	
		
			
				 | 
				 | 
						$micro = str_pad(floor($micro * 1000000), 6, 0, STR_PAD_LEFT); | 
				 | 
				 | 
						$micro = str_pad(floor($micro * 1000000), 6, 0, STR_PAD_LEFT); | 
			
		
		
	
		
			
				 | 
				 | 
						return date('YmdHis', $sec) . $micro . mt_rand(100, 999); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						return date('YmdHis', $sec) . $micro . mt_rand(1000, 9999); | 
			
		
		
	
		
			
				 | 
				 | 
					} | 
				 | 
				 | 
					} | 
			
		
		
	
		
			
				 | 
				 | 
				} | 
				 | 
				 | 
				} |