using System;
using System.Threading.Tasks;
using MrWu.Debug;
using Server.DB.Redis;
using StackExchange.Redis;
namespace Server
{
///
/// 活动统计
///
public class ActivityStatistics
{
public const string Statistics = "Statistics";
///
/// 活动
///
public const string Name = "Activity";
///
/// 全名
///
private const string full_Name = Statistics + ":" + Name;
///
/// 广告
///
public const string Activity_AdGift = "AdGift";
private const string Activity_AdGift_FullName = full_Name + ":" + Activity_AdGift + ":{0}:{1}";
public const string Activity_Dole = "Dole";
private const string Activity_Dole_FullName = full_Name + ":" + Activity_Dole + ":{0}:{1}";
private static string GetStatisticsKey(string activityName, int plat)
{
switch (activityName)
{
case Activity_AdGift:
return string.Format(Activity_AdGift_FullName, DateTime.Now.Date.ToString("yyyyMMdd"), plat);
case Activity_Dole:
return string.Format(Activity_Dole_FullName, DateTime.Now.Date.ToString("yyyyMMdd"), plat);
default:
return null;
}
}
///
/// 保存活动日志
///
/// 玩家userid
/// 活动获得的金额
/// 平台
/// 活动名称
public static void SaveLog(int userid, long money, int plat, string activityName)
{
string key = GetStatisticsKey(activityName, plat);
if (string.IsNullOrEmpty(key))
{
Debug.Error("未找到活动:" + activityName);
return;
}
IBatch batch = redisManager.GetBiSaidb(RedisDictionary.Statistics).CreateBatch();
batch.HashIncrementAsync(key, "Count");
batch.HashIncrementAsync(key, "Money", money);
batch.KeyExpireAsync(key, new TimeSpan(60, 0, 0, 0));
batch.Execute();
}
}
}