|
@@ -6,6 +6,7 @@
|
|
|
|
|
|
defined('InShopNC') or exit('Access Invalid!');
|
|
|
|
|
|
+require_once(BASE_ROOT_PATH . '/helper/algorithm.php');
|
|
|
require_once(BASE_ROOT_PATH . '/helper/account_helper.php');
|
|
|
require_once(BASE_ROOT_PATH . '/helper/sms_helper.php');
|
|
|
|
|
@@ -17,10 +18,6 @@ class person_bonusControl extends SystemControl
|
|
|
{
|
|
|
parent::__construct();
|
|
|
Language::read('points');
|
|
|
- //判断系统是否开启积分功能
|
|
|
-// if (C('points_isuse') != 1){
|
|
|
-// showMessage(Language::get('admin_person_bonus_unavailable'),'index.php?act=dashboard&op=welcome','','error');
|
|
|
-// }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -40,79 +37,173 @@ class person_bonusControl extends SystemControl
|
|
|
showMessage($error,'','','error');
|
|
|
}
|
|
|
|
|
|
- $members = $this->member_ids($_POST['member_name'],$errno);
|
|
|
- if(empty($members)) {
|
|
|
- return showMessage(Language::get('nc_common_save_fail'),'index.php?act=person_bonus&op=add','','error');
|
|
|
- }
|
|
|
-
|
|
|
- $rate = intval($_POST['bonus_rate']);
|
|
|
- $amount = doubleval($_POST['bonus_amount']);
|
|
|
$optype = intval($_POST['operatetype']);
|
|
|
- $bonusdesc = $_POST['bonusdesc'];
|
|
|
-
|
|
|
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'));
|
|
|
+ $params = $this->add_params($_POST,$error);
|
|
|
+ if($params == false) {
|
|
|
+ showMessage($error,'index.php?act=person_bonus&op=add','','error');
|
|
|
+ } else {
|
|
|
+ QueueClient::push('sendBonusAndSMS',$params);
|
|
|
+ showMessage(Language::get('nc_common_save_succ'),'index.php?act=person_bonus&op=add');
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- foreach ($members as $member) {
|
|
|
- $member_id = $member['member_id'];
|
|
|
- $ret = account_helper::withhold_bonus($rate,$amount,$member_id);
|
|
|
- }
|
|
|
- }
|
|
|
+ $members = member_helper::from_mobiles($_POST['members'],$error);
|
|
|
+ if(!empty($members))
|
|
|
+ {
|
|
|
+ $rate = intval($_POST['bonus_rate']);
|
|
|
+ $amount = doubleval($_POST['bonus_amount']);
|
|
|
+ foreach ($members as $member) {
|
|
|
+ $member_id = $member['member_id'];
|
|
|
+ $ret = account_helper::withhold_bonus($rate,$amount,$member_id);
|
|
|
+ }
|
|
|
|
|
|
- if($ret == true) {
|
|
|
- showMessage(Language::get('nc_common_save_succ'),'index.php?act=person_bonus&op=add');
|
|
|
- } else {
|
|
|
- showMessage(Language::get('nc_common_save_fail'),'index.php?act=person_bonus&op=add','','error');
|
|
|
+ showMessage(Language::get('nc_common_save_succ'),'index.php?act=person_bonus&op=add');
|
|
|
+ } else {
|
|
|
+ showMessage("手机列表为空",'index.php?act=person_bonus&op=add','','error');
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- else {
|
|
|
+ else
|
|
|
+ {
|
|
|
+ $items = Model()->table('sms_template')->where(array('disable' => 0))->field('yuntx_id,title,content')->select();
|
|
|
+ Tpl::output('sms_tpls',$items);
|
|
|
Tpl::showpage('person_bonus.add');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private function member_ids($inputs,&$errno)
|
|
|
+
|
|
|
+ private function add_params($input, &$err)
|
|
|
{
|
|
|
- $items = preg_split('/,/',$inputs);
|
|
|
+ $params= [];
|
|
|
+
|
|
|
+ $params['member']['input_type'] = $input['input_type'];
|
|
|
+ if(empty($input['members'])) {
|
|
|
+ $err = "手机号码或者SQL语句为空";
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ $params['member']['data'] = $input['members'];
|
|
|
+ }
|
|
|
+ $params['member']['ex_brand'] = $input['ex_brand'] == 'on' ? true : false;
|
|
|
+ $params['member']['ex_lrlz'] = $input['ex_lrlz'] == 'on' ? true : false;
|
|
|
+
|
|
|
+
|
|
|
+ $params['bonus']['rate'] = intval($input['bonus_rate']);;
|
|
|
+ $params['bonus']['amount'] = doubleval($input['bonus_amount']);;
|
|
|
+ $params['bonus']['bless'] = $input['bonus_bless'];
|
|
|
+
|
|
|
+ $params['sms']['open'] = $input['send_sms'] == 'on' ? true : false;
|
|
|
+ if($params['sms']['open'])
|
|
|
+ {
|
|
|
+ $tmpid = $input['sms_template'];
|
|
|
+ if($tmpid <= 0) {
|
|
|
+ $err = "错误的短信模版";
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $params['sms']['template_id'] = $tmpid;
|
|
|
+ }
|
|
|
+
|
|
|
+ return $params;
|
|
|
+ }
|
|
|
|
|
|
- $errno = [];
|
|
|
- $mobiles = [];
|
|
|
- foreach ($items as $item)
|
|
|
+
|
|
|
+
|
|
|
+ public function send_normalOp()
|
|
|
+ {
|
|
|
+ $ex_mobiles = array('13167257998','13817477874',
|
|
|
+ '13501834337','15136579518','13761196158','13120500263','15225289199','13501933861',
|
|
|
+ '13524888188','15801835621','18930392740','18501638271','15051661622','13918648451',
|
|
|
+ '13564438692','13681651248','15821631296','15000689585','13020900390','13271733191',
|
|
|
+ '18717997570','15721468718','15221256025','15601756009','15890737263','15026507710',
|
|
|
+ '13636331937','13672289205','18068569118','15722593633','15026580015','15000602053',
|
|
|
+ '15267388753','13764112373','15156077677','15000640019','18321929550','15997393326',
|
|
|
+ '18918227177','13301609136','15256059856','13681903076','15103870805','18252093834',
|
|
|
+ '15921174365','15901998706','18856150208','15167870536');
|
|
|
+ $max_id = 0;
|
|
|
+ while (true)
|
|
|
{
|
|
|
- $mobile = trim($item);
|
|
|
- $validate = new Validator();
|
|
|
- $validate->setValidate(Validator::verify_mobile($mobile));
|
|
|
- $err = $validate->validate();
|
|
|
- if(empty($err))
|
|
|
+ $mod_member = Model('member');
|
|
|
+ $members = $mod_member->getMemberList(array('member_user_type' => 0,'member_id' => array('gt',$max_id)),
|
|
|
+ 'member_id,member_mobile',0,'member_id asc',1000);
|
|
|
+
|
|
|
+ $count = count($members);
|
|
|
+ Log::record("send_normal count = {$count} ",Log::ERR);
|
|
|
+
|
|
|
+ if(empty($members)) {
|
|
|
+ Log::record("send_normal count = {$count} leave",Log::ERR);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ $ids = [];
|
|
|
+ $mobiles = [];
|
|
|
+ foreach ($members as $member)
|
|
|
{
|
|
|
- $nMobile = intval($mobile);
|
|
|
- if(algorithm::binary_search($mobiles,$nMobile) == false) {
|
|
|
- $pos = algorithm::lower_bonud($mobiles,$nMobile);
|
|
|
- algorithm::array_insert($mobiles,$pos,$nMobile);
|
|
|
+ $max_id = $member['member_id'];
|
|
|
+
|
|
|
+ $mobile = $member['member_mobile'];
|
|
|
+ if(in_array($mobile,$ex_mobiles)) {
|
|
|
continue;
|
|
|
+ } else {
|
|
|
+ $ids[] = $member['member_id'];
|
|
|
+ $mobiles[] = $mobile;
|
|
|
}
|
|
|
}
|
|
|
+ $rate = 50;
|
|
|
+ $amount = 38;
|
|
|
|
|
|
- $errno[] = $mobile;
|
|
|
+ $ids[] = 40318;
|
|
|
+ $mobiles[] = '18911779278';
|
|
|
+
|
|
|
+ $ret = account_helper::add_bonus($rate,$amount,$ids,"女王节专享红包");
|
|
|
+ if($ret)
|
|
|
+ {
|
|
|
+ foreach ($mobiles as $mobile)
|
|
|
+ {
|
|
|
+ if(!empty($mobile)) {
|
|
|
+ sms_helper::send_nostore_message($mobile,Sms::active_normal_38,array('time'=>'5'));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ showMessage(Language::get('nc_common_save_succ'),'index.php?act=person_bonus&op=add');
|
|
|
+ }
|
|
|
|
|
|
- if(!empty($mobiles)) {
|
|
|
- $member = Model('member');
|
|
|
- $items = $member->getMemberList(array('member_mobile' => array('in',$mobiles)),'member_id,member_mobile');
|
|
|
- return $items;
|
|
|
- } else {
|
|
|
- return false;
|
|
|
+
|
|
|
+ private function send_bonus()
|
|
|
+ {
|
|
|
+ $max_id = 0;
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ $mod_member = Model('member');
|
|
|
+ $members = $mod_member->getMemberList(array('member_user_type' => 0,'member_id' => array('gt',$max_id)),
|
|
|
+ 'member_id,member_mobile',0,'member_id asc',1000);
|
|
|
+
|
|
|
+ if(empty($members)) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ $ids = [];
|
|
|
+ foreach ($members as $member) {
|
|
|
+ $ids[] = $member['member_id'];
|
|
|
+ $max_id = $member['member_id'];
|
|
|
+ }
|
|
|
+ $rate = 50;
|
|
|
+ $amount = 38;
|
|
|
+
|
|
|
+ $ret = account_helper::add_bonus($rate,$amount,$ids,"女王节专享红包");
|
|
|
+ if($ret)
|
|
|
+ {
|
|
|
+ foreach ($members as $member)
|
|
|
+ {
|
|
|
+ $mobile = $member['member_mobile'];
|
|
|
+ if(!empty($mobile)) {
|
|
|
+ sms_helper::send_nostore_message($mobile,Sms::active_normal_38,array('time'=>'5'));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|