feat(task): 新增定时任务控制系统与分享码配置
- 增加设备持久化、阻抗数据持久化、分享码持久化定时任务 - 通过环境变量 ENABLE_PERSIST_TASK 和 ENABLE_IMPEDANCE_PERSIST_TASK 控制任务启用 - 分享码配置新增最大数量和TTL时间支持多种时间单位(m/h/d) - 实现任务批量处理、锁机制及失败重试保障数据一致性 - 定时任务启动集成至服务主流程,增强系统可配置性和运维便利性 feat(ota): 新增根据设备型号和版本号查询版本名称接口 - 实现 GET /audio/getVerName 接口返回唯一 OTA 版本名称 verName - 添加请求参数校验及错误处理逻辑 - 在仓库层新增按型号和版本号查询版本名称的方法 - 完善接口文档及Swagger定义,支持前端调用查询版本名称功能
This commit is contained in:
@@ -131,6 +131,21 @@ func (r *OTARepository) GetLatestOTANotTarget(ctx context.Context, modelVal stri
|
||||
return &o, nil
|
||||
}
|
||||
|
||||
// GetVerNameByVersion 按 model+verCode 查询版本名称
|
||||
func (r *OTARepository) GetVerNameByVersion(ctx context.Context, modelVal string, version int) (string, bool, error) {
|
||||
const query = `SELECT verName FROM ota WHERE model = ? AND verCode = ? LIMIT 1`
|
||||
|
||||
var verName string
|
||||
err := r.db.QueryRowContext(ctx, query, modelVal, version).Scan(&verName)
|
||||
if err == sql.ErrNoRows {
|
||||
return "", false, nil
|
||||
}
|
||||
if err != nil {
|
||||
return "", false, fmt.Errorf("query ota verName: %w", err)
|
||||
}
|
||||
return verName, true, nil
|
||||
}
|
||||
|
||||
// IsInBlackList 检查 mac 是否在指定 ota_id 的黑名单中
|
||||
func (r *OTARepository) IsInBlackList(ctx context.Context, otaID int, mac string) (bool, error) {
|
||||
const query = `SELECT COUNT(*) FROM black_list WHERE ota_id = ? AND mac = ?`
|
||||
|
||||
Reference in New Issue
Block a user