纳入范围: - backend/ Spring Boot 多模块后端(iot-common/device/rule/data/alarm/auth) - frontend/admin/ Vue3 + Element Plus 管理后台 - Android/ 涂鸦原生 APP (com.xhai.iot) - backend/sql/ Flyway 风格迁移脚本(V2~V21) - docs/ 对接文档与设计文档 排除范围: - 构建产物: node_modules/ target/ build/ dist/ .gradle/ - 签名密钥: *.jks *.keystore (严禁入库) - 本机配置: Android/local.properties - 运行日志: logs/ *.log - AI 协作本地数据 .codebuddy/ 与第三方 demo tuya-demo/ .gitattributes 统一以 LF 存储, Windows 批处理保留 CRLF
61 lines
3.8 KiB
SQL
61 lines
3.8 KiB
SQL
-- V6: 第三方平台集成(涂鸦/Google/Alexa等)
|
||
-- 存储各平台的 API 凭证和配置信息
|
||
|
||
-- 1. 平台配置表(存储第三方平台API凭证,支持多租户)
|
||
CREATE TABLE IF NOT EXISTS `platform_config` (
|
||
`id` BIGINT NOT NULL COMMENT '主键ID(雪花算法)',
|
||
`platform_code` VARCHAR(32) NOT NULL COMMENT '平台编码(tuya/google_home/alexa)',
|
||
`platform_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '平台显示名称',
|
||
`tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID(0=全局)',
|
||
`enabled` TINYINT NOT NULL DEFAULT 0 COMMENT '是否启用(0禁用/1启用)',
|
||
-- 涂鸦相关字段
|
||
`access_id` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '涂鸦Access ID',
|
||
`access_secret` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '涂鸦Access Secret(加密存储)',
|
||
`api_region` VARCHAR(10) NOT NULL DEFAULT 'cn' COMMENT 'API区域(cn/us/eu/in)',
|
||
-- Google Home 相关字段
|
||
`project_id` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'Google Cloud Project ID',
|
||
`client_id` VARCHAR(200) NOT NULL DEFAULT '' COMMENT 'OAuth Client ID',
|
||
`client_secret` VARCHAR(200) NOT NULL DEFAULT '' COMMENT 'OAuth Client Secret(加密)',
|
||
-- Alexa 相关字段
|
||
`alexa_client_id` VARCHAR(200) NOT NULL DEFAULT '' COMMENT 'Alexa Client ID',
|
||
`alexa_secret` VARCHAR(200) NOT NULL DEFAULT '' COMMENT 'Alexa Client Secret(加密)',
|
||
`region` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '服务区域',
|
||
-- 通用字段
|
||
`config_json` TEXT NULL COMMENT '额外配置(JSON格式)',
|
||
`remark` VARCHAR(255) NULL COMMENT '备注',
|
||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`create_by` BIGINT NULL COMMENT '创建人ID',
|
||
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`update_by` BIGINT NULL COMMENT '更新人ID',
|
||
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_platform_tenant` (`platform_code`, `tenant_id`, `deleted`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='第三方平台配置表';
|
||
|
||
-- 2. 涂鸦用户授权表(存储用户与涂鸦的OAuth绑定关系)
|
||
CREATE TABLE IF NOT EXISTS `tuya_user_binding` (
|
||
`id` BIGINT NOT NULL COMMENT '主键ID',
|
||
`member_id` BIGINT NOT NULL COMMENT '会员ID',
|
||
`tuya_user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '涂鸦用户UID',
|
||
`tuya_open_id` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '涂鸦Open ID',
|
||
`access_token` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '访问令牌(加密)',
|
||
`refresh_token` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '刷新令牌(加密)',
|
||
`token_expire_at` DATETIME NULL COMMENT 'Token过期时间',
|
||
`default_home_id` BIGINT NOT NULL DEFAULT 0 COMMENT '默认家庭ID',
|
||
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态(0解绑/1有效)',
|
||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`create_by` BIGINT NULL COMMENT '创建人ID',
|
||
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`update_by` BIGINT NULL COMMENT '更新人ID',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_member` (`member_id`, `status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='涂鸦用户绑定表';
|
||
|
||
-- 插入默认涂鸦配置记录(占位符,需在后台修改为真实值)
|
||
INSERT INTO `platform_config`
|
||
(`id`, `platform_code`, `platform_name`, `tenant_id`, `enabled`, `access_id`,
|
||
`api_region`, `remark`, `create_time`, `update_time`, `deleted`)
|
||
VALUES
|
||
(1, 'tuya', '涂鸦智能', 0, 0, '', 'cn',
|
||
'请在后台管理页面填写涂鸦IoT开放平台的API凭证', NOW(), NOW(), 0);
|