<?php
function route_class() {
	return str_replace ( '.', '-', Route::currentRouteName () );
}
function ngrok_url($routeName, $parameters = []) {
	// 开发环境，并且配置了 NGROK_URL
	if (app ()->environment ( 'local' ) && $url = config ( 'app.ngrok_url' )) {
		// route() 函数第三个参数代表是否绝对路径
		return $url . route ( $routeName, $parameters, false );
	}

	return route ( $routeName, $parameters );
}

// 默认的精度为小数点后两位
function big_number($number, $scale = 2) {
	return new \Moontoast\Math\BigNumber ( $number, $scale );
}
function getDateTime() {
	return date ( 'Y-m-d H:i:s', time () );
}
function getDateTimeNoHours() {
	return date ( 'Y-m-d', time () );
}
function getYesterdayDateNoHours() {
	return date ( "Y-m-d", strtotime ( "-1 day" ) );
}
function curlJavaB2cApi($functionName, $body, $token = '', $terminal = 1) {
	$data ['header'] ['time_stamp'] = getMillisecond ();
	$data ['header'] ['transaction_type'] = $functionName;
	$data ['header'] ['message_id'] = date ( "YmdHis", time () );
	$data ['header'] ['terminal'] = $terminal;

	$data ['body'] = $body;
	if ($token != '')
		$data ['header'] ['token'] = $token;
	$json = json_encode ( $data );
	$base64 = base64_encode ( $json );
	$url = env ( 'IS_BAIDUYUN' ) ? 'http://192.168.98.215:8081/leyou-gateway-services' : config ( 'app.b2c_api_url' );
	// $url = 'http://192.168.98.215:8081/leyou-gateway-services';

	$function = "/$functionName/";
	$finalStr = $url . $function . $base64;

	\Log::info ( $finalStr );
	$response = Curl::to ( $finalStr )->get ();

	return $response;
}
function curlJavaB2cJsonApi($functionName, $body, $token = '', $terminal = 1) {
	$version = '1.0.0';
	$imai = 'server';
	$message_id = date ( "YmdHis", time () );
	$time_stamp = getMillisecond ();
	$data ['header'] ['time_stamp'] = $time_stamp;
	$data ['header'] ['transaction_type'] = $functionName;
	$data ['header'] ['message_id'] = $message_id;
	$data ['header'] ['terminal'] = $terminal;
	$data ['header'] ['token'] = $token;

	$sign = md5 ( $message_id . '&' . $time_stamp . '&' . $functionName . '&' . $terminal . '&' . $token . '&' . 'ddxcx1234@webapi' );
	$str = '';
	$index = 0;
	while ( 1 ) {
		if (! isset ( $sign [$index] )) {
			break;
		}
		if ($index % 2 == 0) {
			$str .= $sign [$index];
		}
		$index ++;
	}
	$data ['header'] ['sign'] = md5 ( $str );

	if (isset ( $body ['city_id'] )) {
		$data ['header'] ['city_id'] = $body ['city_id'];
		unset ( $body ['city_id'] );
	}

	$data ['body'] = $body;

	$json = json_encode ( $data );

	$base64 = base64_encode ( $json );
	$url = env ( 'LEYOU_API' );

	$function = "/$functionName";
	$finalStr = $url . $function . "?json=" . $base64;
	$response = Curl::to ( $finalStr )->get ();

	return $response;
}
function getMillisecond() {
	$time = explode ( " ", microtime () );
	$time = $time [1] . ($time [0] * 1000);
	$time2 = explode ( ".", $time );
	$time = $time2 [0];
	return ( int ) $time;
}
function getUrlParams($url) {
	$arr = parse_url ( $url );
	$queryParts = explode ( '&', $arr ['query'] );
	$params = array ();
	foreach ( $queryParts as $param ) {
		$item = explode ( '=', $param );
		$params [$item [0]] = $item [1];
	}
	return $params;
}
function getProductId() {
	return date ( 'Ymd' ) . str_pad ( mt_rand ( 1, 99999 ), 5, '0', STR_PAD_LEFT );
}
function getUserIdByToken($token) {
	$data ['header'] ['time_stamp'] = getMillisecond ();
	$data ['header'] ['message_id'] = date ( "YmdHis", time () );
	$data ['header'] ['transaction_type'] = "default";
	$data ['header'] ['terminal'] = 9;
	$data ['header'] ['token'] = $token;
	$str = json_encode ( $data );
	$url = env ( "LEYOU_API" ) . "/user/getUserInfo/" . base64_encode ( $str );
	$response = json_decode ( Curl::to ( $url )->get (), true );

	$userId = "";
	if ($response ['header'] ['res_code'] == 0) {
		$userId = $response ['body'] ['userid'];
	}
	return $userId;
}
function getUserInfoByToken($token) {
	$data ['header'] ['time_stamp'] = getMillisecond ();
	$data ['header'] ['message_id'] = date ( "YmdHis", time () );
	$data ['header'] ['transaction_type'] = "default";
	$data ['header'] ['terminal'] = 9;
	$data ['header'] ['token'] = $token;
	$data ['header'] ['version'] = "5.1.0";
	$str = json_encode ( $data );
	$url = env ( "LEYOU_API" ) . "/my/getUserInfoIndex/" . base64_encode ( $str );
	$response = json_decode ( Curl::to ( $url )->get (), true );
	if ($response ['header'] ['res_code'] == 0)
		return $response ['body'];
	return '';
}
function lastSql() {
	$sql = \Illuminate\Support\Facades\DB::getQueryLog ();

	$query = end ( $sql );

	return $query;
}
