# 6.12 参数管理 :::tip 概述 参数管理维护系统级配置参数,如默认密码、系统名称等。继承 BaseLogic(系统共享,不隔离),通过 ParamService 读取。 ::: ## 模块特点 | 特性 | 说明 | |------|------| | 基类 | BaseLogic(系统共享,不隔离) | | 唯一校验 | code 全局唯一 | | 缓存 | ParamService 两级缓存(请求级 + 持久缓存,1小时过期) | | 模糊搜索 | name、code | | 精确匹配 | type、status | ## 数据库表结构 ```sql CREATE TABLE `think_param` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name` varchar(100) NOT NULL COMMENT '参数名称', `code` varchar(100) NOT NULL COMMENT '参数编码', `value` varchar(255) NOT NULL COMMENT '参数值', `type` int NOT NULL COMMENT '参数类型:0-系统 1-业务', `status` int NOT NULL COMMENT '参数状态:1-正常 2-禁用', `sort` int NOT NULL COMMENT '参数排序', `note` varchar(255) DEFAULT NULL COMMENT '参数备注', `create_user` varchar(50) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT (now()) COMMENT '创建时间', `update_user` varchar(50) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT (now()) COMMENT '更新时间', `is_delete` int DEFAULT 0 COMMENT '删除标识:0-正常 1-已删除', PRIMARY KEY (`id`) ) COMMENT = '系统参数表'; ``` ## API 接口 | 方法 | 路径 | 权限码 | 说明 | |------|------|--------|------| | GET | `/api/param/page` | sys:param:page | 分页列表 | | GET | `/api/param/list` | sys:param:list | 全量列表 | | GET | `/api/param/detail/:id` | sys:param:detail | 详情 | | POST | `/api/param/add` | sys:param:add | 新增 | | PUT | `/api/param/update` | sys:param:update | 修改 | | DELETE | `/api/param/delete/:id` | sys:param:delete | 删除 | | DELETE | `/api/param/batchDelete` | sys:param:batchDelete | 批量删除 | ## 核心代码 ```php // app/logic/ParamLogic.php class ParamLogic extends BaseLogic { /** * 关联的模型类 * * @var string */ protected string $modelClass = Param::class; /** * LIKE 模糊匹配字段 * * @var array */ protected array $pageLikeFields = ['name', 'code']; /** * 精确匹配字段 * * @var array */ protected array $pageEqFields = ['type', 'status']; /** * 默认排序规则 * * @var array */ protected array $pageOrderBy = ['field' => 'sort', 'type' => 'asc']; /** * 唯一性校验字段 * * @var array */ protected array $uniqueFields = ['code']; } ``` ## 使用 ParamService 读取参数 ```php use app\service\ParamService; // 获取字符串参数 $value = ParamService::getString('DEFAULT_PASSWORD', '123456'); // 获取整数参数 $value = ParamService::getInt('MAX_LOGIN_ATTEMPTS', 5); // 获取布尔参数 $value = ParamService::getBool('ENABLE_SMS', false); // 获取默认密码(从系统参数读取,默认 '123456') $password = ParamService::getDefaultPassword(); ``` :::tip 与配置管理的区别 - **参数管理(Param)**:独立的键值对,适合系统级参数(默认密码、限流阈值) - **配置管理(Config)**:分组 + 配置项,适合网站配置(名称、Logo、SMTP) :::