Commit Graph

7 Commits

Author SHA1 Message Date
cnc
e4ef35c795 google邮箱发送验证码 2026-09-18 17:58:10 +08:00
cnc
e3b01e7b44 Merge branch 'main' of https://gitea.bugtc.com/yuhaiming/bird_monitoring
# Conflicts:
#	ruoyi-admin/src/main/resources/application.yml
2026-09-18 09:45:45 +08:00
cnc
e0524d17eb 国际验证码以及手机验证码登录 2026-09-18 09:44:26 +08:00
yuhaiming
7bdc5c846d 设备列表 视频流服务器 2026-09-17 17:09:49 +08:00
yuhaiming
1cfb071dfb chore(device): 补充 device.app.email 配置段(Gmail SMTP,凭据走环境变量)
- application-dev.yml / application-prod.yml 新增 device.app.email 段(各 +32/33 行)
- 与已提交的 AppEmailService/AppProperties.Email 对齐:字段名、默认值一一对应
- mock 语义:dev=true 仅打日志;prod=false,且 prod+mock=true 时 AppEmailProdGuard 拒绝启动
- host/port/user/pass/from 全部由 ${DEVICE_APP_EMAIL_*} 环境变量注入,无任何明文凭据
- allowed-domains 默认注释(留空=不限制域名),要"只允许谷歌邮箱"取消注释即可,无需改代码
- 整段删除不影响启动(AppProperties 内均有同值默认)
2026-09-17 10:29:31 +08:00
yuhaiming
79b739fe02 feat(device): 一期设备域 I1-I5 全量实现(APP 接口/后台管理/OTA/MQTT/直播)
模块接入:
- 新增 ruoyi-device(org.dromara.device)并注册到根/ruoyi-modules/ruoyi-admin pom

APP 侧(/app/**,需登录,仅本人绑定设备):
- 账号闭环:短信/邮箱验证码注册登录、密码重置(不跨界返回散列)
- 设备:绑定/列表/详情/重命名/解绑(越权统一"设备不存在",防 IDOR)
- 眼罩开关(/app/device/{deviceNo}/hood,低电不对称拦截)
- 定位(/app/device/{deviceNo}/location)
- 直播(/app/stream 6 端点 + /app/device/{deviceNo}/live,自建 ZLMediaKit,设备主动推流)

后台(/device/**):
- 设备 CRUD/统计/删除/导出(ExcelBuilder)
- OTA(6 端点:升级包管理 + 批量下发,total==created+skipped+failed)

MQTT(T05):
- 遥测/事件/ack 监听、指令下发+回执(防串设备)、离线扫描、低电告警
- 报文身份仅来自 Topic,反查 device_id 防跨设备伪造

数据与脚本:
- script/sql/ry_device.sql(6 表/字典/权限字/菜单)、bm_patch.sql
- script/mqtt 设备模拟器(mqtt-simulate.js)

安全:
- MQTT broker 凭据外置为环境变量 MQTT_USERNAME/MQTT_PASSWORD,不落明文
- ZLM webhook 密钥外置为环境变量 ZLM_SECRET(未配置时 /zlm/hook/** 失败关闭),不落明文
2026-09-17 10:21:27 +08:00
yuhaiming
926426fe4f init 2026-09-16 10:11:41 +08:00