Parcourir la source

增加红包使用有效期设置

stanley-king il y a 8 ans
Parent
commit
1f47914fe5

+ 1 - 1
admin/control/person_bonus.php

@@ -92,6 +92,7 @@ class activity_bonus
         $result['sender_id']   = self::admin_member_id;
         $result['sender_name'] = "熊猫美妆";
         $result['send_type']   = $input['send_type'];
+        $result['usable_days']   = $input['usable_days'];
 
         $rate_moneys = $this->parse_rate($input['bonus_rate']);
         if($rate_moneys == false) {
@@ -246,7 +247,6 @@ class person_bonusControl extends SystemControl
     {
         if(chksubmit())
         {
-            $admin = $this->getAdminInfo();
             $maker = new activity_bonus();
             $ret = $maker->make($_POST);
             if($ret == false) {

+ 1 - 1
admin/templates/default/person_bonus.activity.php

@@ -54,7 +54,7 @@
                 </tr>
                 <tr class="noborder">
                     <td class="required">
-                        <label class="validation">使用该红包有效期:&nbsp;&nbsp;<input type="number" placeholder="请输入红包有效期" name="valid">&nbsp;&nbsp;天</label>
+                        <label class="validation">红包使用有效期:&nbsp;&nbsp;<input type="number" placeholder="请输入红包使用有效期" name="usable_days">&nbsp;&nbsp;天</label>
                     </td>
                 </tr>
                 <tr class="noborder">

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

@@ -137,7 +137,7 @@ class user_bonusModel extends Model
                 $cond = array( 'type_id' => $type_id,
                     'bonus_status' => array('in', array(0,1)),
                     'grab_time' => array('lt',time() - $time_out));
-                $bonuses = $this->where($cond)->field($fields)->order('bonus_status asc,bonus_id asc')->limit(1)->select(array('lock' => true));
+                $bonuses = $this->where($cond)->field($fields)->order('bonus_status asc,bonus_id asc')->limit(1)->select(array('master' => true));
                 if(empty($bonuses) || empty($bonuses[0])) return false;
 
                 $bonus = $this->try_grab($bonuses[0],$type_id,$is_new_grab,$sess_id,$is_new_bind);

+ 3 - 3
helper/bonus/manager.php

@@ -204,10 +204,10 @@ class manager
         return $bonus;
     }
 
-    public function topup($mod_user_bonus,&$bonus)
+    public function topup($type,$mod_user_bonus,&$bonus)
     {
-        $day_secs = 24 * 3600;
-        $expried_secs = 15 * $day_secs;
+        $usable_days  = $type->usable_days();
+        $expried_secs = $usable_days * 24 * 3600;
 
         $datas = array('bonus_status' => 3,
             'user_id' => $_SESSION['member_id'],

+ 11 - 0
helper/bonus/type.php

@@ -15,6 +15,8 @@ use \member_info;
 
 class type
 {
+    const def_usable_days = 15;
+
     const MakeSendType = 0;
     const MakeBonusRefundType = 1;
     const MakeShakeGainType = 2;
@@ -71,6 +73,12 @@ class type
             $this->mParam['relayer_id'] = 0;
         }
 
+        if(intval($param['usable_days']) > 0) {
+            $this->mParam['usable_days'] = intval($param['usable_days']);
+        } else {
+            $this->mParam['usable_days'] = self::def_usable_days;
+        }
+
         if(intval($param['send_start_date']) >= time()) {
             $this->mParam['send_start_date'] = intval($param['send_start_date']);
         } else {
@@ -402,6 +410,9 @@ class type
     public function share_id() {
         return intval($this->mParam['share_id']);
     }
+    public function usable_days() {
+        return intval($this->mParam['usable_days']);
+    }
     
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     static public function crate_by_input($paramer)

+ 1 - 1
helper/bonus_helper.php

@@ -162,7 +162,7 @@ class bonus_helper
 
             try
             {
-                if($manager->topup($mod_bonus,$val) == true) {
+                if($manager->topup($type,$mod_bonus,$val) == true) {
                     array_push($bonusex,$val);
                     ranklist_helper::add_money($_SESSION['member_id'],$bonus->bonus_value());
                     $pred->add_bonus($bonus,$type);