| 
						 | 
						<?php
namespace App\Http\Controllers\Api;
use App\Models\AdminSetting;use EasyWeChat\Factory;use Illuminate\Support\Facades\Cache;use Illuminate\Support\Facades\DB;
/** * 仅用于测试 * Class TController * @package App\Http\Controllers\Api */class TestController{	public function index()	{		$appid = 'wx5bd5789ad8f89524';		$setting = AdminSetting::val(['service_appid', 'service_appsecret', 'service_token', 'service_aeskey']);		$config = [			'app_id'   => $setting['service_appid'],			'secret'   => $setting['service_appsecret'],			'token'    => $setting['service_token'],			'aes_key'  => $setting['service_aeskey'],		];
		$app = Factory::openPlatform($config);		$refreshToken = $app->getAuthorizer($appid)['authorization_info']['authorizer_refresh_token'] ?? null;		if (!$refreshToken) {			return $this->error('获取refresh_token失败');		}		$miniProgram = $app->miniProgram($appid, $refreshToken);		$domain = $miniProgram['domain'];
		$host = env('APP_URL');		$param = [			"action" => "add",			"requestdomain" => [$host],			"wsrequestdomain" => [str_replace('http', 'ws', $host)],			"uploaddomain" => [$host],			"downloaddomain" => [$host],		];		return [$domain->modify($param), $domain->setWebviewDomain([env('APP_URL')])];	}
	/**	 * 模拟登录	 * @param $user_id	 * @return string	 */	private function login($user_id)	{		$token_key = md5($user_id . env('APP_KEY'));		Cache::put($token_key, $user_id);		return $token_key;	}
	public function index2()	{		$handle = fopen(base_path('area.txt'), 'r');		if ($handle) {			DB::statement('TRUNCATE `areas`;');			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::table('areas')->insertGetId(['code' => $arr[0], 'pid' => $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 (count($arr) !== 2) continue;				if ($last4 == '0000') {					$insert_id = DB::table('areas')->insertGetId(['code' => $arr[0], 'pid' => 0, 'name' => $arr[1]]);					$parent_arr[$front2] = $insert_id;				} else if ($last2 == '00') {					$insert_id = DB::table('areas')->insertGetId(['code' => $arr[0], 'pid' => $parent_arr[$front2], 'name' => $arr[1]]);					$parent_arr[$front4] = $insert_id;				} else {					//考虑到省直辖县级市情况,如:海南琼海市、湖北仙桃市等,但重庆市的省辖县除外(已在上面判断直辖市逻辑中做处理)
					$parent_id = $parent_arr[$front4] ?? $parent_arr[$front2];					DB::table('areas')->insertGetId(['code' => $arr[0], 'pid' => $parent_id, 'name' => $arr[1]]);				}			}		} else {			return 'open file fail!';		}		return 'success';	}}
  |