stanley-king vor 7 Jahren
Ursprung
Commit
31ac37b68a

+ 8 - 44
admin/control/oper_sms.php

@@ -207,54 +207,19 @@ class oper_smsControl extends SystemControl
         }
     }
 
-    private function filtrate(member_info $minfo, $instFilters)
-    {
-        foreach ($instFilters as $filter)
-        {
-            if($filter->filtrate($minfo) == false) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
     public function view_usersOp()
     {
-        $arr_filters = $this->format_member_filter($_POST);
-        if(count($arr_filters))
+        $filter_params = $this->format_member_filter($_POST);
+        if(!empty($filter_params))
         {
-            $filters_inst = async\filter::create($arr_filters);
-            $broadcast_inst = new async\broadcast($filters_inst);
-            $match_users_count = $broadcast_inst->count();
-            /*$mod_member = Model('member');
-            $member_count = $mod_member->count();
-            $match_users_count = 0;
-            $i = 0;
-            while ($i<=round($member_count/1000)) {
-                $start = $i * 1000;
-                $items = $mod_member->field('*')->order('member_id asc')->limit("{$start},1000")->select();
-                if (empty($items)) {
-                    continue;
-                }
-                $i++;
-
-                $match_users = [];
-                foreach ($items as $item)
-                {
-                    $minfo = new member_info($item);
-                    if($this->filtrate($minfo, $filters_inst)) {
-                        $match_users[] = $minfo;
-                    }
-                }
-                $match_users_count += count($match_users);
-            }*/
+            $filters = async\filter::create($filter_params);
+            $broadcast = new async\broadcast($filters);
+            $match_users = $broadcast->count();
 
-            if($match_users_count > 0){
-                showMessage("有 ". $match_users_count. " 个用户符合筛选条件", '','json','succ');
+            if($match_users > 0){
+                showMessage("有 ". $match_users. " 个用户符合筛选条件", '','json','succ');
             }
-            else
-            {
+            else {
                 showMessage("没有用户符合筛选条件", '','json','error');
             }
         }
@@ -262,6 +227,5 @@ class oper_smsControl extends SystemControl
         {
             showMessage("请设置筛选条件", '','json','error');
         }
-
     }
 }

+ 4 - 6
helper/async/broadcast.php

@@ -43,9 +43,7 @@ class broadcast
         {
             $start = $i * 1000;
             $items = $mod_member->field('*')->order('member_id asc')->limit("{$start},1000")->select();
-            if(empty($items)) {
-                return;
-            }
+            if(empty($items)) break;
             $i++;
 
             $match_users = [];
@@ -56,7 +54,9 @@ class broadcast
                     $match_users[] = $minfo;
                 }
             }
+
             $ret = $this->mOperator->operate($match_users,$params);
+
             if($ret != false) {
                 $this->mSender->run($match_users,$ret);
             }
@@ -73,9 +73,7 @@ class broadcast
         {
             $start = $i * 1000;
             $items = $mod_member->field('*')->order('member_id asc')->limit("{$start},1000")->select();
-            if(empty($items)) {
-                return $count;
-            }
+            if(empty($items)) break;
             $i++;
 
             foreach ($items as $item)

+ 11 - 15
helper/async/broadcast/filter.php

@@ -44,7 +44,7 @@ abstract class filter
                 $filter = new order_days_filter($param);
             }
             elseif($type == 'invitor') {
-                $filter = new invitor_filter($param);
+                $filter = new inviter_filter($param);
             }
             elseif($type == 'gift') {
                 $filter = new gift_filter($param);
@@ -230,39 +230,35 @@ class gift_filter extends filter
 {
     protected $gift_got;
 
-    public function __construct($param)
-    {
-        $this->gift_got = boolval($param['value']);
-    }
+    public function __construct($param) {
+        $this->gift_got = intval($param['value']) == 0 ? false : true;
 
+    }
     public function filtrate(member_info $minfo)
     {
         if($this->gift_got) {
             return $minfo->first_present() > 0;
         }
-        else
-        {
+        else {
             return $minfo->first_present() == 0;
         }
     }
 }
 
-class invitor_filter extends filter
+class inviter_filter extends filter
 {
-    protected $has_invitor;
+    protected $has_inviter;
 
-    public function __construct($param)
-    {
-        $this->has_invitor = boolval($param['value']);
+    public function __construct($param) {
+        $this->has_inviter = intval($param['value']) == 0 ? false : true;
     }
 
     public function filtrate(member_info $minfo)
     {
-        if($this->has_invitor) {
+        if($this->has_inviter) {
             return $minfo->inviter_id() > 0;
         }
-        else
-        {
+        else {
             return $minfo->inviter_id() == 0;
         }
     }

+ 0 - 1
helper/async/broadcast/sender.php

@@ -22,7 +22,6 @@ class sender
     private $mSmsType;
     private $mSmsObject;
 
-
     public function __construct($sms_filters,$sends_params)
     {
         $this->mSmsFilters = $sms_filters;

+ 1 - 1
test/TestPush.php

@@ -136,7 +136,7 @@ class TestPush extends PHPUnit_Framework_TestCase
         $member_id = 36486;
         $info = new member_info($member_id);
 
-        $filter = new async\invitor_filter(['value' => true]);
+        $filter = new async\inviter_filter(['value' => true]);
         $result = $filter->filtrate($info);
         $this->assertTrue($result);
     }