You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

458 lines
14 KiB

using Znyc.CloudCar.Caching;
using Znyc.CloudCar.Configuration;
using Znyc.CloudCar.IServices.CaChe;
using Znyc.CloudCar.Model.Dtos.Banner;
using Znyc.CloudCar.Model.Dtos.CardIntro;
using Znyc.CloudCar.Model.Dtos.Certification;
using Znyc.CloudCar.Model.Dtos.Dictionary;
using Znyc.CloudCar.Model.Dtos.Recharge;
using Znyc.CloudCar.Model.Dtos.User;
using Znyc.CloudCar.Model.Entities;
namespace Znyc.CloudCar.Services.Cache
{
public class CacheService : ICacheService
{
private readonly IRedisOperationRepository _redisCache;
public CacheService(
IRedisOperationRepository redisCache)
{
_redisCache = redisCache;
}
#region Dictionary
/// <summary>
/// 设置数据字典缓存
/// </summary>
/// <param name="output"></param>
/// <returns></returns>
public async Task SetDictionaryAsync(List<DictionaryOutput> output)
{
await _redisCache.SetAsync(GlobalCacheKeyVars.DictionaryList, output);
}
/// <summary>
/// 获取数据字典缓存
/// </summary>
/// <returns></returns>
public async Task<List<DictionaryOutput>> GetDictionaryAsync()
{
return await _redisCache.GetAsync<List<DictionaryOutput>>(GlobalCacheKeyVars.DictionaryList);
}
/// <summary>
/// 删除数据字典缓存
/// </summary>
/// <returns></returns>
public async Task RemoveDictionaryAsync()
{
await _redisCache.DelAsync(GlobalCacheKeyVars.DictionaryList);
}
#endregion
#region User
/// <summary>
/// 设置用户缓存
/// </summary>
/// <param name="userId"></param>
/// <param name="user"></param>
/// <returns></returns>
public async Task SetUserAsync(long userId, UserOutput user)
{
string key = string.Format(GlobalCacheKeyVars.User, userId);
await _redisCache.SetAsync(key, user);
}
/// <summary>
/// 删除用户缓存
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task RemoveUserAsync(long userId)
{
string key = string.Format(GlobalCacheKeyVars.User, userId);
await _redisCache.DelAsync(key);
}
/// <summary>
/// 获取用户缓存
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<UserOutput> GetUserAsync(long userId)
{
string key = string.Format(GlobalCacheKeyVars.User, userId);
return await _redisCache.GetAsync<UserOutput>(key);
}
#endregion User
#region PageView
/// <summary>
/// 同步浏览量缓存
/// </summary>
/// <param name="scoreMembers"></param>
/// <returns></returns>
public async Task<bool> SetPageViewAsync(string member, double score)
{
return await _redisCache.ZAddAsync(GlobalCacheKeyVars.PageView, member, score);
}
/// <summary>
/// 浏览量自增
/// </summary>
/// <param name="productId"></param>
/// <returns></returns>
public async Task<double> SetIncrPageViewAsync(long productId)
{
return await _redisCache.ZIncrByAsync(GlobalCacheKeyVars.PageView, productId.ToString());
}
/// <summary>
/// 删除浏览量缓存
/// </summary>
/// <returns></returns>
public async Task RemovePageViewAsync()
{
await _redisCache.DelAsync(GlobalCacheKeyVars.PageView);
}
/// <summary>
/// 获取浏览量缓存
/// </summary>
/// <param name="start"></param>
/// <param name="stop"></param>
/// <returns></returns>
public async Task<IDictionary<string, double>> GetPageViewAsync()
{
return await _redisCache.ZRevRangeWithScoresAsync(GlobalCacheKeyVars.PageView);
}
/// <summary>
/// 获取浏览量总条数缓存
/// </summary>
/// <returns></returns>
public async Task<long> GetPageViewCountAsync()
{
return await _redisCache.ZCardAsync(GlobalCacheKeyVars.PageView);
}
#endregion PageView
#region Browse
/// <summary>
/// 获取浏览记录总条数缓存
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<long> GetBrowseCountAsync(long userId)
{
string key = string.Format(GlobalCacheKeyVars.BrowseList, userId);
return await _redisCache.ZCardAsync(key);
}
/// <summary>
/// 设置浏览记录缓存
/// </summary>
/// <param name="userId"></param>
/// <param name="member"></param>
/// <param name="score"></param>
/// <returns></returns>
public async Task<bool> SetBrowseAsync(long userId, string member, double score)
{
string key = string.Format(GlobalCacheKeyVars.BrowseList, userId);
return await _redisCache.ZAddAsync(key, member, score);
}
/// <summary>
/// 获取浏览记录缓存
/// </summary>
/// <param name="userId"></param>
/// <param name="start"></param>
/// <param name="stop"></param>
/// <returns></returns>
public async Task<IDictionary<string, double>> GetBrowseAsync(long userId)
{
string key = string.Format(GlobalCacheKeyVars.BrowseList, userId);
return await _redisCache.ZRevRangeWithScoresAsync(key);
}
#endregion
#region 实名认证
/// <summary>
/// 设置实名认证缓存
/// </summary>
/// <param name="userId"></param>
/// <param name="certificationOutput"></param>
/// <returns></returns>
public async Task SetCertificationAsync(long userId, CertificationOutput certificationOutput)
{
string key = string.Format(GlobalCacheKeyVars.Certification, userId);
await _redisCache.SetAsync(key, certificationOutput);
}
/// <summary>
/// 删除实名认证缓存
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task RemoveCertificationAsync(long userId)
{
string key = string.Format(GlobalCacheKeyVars.Certification, userId);
await _redisCache.DelAsync(key);
}
/// <summary>
/// 获取实名认证缓存
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<CertificationOutput> GetCertificationAsync(long userId)
{
string key = string.Format(GlobalCacheKeyVars.Certification, userId);
return await _redisCache.GetAsync<CertificationOutput>(key);
}
#endregion Certification
#region UnreadMessage
/// <summary>
/// 同步未读信息缓存
/// </summary>
/// <param name="userId"></param>
/// <param name="list"></param>
/// <returns></returns>
public async Task SetUnreadMessageAsync(long userId, IDictionary<string, object> list)
{
string key = string.Format(GlobalCacheKeyVars.UnreadMessage, userId);
foreach (var item in list)
{
await _redisCache.HSetAsync(key, item.Key, item.Value);
}
}
/// <summary>
/// 修改未读信息缓存
/// </summary>
/// <param name="userId"></param>
/// <param name="filed"></param>
/// <param name="value"></param>
/// <returns></returns>
public async Task UpdateUnreadMessageAsync(long userId, string filed, string value)
{
string key = string.Format(GlobalCacheKeyVars.UnreadMessage, userId);
await _redisCache.HSetAsync(key, filed, value);
}
/// <summary>
/// 删除未读信息缓存
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task RemoveUnreadMessageAsync(long userId)
{
string key = string.Format(GlobalCacheKeyVars.UnreadMessage, userId);
await _redisCache.DelAsync(key);
}
/// <summary>
/// 获取未读信息缓存
/// </summary>
/// <returns></returns>
public async Task<IDictionary<string, object>> GetUnreadMessageAsync(long userId)
{
string key = string.Format(GlobalCacheKeyVars.UnreadMessage, userId);
return await _redisCache.HGetAllAsync(key);
}
#endregion UnreadMessage
#region 用户注册信息滚动提示
/// <summary>
/// 设置注册用户list
/// </summary>
/// <param name="scoreMembers"></param>
/// <returns></returns>
public async Task SetRegistUserListAsync(string member, double score)
{
await _redisCache.ZAddAsync(GlobalCacheKeyVars.RegisteredUserlist, member, score);
}
/// <summary>
/// 获取注册用户list
/// </summary>
/// <returns></returns>
public async Task<List<string>> GetRegistUserListAsync(long start, long stop)
{
return await _redisCache.ZRemRangeByRankAsync(GlobalCacheKeyVars.RegisteredUserlist, start, stop);
}
#endregion
#region Banner
/// <summary>
/// 设置广告缓存
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public async Task SetBannerListAsync(List<BannerListOutput> list)
{
await _redisCache.SetAsync(GlobalCacheKeyVars.BannerList, list, TimeSpan.FromDays(31));
}
/// <summary>
/// 获取广告缓存
/// </summary>
/// <returns></returns>
public async Task<List<BannerListOutput>> GetBannerListAsync()
{
return await _redisCache.GetAsync<List<BannerListOutput>>(GlobalCacheKeyVars.BannerList);
}
/// <summary>
/// 删除广告缓存
/// </summary>
/// <returns></returns>
public async Task RemoveBannerListAsync()
{
await _redisCache.DelAsync(GlobalCacheKeyVars.BannerList);
}
#endregion
#region Recharge充值活动
/// <summary>
/// 设置充值活动缓存
/// </summary>
/// <param name="output"></param>
/// <returns></returns>
public async Task SetRechargeAsync(RechargeOutput output)
{
await _redisCache.SetAsync(GlobalCacheKeyVars.RechargeList, output);
}
/// <summary>
/// 获取充值活动缓存
/// </summary>
/// <returns></returns>
public async Task<RechargeOutput> GetRechargeAsync()
{
return await _redisCache.GetAsync<RechargeOutput>(GlobalCacheKeyVars.RechargeList);
}
/// <summary>
/// 删除充值活动缓存
/// </summary>
/// <returns></returns>
public async Task RemoveRechargeAsync()
{
await _redisCache.DelAsync(GlobalCacheKeyVars.RechargeList);
}
#endregion ProductInfo
#region 优惠卡信息
/// <summary>
/// 设置优惠卡信息缓存
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public async Task SetCardIntroListAsync(List<CardIntroOutput> list)
{
await _redisCache.SetAsync(GlobalCacheKeyVars.CardIntroList, list, TimeSpan.FromDays(31));
}
/// <summary>
/// 获取优惠卡信息缓存
/// </summary>
/// <returns></returns>
public async Task<List<CardIntroOutput>> GetCardIntroListAsync()
{
return await _redisCache.GetAsync<List<CardIntroOutput>>(GlobalCacheKeyVars.CardIntroList);
}
/// <summary>
/// 删除优惠卡信息缓存
/// </summary>
/// <returns></returns>
public async Task RemoveCardIntroListAsync()
{
await _redisCache.DelAsync(GlobalCacheKeyVars.CardIntroList);
}
#endregion
#region 用户修改次数
/// <summary>
/// 同步用户修改次数缓存
/// </summary>
/// <param name="scoreMembers"></param>
/// <returns></returns>
public async Task<bool> SetUserUpdateCountAsync(string member, double score)
{
return await _redisCache.ZAddAsync(GlobalCacheKeyVars.UserUpdateCount, member, score);
}
/// <summary>
/// 用户修改次数自增
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<double> SetIncrUserUpdateCountAsync(long userId)
{
return await _redisCache.ZIncrByAsync(GlobalCacheKeyVars.UserUpdateCount, userId.ToString());
}
/// <summary>
/// 删除用户修改次数缓存
/// </summary>
/// <returns></returns>
public async Task RemoveUserUpdateCountAsync()
{
await _redisCache.DelAsync(GlobalCacheKeyVars.UserUpdateCount);
}
/// <summary>
/// 获取用户修改次数缓存
/// </summary>
/// <returns></returns>
public async Task<IDictionary<string, double>> GetUserUpdateCountAsync()
{
return await _redisCache.ZRevRangeWithScoresAsync(GlobalCacheKeyVars.UserUpdateCount);
}
#endregion UserUpdateCount
#region 设备管理
public async Task SetEquipmentAsync(EquipmentEntity equipment, long userId)
{
string key = string.Format(GlobalCacheKeyVars.UserEquipment, userId);
await _redisCache.SetAsync(key, equipment);
}
public async Task<EquipmentEntity> GetEquipmentAsync(long userId)
{
string key = string.Format(GlobalCacheKeyVars.UserEquipment, userId);
return await _redisCache.GetAsync<EquipmentEntity>(key);
}
#endregion
}
}