cyzhao 3 лет назад
Родитель
Сommit
7c3e9adef5

+ 2 - 1
CSserver/DataTransfer/Program.cs

@@ -20,7 +20,8 @@ namespace DataTransfer
 
             Thread t1 = new Thread(transfer);         
             t1.Start();
-            
+
+            dataSav();
         }
         public static int mask = 0;
         public static int mask_lose = 0;

+ 15 - 4
CSserver/DataTransfer/tongji/DataToExcelText.cs

@@ -128,13 +128,13 @@ namespace DataTransfer.tongji
                 string nType = cLict[0];
                 if (dic.ContainsKey(nType))
                 {
-                    dic[type].Add(type, num);
+                    dic[nType].Add(type, num);
                 }
                 else
                 {
                     Dictionary<string, int> itemDic = new Dictionary<string, int>();
                     itemDic.Add(type, num);
-                    dic[type] = itemDic;
+                    dic[nType] = itemDic;
                 }
             }
 
@@ -155,12 +155,18 @@ namespace DataTransfer.tongji
             foreach (KeyValuePair<string, Dictionary<string,int>> kv in dic)
             {
                 Dictionary<string, int> dict =  kv.Value;
+                Console.WriteLine("kv--key-----........"+kv.Key);
+
                 foreach (KeyValuePair<string,int>kt in dict)
                 {
                     string type = kt.Key;
                     int num = kt.Value;                   
                     string desc = TargetDesc(type);
 
+                    Console.WriteLine("ktttt--type-----........" + type);
+                    Console.WriteLine("ktttt--name-----........" + desc);
+                
+
                     var rowi = sheet.CreateRow(x);
                     var cdesc = rowi.CreateCell(0);
                     cdesc.SetCellValue(desc);
@@ -176,11 +182,16 @@ namespace DataTransfer.tongji
 
             }
 
-            string txtName = "指标累计信息表_" + "zone" + zoneid;
+            TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1);
+            float curday = MathF.Floor((long)ts.TotalSeconds / 24 / 60 / 60);
+
+            string txtName = "指标累计信息表_" + "zone" + zoneid+"-day-"+curday;
 
             FileStream file = new FileStream(@"F:\excel\" + txtName + ".xls", FileMode.CreateNew, FileAccess.Write);
             workbook.Write(file);
             file.Dispose();
+
+            Console.WriteLine("指标累计execl完成........");
         }
 
         public static string TargetDesc(string type)
@@ -256,7 +267,7 @@ namespace DataTransfer.tongji
                     desc = "完成副本言灵关卡id-" + sList[1] + "的挑战次数/通关次数";
                     break;
                 case "userlevel":
-                    desc = "玩家等级为-" + sList[1] + "的人数";
+                    desc = "玩家等级为" + sList[1] + "的人数";
                     break;
                 case "newUserLotteryDraw_one":
                     desc = "新手池抽卡单次抽奖的访问频率";

+ 1 - 1
CSserver/Lib1/MemKey_User.cs

@@ -35,7 +35,7 @@ public class MemKey_Game
 
     public static string Build()
     {
-        return "gamecfg - build";
+        return "gamecfg-build";
     }
 
     #endregion

+ 1 - 1
Gameserver/Amfphp/model/User/Info_UserBase.php

@@ -272,7 +272,7 @@ class Info_UserBase extends Object_ext {
             SystemProc::UserLevelUp(req()->zoneid, $this, $this->level);
             TaskProc::OnUserLevelUp($this->level);                              # 通知任务模块,这里应该有事件模块
             EventProc::OnUserLevelup($initLevel, $this->level);                 # 事件模块          
-            StatisticsProc::TargetStatistics(Enum_TargetStatistics::userlevel, $this->level);
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::userlevel, $this->level,$initLevel);
         }
     }
 

+ 2 - 2
Gameserver/Amfphp/process/HeroProc.php

@@ -706,7 +706,7 @@ class HeroProc {
         $collectHeros->$heroUID = $targetHero;                                  # 更新英雄的数据
         if ($targetHero->level != $initLevel) {
             NormalEventProc::OnHeroLvlUp($targetHero->uid, $initLevel);         # 广播英雄升级事件
-            StatisticsProc::TargetStatistics(Enum_TargetStatistics::HuanLingShiLevel_UserNum, $targetHero->typeId,$targetHero->level);
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::HuanLingShiLevel_UserNum, $targetHero->typeId,$targetHero->level,$initLevel);
         }
         TaskProc::OnHeroLevelUp($targetHero->typeId, $targetHero->level);
         return $targetHero;                                                     # 将英雄对象返回
