using Furion;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using GDZZ.Core;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GDZZ.Application.Help
{
///
/// 系统缓存服务
///
public class CacheService : ICacheService, IDynamicApiController, ITransient
{
private static ICache _redisCache = App.RootServices.GetService(typeof(RedisCache)) as ICache;
///
///
///
public CacheService() { }
#region 聊天服务
///
/// 获取聊天列表
///
///
[NonAction]
public async Task> GetLiveHistoryService(long UserID)
{
string cacheKey = SystemConst.LIVE_HISTORYLIST + $"{UserID}";
return await _redisCache.GetAsync>(cacheKey);
}
///
/// 设置聊天列表
///
///
[NonAction]
public async Task SetLiveHistoryService(long UserID, List liveMessageLists)
{
string cacheKey = SystemConst.LIVE_HISTORYLIST + $"{UserID}";
await _redisCache.SetAsync(cacheKey, liveMessageLists, TimeSpan.FromHours(1));
}
///
/// 删除聊天列表
///
///
[NonAction]
public async Task DelLiveHistoryService(long UserID)
{
string cacheKey = SystemConst.LIVE_HISTORYLIST + $"{UserID}";
await _redisCache.DelAsync(cacheKey);
}
#endregion
#region 聊天详情
///
/// 获取聊天列表
///
///
[NonAction]
public async Task> GetMessage(long UserID,long ChatUserID)
{
string cacheKey = SystemConst.LIVE_MESSAGE + $"{UserID}_{ChatUserID}";
return await _redisCache.GetAsync>(cacheKey);
}
///
/// 获取聊天列表
///
///
[NonAction]
public async Task SetMessage(List liveMessages,long UserID,long ChatUserID)
{
string cacheKey = SystemConst.LIVE_MESSAGE + $"{UserID}_{ChatUserID}";
await _redisCache.SetAsync(cacheKey, liveMessages, TimeSpan.FromHours(1));
}
///
/// 设置未读数
///
/// 用户未读
/// 聊天室ID
///
[NonAction]
public async Task SetUnreadAsync(long UserID, long ChatID)
{
string cacheKey = SystemConst.LIVE_UNREAD + $"{UserID}_{ChatID}";
var res = _redisCache.Get(cacheKey);
await _redisCache.SetAsync(cacheKey, 1+res);
}
///
/// 获取未读
///
///
///
///
public async Task GetUnreadAsync(long UserID, long ChatID)
{
string cacheKey = SystemConst.LIVE_UNREAD + $"{UserID}_{ChatID}";
return await _redisCache.GetAsync(cacheKey);
}
///
/// 获取聊天列表
///
///
[NonAction]
public async Task DelMessage(long UserID, long ChatUserID)
{
string cacheKey = SystemConst.LIVE_MESSAGE + $"{UserID}_{ChatUserID}";
await _redisCache.DelAsync(cacheKey);
}
#endregion
#region 用户服务
public async Task SetUserInfoAsync(AuthUserOut authUserOut, long UserID)
{
string cacheKey = SystemConst.MINI_USERINFO + $"{UserID}";
await _redisCache.SetAsync(cacheKey, authUserOut, TimeSpan.FromDays(1));
}
public async Task GetUserInfoAsync(long UserID)
{
string cacheKey = SystemConst.MINI_USERINFO + $"{UserID}";
return await _redisCache.GetAsync(cacheKey);
}
public async Task SetVerifyCode(string Phone, string Verify)
{
string cacheKey = SystemConst.MINI_USERPHONECODE + $"{Phone}";
await _redisCache.SetAsync(cacheKey, Verify, TimeSpan.FromMinutes(1));
}
public async Task GetVerifyCode(string Phone)
{
string cacheKey = SystemConst.MINI_USERPHONECODE + $"{Phone}";
return await _redisCache.GetAsync(cacheKey);
}
public async Task GetAccessTokenAsync()
{
string cacheKey = SystemConst.MINI_ACCESSTOKEN;
return await _redisCache.GetAsync(cacheKey);
}
public async Task SetAccessTokenAsync(string AccessToken)
{
string cacheKey = SystemConst.MINI_ACCESSTOKEN;
await _redisCache.SetAsync(cacheKey, AccessToken, TimeSpan.FromHours(2));
}
#endregion
#region 二维码
public async Task GetQRCodeAsync(long UserID)
{
string cacheKey = SystemConst.MINI_QRCODE + $"{UserID}";
return await _redisCache.GetAsync(cacheKey);
}
public async Task SetQRCodeAsync(long UserID,string Url)
{
string cacheKey = SystemConst.MINI_QRCODE+$"{UserID}";
await _redisCache.SetAsync(cacheKey, Url);
}
#endregion
}
}