feat: 后端全量更新 - 含所有本次需求

- Contract.php: 返回合约账户余额(balance_contract)
- My.php: 地址管理增加BTC/ETH
- AppContract.php: 一键平仓(closeall)
- AppProxy.php: 代理专属注册链接 + 分级权限(L1/L2)
- site.php: 手续费减半(0.018→0.009)
- agent_permission_setup.sql: 代理权限SQL
- crypto_news_crawler.py: 新闻自动采集脚本
This commit is contained in:
li
2026-03-30 20:16:32 +08:00
commit 1b24994e74
6721 changed files with 1308571 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
<?php
namespace app\common\behavior;
use think\Config;
use think\Lang;
use think\Loader;
class Common
{
public function appDispatch(&$dispatch)
{
$pathinfoArr = explode('/', request()->pathinfo());
if (!Config::get('url_domain_deploy') && $pathinfoArr && in_array($pathinfoArr[0], ['index', 'api'])) {
//如果是以index或api开始的URL则关闭路由检测
\think\App::route(false);
}
}
public function moduleInit(&$request)
{
// 设置mbstring字符编码
mb_internal_encoding("UTF-8");
// 如果修改了index.php入口地址,则需要手动修改cdnurl的值
$url = preg_replace("/\/(\w+)\.php$/i", '', $request->root());
// 如果未设置__CDN__则自动匹配得出
if (!Config::get('view_replace_str.__CDN__')) {
Config::set('view_replace_str.__CDN__', $url);
}
// 如果未设置__PUBLIC__则自动匹配得出
if (!Config::get('view_replace_str.__PUBLIC__')) {
Config::set('view_replace_str.__PUBLIC__', $url . '/');
}
// 如果未设置__ROOT__则自动匹配得出
if (!Config::get('view_replace_str.__ROOT__')) {
Config::set('view_replace_str.__ROOT__', preg_replace("/\/public\/$/", '', $url . '/'));
}
// 如果未设置cdnurl则自动匹配得出
if (!Config::get('site.cdnurl')) {
Config::set('site.cdnurl', $url);
}
// 如果未设置cdnurl则自动匹配得出
if (!Config::get('upload.cdnurl')) {
Config::set('upload.cdnurl', $url);
}
if (Config::get('app_debug')) {
// 如果是调试模式将version置为当前的时间戳可避免缓存
Config::set('site.version', time());
// 如果是开发模式那么将异常模板修改成官方的
Config::set('exception_tmpl', THINK_PATH . 'tpl' . DS . 'think_exception.tpl');
}
// 如果是trace模式且Ajax的情况下关闭trace
if (Config::get('app_trace') && $request->isAjax()) {
Config::set('app_trace', false);
}
// 切换多语言
if (Config::get('lang_switch_on') && $request->get('lang')) {
\think\Cookie::set('think_var', $request->get('lang'));
}
// Form别名
if (!class_exists('Form')) {
class_alias('fast\\Form', 'Form');
}
}
public function addonBegin(&$request)
{
// 加载插件语言包
Lang::load([
APP_PATH . 'common' . DS . 'lang' . DS . $request->langset() . DS . 'addon' . EXT,
]);
$this->moduleInit($request);
}
}