|
@@ -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){
|