iotsaas/backend/sql/V6__add_platform_integration.sql
2995840376 0ce191c448 chore: 初始化 iotsaas 版本库基线
纳入范围:
- 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
2026-10-27 12:00:41 +08:00

61 lines
3.8 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 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);