namespace Yw.RedisCache
{
///
/// 指标健康评价记录缓存辅助类
///
public class HealthQuotaEvaluationRecordCacheHelper
{
//健康结果记录
private const string _flag = "health-quota-evaluation-record";
//最后一条记录
private const string _lastRecord = "last-record";
//Redis客户端辅助类对象
private readonly RedisClientHelper _redisClient = new();
//获取 RedisKey
private static string CreateRedisKey(long SignalID)
{
return $"{RedisKeyHelper.CreateKey(_flag)}:{SignalID}";
}
#region 记录
///
/// 设置最后一条记录
///
public bool SetLastRecord(Model.HealthQuotaEvaluationRecord model)
{
if (model == null)
return false;
string redisKey = CreateRedisKey(model.SignalID);
var hashKey = _lastRecord;
_redisClient.HashSetJosn(redisKey, hashKey, model);
return true;
}
///
/// 设置最后一条记录
///
public bool SetLastRecord(IEnumerable list)
{
if (list == null || !list.Any())
return false;
foreach (var item in list)
{
var bol = SetLastRecord(item);
if (!bol)
return false;
}
return true;
}
///
/// 获取最后一条记录
///
public Model.HealthQuotaEvaluationRecord GetLastRecord(long SignalID)
{
var redisKey = CreateRedisKey(SignalID);
var hashKey = _lastRecord;
return _redisClient.HashGetJson(redisKey, hashKey);
}
///
/// 获取最后一条记录
///
public List GetLastRecord(IEnumerable SignalIds)
{
if (SignalIds == null || !SignalIds.Any())
return default;
return SignalIds.ToList().Select(x => GetLastRecord(x)).Where(x => x != null).ToList();
}
///
/// 删除最后一条记录
///
public void DeleteLastRecord(long SignalID)
{
var redisKey = CreateRedisKey(SignalID);
var hasKey = _lastRecord;
_redisClient.HashDelete(redisKey, hasKey);
}
#endregion
}
}