Bläddra i källkod

Merge branch 'awaken_user' of 121.43.114.153:/home/git/repositories/shopnc into awaken_user

stanley-king 7 år sedan
förälder
incheckning
6a5638de33
2 ändrade filer med 30 tillägg och 24 borttagningar
  1. 20 24
      helper/async/broadcast/filter.php
  2. 10 0
      test/TestPush.php

+ 20 - 24
helper/async/broadcast/filter.php

@@ -43,6 +43,12 @@ abstract class filter
             elseif($type == 'order_days') {
                 $filter = new order_days_filter($param);
             }
+            elseif($type == 'invitor') {
+                $filter = new invitor_filter($param);
+            }
+            elseif($type == 'gift') {
+                $filter = new gift_filter($param);
+            }
             else {
                 continue;
             }
@@ -53,30 +59,6 @@ abstract class filter
         return $result;
     }
 
-    public static function format($input)
-    {
-        $filters = [];
-        if(isset($input['offtime']) && intval($input['offtime']) > 0) {
-            $filters[] = ['type' => 'offtime', 'days' => intval($input['offtime'])];
-        }
-        else if(isset($input['regtime'])) {
-            $filters[] = ['type' => 'regtime', 'days' => intval($input['regtime'])];
-        }
-        else if(isset($input['order_numgt'])) {
-            $filters[] = ['type'=> 'order_numgt', 'count' => intval($input['order_numgt'])];
-        }
-        else if(isset($input['order_days'])) {
-
-        }
-        else if(isset($input['invitor'])) {
-
-        }
-        else {
-
-        }
-        return $filters;
-    }
-
     protected function usable_bonus($member_id)
     {
         $pred = new predeposit_helper($member_id);
@@ -246,8 +228,22 @@ class order_days_filter extends filter
 
 class gift_filter extends filter
 {
+    protected $gift_got;
+
+    public function __construct($param)
+    {
+        $this->gift_got = boolval($param['value']);
+    }
+
     public function filtrate(member_info $minfo)
     {
+        if($this->gift_got) {
+            return $minfo->first_present() > 0;
+        }
+        else
+        {
+            return $minfo->first_present() == 0;
+        }
     }
 }
 

+ 10 - 0
test/TestPush.php

@@ -141,6 +141,16 @@ class TestPush extends PHPUnit_Framework_TestCase
         $this->assertTrue($result);
     }
 
+    public function testGiftFilter()
+    {
+        $member_id = 36486;
+        $info = new member_info($member_id);
+
+        $filter = new async\gift_filter(['value' => false]);
+        $result = $filter->filtrate($info);
+        $this->assertTrue($result);
+    }
+
     public function testBroadcastCount()
     {
         //$filter_arr = [['type' => 'regtime', 'days' => 90]];