namespace Yw.RedisCache
{
///
///
///
public class RunRealLastRecordCacheHelper
{
//Redis客户端辅助类对象
private readonly RedisClientHelper _redisClient = new();
//生成 HashKey
private static string CreateHashKey()
{
return RedisKeyHelper.CreateKey(_flag);
}
private const string _flag = "run-real-last-record";
//生成 HashField
private static string CreateHashField(string ObjectType, long ObjectID)
{
return $"{ObjectType}{_split}{ObjectID}";
}
//生成 HashField
private static string CreateHashField(string ObjectType)
{
return $"{ObjectType}{_split}";
}
//生成 HashField
private static string CreateHashField(long ObjectID)
{
return $"{_split}{ObjectID}";
}
private const string _split = "-";
///
/// 设置最后一条记录
///
public bool SetLastRecord(Model.RunRealRecord record)
{
if (record == null)
{
return false;
}
var hashKey = CreateHashKey();
var hashField = CreateHashField(record.ObjectType, record.ObjectID);
_redisClient.HashSetJosn(hashKey, hashField, record);
return true;
}
///
/// 设置最后一条记录
///
public bool SetLastRecord(List list)
{
if (list == null || !list.Any())
{
return false;
}
foreach (var item in list)
{
var bol = SetLastRecord(item);
if (!bol)
{
return false;
}
}
return true;
}
///
/// 获取最后一条记录
///
public List GetLastRecord()
{
var hashKey = CreateHashKey();
return _redisClient.HashGetJsonAll(hashKey);
}
///
/// 获取最后一条记录
///
public List GetLastRecord(string ObjectType)
{
var hashKey = CreateHashKey();
var hashField = CreateHashField(ObjectType);
return _redisClient.HashGetJsonStartWith(hashKey, hashField);
}
///
/// 获取最后一条记录
///
public List GetLastRecord(long ObjectID)
{
var hashKey = CreateHashKey();
var hashField = CreateHashField(ObjectID);
return _redisClient.HashGetJsonEndWith(hashKey, hashField);
}
///
/// 获取最后一条记录
///
public Model.RunRealRecord GetLastRecord(string ObjectType, long ObjectID)
{
var hashKey = CreateHashKey();
var hashField = CreateHashField(ObjectType, ObjectID);
return _redisClient.HashGetJson(hashKey, hashField);
}
///
/// 获取最后一条记录
///
public List GetLastRecord(string ObjectType, IEnumerable ObjectIds)
{
if (ObjectIds == null || !ObjectIds.Any())
{
return default;
}
return ObjectIds.Select(x => GetLastRecord(ObjectType, x)).Where(x => x != null).ToList();
}
///
/// 获取最后一条记录
///
public List GetLastRecord(List<(string, long)> list)
{
if (list == null || !list.Any())
return default;
return list.Select(x => GetLastRecord(x.Item1, x.Item2)).Where(x => x != null).ToList();
}
}
}