You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							71 lines
						
					
					
						
							2.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							71 lines
						
					
					
						
							2.6 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								namespace App\Http\Controllers\Api;
							 | 
						|
								
							 | 
						|
								use App\Models\Order;
							 | 
						|
								use App\Models\OrderProductItem;
							 | 
						|
								use App\Models\Product;
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								 * 仅用于测试
							 | 
						|
								 * Class TController
							 | 
						|
								 * @package App\Http\Controllers\Api
							 | 
						|
								 */
							 | 
						|
								class TestController
							 | 
						|
								{
							 | 
						|
									public function index()
							 | 
						|
									{
							 | 
						|
										//test
							 | 
						|
										$ids = Order::orderBy('id')->get(['id AS order_id', 'product_ids', 'agent_id', 'agent_product_id']);
							 | 
						|
										foreach ($ids as $v) {
							 | 
						|
											$item = Product::query()->whereIn('id', explode(',', $v['product_ids']))
							 | 
						|
												->orderBy('id')->get(['id AS product_id', 'supplier_id'])->toArray();
							 | 
						|
											foreach ($item as $v2) {
							 | 
						|
												if (!OrderProductItem::query()->where(['order_id' => $v['order_id'], 'product_id' => $v2['product_id']])->exists()) {
							 | 
						|
													$v2['order_id'] = $v['order_id'];
							 | 
						|
													$v2['agent_id'] = $v['agent_id'];
							 | 
						|
													$v2['agent_product_id'] = $v['agent_product_id'];
							 | 
						|
													OrderProductItem::query()->create($v2);
							 | 
						|
												}
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
										return '';
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									public function area()
							 | 
						|
									{
							 | 
						|
										$handle = fopen(Env::get('root_path').'2020-11行政区划(民政部).txt', 'r');
							 | 
						|
										if ($handle) {
							 | 
						|
											Db::execute('TRUNCATE `aqs_area`;');
							 | 
						|
											while (($line = fgets($handle, 4096)) !== false) {
							 | 
						|
												$line = trim($line);
							 | 
						|
								
							 | 
						|
												$last2 = substr($line, 4, 2); //区划码后2位
							 | 
						|
												$front2 = substr($line, 0, 2); //区划码前2位
							 | 
						|
												$front4 = substr($line, 0, 4); //区划码前4位
							 | 
						|
								
							 | 
						|
												//判断是否是直辖市,是直辖市则再插入一次上条记录作为二级联动
							 | 
						|
												if( isset($last4, $arr, $parent_arr[$front2]) && $last4=='0000' && $last2!='00' ) {
							 | 
						|
													$insert_id = Db::name('area')->insertGetId(['area_code'=>$arr[0], 'parent_id'=>$parent_arr[$front2], 'name'=>$arr[1]]);
							 | 
						|
													$parent_arr[$front4] = $insert_id;
							 | 
						|
													//对直辖市不做省直辖县处理,如:重庆市
							 | 
						|
													$parent_arr[$front2] = $insert_id;
							 | 
						|
												}
							 | 
						|
								
							 | 
						|
												$last4 = substr($line, 2, 4); //区划码后4位
							 | 
						|
								
							 | 
						|
												$arr = preg_split('/\s+/', $line);
							 | 
						|
												if( $last4 == '0000' ) {
							 | 
						|
													$insert_id = Db::name('area')->insertGetId(['area_code'=>$arr[0], 'parent_id'=>0, 'name'=>$arr[1]]);
							 | 
						|
													$parent_arr[$front2] = $insert_id;
							 | 
						|
												} else if( $last2 == '00' ) {
							 | 
						|
													$insert_id = Db::name('area')->insertGetId(['area_code'=>$arr[0], 'parent_id'=>$parent_arr[$front2], 'name'=>$arr[1]]);
							 | 
						|
													$parent_arr[$front4] = $insert_id;
							 | 
						|
												} else {
							 | 
						|
													//考虑到省直辖县级市情况,如:海南琼海市、湖北仙桃市等,但重庆市的省辖县除外(已在上面判断直辖市逻辑中做处理)
							 | 
						|
													$parent_id = $parent_arr[$front4] ?? $parent_arr[$front2];
							 | 
						|
													Db::name('area')->insertGetId(['area_code'=>$arr[0], 'parent_id'=>$parent_id, 'name'=>$arr[1]]);
							 | 
						|
												}
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
									}}
							 |