Files
evus.acvisa.com/app/home/controller/Base.php

166 lines
6.2 KiB
PHP

<?php
declare (strict_types=1);
namespace app\home\controller;
use api\Httpcurl;
use app\BaseController;
use app\service\SeoMetaService;
use think\facade\Config;
use think\facade\Cookie;
use think\facade\Lang;
use think\facade\Session;
use think\facade\View;
use think\facade\Request;
/**
* 控制器基础类
*/
class Base extends BaseController
{
protected $_userId;
/**
* 构造方法
*/
public function initialize()
{
parent::initialize();
// 来源
$source = Request::instance()->param('source', '');
$sesson = Session::get('source');
if (empty($sesson)) {
$source = $source ?: SOURCE;
Session::set('source', $source);
}
// 获取 当前用户ID
$this->_userId = cmf_get_current_user_id();
// 网站配置信息获取
if (!file_exists(app()->getRootPath().'data/config.json')) {
// $domain = $_SERVER['HTTP_HOST'];
$domain = "evus.acvisa.cn";
$web_config = Httpcurl::request(GET_WEB_CONFIG_URL . '/domain/' . $domain, 'get');
if ($web_config[3]) {
abort(500, '网站配置信息获取失败');
}
$config_result = json_decode($web_config[0], true);
if (empty($config_result)) {
abort(500, '网站配置信息获取失败');
}
if ($config_result['code'] != 1) {
abort(500, '网站配置信息获取失败');
}
file_put_contents(app()->getRootPath().'data/config.json', json_encode($config_result));
} else {
$config_result = json_decode(file_get_contents(app()->getRootPath().'data/config.json'), true);
}
Config::set(['domain' => $_SERVER['HTTP_HOST']], 'app');
Config::set(['EVUS_GOODS' => $config_result['data']['EVUS_GOODS']], 'app');
Config::set(['ESTA_GOODS' => $config_result['data']['ESTA_GOODS']], 'app');
/*语言切换*/
Lang::setLangSet(Cookie::get('think_var', 'zh-cn'));
/*语言切换*/
/*配置*/
Config::set(['wechatpay' => $config_result['data']['pay']['wechatpay']], 'app');
Config::set(['wechath5pay' => $config_result['data']['pay']['wechath5pay']], 'app');
Config::set(['wechatpcpay' => $config_result['data']['pay']['wechatpcpay']], 'app');
Config::set(['alipcpay' => $config_result['data']['pay']['alipcpay']], 'app');
Config::set(['pay_url' => $config_result['data']['pay']['pay_url']], 'app');
Config::set(['order_url' => $config_result['data']['order_url']], 'app');
Config::set(['user_url' => $config_result['data']['user_url']], 'app');
Config::set(['principals' => $config_result['data']['principals']], 'app');
Config::set(['get_evus_detail_url' => $config_result['data']['get_evus_detail_url']], 'app');
Config::set(['get_order_detail_url' => $config_result['data']['get_order_detail_url']], 'app');
Config::set(['download_evus_url' => $config_result['data']['download_evus_url']], 'app');
Config::set(['update_order_url' => $config_result['data']['update_order_url']], 'app');
/*ocr 识别 配置参数 */
Config::set(['OCR_BASE_URL' => $config_result['data']['ocr_base_url']], 'app');
Config::set(['OCR_APP_ID' => $config_result['data']['ocr_app_id']], 'app');
Config::set(['OCR_SECRET' => $config_result['data']['ocr_secret']], 'app');
Config::set(['LOOKUP_URL' => $config_result['data']['evus_look_url']], 'app');
$ocr_config = build_ocr_signature($config_result['data']['ocr_app_id'], $config_result['data']['ocr_secret']);
View::assign('ocr_config', json_encode($ocr_config));
View::assign('footer', $config_result['data']['footer']);
View::assign('phone', $config_result['data']['phone']);
View::assign('logo_icon', $config_result['data']['logo_icon']);
View::assign('logo', $config_result['data']['logo']);
View::assign('fapiao_kefu', $config_result['data']['fapiao_png']);
View::assign('order_kefu', $config_result['data']['visa_png']);
View::assign('invoice_url', $config_result['data']['invoice_url']);
View::assign('menu_url', strtolower(Request::controller() . '/' . Request::action()));
$this->assignSeo();
}
protected function assignSeo(array $overrides = []): void
{
$query = Request::instance()->get();
if (!is_array($query)) {
$query = [];
}
$seo = (new SeoMetaService())->forRoute(
'home',
(string) Request::controller(),
(string) Request::action(),
$query,
$overrides
);
View::assign('seo', $seo);
View::assign('asset_version', (string) (config('app.asset_version') ?: '1'));
}
public function success($msg = '操作成功', $url = '', $data = [], $wait = 3)
{
if (is_null($url) && isset($_SERVER["HTTP_REFERER"])) {
$url = $_SERVER["HTTP_REFERER"];
} elseif ('' !== $url && is_object($url)) {
$url = $url->build();
}
if (request()->isAjax()) {
return json([
'code' => 1,
'msg' => $msg,
'data' => $data,
'url' => $url
]);
} else {
return View::fetch('public/jump', [
'msg' => $msg,
'url' => $url,
'wait' => $wait,
'type' => 'success',
]);
}
}
public function error($msg = '操作失败', $url = '', $wait = 3, $data = [])
{
if (is_null($url) && isset($_SERVER["HTTP_REFERER"])) {
$url = $_SERVER["HTTP_REFERER"];
} elseif ('' !== $url && is_object($url)) {
$url = $url->build();
}
if (request()->isAjax()) {
return json([
'code' => 0,
'msg' => $msg,
'data' => $data,
'url' => $url
]);
} else {
return View::fetch('public/jump', [
'msg' => $msg,
'url' => $url,
'wait' => $wait,
'type' => 'error',
]);
}
}
}