2995840376 0ff9103089 fix(H): 修复 product_property 驼峰遗留列导致后台产品页面 500
问题:后台「产品中心 - 产品列表/详情/物模型」报
      Unknown column 'completion_mode' in 'field list'(BadSqlGrammarException)

根因:V19(面板 P2 迁移)建列时把 completionMode 直接当作列名写入 product_property(驼峰),
      而 MyBatis-Plus 默认把实体字段 completionMode 映射为下划线形式 completion_mode,
      实体查询/写入时找不到列。
      注:V22 已把 completion_mode 的权威归属判定为 product_action 维度,
      product_property 上的同名列属于历史兼容,保留但统一为下划线命名。

修复:新增 V23 迁移,将 product_property.completionMode 重命名为 completion_mode
  - 幂等可重复执行,三种情形分别处理:
      1) 仅有驼峰列   -> 直接 RENAME COLUMN
      2) 两列都存在   -> 先回填旧列非空值到新列,再 DROP 旧列
      3) 仅有下划线列 -> 跳过
  - 无存储过程、无 DELIMITER(MySQL batch 管道模式下 DELIMITER 失效)
  - 全库扫描(COLUMN_NAME <> LOWER(COLUMN_NAME))确认驼峰遗留列仅此一处

上线过程:全库备份 /opt/iotsaas/backup/iot_platform_before_v23.sql
          -> 克隆库 iot_v23_test 演练两遍(重命名成功 + 幂等无副作用)-> 生产执行 -> 克隆库 DROP

验证:/api/v1/products、/api/v1/products/{id}、/api/v1/products/{id}/spec、
      /api/v1/products/{id}/control-schema 全部返回 200,物模型属性正常返回。
2026-10-27 19:12:13 +08:00

物联网系统平台

项目简介

企业级物联网系统平台,支持万级设备接入,兼容涂鸦、小度、小米等第三方平台,预留Matter协议扩展接口。

技术栈

后端

  • Java 17
  • Spring Boot 3.2.x
  • Spring Security (认证鉴权)
  • MyBatis Plus (持久层)
  • MySQL 8.0 (关系数据库)
  • InfluxDB 2.x (时序数据库)
  • Redis 7.x (缓存)
  • RabbitMQ (消息队列)
  • EMQX (MQTT Broker)
  • XXL-Job (任务调度)

前端

  • Vue 3 + TypeScript
  • Vite 5.x
  • Element Plus (UI组件库)
  • Pinia (状态管理)
  • Axios (HTTP客户端)
  • ECharts (数据可视化)
  • UniApp (移动端)

项目结构

iotsaas/
├── backend/                 # 后端项目
│   ├── iot-common/         # 公共模块
│   ├── iot-auth/           # 认证服务
│   ├── iot-gateway/        # API网关
│   ├── iot-device/         # 设备管理服务
│   ├── iot-data/           # 数据采集服务
│   ├── iot-rule/           # 规则引擎服务
│   ├── iot-alarm/          # 告警服务
│   └── iot-adapter/        # 设备适配器模块
│       ├── tuya/          # 涂鸦适配器
│       ├── dueros/        # 小度适配器
│       ├── miot/          # 小米适配器
│       └── matter/        # Matter适配器
├── frontend/               # 前端项目
│   ├── admin/             # Web管理后台
│   └── mobile/            # 移动端APP
├── docs/                  # 文档
├── docker/                # Docker配置
├── scripts/               # 脚本工具
└── deploy/                # 部署配置

快速开始

环境要求

  • JDK 17+
  • Node.js 18+
  • MySQL 8.0+
  • Redis 7.x
  • Docker & Docker Compose

后端启动

cd backend
mvn clean install
mvn spring-boot:run

前端启动

cd frontend/admin
npm install
npm run dev

Docker一键启动

docker-compose up -d

核心功能

  • 设备管理与监控
  • 实时数据采集
  • 规则引擎与联动
  • 告警服务
  • 多平台设备适配
  • 数据可视化看板
  • 用户权限管理

开发文档

详细开发文档请参考 docs/ 目录。

许可证

Copyright © 2026 IoT Platform

Description
No description provided
Readme 27 MiB
Languages
Java 75.4%
Vue 18.9%
TypeScript 4.3%
Batchfile 0.9%
JavaScript 0.3%
Other 0.1%