feat: 公共表更名 common/member 前缀 + 插件命令自动加载 + 版本 1.1.1

- 18 张公共表更名(addon/attachment/configure/links/spider_log/spider_stat/sms/notice/ad/task/prop/medal/help/card -> common_*,member_wallets->member_wallet,score_rule/score_log -> member_*,addon_config->common_addonconf),模型全部对齐新表名,Db 直引用清零
- Attachment 模型补  表名绑定,修复富文本上传查 wxapp_attachment 1146 隐患
- install.sql + 迁移 SQL:backend_admin/backend_role delete_at 默认 0,修复软删除(NULL != 0)误过滤导致后台菜单为空
- AppService::boot() 支持插件 info.php 声明 commands 自动注册插件命令(psr-4 自动加载,坏类名自动跳过)
- 各插件(haonav/mqttbroker/wxchat/articles/blog/forum 等)字段与配置同步调整
- 框架版本 1.1.0 -> 1.1.1
This commit is contained in:
ywxapp
2026-08-20 20:19:15 +08:00
parent 303f548664
commit 1d49e6f5ee
395 changed files with 13342 additions and 2012 deletions
+2 -2
View File
@@ -4,7 +4,7 @@ namespace app\frontend\controller;
use think\facade\Db;
use ywxapp\controller\FrontendBase;
use ywxapp\model\Help as HelpModel;
use ywxapp\model\CommonHelp as HelpModel;
/**
* 站点帮助中心(前台)
@@ -53,7 +53,7 @@ class Help extends FrontendBase
$this->error('帮助内容不存在或已下架');
}
// 浏览量自增
Db::name('help')->where('id', $id)->inc('view_count')->update();
Db::name('common_help')->where('id', $id)->inc('view_count')->update();
$this->assign('info', $info);
return $this->fetch('read');
+2 -2
View File
@@ -13,7 +13,7 @@ namespace app\frontend\controller;
use think\facade\Db;
use think\facade\View;
use ywxapp\controller\FrontendBase;
use ywxapp\model\Notice as NoticeModel;
use ywxapp\model\CommonNotice as NoticeModel;
/**
* 前台站点公告(方案 B:列表 + 详情)
@@ -62,7 +62,7 @@ class Notice extends FrontendBase
$this->redirect('notice/index');
}
// 浏览量自增(模型 view_count 为 readonly,用 Db 原生 inc 绕过)
Db::name('notice')->where('id', $id)->inc('view_count')->update();
Db::name('common_notice')->where('id', $id)->inc('view_count')->update();
$info->view_count = ($info->view_count ?? 0) + 1;
$typeList = NoticeModel::typeList();
$info->type_text = $typeList[$info['type']] ?? '公告';
+3 -3
View File
@@ -36,7 +36,7 @@
<div class="layui-container header-container">
<div class="header-inner">
<div class="logo-box">
<a href="{:url('index/index')}" class=" ">
<a href="{:url('index/index', [], true, true)}" class=" ">
<span class="logo-text">{$siteConf.sitename|default='YwxApp'}</span>
</a>
</div>
@@ -46,14 +46,14 @@
<ul class="nav-menu" id="navMenu">
{volist name="navMenus" id="m"}
<li class="nav-item {if $m.ctrl == $site.controller}active{/if}{if !empty($m.child)} has-child{/if}">
<a href="{if strpos($m.url,'http')===0}{$m.url}{else/}{:url($m.url)}{/if}">
<a href="{if strpos($m.url,'http')===0}{$m.url}{elseif !empty($m.app)}{:url($m.app.'/'.$m.url, [], true, true)}{else/}{:url($m.url, [], true, true)}{/if}">
{if !empty($m.icon)}<i class="layui-icon {$m.icon}"></i> {/if}{$m.title}
</a>
{if !empty($m.child)}
<ul class="sub-menu">
{volist name="m.child" id="c"}
<li class="sub-item {if $c.ctrl == $site.controller}active{/if}">
<a href="{if strpos($c.url,'http')===0}{$c.url}{else/}{:url($c.url)}{/if}">
<a href="{if strpos($c.url,'http')===0}{$c.url}{elseif !empty($c.app)}{:url($c.app.'/'.$c.url, [], true, true)}{else/}{:url($c.url, [], true, true)}{/if}">
{if !empty($c.icon)}<i class="layui-icon {$c.icon}"></i> {/if}{$c.title}
</a>
</li>