feat: 上线前安全加固与发布工程化;appmall 由插件迁移为独立应用
安全(P0) - 发布包签名:新增 scripts/package_keygen.php、scripts/package_verify.php、 ywxapp\service\PackageVerifier;FrameworkService::apply() 解压前强制验签 (ywxapp.framework_package_verify,默认开启) - JWT 收紧:config/jwt.php 移除公开默认密钥,JwtService::assertStrongSecret() 校验非空 / 长度≥32 / 已知弱值;.env.production.example 键名由 JWT_SECRET_KEY 修正为 JWT_SECRET - /api/v1/Article:免登录白名单收窄为只读接口,写操作字段白名单 + assertOwner() 越权校验 - 开发者令牌:查找接口不再回显明文、统一失败文案 + 限流 - TemplateInstaller:文件名白名单 + realpath 归一化 + 目录内断言,修复 Zip Slip;补 use ZipArchive - 后台登录:接入验证码、失败锁定与登录限流(config/ratelimit.php) - 缓存 / Session 驱动可由 .env 覆盖(CACHE_DRIVER / SESSION_TYPE),集群部署改 redis - paycenter 支付日志开关改为 PAY_LOG,不再跟随 APP_DEBUG 工程化 / 交付 - 新增 CHANGELOG.md 与 .env.production.example;composer.lock 入库锁定依赖版本 - 插件离线安装 CLI 增加 --uid,后台上传安装透传 uid,付费插件授权校验可通过 - 授权拒绝文案区分「未携带 uid」与「未找到有效授权」,便于排障 - .gitignore 放行 .env.production.example / .env.addon.example / .gitattributes / public/.htaccess 结构 - appmall 由 addon/appmall 迁移为独立应用 app/appmall(市场 / 开发者中心 / 审核 / 分润)
This commit is contained in:
1 parent
1d49e6f5ee
commit
18101cf11a
636 files changed
+58517
-9519
No files matched your search
+117
-73
@@ -103,77 +103,101 @@ CREATE TABLE IF NOT EXISTS `__PREFIX__backend_power` (
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `unique_name` (`name`) USING BTREE,
|
||||
KEY `idx_pid` (`pid`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=68 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='权限表';
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=93 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='权限表';
|
||||
|
||||
-- 正在导出表 __PREFIX__backend_power 的数据:~44 rows (大约)
|
||||
-- 正在导出表 __PREFIX__backend_power 的数据:~92 rows (大约)
|
||||
INSERT INTO `__PREFIX__backend_power` (`id`, `pid`, `title`, `name`, `type`, `route`, `icon`, `sort`, `addon`, `status`, `create_at`, `update_at`, `delete_at`) VALUES
|
||||
(1, 0, '控制台', 'console:index', 2, 'console/index', 'layui-icon layui-icon-chart-screen', 1, NULL, 1, 0, 0, 0),
|
||||
(2, 0, '应用', 'app', 1, '', 'layui-icon layui-icon-template-1', 2, NULL, 1, 0, 0, 0),
|
||||
(3, 0, '系统管理', 'system', 1, '/system', 'layui-icon layui-icon-set', 9, NULL, 1, 0, 0, 0),
|
||||
(4, 3, '系统设置', 'configure:index', 2, 'configure/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(5, 3, '权限菜单', 'power:index', 2, 'power/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(6, 3, '管理角色', 'role:index', 2, 'role/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(7, 3, '管理人员', 'admin:index', 2, 'admin/index', 'layui-icon ', 1, NULL, 1, 0, 0, 0),
|
||||
(8, 0, '插件管理', 'addon:index', 2, 'addon/index', 'layui-icon layui-icon layui-icon layui-icon-app', 9, NULL, 1, 0, 0, 0),
|
||||
(9, 0, '用户管理', 'User', 1, '/User', 'layui-icon layui-icon-user', 3, NULL, 1, 0, 0, 0),
|
||||
(10, 9, '用户列表', 'user:index', 2, 'user/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(11, 9, '用户分组', 'group:index', 2, 'group/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(12, 9, '分组权限', 'rule:index', 2, 'rule/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(13, 5, '创建权限', 'power:create', 3, 'power/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(14, 5, '保存权限', 'power:save', 4, 'power/save', 'layui-icon layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(15, 5, '更新权限', 'power:update', 3, 'power/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(16, 5, '编辑权限', 'power:edit', 4, 'power/edit', 'layui-icon layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(17, 5, '删除权限', 'power:delete', 3, 'power/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(18, 6, '创建角色', 'role:create', 3, 'role/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(19, 6, '保存角色', 'role:save', 4, 'role/save', 'layui-icon layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(20, 6, '更新角色', 'role:update', 3, 'role/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(21, 6, '删除角色', 'role:delete', 3, 'role/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(22, 6, '编辑角色', 'role:edit', 3, 'role/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(23, 7, '创建管理员', 'admin:create', 3, 'admin/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(24, 7, '保存管理员', 'admin:save', 3, 'admin/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(25, 7, '更新管理员', 'admin:update', 3, 'admin/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(26, 7, '删除管理员', 'admin:delete', 3, 'admin/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(27, 7, '编辑管理员', 'admin:edit', 3, 'admin/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(28, 10, '创建用户', 'user:create', 3, 'user/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(29, 10, '保存用户', 'user:save', 3, 'user/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(30, 10, '更新用户', 'user:update', 3, 'user/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(31, 10, '删除用户', 'user:delete', 3, 'user/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(32, 10, '编辑用户', 'user:edit', 3, 'user/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(33, 4, '保存配置', 'configure:save', 4, 'configure/index', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(34, 11, '创建分组', 'group:create', 3, 'group/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(35, 11, '保存分组', 'group:save', 4, 'group/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(36, 11, '编辑分组', 'group:edit', 3, 'group/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(37, 11, '更新分组', 'group:update', 4, 'group/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(38, 11, '删除分组', 'group:delete', 4, 'group/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(39, 12, '创建权限', 'rule:create', 3, 'rule/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(40, 12, '保存权限', 'rule:save', 4, 'rule/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(41, 12, '编辑权限', 'rule:edit', 3, 'rule/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(42, 12, '更新权限', 'rule:update', 4, 'rule/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(43, 53, '友情链接', 'links:index', 2, 'links/index', 'layui-icon layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(44, 3, '框架升级', 'framework:index', 2, 'framework/index', 'layui-icon layui-icon-refresh', 0, NULL, 1, 0, 0, 0),
|
||||
(45, 43, '添加友链', 'links:add', 3, 'links/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(46, 43, '编辑友链', 'links:edit', 3, 'links/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(47, 43, '删除友链', 'links:delete', 3, 'links/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(48, 43, '友链回收站', 'links:recyclebin', 3, 'links/recyclebin', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(49, 43, '恢复友链', 'links:restore', 3, 'links/restore', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(50, 3, '蜘蛛统计', 'spider:index', 2, 'spider/index', 'layui-icon layui-icon-chart', 0, NULL, 1, 0, 0, 0),
|
||||
(51, 50, '蜘蛛汇总数据', 'spider:stats', 3, 'spider/stats', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(52, 50, '清理蜘蛛日志', 'spider:clear', 3, 'spider/clear', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(53, 0, '营运', 'operate', 1, '/operate', 'layui-icon layui-icon-engine', 4, NULL, 1, 0, 0, 0),
|
||||
(54, 53, '站点公告', 'notice:index', 2, 'notice/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(55, 53, '站点广告', 'ad:index', 2, 'ad/index', '', 2, NULL, 1, 0, 0, 0),
|
||||
(56, 53, '站点任务', 'task:index', 2, 'task/index', '', 3, NULL, 1, 0, 0, 0),
|
||||
(57, 53, '道具中心', 'prop:index', 2, 'prop/index', '', 4, NULL, 1, 0, 0, 0),
|
||||
(58, 53, '勋章中心', 'medal:index', 2, 'medal/index', '', 5, NULL, 1, 0, 0, 0),
|
||||
(59, 53, '短信服务', 'sms:index', 2, 'sms/index', '', 6, NULL, 1, 0, 0, 0),
|
||||
(60, 53, '站点帮助', 'help:index', 2, 'help/index', '', 7, NULL, 1, 0, 0, 0),
|
||||
(61, 53, '电子商务', 'shop:index', 2, 'shop/index', '', 8, NULL, 1, 0, 0, 0),
|
||||
(62, 53, '充值卡密', 'card:index', 2, 'card/index', '', 10, NULL, 1, 0, 0, 0),
|
||||
(63, 53, '积分规则', 'score:index', 2, 'score/index', '', 11, NULL, 1, 0, 0, 0),
|
||||
(64, 3, '主导航菜单', 'navbar:index', 2, 'navbar/index', 'layui-icon layui-icon-list', 12, NULL, 1, 0, 0, 0),
|
||||
(65, 64, '添加菜单', 'navbar:add', 3, 'navbar/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(66, 64, '编辑菜单', 'navbar:edit', 3, 'navbar/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(67, 64, '删除菜单', 'navbar:delete', 3, 'navbar/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0);
|
||||
(3, 0, '用户管理', 'User', 1, '/User', 'layui-icon layui-icon-user', 3, NULL, 1, 0, 0, 0),
|
||||
(4, 3, '用户列表', 'user:index', 2, 'user/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(5, 4, '创建用户', 'user:create', 3, 'user/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(6, 4, '保存用户', 'user:save', 3, 'user/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(7, 4, '更新用户', 'user:update', 3, 'user/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(8, 4, '删除用户', 'user:delete', 3, 'user/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(9, 4, '编辑用户', 'user:edit', 3, 'user/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(10, 3, '用户分组', 'group:index', 2, 'group/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(11, 10, '创建分组', 'group:create', 3, 'group/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(12, 10, '保存分组', 'group:save', 4, 'group/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(13, 10, '编辑分组', 'group:edit', 3, 'group/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(14, 10, '更新分组', 'group:update', 4, 'group/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(15, 10, '删除分组', 'group:delete', 4, 'group/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(16, 3, '分组权限', 'rule:index', 2, 'rule/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(17, 16, '创建权限', 'rule:create', 3, 'rule/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(18, 16, '保存权限', 'rule:save', 4, 'rule/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(19, 16, '编辑权限', 'rule:edit', 3, 'rule/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(20, 16, '更新权限', 'rule:update', 4, 'rule/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(21, 0, '营运', 'operate', 1, '/operate', 'layui-icon layui-icon-engine', 4, NULL, 1, 0, 0, 0),
|
||||
(22, 21, '友情链接', 'links:index', 2, 'links/index', 'layui-icon layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(23, 22, '添加友链', 'links:add', 3, 'links/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(24, 22, '编辑友链', 'links:edit', 3, 'links/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(25, 22, '删除友链', 'links:delete', 3, 'links/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(26, 22, '友链回收站', 'links:recyclebin', 3, 'links/recyclebin', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(27, 22, '恢复友链', 'links:restore', 3, 'links/restore', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(28, 21, '站点公告', 'notice:index', 2, 'notice/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(29, 21, '站点广告', 'ad:index', 2, 'ad/index', '', 2, NULL, 1, 0, 0, 0),
|
||||
(30, 21, '站点任务', 'task:index', 2, 'task/index', '', 3, NULL, 1, 0, 0, 0),
|
||||
(31, 21, '道具中心', 'prop:index', 2, 'prop/index', '', 4, NULL, 1, 0, 0, 0),
|
||||
(32, 21, '勋章中心', 'medal:index', 2, 'medal/index', '', 5, NULL, 1, 0, 0, 0),
|
||||
(33, 21, '短信服务', 'sms:index', 2, 'sms/index', '', 6, NULL, 1, 0, 0, 0),
|
||||
(34, 21, '站点帮助', 'help:index', 2, 'help/index', '', 7, NULL, 1, 0, 0, 0),
|
||||
(36, 21, '充值卡密', 'card:index', 2, 'card/index', '', 10, NULL, 1, 0, 0, 0),
|
||||
(37, 21, '积分规则', 'score:index', 2, 'score/index', '', 11, NULL, 1, 0, 0, 0),
|
||||
(38, 21, '蜘蛛统计', 'spider:index', 2, 'spider/index', 'layui-icon layui-icon-chart', 12, NULL, 1, 0, 0, 0),
|
||||
(39, 38, '蜘蛛汇总数据', 'spider:stats', 3, 'spider/stats', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(40, 38, '清理蜘蛛日志', 'spider:clear', 3, 'spider/clear', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(41, 0, '系统管理', 'system', 1, '/system', 'layui-icon layui-icon-set', 6, NULL, 1, 0, 0, 0),
|
||||
(42, 41, '系统设置', 'configure:index', 2, 'configure/index', '', 1, NULL, 1, 0, 0, 0),
|
||||
(43, 42, '保存配置', 'configure:save', 4, 'configure/index', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(44, 41, '权限菜单', 'power:index', 2, 'power/index', '', 2, NULL, 1, 0, 0, 0),
|
||||
(45, 44, '创建权限', 'power:create', 3, 'power/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(46, 44, '保存权限', 'power:save', 4, 'power/save', 'layui-icon layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(47, 44, '更新权限', 'power:update', 3, 'power/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(48, 44, '编辑权限', 'power:edit', 4, 'power/edit', 'layui-icon layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(49, 44, '删除权限', 'power:delete', 3, 'power/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(50, 41, '管理角色', 'role:index', 2, 'role/index', '', 3, NULL, 1, 0, 0, 0),
|
||||
(51, 50, '创建角色', 'role:create', 3, 'role/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(52, 50, '保存角色', 'role:save', 4, 'role/save', 'layui-icon layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(53, 50, '更新角色', 'role:update', 3, 'role/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(54, 50, '删除角色', 'role:delete', 3, 'role/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(55, 50, '编辑角色', 'role:edit', 3, 'role/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(56, 41, '管理人员', 'admin:index', 2, 'admin/index', 'layui-icon ', 4, NULL, 1, 0, 0, 0),
|
||||
(57, 56, '创建管理员', 'admin:create', 3, 'admin/create', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(58, 56, '保存管理员', 'admin:save', 3, 'admin/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(59, 56, '更新管理员', 'admin:update', 3, 'admin/update', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(60, 56, '删除管理员', 'admin:delete', 3, 'admin/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(61, 56, '编辑管理员', 'admin:edit', 3, 'admin/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(62, 41, '主导航菜单', 'navbar:index', 2, 'navbar/index', 'layui-icon layui-icon-list', 5, NULL, 1, 0, 0, 0),
|
||||
(63, 62, '添加菜单', 'navbar:add', 3, 'navbar/save', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(64, 62, '编辑菜单', 'navbar:edit', 3, 'navbar/edit', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(65, 62, '删除菜单', 'navbar:delete', 3, 'navbar/delete', 'layui-icon ', 0, NULL, 1, 0, 0, 0),
|
||||
(66, 41, '框架升级', 'framework:index', 2, 'framework/index', 'layui-icon layui-icon-refresh', 6, NULL, 1, 0, 0, 0),
|
||||
(67, 0, '数据运维', 'tools', 1, '/tools', 'layui-icon layui-icon-engine', 7, NULL, 1, 0, 0, 0),
|
||||
(68, 67, '数据库备份', 'database:index', 2, 'database/index', 'layui-icon layui-icon-set', 1, NULL, 1, 0, 0, 0),
|
||||
(69, 68, '备份', 'database:backup', 3, 'database/backup', '', 1, NULL, 1, 0, 0, 0),
|
||||
(70, 68, '还原', 'database:recovery', 3, 'database/recovery', '', 1, NULL, 1, 0, 0, 0),
|
||||
(71, 68, '删除', 'database:delete', 3, 'database/delete', '', 1, NULL, 1, 0, 0, 0),
|
||||
(72, 68, '优化', 'database:optimize', 3, 'database/optimize', '', 1, NULL, 1, 0, 0, 0),
|
||||
(73, 67, '数据表管理', 'datatable:index', 2, 'datatable/index', 'layui-icon layui-icon-template-1', 2, NULL, 1, 0, 0, 0),
|
||||
(74, 73, '新建', 'datatable:create', 3, 'datatable/create', '', 1, NULL, 1, 0, 0, 0),
|
||||
(75, 73, '结构', 'datatable:structure', 3, 'datatable/structure', '', 1, NULL, 1, 0, 0, 0),
|
||||
(76, 73, '优化', 'datatable:optimize', 3, 'datatable/optimize', '', 1, NULL, 1, 0, 0, 0),
|
||||
(77, 73, '删除', 'datatable:drop', 3, 'datatable/drop', '', 1, NULL, 1, 0, 0, 0),
|
||||
(78, 73, '导出安装SQL', 'datatable:export', 3, 'datatable/export', '', 1, NULL, 1, 0, 0, 0),
|
||||
(79, 67, '附件管理', 'attachment:index', 2, 'attachment/index', 'layui-icon layui-icon-picture', 3, NULL, 1, 0, 0, 0),
|
||||
(80, 79, '删除', 'attachment:delete', 3, 'attachment/delete', '', 1, NULL, 1, 0, 0, 0),
|
||||
(81, 67, '操作日志', 'adminlog:index', 2, 'adminlog/index', 'layui-icon layui-icon-log', 4, NULL, 1, 0, 0, 0),
|
||||
(82, 81, '删除', 'adminlog:delete', 3, 'adminlog/delete', '', 1, NULL, 1, 0, 0, 0),
|
||||
(83, 81, '清理', 'adminlog:clean', 3, 'adminlog/clean', '', 1, NULL, 1, 0, 0, 0),
|
||||
(84, 67, '系统信息', 'system:index', 2, 'system/index', 'layui-icon layui-icon-console', 5, NULL, 1, 0, 0, 0),
|
||||
(85, 84, '清理缓存', 'system:clean', 3, 'system/clean', '', 1, NULL, 1, 0, 0, 0),
|
||||
(86, 0, '插件管理', 'addon:index', 2, 'addon/index', 'layui-icon layui-icon-app', 8, NULL, 1, 0, 0, 0),
|
||||
(87, 37, '新增规则', 'score:add', 3, 'score/save', '', 0, NULL, 1, 0, 0, 0),
|
||||
(88, 37, '编辑规则', 'score:edit', 3, 'score/edit', '', 0, NULL, 1, 0, 0, 0),
|
||||
(89, 37, '删除规则', 'score:del', 3, 'score/delete', '', 0, NULL, 1, 0, 0, 0),
|
||||
(90, 37, '恢复规则', 'score:restore', 3, 'score/restore', '', 0, NULL, 1, 0, 0, 0),
|
||||
(91, 37, '彻底删除规则', 'score:destroy', 3, 'score/delete', '', 0, NULL, 1, 0, 0, 0),
|
||||
(92, 67, '模板钩子', 'hook:index', 2, 'hook/index', 'layui-icon layui-icon-template-1', 6, NULL, 1, 0, 0, 0);
|
||||
-- 导出 表 __PREFIX__backend_role 结构
|
||||
CREATE TABLE IF NOT EXISTS `__PREFIX__backend_role` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
@@ -265,6 +289,7 @@ CREATE TABLE IF NOT EXISTS `__PREFIX__common_attachment` (
|
||||
`upload_ip` varchar(45) NOT NULL COMMENT '上传者IP',
|
||||
`create_at` int unsigned NOT NULL COMMENT '创建时间',
|
||||
`update_at` int unsigned NOT NULL COMMENT '更新时间',
|
||||
`delete_at` int unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_storage` (`storage`),
|
||||
KEY `idx_user` (`uid`),
|
||||
@@ -330,6 +355,7 @@ INSERT INTO `__PREFIX__common_links` (`id`, `title`, `url`, `logo`, `description
|
||||
(3, '示例站点', 'https://example.com', '/static/common/img/link.png', '', 0, 1, 1778788611, 1778788611);
|
||||
|
||||
-- 导出 表 __PREFIX__common_spider_log 结构(全站搜索蜘蛛抓取明细,由全局中间件 SpiderStat 写入)
|
||||
-- verified 由 SpiderVerify 做 rDNS 双向验证(PTR 反查 + 官方域名后缀 + A/AAAA 正查)后写入
|
||||
CREATE TABLE IF NOT EXISTS `__PREFIX__common_spider_log` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`spider` varchar(20) NOT NULL DEFAULT '' COMMENT '蜘蛛标识',
|
||||
@@ -338,17 +364,22 @@ CREATE TABLE IF NOT EXISTS `__PREFIX__common_spider_log` (
|
||||
`app` varchar(20) NOT NULL DEFAULT '' COMMENT '应用名',
|
||||
`user_agent` varchar(500) NOT NULL DEFAULT '' COMMENT 'User-Agent',
|
||||
`http_code` smallint unsigned NOT NULL DEFAULT '200' COMMENT '响应状态码',
|
||||
`verified` tinyint(1) NOT NULL DEFAULT '0' COMMENT '真伪:0待验证 1真蜘蛛 2假蜘蛛',
|
||||
`rdns` varchar(255) NOT NULL DEFAULT '' COMMENT 'rDNS反查主机名',
|
||||
`create_at` int NOT NULL DEFAULT '0' COMMENT '抓取时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_spider_time` (`spider`,`create_at`),
|
||||
KEY `idx_create_at` (`create_at`)
|
||||
KEY `idx_create_at` (`create_at`),
|
||||
KEY `idx_verified` (`verified`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='搜索蜘蛛抓取日志';
|
||||
|
||||
-- 导出 表 __PREFIX__common_spider_stat 结构(按日聚合,报表免全表扫描)
|
||||
-- fake_count 为该蜘蛛当日「假蜘蛛(伪造 UA)」次数,真蜘蛛次数 = count - fake_count
|
||||
CREATE TABLE IF NOT EXISTS `__PREFIX__common_spider_stat` (
|
||||
`stat_date` date NOT NULL COMMENT '统计日期',
|
||||
`spider` varchar(20) NOT NULL DEFAULT '' COMMENT '蜘蛛标识',
|
||||
`count` int unsigned NOT NULL DEFAULT '0' COMMENT '抓取次数',
|
||||
`fake_count` int unsigned NOT NULL DEFAULT '0' COMMENT '其中假蜘蛛次数',
|
||||
PRIMARY KEY (`stat_date`,`spider`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='搜索蜘蛛按日统计';
|
||||
|
||||
@@ -540,7 +571,7 @@ CREATE TABLE IF NOT EXISTS `__PREFIX__member_rule` (
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `unique_name` (`name`) USING BTREE,
|
||||
KEY `idx_pid` (`pid`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='权限表';
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='权限表';
|
||||
|
||||
-- 正在导出表 __PREFIX__member_rule 的数据:~4 rows (大约)
|
||||
INSERT INTO `__PREFIX__member_rule` (`id`, `pid`, `title`, `name`, `type`, `module`, `route`, `icon`, `sort`, `status`, `create_at`, `update_at`, `delete_at`) VALUES
|
||||
@@ -634,6 +665,8 @@ CREATE TABLE IF NOT EXISTS `__PREFIX__member_prop` (
|
||||
`prop_id` int unsigned NOT NULL DEFAULT '0' COMMENT '道具ID',
|
||||
`num` int unsigned NOT NULL DEFAULT '1' COMMENT '数量',
|
||||
`create_at` int(11) NOT NULL DEFAULT '0' COMMENT '获得时间',
|
||||
`update_at` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`delete_at` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_uid` (`uid`),
|
||||
KEY `idx_uid_prop` (`uid`,`prop_id`)
|
||||
@@ -753,10 +786,15 @@ CREATE TABLE IF NOT EXISTS `__PREFIX__common_card` (
|
||||
-- 导出 表 __PREFIX__member_score_rule 结构
|
||||
CREATE TABLE IF NOT EXISTS `__PREFIX__member_score_rule` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(100) NOT NULL DEFAULT '' COMMENT '规则名称',
|
||||
`action` varchar(50) NOT NULL DEFAULT '' COMMENT '触发动作标识(task_complete/signin/register等)',
|
||||
`title` varchar(100) NOT NULL DEFAULT '' COMMENT '规则名称',
|
||||
`action` varchar(50) NOT NULL DEFAULT '' COMMENT '触发动作标识(user.register/task.complete等)',
|
||||
`type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1获取2消费',
|
||||
`value` int(11) NOT NULL DEFAULT 0 COMMENT '变动值',
|
||||
`value` int(11) NOT NULL DEFAULT 0 COMMENT '变动值(正数)',
|
||||
`addon` varchar(50) NOT NULL DEFAULT '' COMMENT '归属插件标识(空=核心)',
|
||||
`limit_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '限次周期 0不限1每日2每周3每月4累计',
|
||||
`limit_times` int(11) NOT NULL DEFAULT 0 COMMENT '周期内最多触发次数(0=不限)',
|
||||
`unique_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '去重 0不去重1按来源业务ID去重',
|
||||
`remark` varchar(255) NOT NULL DEFAULT '' COMMENT '流水备注模板({title}等占位)',
|
||||
`status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态 0禁用1启用',
|
||||
`sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序',
|
||||
`create_at` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
|
||||
@@ -764,6 +802,7 @@ CREATE TABLE IF NOT EXISTS `__PREFIX__member_score_rule` (
|
||||
`delete_at` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_action` (`action`),
|
||||
KEY `idx_addon` (`addon`),
|
||||
KEY `idx_status_sort` (`status`,`sort`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分规则';
|
||||
|
||||
@@ -772,13 +811,18 @@ CREATE TABLE IF NOT EXISTS `__PREFIX__member_score_log` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`uid` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '用户ID',
|
||||
`rule_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '关联规则ID',
|
||||
`action` varchar(50) NOT NULL DEFAULT '' COMMENT '触发动作标识',
|
||||
`type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1收入2支出',
|
||||
`value` int(11) NOT NULL DEFAULT 0 COMMENT '变动值',
|
||||
`balance` int(11) NOT NULL DEFAULT 0 COMMENT '变动后余额',
|
||||
`source` varchar(50) NOT NULL DEFAULT '' COMMENT '来源模块/插件',
|
||||
`source_id` varchar(64) NOT NULL DEFAULT '' COMMENT '来源业务ID(去重与追踪)',
|
||||
`remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`create_at` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_uid` (`uid`),
|
||||
KEY `idx_uid_create` (`uid`,`create_at`)
|
||||
KEY `idx_uid_create` (`uid`,`create_at`),
|
||||
KEY `idx_rule` (`rule_id`),
|
||||
KEY `idx_dedup` (`action`,`uid`,`source_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分流水';
|
||||
|
||||
Reference in new issue
Block a user