cyzhao 3 years ago
parent
commit
621f3ab13e

+ 53 - 13
Gameserver/Public/gamesys/app/providers/retention.php

@@ -34,30 +34,70 @@ array_map(function ($n)use($date, $tabName, $new, &$array, &$array2) {
     $array2[] = (int) ($total / $new * 100);                                    # 输出
 }, $numbers);
 // 
+
+$result = new stdClass();
+$dic = new stdClass();
+$dic->data1 = $array;
+$dic->data2 = $array2;
+
+$result->data = $dic;
+echo json_encode($result);
 */
 
-//------new----
+//------new----/*
 $zoneid = 1;//先默认是1,其他区还没有
-$curLoginUidArr = gMem()->hgetall($key);
+//$r = (strtotime($date)+28800);
+$day = intval((strtotime($date)+28800) / 86400);
+$memKey = "gamerun-loginUser-byUid-zone".$zoneid."-day_".$day;
+
+if(!gMem()->exists($memKey)){
+    $result = new stdClass();
+    $dic = new stdClass();
+    $dic->data1 = array(0,0,0,0,0,0,0,0);
+    $dic->data2 = array(0,0,0,0,0,0,0);
+    $result->data = $dic;
+    
+    echo json_encode($result);
+}
+
+$retArr = array();
+$perArr = array();
+
+$curLoginUidDic = gMem()->hgetall($memKey);
+$total = count((array)$curLoginUidDic);
+$retArr[] = $total;
 
 $numbersArr = array(1, 2, 3, 4, 5, 6,7);
-$day = intval(strtotime($date)/24/60/60);
 foreach ($numbersArr as $type) {
-    $typeDay = intval(strtotime("$day   +$type   day")/24/60/60);
+    $typeDay = $day + $type; 
     $memKey = "gamerun-loginUser-byUid-zone".$zoneid."-day_".$typeDay;
     
-    $typeArr = gMem()->hgetall($memKey);
-    $retainArr = array();
-    foreach ($curLoginUidArr as $uid=>$val) {
-        if(in_array($uid, $typeArr)){
-            $retainArr[]=$uid;
+    if(!gMem()->exists($memKey)){
+        $retArr[] = 0;            
+    } else {
+        $typeDic = gMem()->hgetall($memKey);
+        $n = 0;
+        foreach ($curLoginUidDic as $uid=>$val) {
+            if(property_exists($typeDic, $uid)){
+                $n += 1;
+            }        
         }
-    }
-    
+        $retArr[] = $n;
+    }   
 }
 
+$index = 0;
+foreach ($retArr as $num) {
+    if($index == 0){
+        $index += 1;
+        continue;
+    }
+
+    $per = intval($num/$total*100);
+    $perArr[] = $per;
+}
 
 $result = new stdClass();
-$result->data1 = $array;
-$result->data2 = $array2;
+$result->data1 =$retArr;
+$result->data2 = $perArr;
 echo json_encode($result);

+ 4 - 3
Gameserver/Public/gamesys/home/pages/retention/retention.js

@@ -16,7 +16,8 @@ var chart3 = null;
 
 function Canvas(datas, datas2) {
     var lineChartData = {
-        labels: ["当天注册人数", "次日留存人数", "3日留存人数", "5日留存人数", "7日留存人数", "15日留存人数", "30日留存人数"],
+        //原来是1 3 5 7 15 30
+        labels: ["当天新增人数", "次日留存人数", "2日留存人数", "3日留存人数", "4日留存人数", "5日留存人数", "6日留存人数","7日留存人数"],
         datasets: [
             {
                 fillColor: "rgba(220,220,220,0.5)",
@@ -35,7 +36,7 @@ function Canvas(datas, datas2) {
 
 
     var lineChartData2 = {
-        labels: ["次日留存率", "3日留存率", "5日留存率", "7日留存率", "15日留存率", "30日留存率"],
+        labels: ["次日留存率", "2日留存率", "3日留存率", "4日留存率", "5日留存率", "6日留存率","6日留存率"],
         datasets: [
             {
 			fillColor : "rgba(151,187,205,0.5)",
@@ -68,7 +69,7 @@ function searchDay() {
 function searchDays(type) {
     var date1 = $("#date-text1").val();
     var date2 = $("#date-text2").val();
-    $.post(
+    post(                    
             getProviderUrl("retention2"),
             {date1: date1,date2: date2,type:type},
             function (data) {