Pārlūkot izejas kodu

Merge branch 'talksec' of 121.43.114.153:/home/git/repositories/shopnc into talksec

huangdong 6 gadi atpakaļ
vecāks
revīzija
56c4db48f6

+ 2 - 1
data/logic/buy_1.logic.php

@@ -693,7 +693,8 @@ class buy_1Logic
             $room_id = $bonus_amount['room_id'];
             $room_bonus = $bonus_amount['room_bonus'];
 
-            $priceCalculate->hold_bonus($user_bonus,$room_id,$room_bonus);
+            $priceCalculate->hold_bonus($user_bonus);
+            room_helper::onSpendBonus($room_id,$room_bonus,$member_id);
 
             $data_pd = array();
             $data_pd['member_id']   = $member_id;

+ 4 - 7
helper/bonus/account.php

@@ -31,7 +31,7 @@ interface IPriceCalculate
     public function bonus_amount($goods_amount,$goods_lowest_amount);
     public function bonus_way($bonus_amount);
     public function bonus_detail($bonus_amount,$room_id);
-    public function hold_bonus($user_bonus,$room_id,$room_bonus);
+    public function hold_bonus($user_bonus);
 }
 
 class normal_calc implements IPriceCalculate
@@ -58,7 +58,7 @@ class normal_calc implements IPriceCalculate
     {
         return 0.00;
     }
-    public function hold_bonus($user_bonus,$room_id,$room_bonus) {
+    public function hold_bonus($user_bonus) {
 
     }
     public function bonus_way($bonus_amount) {
@@ -663,7 +663,8 @@ class account implements IPriceCalculate
 
         return ['user_bonus' => $ways['available_bonus'],'room_bonus' => $room_val,'room_id' => $roomid];
     }
-    public function hold_bonus($user_bonus,$room_id,$room_bonus)
+
+    public function hold_bonus($user_bonus)
     {
         if(intval($user_bonus * 100 + 0.5) > 0)
         {
@@ -671,10 +672,6 @@ class account implements IPriceCalculate
             $this->mPayRates->with_hold(30, $user_bonus);
             $this->mDirty = true;
         }
-
-        if($room_id > 0 && intval($room_bonus * 100 + 0.5) > 0) {
-            //todo需要扣除共享基金
-        }
     }
     static private function create_moneycalc($rate_moneys)
     {

+ 3 - 4
helper/room/base_room.php

@@ -160,12 +160,12 @@ abstract class base_room
             return false;
         }
     }
-    private function spend_msg($user,$steps,$amount)
+    private function spend_msg($user,$amount)
     {
         try
         {
             $minfo = $this->userinfos($user);
-            $str = "{$minfo['nickname']}贡献了{$amount}元助力共享基金,兑换累计步数{$steps}步。<font color='#4A90E2'>一起参与助力吧!</font>";
+            $str = "{$minfo['nickname']}使用了{$amount}元助力共享基金。<font color='#4A90E2'>一起参与助力吧!</font>";
             return $str;
         }
         catch (Exception $ex) {
@@ -269,10 +269,9 @@ abstract class base_room
         }
         elseif($type == proto_type::msg_stype_spend) {
             $userid = $content['user'];
-            $steps  = $content['steps'];
             $amount = $content['amount'];
 
-            $msg = $this->spend_msg($userid,$steps,$amount);
+            $msg = $this->spend_msg($userid,$amount);
         }
         else {
             return false;

+ 12 - 0
helper/room_helper.php

@@ -22,6 +22,7 @@ require_once(BASE_ROOT_PATH . '/helper/room/room_parts.php');
 require_once(BASE_ROOT_PATH . '/helper/room/room_avatar.php');
 
 
+
 class room_helper
 {
     const room_name_usercount = 5;
@@ -148,4 +149,15 @@ class room_helper
         }
         return $result;
     }
+
+    public static function onSpendBonus($roomid,$amount,$userid)
+    {
+        if($roomid > 0 && intval($amount * 100 + 0.5) > 0 && $userid > 0)
+        {
+            $mod_room = Model('room');
+            $mod_room->editRoom(['room_id' => $roomid],['shared_bonus' => ['exp',"bonus - {$amount}"]]);
+            $content = ['user' => session_helper::memberid(),'amount' => $amount];
+            room\factory_client::instance()->notice_room($roomid,room\proto_type::msg_stype_spend,$content);
+        }
+    }
 }

