Explorar o código

增加穷人好友

stanley-king %!s(int64=8) %!d(string=hai) anos
pai
achega
189b583812
Modificáronse 3 ficheiros con 84 adicións e 26 borrados
  1. 3 0
      helper/order_helper.php
  2. 51 2
      helper/shaker_helper.php
  3. 30 24
      mobile/control/admin_oper.php

+ 3 - 0
helper/order_helper.php

@@ -275,6 +275,9 @@ class refund_helper
         $order = $model_refund->getRightOrderList(array('buyer_id' => $this->member_id, 'order_id' => $order_id));
 
         $order_amount = $order['order_amount'];//订单金额
+        $pd_amount = $order['pd_amount'];
+        $order_amount -= $pd_amount;
+
         $condition = array();
         {
             $condition['buyer_id'] = $order['buyer_id'];

+ 51 - 2
helper/shaker_helper.php

@@ -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());
             }
         }
 

+ 30 - 24
mobile/control/admin_oper.php

@@ -182,30 +182,6 @@ class admin_operControl extends mbMemberControl
         }
     }
 
-    public function reset_bounsOp()
-    {
-        $err_user = [];
-        $mod_member = Model('member');
-        $items = $mod_member->field('available_predeposit,available_bonus,member_id')->where(array('member_id' => array('gt',0)))->limit(false)->select();
-        foreach($items as $item)
-        {
-            $bonus = [];
-            $bonus[30] = intval(doubleval($item['available_predeposit']) * 100 + 0.5) / 100;
-            $strbonus = serialize($bonus);
-            $member_id = intval($item['member_id']);
-            $ret = Model()->table('member')->where(array('member_id' => $member_id))->update(array('available_bonus' => $strbonus));
-            if($ret == false) {
-                $err_user[] = $member_id;
-            }
-        }
-
-        if(empty($err_user)) {
-            return self::outsuccess(null);
-        } else {
-            return self::outerr($err_user);
-        }
-    }
-
     public function reset_bonus_typeOp()
     {
         $bonus_type = Model('bonus_type');
@@ -218,6 +194,36 @@ class admin_operControl extends mbMemberControl
         }
     }
 
+    public function reset_bonus_snOp()
+    {
+        $bonus_type = Model('bonus_type');
+        $types = $bonus_type->field('type_id')->where(array('type_id' => array('gt',0)))->limit(false)->select();
+        foreach ($types as $type)
+        {
+            $type_id = intval($type['type_id']);
+            $user_bonus = Model('user_bonus');
+
+            $bonuses = $user_bonus->field('bonus_id,bonus_sn')->where(array('type_id' => $type_id))->limit(false)->select();
+            $count = count($bonuses);
+            if($count <= 10) {
+                $format = "%d";
+            } elseif($count <= 100) {
+                $format = "%02d";
+            } elseif ($count <= 1000) {
+                $format = "%03d";
+            } else {
+                $format = "%04d";
+            }
+            $pos = 0;
+            foreach ($bonuses as $bonus) {
+                $bonus_sn = $bonus['bonus_sn'] . sprintf($format,$pos);
+                $user_bonus->where(array('bonus_id' => intval($bonus['bonus_id'])))->update(array('bonus_sn' => $bonus_sn));
+                $pos++;
+            }
+        }
+    }
+
+
 //    // 更新商品序列号
 //    public function updateGoodsSerialOp()
 //    {