eafonyang
ceea657ccf
耳机阻抗数据:过滤了阻抗=0,耳机型号乱码的数据
2026-08-25 16:47:22 +08:00
eafonyang
27ee791891
refactor(config): 重构配置系统实现环境变量驱动
...
- 移除所有硬编码环境特定值,实现配置完全环境变量化
- 强化配置加载与校验,确保生产环境变量完整有效
- 更新文档说明,突出环境变量配置最佳实践
- 支持通过容器环境变量或配置中心注入敏感配置
- 统一环境差异管理,避免硬编码导致的环境耦合
- 配置管理集成至应用启动流程,提升配置灵活性与安全性
2026-07-15 16:41:09 +08:00
eafonyang
4f1da3675b
数据库+redis+meilisearch+s3+EQURL 配置全部走环境变量,不在代码层硬编码
2026-07-13 14:16:05 +08:00
eafonyang
c1547f9a8f
feat(impedance): 新增用户耳机阻抗功能模块
...
- 设计并添加 user_headphone_impedance 表,包含唯一复合索引保证数据完整性
- 实现阻抗上报API接口 /audio/reportImpedance,支持设备上传阻抗数据
- 使用Redis Hash结构缓存阻抗数据,键为 "headphone_impedances"
- 新增定时持久化任务,每5分钟从Redis读取数据批量写入数据库
- 对品牌和型号数据进行trim+lower归一化处理,支持数据去重更新
- 优化查询性能,确保mac_addr与品牌型号归一化组合唯一索引生效
- 更新故障排查指南,新增Redis缓存及唯一索引相关问题检查
- 新增阻抗持久化配置开关,允许按需启用该功能
2026-07-07 19:16:02 +08:00
eafonyang
5d2910e89e
耳机阻抗上报
2026-07-06 10:41:41 +08:00
eafonyang
455bea8380
修复了EQ 曲线接口中,+没有转义成空格的 bug
2026-07-02 12:06:10 +08:00
eafonyang
6e8aa239e8
移除ota_target_device表中的type 字段
2026-06-30 17:42:06 +08:00
eafonyang
23f712cf86
优化部署流程
2026-06-30 13:50:29 +08:00
eafonyang
a52adf7e27
refactor(ota): 移除 OTA 相关冗余字段及清理代码
...
- 从 OTA 结构体中删除 pawVerCode、pawVerName、pawUrl、pawMd5 字段
- 更新数据库查询,去除对上述字段的扫描
- 调整 SQL 迁移脚本,删除对应的数据库列
- 简化相关存储库方法的查询逻辑,提升代码维护性
2026-06-30 11:05:55 +08:00
eafonyang
2983c82b09
更新 wiki
2026-06-22 13:35:37 +08:00
eafonyang
7ed7183f1a
新增删除分享码功能
2026-06-17 16:50:39 +08:00
eafonyang
4b903f39e1
shareQuery 和 shareAccept 的响应中加入 model 字段
2026-06-17 14:05:32 +08:00
eafonyang
7687e6a0d9
分享码日志新增 model 字段,记录操作的设备的型号 X8/X9
2026-06-17 13:52:11 +08:00
eafonyang
1e7dc01b22
给高频调用的路由加上 cache-control
2026-06-16 17:21:31 +08:00
eafonyang
b5560ca702
分享码有效期,支持表达式
2026-06-15 20:02:43 +08:00
eafonyang
fc4ec2c030
增加分享码查询接口,不写入操作日志表
2026-06-15 17:58:14 +08:00
eafonyang
684d6bafb8
feat(router): 根据环境配置有条件启用Swagger文档
...
- 新增env参数用于路由初始化
- 仅当环境非生产时启用Swagger文档访问
- 通过传递环境配置参数控制文档路由注册
- 修改router构造函数和调用处以支持新参数
2026-06-12 18:44:49 +08:00
eafonyang
598bbd4998
fix(sharecode): 支持分享码TTL配置并限制每MAC分享码数
...
- 配置增加 ShareCodeMaxPerMac 和 ShareCodeTTLMin 参数
- ShareCodeCache 支持自定义分享码有效期 TTL
- 生成分享码时使用配置的 TTL 替代固定30分钟
- 共享码处理添加限制,同一MAC有效分享码数量限制
- 路由层、处理器层和任务调度中增加TTL及限额参数传递
- 同步脚本默认同步路径调整,去除默认同步Docker文件,增加docs目录同步
- 修正上传脚本拼接远程路径时尾部斜杠问题
2026-06-12 18:29:08 +08:00
eafonyang
28fb798926
fix(cache): share:mac ZSET 添加 1h 兜底 TTL,防止永不调用 shareList 时 key 泄漏
...
- 新增 shareMacIndexTTL = 1h 常量
- Lua 脚本中原子执行 EXPIRE KEYS[3]
- 每次创建分享码续期 ZSET,活跃用户不受影响
- 无人调用 shareList 时 ZSET 1h 后自动过期清理
2026-06-12 17:30:18 +08:00
eafonyang
cbf3ad6613
docs(cache): 添加 share_code_cache.go 文件级文档注释
...
描述 Redis 存储结构(Hash/ZSET/SET/锁)和完整数据流(创建/查询/导入/持久化)
2026-06-12 17:09:21 +08:00
eafonyang
b2aed2a6b5
feat(share): 新增 shareList 接口 + 分享码模块全链路优化
...
- 新增 GET /audio/shareList?mac=xx 查询未过期分享码(纯 Redis,ZSET 索引)
- share:mac:{mac} 从 SET 改为 ZSET(score=expire_at),支持 ZREMRANGEBYSCORE 精确过期清理
- 空 ZSET 自动 DEL,避免 key 累积
- share:import:pending 增加 12h 兜底 TTL,防止 DB 不可用时内存泄漏
- 导入日志 field 改为 mac:code(去掉 nanotime),同 MAC+code 多次导入幂等去重
- MarkPersisted 保存/恢复 PTTL,防御性编程
- shareCreate 改为 POST + JSON body
- 全量 handler 补充 Swagger 注释,集成 swag 文档生成
- Makefile 使用 $(go env GOPATH)/bin/swag 解决 PATH 问题
2026-06-12 17:07:59 +08:00
eafonyang
8010cbd32f
新增分享码功能
2026-06-12 15:50:01 +08:00
eafonyang
46fd35b0df
修复 bug
2026-06-11 11:12:19 +08:00
eafonyang
74f4318838
优化缓存结构,优化缓存机制
2026-06-10 19:28:30 +08:00
eafonyang
173e23f531
feat(equalize): Enhance EqualizeConfig to support external API URL
...
- Added ExternalAPIURL to EqualizeConfig for public EQ interface usage.
- Updated loadEqualize function to initialize ExternalAPIURL from environment variable or default value.
- Refactored reqEqualize method to accept apiURL as a parameter for improved flexibility.
- Introduced eqAPIURL method to determine the appropriate API URL based on the source.
2026-06-08 18:48:54 +08:00
eafonyang
87bdad34fc
更新环境配置,优化数据库和Redis连接设置
...
- 修改`.env.example`文件,更新数据库和Redis的默认主机地址为`192.168.9.127`
- 在`docker-compose.yml`中移除不必要的卷挂载配置
- 在`go.mod`中添加`github.com/joho/godotenv`依赖以支持环境变量加载
- 更新`README.md`以反映新的数据库和Redis连接信息
- 在`main.go`中加载环境变量以支持动态配置
- 新增缓存存在性检查功能,避免重复预热缓存
- 优化CSV读取逻辑,支持从S3获取数据
2026-06-08 14:52:23 +08:00
eafonyang
99785672a5
优化
2026-06-05 20:15:30 +08:00
eafonyang
8c22be4e0a
优化
2026-06-05 14:03:34 +08:00
eafonyang
4f31cd563f
修复 curve 接口的一些问题
2026-06-04 19:39:08 +08:00
eafonyang
c4cd8b6f5d
feat(equalize): 添加目标曲线获取及缓存功能
...
- 新增CurveCache实现Redis曲线数据缓存与分布式锁机制,避免重复请求
- 增加CurveHandler支持目标曲线接口,通过EQ API获取并缓存曲线数据
- Config新增EqualizeConfig配置,支持环境变量动态配置
- Repository新增CurveRepository,按brand和name查询模型与目标曲线数据
- 路由更新,集成/getCurve接口处理目标曲线请求
- OTA模型字段优化,bool类型改为BoolInt,实现数据库int与JSON bool映射
- 统一响应格式,调整response包中OK和Fail函数消息字段命名
- 修改服务端配置默认DB IP,支持Equalize参数传递到路由层
- 新增CSV解析实现,从文件读取测量与目标曲线数据
- 修改OTA处理逻辑,修复定向升级判断bug
- Java层新增EqualizeController和ModelService对应功能,保持客户端接口兼容与调用逻辑一致
2026-06-01 19:08:43 +08:00
yangy
665397ede7
feat(ota): 增强设备管理与OTA功能模块
...
- 新增OTA固件升级处理器,支持固件升级请求及黑名单过滤
- 引入设备持久化仓储,支持设备信息上报与活动记录
- 扩展数据模型,新增UserDevice与UserActive,支持设备版本跟踪
- 实现Redis到MySQL的异步数据同步任务
- 更新路由配置,集成新的API端点以支持OTA功能
- 优化架构图,反映新增的数据流与处理流程
2026-05-31 09:52:11 +08:00
yangy
f3e3e82f52
feat(device): 增加设备信息持久化和OTA升级功能
...
- 新增设备持久化定时任务,每5分钟将Redis中采集的设备信息同步数据库
- 新增UserDevice和UserActive模型及相应数据库表和操作接口
- 设备信息上报中获取客户端公网IP,替代原X-Forwarded-For头部
- 新建OTA功能模块,实现OTA固件升级信息查询接口
- 支持OTA黑名单过滤与定向升级设备判断
- 设计OTA相关数据库结构:ota、black_list、ota_target_device表
- 缓存预热新增按品牌分组预热型号缓存
- 依赖注入新增OTA Repository及Handler路由配置
- 实现客户端公网IP提取逻辑,支持多种代理头部优先级识别
2026-05-28 18:26:20 +08:00
yangy
b2c11adeba
feat(cache): 完善缓存系统实现及集成数据访问层
...
- 新增BrandCache与ModelCache,实现多级缓存和TTL管理
- 引入缓存预热机制,启动时自动加载品牌与型号数据
- 实现缓存穿透防护和数据库降级策略,提升服务稳定性
- 优化缓存键命名和数据序列化策略,增强管理便捷性
- 数据访问层新增缓存感知查询,品牌与型号仓库支持缓存优先
- 调整整体架构,增强组件解耦及依赖注入链路清晰度
- 提供详细的性能优化建议和故障排查指南
- 补充监控指标说明,便于后续运维与监控扩展
2026-05-28 15:30:05 +08:00
yangy
36c6ca2766
新增功能
2026-05-27 18:07:55 +08:00
yangy
fe7b61d8d1
Merge branch 'main' of http://8.163.11.238:8081/audio/app-api
2026-05-21 15:33:59 +08:00
杨奕锋
2bf802c6e2
Delete README.md
2026-05-21 15:33:44 +08:00
yangy
3224041990
首次提交
2026-05-21 15:20:12 +08:00
杨奕锋
6fe1f08e17
Initial commit
2026-05-21 10:06:07 +08:00