@@ -890,7 +890,7 @@ class HeroProc {
         req()->userInfo->game->store->items = $myPacketItems;                    # 更新背包数据
         if ($equipVo->level != $initLevel) {
             NormalEventProc::OnYanLingLvlUp($uid, $equipVo->level);         # 广播英雄升级事件
-            StatisticsProc::TargetStatistics(Enum_TargetStatistics::YanLingIdLevel_UserNum, $equipVo->typeId,"$equipVo->level");
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::YanLingIdLevel_UserNum, $equipVo->typeId,"$equipVo->level",$initLevel);
         }
 
         UserProc::updateUserInfo();                                             # 回写玩家数据

+ 22 - 6
Gameserver/Amfphp/process/StatisticsProc.php

@@ -100,10 +100,11 @@ class StatisticsProc {
     /**
      * 
      * @param type $type
-     * @param type $id
-     * @param type $ctx
+     * @param type $id--id
+     * @param type $ctx 当前指标
+     * @param type $lastCtx 前一个指标 需要减一
      */
-    static function TargetStatistics($type,$id = 0,$ctx = "0") {
+    static function TargetStatistics($type,$id = 0,$ctx = "0",$lastCtx = 0) {
         $key = "TargetStatistics-".req()->zoneid;   
                      
         $specialArr = array();
@@ -169,6 +170,7 @@ class StatisticsProc {
             
             case Enum_TargetStatistics::userlevel:
                 $field = "userlevel-".$id;
+                $fieldNew = "userlevel-".$lastCtx; 
                 break;
             
             case Enum_TargetStatistics::newUserLotteryDraw_one:
@@ -202,6 +204,7 @@ class StatisticsProc {
                 break;
             case Enum_TargetStatistics::HuanLingShiLevel_UserNum:
                 $field = "HuanLingShiLevel_UserNum-".$id."-level".$ctx;
+                $fieldNew = "HuanLingShiLevel_UserNum-".$id."-level".$lastCtx; 
                 break;
             case Enum_TargetStatistics::HuanLingShiId_UserNum:
                 $field = "HuanLingShiId_UserNum-".$id;
@@ -211,12 +214,14 @@ class StatisticsProc {
                 break;
             case Enum_TargetStatistics::YanLingIdLevel_UserNum:
                 $field = "YanLingIdLevel_UserNum-".$id."-level".$ctx;
+                $fieldNew ="YanLingIdLevel_UserNum-".$id."-level".$lastCtx;
                 break;
             case Enum_TargetStatistics::WeaponId_UserNum:
                 $field = "WeaponId_UserNum-".$id;
                 break;
             case Enum_TargetStatistics::WeaponIdLevel_UserNum:
                 $field = "WeaponIdLevel_UserNum-".$id."-level".$ctx;
+                $fieldNew = "WeaponIdLevel_UserNum-".$id."-level".$lastCtx;
                 break;           
             default:
                 break;
@@ -236,11 +241,22 @@ class StatisticsProc {
             }
             gMem()->hset($key,$field,$val);           
         } else {
-           $count = gMem()->hget($key,$field);
-           if($count == null){
+            if($lastCtx != null){
+                $count = gMem()->hget($key,$fieldNew);
+                if($count != null){
+                    $count -= 1;
+                    if($count <= 0){
+                        $count = 0;
+                    }
+                    gMem()->hset($key,$field,$count); 
+                } 
+            }
+                      
+            $count = gMem()->hget($key,$field);
+            if($count == null){
                 $count = 0;
             }  
-            gMem()->hset($key,$field,$count+1);           
+            gMem()->hset($key,$field,$count+1); 
         }                                                 
     }
 

+ 1 - 1
Gameserver/Amfphp/process/StoreProc.php

@@ -262,7 +262,7 @@ class StoreProc {
         req()->userInfo->game->store->items = $myPacketItems;                    # 更新背包数据
         if ($equipVo->level != $initLevel) {
             NormalEventProc::OnWeaponLvlUp($uid, $equipVo->level);         # 广播英雄升级事件
-            StatisticsProc::TargetStatistics(Enum_TargetStatistics::WeaponIdLevel_UserNum, $equipVo->typeId,"$equipVo->level");
+            StatisticsProc::TargetStatistics(Enum_TargetStatistics::WeaponIdLevel_UserNum, $equipVo->typeId,"$equipVo->level",$initLevel);
         }
 
         UserProc::updateUserInfo();                                             # 回写玩家数据