Files
ywxapp 1d49e6f5ee 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
2026-08-20 20:19:15 +08:00

76 lines
2.3 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | YwxApp [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2026-2036 http://ywxapp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: ywxapp<admin@ywxapp.cn>
// +----------------------------------------------------------------------
declare (strict_types = 1);
namespace app\frontend\controller;
use think\facade\Db;
use think\facade\View;
use ywxapp\controller\FrontendBase;
use ywxapp\model\CommonNotice as NoticeModel;
/**
* 前台站点公告(方案 B:列表 + 详情)
*/
class Notice extends FrontendBase
{
protected $noNeedLogin = ['index', 'read'];
/**
* 公告列表
*/
public function index()
{
$page = $this->request->param('page/d', 1);
$type = $this->request->param('type/d', 0);
$list = NoticeModel::getList($page, 10, $type);
// 附加类型文案
$typeList = NoticeModel::typeList();
$items = $list->items();
foreach ($items as &$it) {
$it['type_text'] = $typeList[$it['type']] ?? '公告';
}
unset($it);
View::assign('title', '站点公告 - YwxApp');
return view('index', [
'type' => $type,
'type_list' => $typeList,
'list' => $list,
'items' => $items,
]);
}
/**
* 公告详情
*/
public function read($id = null)
{
$id = $id ?: $this->request->param('id/d');
if (! $id) {
$this->redirect('notice/index');
}
$info = (new NoticeModel())->where('status', 1)->find($id);
if (! $info) {
$this->redirect('notice/index');
}
// 浏览量自增(模型 view_count 为 readonly,用 Db 原生 inc 绕过)
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']] ?? '公告';
View::assign('title', ($info->title ?? '公告详情') . ' - YwxApp');
return view('read', [
'info' => $info,
]);
}
}