Parcourir la source

add behavior statistics

stanley-king il y a 6 ans
Parent
commit
8cd7f2c1fb

+ 11 - 1
crontab/control/command.php

@@ -13,7 +13,7 @@ require_once(BASE_ROOT_PATH . '/helper/stat_helper.php');
 require_once(BASE_DATA_PATH . '/mobile/omsid.php');
 require_once(BASE_ROOT_PATH . '/helper/bonus_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/bonus/witholder.php');
-require_once (BASE_ROOT_PATH . '/helper/bonus/norate_holder.php');
+require_once(BASE_ROOT_PATH . '/helper/bonus/norate_holder.php');
 require_once(BASE_ROOT_PATH . '/helper/notify_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/account_helper.php');
 require_once(BASE_ROOT_PATH . '/data/mobile/lrlz_staff.php');
@@ -362,4 +362,14 @@ class commandControl extends BaseCronControl
             }
         }
     }
+    public function stat_behaviorOp()
+    {
+        stat_helper::onDaiyBehavior(strtotime('2018-10-1'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-2'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-3'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-4'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-5'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-6'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-7'));
+    }
 }

+ 4 - 1
crontab/control/date.php

@@ -16,7 +16,6 @@ require_once(BASE_ROOT_PATH . '/helper/stat_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/bonus_helper.php');
 require_once(BASE_DATA_PATH . '/mobile/omsid.php');
 
