Skip to content

6.12 参数管理 ​

概述

参数管理维护系统级配置参数,如默认密码、系统名称等。继承 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/pagesys:param:page分页列表
GET/api/param/listsys:param:list全量列表
GET/api/param/detail/:idsys:param:detail详情
POST/api/param/addsys:param:add新增
PUT/api/param/updatesys:param:update修改
DELETE/api/param/delete/:idsys:param:delete删除
DELETE/api/param/batchDeletesys: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();

与配置管理的区别

  • 参数管理(Param):独立的键值对,适合系统级参数(默认密码、限流阈值)
  • 配置管理(Config):分组 + 配置项,适合网站配置(名称、Logo、SMTP)

小蚂蚁云团队 · 提供技术支持