+ 21 - 3
logmonitor.php

@@ -5,8 +5,8 @@
  * Date: 2018/8/30
  * Time: 下午2:51
  */
-ini_set('ignore_user_abort', true);
-set_time_limit(0);
+//ini_set('ignore_user_abort', true);
+//set_time_limit(0);
 define('BASE_ROOT_PATH',str_replace('\\','/',dirname(__FILE__)));
 
 require_once (BASE_ROOT_PATH . '/fooder.php');
@@ -55,6 +55,7 @@ class Monitor
                     $this->checkStat();
                 }
 
+
                 usleep(1000);
             }
 
@@ -182,6 +183,7 @@ class Monitor
 
     private function setInputFd()
     {
+
         $date = date("Ymd");
         $file_name = BASE_DATA_PATH. DS. 'log'. DS. $date. "-path.log";
         file_exists($file_name) or die("{$file_name} 不存在!");
@@ -204,6 +206,22 @@ class Monitor
     }
 }
 
+//function monitor_work()
+//{
+//    Base::run_util();
+//    $monitor = new Monitor();
+//
+//    while (true) {
+//        $monitor->run_loop();
+//    }
+//}
+
+//function monitor_work()
+//{
+//    $fd = @fopen(BASE_ROOT_PATH . "/data/log/20180831.log", "r+");
+//
+//}
+
 class Parser
 {
     public static function parse($str)
@@ -251,4 +269,4 @@ class Parser
         }
         return false;
     }
-}
+}

+ 55 - 1
test/TestLog.php

@@ -1128,7 +1128,6 @@ class TestLog extends PHPUnit_Framework_TestCase
         $info = pathinfo($url);
 
         if(!file_exists($path)) {
-//            $pic_url = $info['dirname'] . '/' . urlencode($info['basename']);
             $pic_url = $info['dirname'] . '/' . str_replace(' ','%20',$info['basename']);
             exec("wget -O $path $pic_url");
         }
@@ -1145,6 +1144,61 @@ class TestLog extends PHPUnit_Framework_TestCase
             return false;
         }
     }
+    public function testMonitor()
+    {
+        $fd = @fopen(BASE_ROOT_PATH . "/data/log/20180831.log", "c+");
+        $stdout = fopen('php://stdout', 'w');
+
+        while (true)
+        {
+            $line = fread($fd,1024);
+            if ($line !== false && !empty($line)) {
+                fwrite($stdout,$line);
+            }
+            else {
+                fwrite($stdout,"fread empty line\n");
+                usleep(1000000);
+            }
+        }
+    }
+
+    public function testMonitorSelect()
+    {
+        $fd = @fopen(BASE_ROOT_PATH . "/data/log/20180831.log", "c+");
+        $stdout = fopen('php://stdout', 'w');
+
+        while (true)
+        {
+            $wfds = null;
+            $xfds = null;
+            $rfds = [$fd];
+
+            $timeout = 2;
+            $number = stream_select($rfds, $wfds, $xfds, $timeout, 0);
+            if($number > 0)
+            {
+                if(!empty($rfds))
+                {
+                    $line = fread($fd,1024);
+                    if ($line !== false && !empty($line)) {
+                        fwrite($stdout,$line);
+                    }
+                    else {
+                        fwrite($stdout,"fread empty line\n");
+                        usleep(1000000);
+                    }
+                }
+                else {
+                    fwrite($stdout,"no content to read\n");
+                }
+            }
+            else {
+                fwrite($stdout,"ret = {$number}\n");
+            }
+
+            fwrite($stdout,"ret = {$number}\n");
+        }
+    }
 
     public function testStat()
     {