Explorar el Código

debug add bonus limit share

stanley-king hace 7 años
padre
commit
13acd83e63

+ 3 - 0
admin/control/person_bonus.php

@@ -163,6 +163,8 @@ class person_bonusControl extends SystemControl
                 if($params == false) {
                     showMessage($error,'index.php?act=person_bonus&op=add','','error');
                 } else {
+                    $client = Logic('queue');
+                    $client->sendBonusAndSMS($params);
                     QueueClient::push('sendBonusAndSMS',$params);
                     showMessage(Language::get('nc_common_save_succ'),'index.php?act=person_bonus&op=add');
                 }
@@ -211,6 +213,7 @@ class person_bonusControl extends SystemControl
         $params['bonus']['rate'] = intval($input['bonus_rate']);;
         $params['bonus']['amount'] = doubleval($input['bonus_amount']);;
         $params['bonus']['bless'] = $input['bonus_bless'];
+        $params['bonus']['can_share'] = intval($input['can_share']);
 
         $params['sms']['open'] = $input['send_sms'] == 'on' ? true : false;
         if($params['sms']['open'])

+ 10 - 0
admin/templates/default/person_bonus.add.php

@@ -38,6 +38,7 @@
             <tr id="tr_memberinfo">
                 <td colspan="2" style="font-weight:bold;" id="td_memberinfo"></td>
             </tr>
+
             <tr>
                 <td colspan="2" class="required"><label><?php echo $lang['admin_points_operatetype']; ?>:</label></td>
             </tr>
@@ -48,6 +49,15 @@
                     </select></td>
                 <td class="vatop tips"></td>
             </tr>
+
+            <tr class="noborder">
+                <td class="vatop rowform"><label>可以分享:  </label><select id="can_share" name="can_share">
+                        <option value="1">是</option>
+                        <option value="0">否</option>
+                    </select></td>
+                <td class="vatop tips"></td>
+            </tr>
+
             <tr>
                 <td colspan="2" class="required"><label>红包祝福语:</label></td>
             </tr>

+ 3 - 1
data/logic/queue.logic.php

@@ -487,6 +487,8 @@ class queueLogic
         $rate    = $params['bonus']['rate'];
         $bless   = $params['bonus']['bless'];
         $amount  = $params['bonus']['amount'];
+        $can_share  = intval($params['bonus']['can_share']);
+
 
         $chunks = array_chunk($members,1000);
         foreach ($chunks as $chunk)
@@ -497,7 +499,7 @@ class queueLogic
             foreach ($chunk as $member) {
                 $ids[] = $member['member_id'];
             }
-            $ret = account_helper::add_bonus($rate,$amount,$ids,$bless);
+            $ret = account_helper::add_bonus($rate,$amount,$ids,$bless,$can_share);
             if($ret == false) continue;
 
             if($fSendSms)

+ 2 - 2
helper/account_helper.php

@@ -217,9 +217,9 @@ class account_helper
         }
     }
 
-    public static function add_bonus($rate,$amount,$member_ids,$type_name)
+    public static function add_bonus($rate,$amount,$member_ids,$type_name,$can_share)
     {
-        $param = \bonus\parameters::admin_fixed(intval($rate),doubleval($amount),count($member_ids),$type_name);
+        $param = bonus\parameters::admin_fixed(intval($rate),doubleval($amount),count($member_ids),$type_name,$can_share);
         $fix_bonus = self::send_bonus($param,$param['rate_money'],$member_ids);
         if($fix_bonus != false) {
             return true;

+ 18 - 12
helper/bonus/generator.php

@@ -45,6 +45,7 @@ class DirectGenerator extends IGenerator
 
     public function make_bonus($rates)
     {
+
     }
 }
 
@@ -59,8 +60,10 @@ class GeneralGenerator extends IGenerator
     public function make_bonus($rates)
     {
         $paramer = $this->mType->get_param();
+
         $type_id = $this->mType->getType_id();
         $type_sn = $this->mType->getType_sn();
+        $can_share = $this->mType->can_share();
 
         $this->mDatas = [];
 
@@ -74,7 +77,7 @@ class GeneralGenerator extends IGenerator
 
             if($this->mType->isRandomAmount())
             {
-                $this->random($type_id,$type_sn,$paramer['min_amount'],$amount,$num,$rate,$min_tmp,$max_tmp);
+                $this->random($type_id,$type_sn,$paramer['min_amount'],$amount,$num,$rate,$can_share,$min_tmp,$max_tmp);
                 if($min_val == -1) {
                     $min_val = $min_tmp;
                 }
@@ -98,7 +101,7 @@ class GeneralGenerator extends IGenerator
             else
             {
                 $fixed_money =  $amount;
-                $this->general($type_id,$type_sn,$num,$fixed_money,$rate);
+                $this->general($type_id,$type_sn,$num,$fixed_money,$rate,$can_share);
             }
         }
 
@@ -135,26 +138,27 @@ class GeneralGenerator extends IGenerator
         return $ret;
     }
 
-    private function random($type_id,$type_sn,$min_amount,$amount,$num,$rate,&$min_val,&$max_val)
+    private function random($type_id,$type_sn,$min_amount,$amount,$num,$rate,$can_share,&$min_val,&$max_val)
     {
         $allocator = new allocator();
         $moneys = $allocator->separate_money($min_amount,$amount,$num,$min_val,$max_val);
 
         foreach($moneys as $val)
         {
-            $item = array('bonus_sn' => make_bonus_sn(),
-                'bonus_value' => $val,
-                'remain_amount' => $val,
-                'type_id' => $type_id,
-                'bonus_status' => 0,
-                'bonus_rate' => $rate,
-                'type_sn' => $type_sn);
+            $item =['bonus_sn' => make_bonus_sn(),
+                    'bonus_value' => $val,
+                    'remain_amount' => $val,
+                    'type_id' => $type_id,
+                    'bonus_status' => 0,
+                    'bonus_rate' => $rate,
+                    'type_sn' => $type_sn,
+                    'can_share' => $can_share];
 
             $this->mDatas[] = $item;
         }
     }
 
-    private function general($type_id,$type_sn,$total_num,$fixed_money,$rate)
+    private function general($type_id,$type_sn,$total_num,$fixed_money,$rate,$can_share)
     {
         $val =  $fixed_money;
         for($i = 0; $i < $total_num; $i++)
@@ -165,7 +169,9 @@ class GeneralGenerator extends IGenerator
                     'type_id' => $type_id,
                     'bonus_status' => 0,
                     'bonus_rate' => $rate,
-                    'type_sn' => $type_sn];
+                    'type_sn' => $type_sn,
+                    'can_share' => $can_share];
+
             $this->mDatas[] = $item;
         }
     }

+ 2 - 1
helper/bonus/parameters.php

@@ -343,7 +343,7 @@ class parameters
         return $params;
     }
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-    public static function admin_fixed($rate,$amount,$num,$type_name)
+    public static function admin_fixed($rate,$amount,$num,$type_name,$can_share = 1)
     {
         $param['make_type'] = type::MakeSendType;
         $param['type_name'] = empty($type_name) ? "系统红包" : $type_name;
@@ -352,6 +352,7 @@ class parameters
         $param['sender_id']   = self::admin_member_id;
         $param['sender_name'] = self::admin_name;
         $param['usable_days'] = self::usable_days;
+        $param['can_share']   = $can_share;
         $param['rate_money'][] = ['amount' => $amount,'num' => $num, 'rate' => $rate];
 
         return $param;