|
@@ -22,6 +22,9 @@ class friend
|
|
|
public function last_time() {
|
|
|
return intval($this->mParam['last_time']);
|
|
|
}
|
|
|
+ public function is_poor() {
|
|
|
+ return (time() - intval($this->mParam['last_time']) <= shaker_helper::max_poor_period);
|
|
|
+ }
|
|
|
public function can_gain() {
|
|
|
return (time() - intval($this->mParam['last_time']) >= shaker_helper::max_gain_period);
|
|
|
}
|
|
@@ -104,6 +107,7 @@ class gain_policy
|
|
|
class shaker_helper
|
|
|
{
|
|
|
const max_gain_period = 12 * 3600;
|
|
|
+ const max_poor_period = 1800;
|
|
|
const max_gain_period_system = 5;//3 * 3600;
|
|
|
const max_lost_period = 1800;
|
|
|
const err_msg = '您此次么有抢到好友红包...邀请更多好友,更多机会哦~';
|
|
@@ -228,6 +232,7 @@ class shaker_helper
|
|
|
if(intval($usable_amount * 100 + 0.5) > 0) {
|
|
|
return $friends[$pos];
|
|
|
} else {
|
|
|
+ $this->add_poor_friend($friends[$pos]);
|
|
|
array_splice($friends,$pos,1);
|
|
|
}
|
|
|
}
|
|
@@ -307,6 +312,35 @@ class shaker_helper
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private function add_poor_friend($user_id)
|
|
|
+ {
|
|
|
+ if(!isset($_SESSION['game_shake']['poor_friends'])) {
|
|
|
+ $_SESSION['game_shake']['poor_friends'] = array();
|
|
|
+ }
|
|
|
+ $friends = &$_SESSION['game_shake']['poor_friends'];
|
|
|
+
|
|
|
+ if(isset($friends[$user_id])) {
|
|
|
+ $friends[$user_id]['user_id'] = $user_id;
|
|
|
+ $friends[$user_id]['last_time'] = time();
|
|
|
+ $friends[$user_id]['count'] = intval($friends[$user_id]['count']) + 1;
|
|
|
+ } else {
|
|
|
+ $friends[$user_id]['user_id'] = $user_id;
|
|
|
+ $friends[$user_id]['last_time'] = time();
|
|
|
+ $friends[$user_id]['count'] = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private function del_poor_friend($user_id)
|
|
|
+ {
|
|
|
+ if(!isset($_SESSION['game_shake']['poor_friends'])) {
|
|
|
+ $_SESSION['game_shake']['poor_friends'] = array();
|
|
|
+ }
|
|
|
+ $friends = &$_SESSION['game_shake']['poor_friends'];
|
|
|
+ if(isset($friends[$user_id])) {
|
|
|
+ unset($friends[$user_id]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private function add_lost_friend($user_ids)
|
|
|
{
|
|
|
if(!isset($_SESSION['game_shake']['losted_friends'])) {
|
|
@@ -336,12 +370,27 @@ class shaker_helper
|
|
|
}
|
|
|
$friends = $_SESSION['game_shake']['gained_friends'];
|
|
|
|
|
|
- $exids = array();
|
|
|
+ $exids = [];
|
|
|
foreach ($friends as $uid => $param)
|
|
|
{
|
|
|
$friend = new friend($param);
|
|
|
if($friend->can_gain() == false) {
|
|
|
- array_push($exids,$friend->user_id());
|
|
|
+ $exids[] = $friend->user_id();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!isset($_SESSION['game_shake']['poor_friends'])) {
|
|
|
+ $_SESSION['game_shake']['poor_friends'] = array();
|
|
|
+ }
|
|
|
+
|
|
|
+ $poor_friends = $_SESSION['game_shake']['poor_friends'];
|
|
|
+ foreach ($poor_friends as $uid => $param)
|
|
|
+ {
|
|
|
+ $friend = new friend($param);
|
|
|
+ if($friend->is_poor()) {
|
|
|
+ $exids[] = $friend->user_id();
|
|
|
+ } else {
|
|
|
+ $this->del_poor_friend($friend->user_id());
|
|
|
}
|
|
|
}
|
|
|
|