This commit is contained in:
tanglong 2025-07-29 17:20:13 +08:00
parent 2a7f1816e4
commit 1233f40833

View File

@ -392,26 +392,46 @@ namespace YD_AllHeartRates.Api.Mqtt
foreach (var key in keys) foreach (var key in keys)
{ {
var data = _caching.Get<JumpRopeData>(key); var data = _caching.Get<JumpRopeData>(key);
if (data == null || string.IsNullOrWhiteSpace(data.StudentNo)) continue; if (data == null || string.IsNullOrWhiteSpace(data.StudentNo)) continue;
var exist = await dbContext.JumpRopeData var exist = await dbContext.JumpRopeData
.FirstOrDefaultAsync(x => x.StudentNo == data.StudentNo && x.ScoreTime.Date == today); .FirstOrDefaultAsync(x => x.StudentNo == data.StudentNo && x.ScoreTime.Date == today);
if (exist != null && data.JumpValue > exist.JumpValue) if (exist != null)
{
if (data.JumpValue > exist.JumpValue)
{ {
exist.JumpValue = data.JumpValue; exist.JumpValue = data.JumpValue;
exist.ErrorNumber = data.ErrorNumber; exist.ErrorNumber = data.ErrorNumber;
exist.QuantityOfElectricity = data.QuantityOfElectricity; exist.QuantityOfElectricity = data.QuantityOfElectricity;
exist.ScoreTime = data.ScoreTime; exist.ScoreTime = data.ScoreTime;
} }
}
else else
{
try
{ {
dbContext.JumpRopeData.Add(data); dbContext.JumpRopeData.Add(data);
}
}
await dbContext.SaveChangesAsync(); await dbContext.SaveChangesAsync();
}
catch (DbUpdateException ex)
{
// 如果是唯一约束冲突,说明有并发插入
// 可以忽略或重试更新
var existRetry = await dbContext.JumpRopeData
.FirstOrDefaultAsync(x => x.StudentNo == data.StudentNo && x.ScoreTime.Date == today);
if (existRetry != null && data.JumpValue > existRetry.JumpValue)
{
existRetry.JumpValue = data.JumpValue;
existRetry.ErrorNumber = data.ErrorNumber;
existRetry.QuantityOfElectricity = data.QuantityOfElectricity;
existRetry.ScoreTime = data.ScoreTime;
await dbContext.SaveChangesAsync();
}
}
}
}
_lastJumpRopeSaveTime = DateTime.Now; _lastJumpRopeSaveTime = DateTime.Now;
} }
catch (Exception ex) catch (Exception ex)