Selaa lähdekoodia

modify bonus expired

stanley-king 7 vuotta sitten
vanhempi
commit
df745ed6c2
3 muutettua tiedostoa jossa 19 lisäystä ja 9 poistoa
  1. 5 1
      crontab/control/hour.php
  2. 2 2
      data/model/user_bonus.model.php
  3. 12 6
      helper/notify_helper.php

+ 5 - 1
crontab/control/hour.php

@@ -272,6 +272,10 @@ class hourControl extends BaseCronControl
      */
     private function expired_bonus()
     {
-        notify_helper::bonus_expired();
+        $maxtm = time();
+        while (true) {
+            $ret = notify_helper::bonus_expired($maxtm);
+            if($ret == false) break;
+        }
     }
 }

+ 2 - 2
data/model/user_bonus.model.php

@@ -261,9 +261,9 @@ class user_bonusModel extends Model
         }
     }
 
-    public function getExpired()
+    public function getExpired($maxtm)
     {
-        $cond = array('expired' => 0, 'remain_amount' => array('gt','0.00'),'bonus_status' => 3,'usable_time' => array('elt',time()));
+        $cond = array('expired' => 0, 'remain_amount' => array('gt','0.00'),'bonus_status' => 3,'usable_time' => array('elt',$maxtm));
         $ret = $this->getBonusList($cond,'*','usable_time asc',0,0,1000);
         return $ret;
     }

+ 12 - 6
helper/notify_helper.php

@@ -55,21 +55,24 @@ class notify_helper
         }
     }
 
-    static public function bonus_expired()
+    static public function bonus_expired($maxtm)
     {
         $mod_bonus = Model("user_bonus");
-        $items = $mod_bonus->getExpired();
+        $items = $mod_bonus->getExpired($maxtm);
 
-        $ids = array();
+        if(empty($items)) return false;
+
+        $ids = [];
         $member_amount = [];
-        foreach ($items as $key => $val) {
+        foreach ($items as $key => $val)
+        {
             $bonus = bonus\user_bonus::create_by_param($val);
             $user_id = $bonus->user_id();
-            $amount = $bonus->remain_amount();
+            $amount  = $bonus->remain_amount();
 
             $pred = new predeposit_helper($user_id);
             $pred->bonus_expire($val);
-            array_push($ids,$bonus->bonus_id());
+            $ids[] = $bonus->bonus_id();
 
             if(isset($member_amount[$bonus->user_id()]) == false) {
                 $member_amount[$bonus->user_id()] = $amount;
@@ -84,6 +87,9 @@ class notify_helper
 
         if (!empty($ids)) {
             $mod_bonus->edit(array('bonus_id' => array('in', $ids)),array("expired" => 1));
+            return true;
+        } else {
+            return false;
         }
     }