|
@@ -31,7 +31,7 @@ namespace DataTransfer
|
|
|
try
|
|
|
{
|
|
|
int hour = DateTime.Now.Hour;
|
|
|
- if (hour == 17 && mask == 0)//正式的是晚上2点进行数据传输
|
|
|
+ if (hour == 10 && mask == 0)//正式的是晚上2点进行数据传输
|
|
|
{
|
|
|
Console.WriteLine("数据传输的时间到了开始执行程序.......");
|
|
|
//进行数据传输
|
|
@@ -39,7 +39,7 @@ namespace DataTransfer
|
|
|
dataTransfer();
|
|
|
}
|
|
|
|
|
|
- if (hour != 17 && mask != 0)
|
|
|
+ if (hour != 10 && mask != 0)
|
|
|
{
|
|
|
mask = 0;
|
|
|
}
|
|
@@ -55,23 +55,38 @@ namespace DataTransfer
|
|
|
public static void dataTransfer()
|
|
|
{
|
|
|
Console.WriteLine("进入dataTransfer方法..............");
|
|
|
-
|
|
|
- TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970,1,1);
|
|
|
+
|
|
|
+ TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1);
|
|
|
float day = MathF.Floor((long)ts.TotalSeconds / 24 / 60 / 60);
|
|
|
- Console.WriteLine("当前天是:"+ day);
|
|
|
+ Console.WriteLine("当前天是:" + day);
|
|
|
|
|
|
var mem = Redis.Ins.GetDatabase(0);
|
|
|
|
|
|
- int zoneid = 1;//暂时先这样
|
|
|
- if (mem.KeyExists(MemKey_Statistics.GamerunLoginUser(zoneid,day)))
|
|
|
- {
|
|
|
- string[] list = mem.HashKeys(MemKey_Statistics.GamerunLoginUser(zoneid, day)).ToStringArray();
|
|
|
- foreach (string k in list)
|
|
|
+ //int zoneid = 1;//暂时先这样
|
|
|
+
|
|
|
+ HashEntry[] zoneidList = mem.HashGetAll(MemKey_Statistics.Zonelist());
|
|
|
+ foreach (var item in zoneidList)
|
|
|
+ {
|
|
|
+ string[] sList = item.ToString().Split(':');
|
|
|
+ int zoneid = int.Parse(sList[0]);
|
|
|
+
|
|
|
+ Taskprogressrecord_RedisToSql(zoneid);
|
|
|
+
|
|
|
+ if (mem.KeyExists(MemKey_Statistics.GamerunLoginUser(zoneid, day)))
|
|
|
{
|
|
|
- Console.WriteLine("uid:" + k);
|
|
|
- redisToSql(k,zoneid);
|
|
|
+ string[] list = mem.HashKeys(MemKey_Statistics.GamerunLoginUser(zoneid, day)).ToStringArray();
|
|
|
+ foreach (string k in list)
|
|
|
+ {
|
|
|
+ Console.WriteLine("uid:" + k);
|
|
|
+ redisToSql(k, zoneid);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Console.WriteLine(day+"-没有玩家登录,以玩家为单位的数据不做传输");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -81,15 +96,17 @@ namespace DataTransfer
|
|
|
/// <param name="zoneid"></param>
|
|
|
public static void redisToSql(string uid,int zoneid)
|
|
|
{
|
|
|
- Console.WriteLine("数据传输开始..........:" );
|
|
|
+ Console.WriteLine("以玩家为单位数据传输开始..........:" );
|
|
|
Userbaseparams_RedisToSql(uid,zoneid);
|
|
|
TaskcompleteTsrecord_RedisToSql(uid,zoneid);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
const string Userbaseparams_TableName = "tab_userbaseparams";
|
|
|
|
|
|
const string TaskcompleteTsrecord_TableName = "tab_taskcompleteTsrecord";
|
|
|
|
|
|
+ const string Taskprogressrecord_TableName = "tab_taskprogressrecord";
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 界面内数值变化数据传输
|
|
|
/// </summary>
|
|
@@ -97,6 +114,7 @@ namespace DataTransfer
|
|
|
/// <param name="zoneid"></param>
|
|
|
public static void Userbaseparams_RedisToSql(string uid, int zoneid)
|
|
|
{
|
|
|
+ Console.WriteLine("玩家基础数值变化方法开始.........");
|
|
|
var mem = Redis.Ins.GetDatabase(0);
|
|
|
string key = MemKey_Statistics.UserBaseParams(uid, zoneid);
|
|
|
|
|
@@ -146,12 +164,13 @@ namespace DataTransfer
|
|
|
/// <param name="uid"></param>
|
|
|
/// <param name="zoneid"></param>
|
|
|
public static void TaskcompleteTsrecord_RedisToSql(string uid, int zoneid)
|
|
|
- {
|
|
|
+ {
|
|
|
var mem = Redis.Ins.GetDatabase(0);
|
|
|
string key = MemKey_Statistics.SelfTaskDataCollect(uid, zoneid);
|
|
|
|
|
|
if (mem.KeyExists(key))
|
|
|
{
|
|
|
+ Console.WriteLine("玩家任务完成时间记录方法开始.........");
|
|
|
long length = mem.ListLength(key);
|
|
|
var ctxList = mem.ListRange(key, 0, length);
|
|
|
|
|
@@ -180,5 +199,48 @@ namespace DataTransfer
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 所有玩家最新任务id记录
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="uid"></param>
|
|
|
+ /// <param name="zoneid"></param>
|
|
|
+ public static void Taskprogressrecord_RedisToSql(int zoneid)
|
|
|
+ {
|
|
|
+ Console.WriteLine("玩家任务进度方式开始......");
|
|
|
+ var mem = Redis.Ins.GetDatabase(0);
|
|
|
+ string key = MemKey_Statistics.TaskDataCollect(zoneid);
|
|
|
+
|
|
|
+ if (mem.KeyExists(key))
|
|
|
+ {
|
|
|
+ HashEntry[] ctxList = mem.HashGetAll(key);
|
|
|
+ int length = ctxList.Length;
|
|
|
+ int num = 0;
|
|
|
+ foreach (var item in ctxList)
|
|
|
+ {
|
|
|
+ num += 1;
|
|
|
+ string[] sList = item.ToString().Split(':');
|
|
|
+ string uid = sList[0];
|
|
|
+ string taskId = sList[1];
|
|
|
+
|
|
|
+ var sql = $" Insert Into {Taskprogressrecord_TableName} (`uid`, `zoneid`, `taskId`) " +
|
|
|
+ $"values('{uid}',{zoneid},'{taskId}')";
|
|
|
+
|
|
|
+ var n = MysqlUtil.Ins.ExecuteSqlNonQuery(sql);
|
|
|
+ //Debug.Assert(n > 0, $"{sql} 执行失败!");
|
|
|
+
|
|
|
+ if (num >= length)
|
|
|
+ {
|
|
|
+ Console.WriteLine("总共执行条数:" + num);
|
|
|
+ mem.KeyDelete(key);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Console.WriteLine("玩家任务进度redis-key不存在所以不在数据传输处理");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|