Bladeren bron

增加群发红包。。。

stanley-king 8 jaren geleden
bovenliggende
commit
b19d8c57e0

+ 57 - 11
admin/control/person_bonus.php

@@ -31,7 +31,6 @@ class person_bonusControl extends SystemControl
         {
             $obj_validate = new Validate();
             $obj_validate->validateparam = array(
-                array("input"=>$_POST["member_id"], "require"=>"true", "message"=>Language::get('admin_points_member_error_again')),
                 array("input"=>$_POST["bonus_rate"],   "require"=>"true",'validator'=>'Compare','operator'=>' >= ','to'=> 1,"message" => '红包抵扣率必须大于0'),
                 array("input"=>$_POST["bonus_amount"], "require"=>"true",'validator'=>'Compare','operator'=>' >= ','to'=> 0.01,"message" => '金额最少一分钱')
             );
@@ -39,13 +38,10 @@ class person_bonusControl extends SystemControl
             if ($error != ''){
                 showMessage($error,'','','error');
             }
-            //查询会员信息
-            $obj_member = Model('member');
-            $member_id = intval($_POST['member_id']);
-            $member_info = $obj_member->getMemberInfo(array('member_id'=>$member_id));
 
-            if (!is_array($member_info) || count($member_info)<=0){
-                showMessage(Language::get('admin_points_userrecord_error'),'index.php?act=points&op=addpoints','','error');
+            $members = $this->member_ids($_POST['member_name']);
+            if(empty($members)) {
+                return showMessage(Language::get('nc_common_save_fail'),'index.php?act=person_bonus&op=add','','error');
             }
 
             $rate = intval($_POST['bonus_rate']);
@@ -53,10 +49,25 @@ class person_bonusControl extends SystemControl
             $optype = intval($_POST['operatetype']);
             $bonusdesc = $_POST['bonusdesc'];
 
-            if ($optype == 1) {
-                $ret = account_helper::add_bonus($rate,$amount,$member_id,$bonusdesc);
-            } else {
-                $ret = account_helper::withhold_bonus($rate,$amount,$member_id);
+            if ($optype == 1)
+            {
+                $ids = [];
+                foreach ($members as $member) {
+                    $ids[] = $member['member_id'];
+                }
+                $ret = account_helper::add_bonus($rate,$amount,$ids,$bonusdesc);
+
+                foreach ($members as $member) {
+                    $mobile = $member['member_mobile'];
+                    sms_helper::send_nostore_message($mobile,Sms::active_38,array('time'=>'5'));
+                }
+            }
+            else
+            {
+                foreach ($members as $member) {
+                    $member_id = $member['member_id'];
+                    $ret = account_helper::withhold_bonus($rate,$amount,$member_id);
+                }
             }
 
             if($ret == true) {
@@ -69,6 +80,41 @@ class person_bonusControl extends SystemControl
             Tpl::showpage('person_bonus.add');
         }
     }
+
+    private function member_ids($inputs,&$errno)
+    {
+        $items = preg_split('/,/',$inputs);
+
+        $errno = [];
+        $mobiles = [];
+        foreach ($items as $item)
+        {
+            $mobile = trim($item);
+            $validate = new Validate();
+            $validate->setValidate(Validate::verify_mobile($mobile));
+            $err = $validate->validate();
+            if(empty($err))
+            {
+                $nMobile = intval($mobile);
+                if(algorithm::binary_search($mobiles,$nMobile) == false) {
+                    $pos = algorithm::lower_bonud($mobiles,$nMobile);
+                    algorithm::array_insert($mobiles,$pos,$nMobile);
+                    continue;
+                }
+            }
+
+            $errno[] = $mobile;
+        }
+
+        if(!empty($mobiles)) {
+            $member = Model('member');
+            $items = $member->getMemberList(array('member_mobile' => array('in',$mobiles)),'member_id,member_mobile');
+            return $items;
+        } else {
+            return false;
+        }
+    }
+
     public function checkmemberOp(){
         $name = trim($_GET['name']);
         if (!$name){

+ 1 - 1
admin/control/stat_member.php

@@ -437,7 +437,7 @@ class stat_memberControl extends SystemControl{
 		if ($this->search_arr['exporttype'] == 'excel'){
 		    $member_list = $model->getMemberList($where);
 		} else {
-		    $member_list = $model->getMemberList($where, '', 10);
+		    $member_list = $model->getMemberList($where, '*', 10);
 		}
 		if (is_array($member_list)){
 			foreach ($member_list as $k=> $v){

+ 1 - 1
admin/templates/default/css/skin_0.css

@@ -429,7 +429,7 @@ big,.big {font-size:120% !important; line-height:120%;}
 .onoff { position: relative; overflow: hidden; display: block;}
 .onoff input[type="radio"] { position: absolute; left:-999px; }
 .txt, select, .vmiddle , .type-file-text { vertical-align: middle;}
-.rowform .txt, .rowform textarea { margin-right: 10px; width: 250px;}
+.rowform .txt, .rowform textarea { margin-right: 10px; width: 500px;}
 .rowform .date , .rowform .date:hover { background: url(../images/input_date.gif) no-repeat 0 0; padding-left: 25px; width: 226px;}
 .rowform .date { background-color: #FAFAFA;}
 .rowform .date:hover { background-color: #FFF;}

+ 3 - 1
admin/templates/default/person_bonus.add.php

@@ -19,7 +19,9 @@
                 <td colspan="2" class="required"><label class="validation"><?php echo $lang['admin_points_membername']; ?>:</label></td>
             </tr>
             <tr class="noborder">
-                <td class="vatop rowform"><input type="text" name="member_name" id="member_name" class="txt" onchange="javascript:checkmember();">
+                <td class="vatop rowform">
+                    <textarea name="member_name" id="member_name" cols="100" rows="10" class="members"></textarea>
+<!--                    <input type="text" name="member_name" id="member_name" class="txt">-->
                     <input type="hidden" name="member_id" id="member_id" value='0'/></td>
                 <td class="vatop tips"><?php echo $lang['member_index_name']?></td>
             </tr>

+ 6 - 1
core/framework/libraries/sms.php

@@ -19,6 +19,8 @@ class Sms
     const order_sended = 7;
     const order_received = 8;
 
+    const active_38 = 20;
+
     /*
      * 发送手机短信
      * @param unknown $mobile 手机号
@@ -83,7 +85,10 @@ class Sms
             self::newcomer_code => '92893',
             self::newcomer_bonus_code => '146196',
             self::order_sended => '146345',
-            self::order_received => '146346');
+            self::order_received => '146346',
+            self::order_received => '146346',
+            self::active_38 => '158122',
+            );
 
         if (!array_key_exists($type, $templates)) {
             Log::record("mysend_yuntx type error}",Log::ERR);

+ 1 - 1
crontab/control/date.php

@@ -936,7 +936,7 @@ class dateControl extends BaseCronControl
             $memberidarr_points = $points_list?array_keys($points_list):array();
             $memberid_arr = array_merge($memberidarr_order,$memberidarr_ordergoods,$memberidarr_predeposit,$memberidarr_points);
             //查询会员信息
-            $memberid_list = Model('member')->getMemberList(array('member_id'=>array('in',$memberid_arr)), '', 0);
+            $memberid_list = Model('member')->getMemberList(array('member_id'=>array('in',$memberid_arr)), '*', 0);
             //查询记录是否存在
             $statmemberlist_tmp = $model->statByStatmember(array('statm_time'=>$stime));
             $statmemberlist = array();

+ 1 - 1
data/crontab/include/stat.php

@@ -385,7 +385,7 @@ class statControl {
             $memberidarr_points = $points_list?array_keys($points_list):array();
             $memberid_arr = array_merge($memberidarr_order,$memberidarr_ordergoods,$memberidarr_predeposit,$memberidarr_points);
             //查询会员信息
-            $memberid_list = Model('member')->getMemberList(array('member_id'=>array('in',$memberid_arr)), '', 0);
+            $memberid_list = Model('member')->getMemberList(array('member_id'=>array('in',$memberid_arr)), '*', 0);
             //查询记录是否存在
             $statmemberlist_tmp = $model->statByStatmember(array('statm_time'=>$stime));
             $statmemberlist = array();

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

@@ -55,7 +55,7 @@ class memberModel extends Model
      */
     public function getMemberList($condition = array(), $field = '*', $page = 0, $order = 'member_id desc', $limit = '')
     {
-        return $this->table('member')->where($condition)->page($page)->order($order)->limit($limit)->select();
+        return $this->table('member')->field($field)->where($condition)->page($page)->order($order)->limit($limit)->select();
     }
 
     /**

+ 4 - 6
helper/account_helper.php

@@ -276,13 +276,11 @@ class account_helper
         return $total_amount;
     }
 
-    public static function add_bonus($rate,$amount,$member_id,$type_name)
+    public static function add_bonus($rate,$amount,$member_ids,$type_name)
     {
-        $member_id = intval($member_id);
-        $param = \bonus\parameters::admin_fixed(intval($rate),doubleval($amount),$type_name);
-
-        $fix_bonus = self::send_bonus($param,$param['rate_money'],array($member_id));
-        if($fix_bonus != false && array_key_exists($member_id,$fix_bonus)) {
+        $param = \bonus\parameters::admin_fixed(intval($rate),doubleval($amount),count($member_ids),$type_name);
+        $fix_bonus = self::send_bonus($param,$param['rate_money'],$member_ids);
+        if($fix_bonus != false) {
             return true;
         } else {
             return false;

+ 2 - 2
helper/bonus/parameters.php

@@ -64,7 +64,7 @@ class parameters
         return $param;
     }
 
-    public static function admin_fixed($rate,$amount,$type_name)
+    public static function admin_fixed($rate,$amount,$num,$type_name)
     {
         $param['make_type'] = type::MakeSendType;
         $param['type_name'] = empty($type_name) ? "系统红包" : $type_name;
@@ -72,7 +72,7 @@ class parameters
         $param['grab_type'] = type::GrabType_All;
         $param['sender_id']   = self::admin_member_id;
         $param['sender_name'] = self::admin_name;
-        $param['rate_money'][] = array('amount' => $amount,'num' => 1, 'rate' => $rate);
+        $param['rate_money'][] = array('amount' => $amount,'num' => $num, 'rate' => $rate);
 
         return $param;
     }

+ 6 - 0
test/systemTest.php

@@ -40,5 +40,11 @@ class systemTest extends PHPUnit_Framework_TestCase
             echo "==";
         }
     }
+    public function testMobiles()
+    {
+        $mobiles = "13911129867,18911779278,13681651248,18262273057,13813416101,18961950030,15000321164";
+        $kv = preg_split('/,/',$mobiles);
+
+    }
 
 }