|
@@ -290,6 +290,75 @@ class manager
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function send_mobile($type_sn, $mobiles)
|
|
|
+ {
|
|
|
+ sort($mobiles);
|
|
|
+ $mod_bonus = Model('user_bonus');
|
|
|
+
|
|
|
+ $items = $mod_bonus->getBonusList(array('user_mobile' => array('in',$mobiles),'type_sn' => $type_sn),'*','',0,0,0,'',true);
|
|
|
+ $ret = [];
|
|
|
+ foreach ($items as $item)
|
|
|
+ {
|
|
|
+ $user_mobile = $item['user_mobile'];
|
|
|
+ if(algorithm::binary_search($user_mobile,$mobiles) != false)
|
|
|
+ {
|
|
|
+ $pos = algorithm::lower_bonud($mobiles,$user_mobile);
|
|
|
+ algorithm::array_erase($mobiles,$pos);
|
|
|
+ $ret[] = $item;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!empty($mobiles))
|
|
|
+ {
|
|
|
+ $count = count($mobiles);
|
|
|
+ $items = $mod_bonus->getBonusList(array('bonus_status' => 0,'type_sn' => $type_sn),'*','',0,0,count($mobiles),'',true);
|
|
|
+ if($count != count($items)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $mod_member = Model('member');
|
|
|
+
|
|
|
+ $index = 0;
|
|
|
+ $bonus_values = 0.00;
|
|
|
+
|
|
|
+ $bind_num = 0;
|
|
|
+ foreach ($items as &$bonus)
|
|
|
+ {
|
|
|
+ $user_mobile = $mobiles[$index];
|
|
|
+ $infos = $mod_member->getMemberInfo(['member_mobile' => $user_mobile]);
|
|
|
+ if(!empty($infos)) {
|
|
|
+ $minfo = new member_info($infos);
|
|
|
+ $bonus['user_id'] = $user_mobile;
|
|
|
+ $bonus['user_mobile'] = $minfo->mobile();
|
|
|
+ $bonus['user_name'] = $minfo->nickname();
|
|
|
+ $bonus['grab_time'] = time();
|
|
|
+ $bonus['get_time'] = time();
|
|
|
+ $bonus['bonus_status'] = 2;
|
|
|
+ $bind_num++;
|
|
|
+ $bonus_values += $bonus['bonus_value'];
|
|
|
+ } else {
|
|
|
+ $bonus['user_mobile'] = $user_mobile;
|
|
|
+ $bonus['grab_time'] = time();
|
|
|
+ $bonus['bonus_status'] = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ ++$index;
|
|
|
+ $ret[] = $bonus;
|
|
|
+ }
|
|
|
+
|
|
|
+ $mod_bonus->replaceAll($items);
|
|
|
+ Model('bonus_type')->edit(array('type_sn' => $type_sn),
|
|
|
+ array('binded_num' => array('exp', "binded_num+{$bind_num}"),
|
|
|
+ 'grabed_num' => array('exp', "grabed_num+{$count}"),
|
|
|
+ 'remain_amount' => array('exp', "remain_amount-" . "{$bonus_values}")));
|
|
|
+ dcache($type_sn,self::type_prefix);
|
|
|
+
|
|
|
+ return $ret;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public function bind_bonus($bonus_sn,$session_id,$mobile,&$new_bonus_sn)
|
|
|
{
|
|
|
$new_bonus_sn = $bonus_sn;
|