Browse Source

修改提示语

stanley-king 8 years atrás
parent
commit
59fe242ccc

+ 13 - 7
helper/bonus/manager.php

@@ -247,6 +247,11 @@ class manager
         return true;
     }
 
+    static private function can_shake($bonus_status)
+    {
+        return ($bonus_status == 1 || $bonus_status == 2);
+    }
+
     public function shake($bonus_sn,$strength,$direction)
     {
         $bonus_info = self::read_session('',$bonus_sn);
@@ -256,22 +261,23 @@ class manager
             $bonus_id = $user_bonus->bonus_id();
             $type_id = $user_bonus->type_id();
             $bonus_val = $user_bonus->bonus_value();
+            $bonus_status = $user_bonus->bonus_status();
         }
 
-        if(!isset($type_id))
-        {
+        if(!isset($type_id)) {
             $user_bonus = user_bonus::create_by_sn($bonus_sn);
-            if(!$user_bonus->isBinded()) {
-                return false;
-            }
-
             $bonus_id = $user_bonus->bonus_id();
             $type_id = $user_bonus->type_id();
             $bonus_val = $user_bonus->bonus_value();
+            $bonus_status = $user_bonus->bonus_status();
+        }
+
+        if(self::can_shake($bonus_status) == false) {
+            return false;
         }
 
         $shaker = new \bonus\shaker();
-        $ret = $shaker->reassign($type_id,$bonus_id,$bonus_val,$strength,$direction);
+        $ret = $shaker->reassign($type_id,$bonus_id,$bonus_val,$bonus_status,$strength,$direction);
         if($ret == true)
         {
             $bonus = $this->read_session('',$bonus_sn);

+ 24 - 6
helper/bonus/shaker.php

@@ -19,10 +19,14 @@ class shaker
     const direct_asc = 0;
     const direct_dec = 1;
 
-    public function reassign($type_id,$bonus_id,&$bonus_valin,$strength,$direction)
+    //$binded 只能表示状态是领取还没充值到个人账户中的状态
+    public function reassign($type_id, $bonus_id, $bonus_status, &$bonus_valin, $strength, $direction)
     {
         try
         {
+            $bonus_status = intval($bonus_status);
+            if($bonus_status != 1 && $bonus_status != 2) return false;
+
             $bonus_val = $bonus_valin;
             Db::beginTransaction();
 
@@ -69,12 +73,19 @@ class shaker
                         $max_value = $this->max($max_val,$item['bonus_value']);
                         ++$index;
                     }
-                    $type_max_value = $this->max($type_max_value,$max_value);
+                    $max_value = $this->max($type_max_value,$max_value);
                     $remain_change = $bonus_val - $bonus_valin;
-                    Model('bonus_type')->edit(array('type_id' => $type_id),
-                        array('max_amount' => $type_max_value,
-                              'remain_amount' => array('exp', "remain_amount-" . "{$remain_change}"))
-                    );
+
+                    if($bonus_status === 2) {
+                        $data[] = array('max_amount' => $max_value,'remain_amount' => array('exp', "remain_amount-" . "{$remain_change}"));
+                        Model('bonus_type')->edit(array('type_id' => $type_id),$data);
+                    }
+                    else
+                    {
+                        if($this->equal($type_max_value,$max_value) == false) {
+                            Model('bonus_type')->edit(array('type_id' => $type_id),array('max_amount' => $max_value));
+                        }
+                    }
 
                     $ret = $mod_bonus->insertAll($selitems,array(),true);
                     if($ret == false && $mod_bonus->affected_rows() <= 0) {
@@ -93,6 +104,13 @@ class shaker
         }
     }
 
+    private function equal($left,$right) {
+        $left = intval($left * 100 + 0.5);
+        $right = intval($right * 100 + 0.5);
+
+        return ($left == $right);
+    }
+
     private function max($left,$right)
     {
         $left = intval($left * 100 + 0.5);

+ 19 - 1
helper/bonus/user_bonus.php

@@ -23,6 +23,11 @@ namespace bonus;
 
 class user_bonus
 {
+    const OriginStatus = 0;
+    const GrabStatus = 1;
+    const BindStatus = 2;
+    const TopupStatus = 3;
+
     private $mParamer;
 
     private function __construct($param) {
@@ -48,6 +53,18 @@ class user_bonus
         $val = intval(floatval($this->mParamer['bonus_value']) * 100 + 0.5);
         return floatval($val) / 100;
     }
+    public function bonus_status()
+    {
+        if(!isset($this->mParamer['bonus_value']) || empty($this->mParamer['bonus_value'])) {
+            return 0;
+        } else {
+            return intval($this->mParamer['bonus_value']);
+        }
+    }
+    public function can_shake() {
+        $status = intval($this->mParamer['bonus_value']);
+        return ($status == self::GrabStatus || $status == self::BindStatus);
+    }
     public function type_sn() {
         return $this->mParamer['type_sn'];
     }
@@ -77,7 +94,8 @@ class user_bonus
         $get_time = $this->mParamer['get_time'];
         return strftime("%m-%d %H:%M",$get_time);
     }
-    
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     static public function create_by_param($param) {
         return new user_bonus($param);
     }

+ 3 - 5
mobile/control/bonusex.php

@@ -287,7 +287,7 @@ class bonusexControl extends mobileControl
         }
 
         $bonus_obj = \bonus\user_bonus::create_by_param($mine_bonus);
-        if($bonus_obj->isBinded())
+        if($bonus_obj->can_shake())
         {
             $type_sn = $bonus_obj->type_sn();
             $type_infos = bonus_helper::get_typeinfo($type_sn);
@@ -310,16 +310,14 @@ class bonusexControl extends mobileControl
                     $type_infos = bonus_helper::get_typeinfo($bonus_obj->type_sn());
                     $this->fileter_typeinfos($type_infos,$type_info,$binded_info);
 
-                    return self::outsuccess(array('type_info' => $type_info,
-                        'mine_bonus' => $bonus,'binded_info' => $binded_info),"bonus/content");
+                    return self::outsuccess(array('type_info' => $type_info,'mine_bonus' => $bonus,'binded_info' => $binded_info),"bonus/content");
                 } else {
                     return self::outsuccess(errcode::ErrBonus,"只有拼收起红包才可以摇哦~");
                 }
             }
-
         }
         else {
-            return self::outerr(errcode::ErrParamter, "领到红包后才可以摇.");
+            return self::outerr(errcode::ErrParamter, "抢到或者领到红包后才可以摇.");
         }
     }
 

+ 0 - 1
test/bonus_helperTest.php

@@ -30,5 +30,4 @@ class bonus_helperTest extends PHPUnit_Framework_TestCase
     {
 
     }
-
 }