-
 class dateControl extends BaseCronControl
 {
     /**
@@ -93,6 +92,10 @@ class dateControl extends BaseCronControl
 
         $this->_stat_daily();
     }
+    public function third_clockOp()
+    {
+        stat_helper::onDaiyBehavior(time() - 86400);
+    }
 
     public function nine_clockOp()
     {

+ 2 - 0
helper/stat_helper.php

@@ -12,6 +12,8 @@ require_once (BASE_ROOT_PATH . '/helper/statistics/stmember.php');
 require_once (BASE_ROOT_PATH . '/helper/statistics/statorder.php');
 require_once (BASE_ROOT_PATH . '/helper/statistics/statcall.php');
 require_once (BASE_ROOT_PATH . '/helper/statistics/behavior.php');
+require_once(BASE_ROOT_PATH . '/helper/brand_helper.php');
+require_once(BASE_ROOT_PATH . '/helper/category_helper.php');
 
 class stat_helper
 {

+ 67 - 16
helper/statistics/behavior.php

@@ -14,9 +14,12 @@ use category_helper;
 class behavior
 {
     private $mod_behavior;
+    private $method_dicts;
     public function __construct()
     {
         $this->mod_behavior = Model('behavior');
+        $this->method_dicts = [];
+        $this->init_methods();
     }
 
     public function analyse($time)
@@ -114,23 +117,24 @@ class behavior
         return $result;
     }
 
-    private function type_data($act,$op,$params)
+    private function init_methods()
     {
-        if(empty($act) || empty($op)) return [];
-
-        if($act == 'login')
+        $this->method_dicts['login'] = function ($op, $params)
         {
-            if($op == 'getcodex' || $op == 'getcode') {
+            if ($op == 'getcodex' || $op == 'getcode') {
                 $val = $params['mobile'];
-                return ['type' => 'mobile','data' => $val];
+                return ['type' => 'mobile', 'data' => $val];
+            } else {
+                return [];
             }
-        }
-        elseif($act == 'special')
-        {
+        };
+
+        $this->method_dicts['special'] = function ($op, $params) {
             $val = intval($params['special_id']);
             return ['type' => 'special','data' => $val];
-        }
-        elseif($act == 'goods_common')
+        };
+
+        $this->method_dicts['goods_common'] = function ($op, $params)
         {
             if($op == 'index' || $op == 'detail' || $op == 'detail_ajax') {
                 $val = intval($params['goods_id']);
@@ -139,14 +143,18 @@ class behavior
             elseif($op == 'comments') {
                 $val = intval($params['goods_commonid']);
                 return ['type' => 'goods_common','data' => $val];
+            } else {
+                return [];
             }
-        }
-        elseif($act == 'search')
+        };
+
+        $this->method_dicts['search'] = function ($op, $params)
         {
             if($op == 'index' || $op == 'search_goods') {
                 $keyword = urldecode($params['keyword']);
                 $brandid = intval($params['brand_id']);
                 $hotid   = intval($params['hot_id']);
+
                 $brand = brand_helper::instance()->name($brandid);
                 $hot = category_helper::instance()->name($hotid);
 
@@ -156,13 +164,56 @@ class behavior
                 $keyword = $params['keyword'];
                 return ['type' => 'keyword','data' => "{$keyword}"];
             }
-            elseif($op == 'history') {
+            else {
+                return [];
+            }
+        };
+
+        $this->method_dicts['cart'] = function ($op, $params)
+        {
+            if($op == 'addex') {
+                $bl_id = intval($params['bl_id']);
+                $goods_id = intval($params['goods_id']);
+                if($bl_id > 0) {
+                    return ['type' => 'bl','data' => $bl_id];
+                } else {
+                    return ['type' => 'goods','data' => $goods_id];
+                }
+            }
+            elseif($op == 'edit') {
+                $cart_id = intval($params['cart_id']);
+                return ['type' => 'cart','data' => $cart_id];
+            }
+            else {
+                return [];
+            }
+        };
 
+        $this->method_dicts['member_buy'] = function ($op, $params) {
+            if($op == 'step_first') {
+                $cart_ids = urldecode($_POST['cart_id']);
+                return ['type' => 'cart_ids','data' => $cart_ids];
             }
-        }
+            elseif($op == 'step_second')  {
+                $payment = $params['payment'];
+                return ['type' => 'payment','data' => $payment];
+            }
+            else {
+                return [];
+            }
+        };
+
+        $this->method_dicts['member_bonus'] = function ($op, $params) {
+            return [];
+        };
+    }
 
+    private function type_data($act,$op,$params)
+    {
+        if(empty($act) || empty($op)) return [];
+        if(!array_key_exists($act,$this->method_dicts)) return [];
 
-        return [];
+        return $this->method_dicts[$act]($op,$params);
     }
 
     private function parse_content($content)

+ 1 - 1
mobile/control/member_buy.php

@@ -168,7 +168,7 @@ class member_buyControl extends mbMemberControl
         }
         else
         {
-            $pay_sn = $result['data']['pay_sn'];
+            $pay_sn  = $result['data']['pay_sn'];
             $payment = $_POST['payment'];
 
             $payer = new pay_helper($pay_sn);

+ 33 - 1
test/TestStat.php

@@ -86,7 +86,13 @@ class TestStat extends PHPUnit_Framework_TestCase
 
     public function testBehavior()
     {
-        stat_helper::onDaiyBehavior(time());
+        stat_helper::onDaiyBehavior(strtotime('2018-10-1'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-2'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-3'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-4'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-5'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-6'));
+        stat_helper::onDaiyBehavior(strtotime('2018-10-7'));
     }
     public function testVideo()
     {
@@ -103,4 +109,30 @@ class TestStat extends PHPUnit_Framework_TestCase
         $urls = json_decode($req['third_video'],true);
     }
 
+    private function onCart($op,$params)
+    {
+        return [];
+
+    }
+
+    public function testClosures()
+    {
+        $method_dicts = [];
+        $method_dicts['login'] = function($op,$params) {
+            if($op == 'getcodex' || $op == 'getcode') {
+                $val = $params['mobile'];
+                return ['type' => 'mobile','data' => $val];
+            } else {
+                return [];
+            }
+        };
+        $act = 'login';
+        $method_dicts[$act]('getcodex',['mobile' => '13911129867']);
+
+        $method_dicts['cart'] = [$this,'onCart'];
+        $method_dicts['cart']('getcodex',['mobile' => '13911129867']);
+
+        call_user_func_array($method_dicts['login'],['getcodex',['mobile' => '13911129867']]);
+        call_user_func_array($method_dicts['cart'], ['getcodex',['mobile' => '13911129867']]);
+    }
 }