|
@@ -115,32 +115,37 @@ class manager
|
|
|
{
|
|
|
$mod_bonus = Model('user_bonus');
|
|
|
|
|
|
- $session_id = $_SESSION['MPHPSESSID'];
|
|
|
- if(session_helper::isVerfiyMobile()) {
|
|
|
- $mobile = session_helper::cur_mobile();
|
|
|
- $sql = "select * from lrlz_user_bonus where type_sn = '{$type_sn}' and (session_id = '{$session_id}' or user_mobile = '{$mobile}')";
|
|
|
- } else {
|
|
|
- $sql = "select * from lrlz_user_bonus where type_sn = '{$type_sn}' and session_id = '{$session_id}'";
|
|
|
+ $session_id = session_helper::session_id();
|
|
|
+ $mobile = session_helper::mobile();
|
|
|
+ $user_id = session_helper::memberid();
|
|
|
+ if(empty($session_id)) return false;
|
|
|
+
|
|
|
+ if($user_id > 0 && !empty($mobile)) {
|
|
|
+ $cond['session_id|user_mobile|user_id'] = ['_multi'=> true,$session_id,$mobile,$user_id];
|
|
|
+ }
|
|
|
+ elseif ($user_id > 0) {
|
|
|
+ $cond['session_id|user_id'] = ['_multi'=> true,$session_id,$user_id];
|
|
|
+ }
|
|
|
+ elseif (!empty($mobile)) {
|
|
|
+ $cond['session_id|user_mobile'] = ['_multi'=> true,$session_id,$mobile];
|
|
|
}
|
|
|
- $bonusex = $mod_bonus->get_by_sql($sql);
|
|
|
+ else {
|
|
|
+ $cond['session_id'] = $session_id;
|
|
|
+ }
|
|
|
+ $cond['type_sn'] = $type_sn;
|
|
|
|
|
|
+ $bonusex = $mod_bonus->get($cond);
|
|
|
if(empty($bonusex)) {
|
|
|
return false;
|
|
|
}
|
|
|
- if(count($bonusex) > 1)
|
|
|
+
|
|
|
+ foreach($bonusex as $val)
|
|
|
{
|
|
|
- foreach($bonusex as $val)
|
|
|
- {
|
|
|
- if($val['user_mobile'] == $_SESSION['member_mobile']) {
|
|
|
- $this->write_session($val);
|
|
|
- return $val;
|
|
|
- }
|
|
|
+ if($val['user_mobile'] == session_helper::mobile()) {
|
|
|
+ $this->write_session($val);
|
|
|
+ return $val;
|
|
|
}
|
|
|
}
|
|
|
- else {
|
|
|
- $this->write_session($bonusex[0]);
|
|
|
- return $bonusex[0];
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
return $bonus;
|
|
@@ -152,32 +157,38 @@ class manager
|
|
|
if(empty($bonus))
|
|
|
{
|
|
|
$mod_bonus = Model('user_bonus');
|
|
|
- $session_id = $_SESSION['MPHPSESSID'];
|
|
|
- if(session_helper::isVerfiyMobile()) {
|
|
|
- $mobile = session_helper::cur_mobile();
|
|
|
- $sql = "select * from lrlz_user_bonus where bonus_sn = '{$bonus_sn}' and (session_id = '{$session_id}' or user_mobile = '{$mobile}')";
|
|
|
- } else {
|
|
|
- $sql = "select * from lrlz_user_bonus where bonus_sn = '{$bonus_sn}' and session_id = '{$session_id}'";
|
|
|
+
|
|
|
+ $session_id = session_helper::session_id();
|
|
|
+ $mobile = session_helper::mobile();
|
|
|
+ $user_id = session_helper::memberid();
|
|
|
+ if(empty($session_id)) return false;
|
|
|
+
|
|
|
+ if($user_id > 0 && !empty($mobile)) {
|
|
|
+ $cond['session_id|user_mobile|user_id'] = ['_multi'=> true,$session_id,$mobile,$user_id];
|
|
|
+ }
|
|
|
+ elseif ($user_id > 0) {
|
|
|
+ $cond['session_id|user_id'] = ['_multi'=> true,$session_id,$user_id];
|
|
|
+ }
|
|
|
+ elseif (!empty($mobile)) {
|
|
|
+ $cond['session_id|user_mobile'] = ['_multi'=> true,$session_id,$mobile];
|
|
|
}
|
|
|
- $bonusex = $mod_bonus->get_by_sql($sql);
|
|
|
+ else {
|
|
|
+ $cond['session_id'] = $session_id;
|
|
|
+ }
|
|
|
+ $cond['bonus_sn'] = $bonus_sn;
|
|
|
+
|
|
|
+ $bonusex = $mod_bonus->get($cond);
|
|
|
if(empty($bonusex)) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- if(count($bonusex) > 1)
|
|
|
+ foreach($bonusex as $val)
|
|
|
{
|
|
|
- foreach($bonusex as $val)
|
|
|
- {
|
|
|
- if($val['user_mobile'] == $_SESSION['member_mobile']) {
|
|
|
- $this->write_session($val);
|
|
|
- return $val;
|
|
|
- }
|
|
|
+ if($val['user_mobile'] == $_SESSION['member_mobile']) {
|
|
|
+ $this->write_session($val);
|
|
|
+ return $val;
|
|
|
}
|
|
|
}
|
|
|
- else {
|
|
|
- $this->write_session($bonusex[0]);
|
|
|
- return $bonusex[0];
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
return $bonus;
|
|
@@ -189,10 +200,11 @@ class manager
|
|
|
$bonus = $this->read_session($type_sn);
|
|
|
if($bonus === false)
|
|
|
{
|
|
|
- $param = array( 'type_sn' => $type_sn,
|
|
|
- 'session_id' => $_SESSION['MPHPSESSID'],
|
|
|
- 'time_out' => self::grab_period_timeout,
|
|
|
- 'member_mobile' => $_SESSION['member_mobile']);
|
|
|
+ $param = ['type_sn' => $type_sn,
|
|
|
+ 'session_id' => session_helper::session_id(),
|
|
|
+ 'time_out' => self::grab_period_timeout,
|
|
|
+ 'user_mobile' => session_helper::mobile(),
|
|
|
+ 'user_id' => session_helper::memberid()];
|
|
|
|
|
|
$bonus_obj = factory::grab_bonus($param);
|
|
|
if($bonus_obj == false) {
|
|
@@ -369,7 +381,7 @@ class manager
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public function bind_bonus($bonus_sn,$session_id,$mobile,&$new_bonus_sn)
|
|
|
+ public function bind_bonus($bonus_sn,$session_id,$mobile,$userid,&$new_bonus_sn)
|
|
|
{
|
|
|
$new_bonus_sn = $bonus_sn;
|
|
|
$bonus_info = self::read_session('',$bonus_sn);
|
|
@@ -389,7 +401,7 @@ class manager
|
|
|
$user_bonus = user_bonus::create_by_sn($bonus_sn);
|
|
|
if($user_bonus->isBinded())
|
|
|
{
|
|
|
- if($user_bonus->user_mobile() == $mobile) {
|
|
|
+ if($user_bonus->user_mobile() == $mobile || $user_bonus->user_id() == $userid) {
|
|
|
return true;
|
|
|
} else {
|
|
|
return false;
|
|
@@ -401,7 +413,7 @@ class manager
|
|
|
}
|
|
|
|
|
|
$binded_bonus = array();
|
|
|
- $ret = Model('user_bonus')->bind($type_id,$bonus_id,$session_id,$mobile,$binded_bonus);
|
|
|
+ $ret = Model('user_bonus')->bind($type_id,$bonus_id,$session_id,$mobile,$userid,$binded_bonus);
|
|
|
Log::record("bind_bonus bind ret={$ret}",Log::DEBUG);
|
|
|
if($ret == true)
|
|
|
{
|