瀏覽代碼

数据传输

cyzhao 3 年之前
父節點
當前提交
629062f14d
共有 2 個文件被更改,包括 77 次插入8 次删除
  1. 66 8
      CSserver/DataTransfer/Program.cs
  2. 11 0
      CSserver/Lib1/MemKey_User.cs

+ 66 - 8
CSserver/DataTransfer/Program.cs

@@ -72,9 +72,7 @@ namespace DataTransfer
                 }          
             }
         }
-
-        const string Userbaseparams_TableName = "tab_userbaseparams";
-
+       
         /// <summary>
         /// redis数据传输到mysql中
         /// </summary>
@@ -83,21 +81,35 @@ namespace DataTransfer
         public static void redisToSql(string uid,int zoneid)
         {
             Console.WriteLine("数据传输开始..........:" );
+            Userbaseparams_RedisToSql(uid,zoneid);
+            TaskcompleteTsrecord_RedisToSql(uid,zoneid);
+        }
+     
+        const string Userbaseparams_TableName = "tab_userbaseparams";
+
+        const string TaskcompleteTsrecord_TableName = "tab_taskcompleteTsrecord";
 
+        /// <summary>
+        /// 界面内数值变化数据传输
+        /// </summary>
+        /// <param name="uid"></param>
+        /// <param name="zoneid"></param>
+        public static void Userbaseparams_RedisToSql(string uid, int zoneid)
+        {
             var mem = Redis.Ins.GetDatabase(0);
-            string key = MemKey_Statistics.UserBaseParams(uid,zoneid);
+            string key = MemKey_Statistics.UserBaseParams(uid, zoneid);
 
             if (mem.KeyExists(key))
             {
-                long length = mem.ListLength(key);              
-                var ctxList = mem.ListRange(key, 0, length);         
+                long length = mem.ListLength(key);
+                var ctxList = mem.ListRange(key, 0, length);
 
                 int num = 0;
                 foreach (var item in ctxList)
                 {
                     num += 1;
                     JObject dic = JObject.Parse(item.ToString());
-                    int cmd =  int.Parse(dic["cmd"].ToString());
+                    int cmd = int.Parse(dic["cmd"].ToString());
                     int type = int.Parse(dic["type"].ToString());
                     string curVal = dic["curVal"].ToString();
                     string changeVal = dic["changeVal"].ToString();
@@ -114,7 +126,53 @@ namespace DataTransfer
                     var n = MysqlUtil.Ins.ExecuteSqlNonQuery(sql);
                     //Debug.Assert(n > 0, $"{sql} 执行失败!");
 
-                    if (num>=length)
+                    if (num >= length)
+                    {
+                        Console.WriteLine("总共执行条数:" + num);
+                        break;
+                    }
+
+                }
+            }
+        }
+
+        /// <summary>
+        /// 个人数据 包括以下两点:
+        ///1.通过玩家ID查询指定玩家的任务进度,包括任务ID和任务STEP ID----【直接从玩家数据里取数据展示】
+        ///2.可查询玩家每日任务进度变化---【单一记录玩家自己的任务信息就可以了,每次做任务时候要记录时间,展示的时候需要以天为单位展示任务进度】
+        /// </summary>
+        /// <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))
+            {
+                long length = mem.ListLength(key);
+                var ctxList = mem.ListRange(key, 0, length);
+
+                int num = 0;
+                foreach (var item in ctxList)
+                {
+                    num += 1;
+
+                    JObject dic = JObject.Parse(item.ToString());
+                    
+                    string taskId = dic["taskId"].ToString();               
+                    //Console.WriteLine("desc..........:"+ desc);
+                    string time = dic["time"].ToString();
+
+                    //continue;
+
+                    var sql = $" Insert Into {TaskcompleteTsrecord_TableName} (`uid`, `zoneid`, `taskId`, `time`) " +
+                $"values('{uid}',{zoneid},'{taskId}','{time}')";
+
+                    var n = MysqlUtil.Ins.ExecuteSqlNonQuery(sql);
+                    //Debug.Assert(n > 0, $"{sql} 执行失败!");
+
+                    if (num >= length)
                     {
                         Console.WriteLine("总共执行条数:" + num);
                         break;

+ 11 - 0
CSserver/Lib1/MemKey_User.cs

@@ -131,4 +131,15 @@ public class MemKey_Statistics
     {
         return "gamerun-loginUser-byUid-zone"+zoneid+"-day_"+day;
     }
+
+    /// <summary>
+    /// 
+    /// </summary>
+    /// <param name="uid"></param>
+    /// <param name="zoneid"></param>
+    /// <returns></returns>
+    public static string SelfTaskDataCollect(string uid,int zoneid)
+    {
+        return "SelfTaskDataCollect-" + uid + "-" + zoneid;
+    }
 }