stanley-king hace 7 años
padre
commit
583ce0a38a

+ 1 - 1
data/model/room.model.php

@@ -49,7 +49,7 @@ class roomModel extends Model
 
     public function getRoomMsg($room_id,$msg_type)
     {
-        return $this->table('room')->field('*')->where(['room_id' => $room_id, 'type' => $msg_type])->order('add_time desc')->select();
+        return $this->table('room_msg')->field('*')->where(['room_id' => $room_id, 'type' => $msg_type])->order('add_time desc')->select();
     }
     public function addRoomMsg($datas)
     {

+ 5 - 2
helper/room/bargain_room.php

@@ -88,9 +88,12 @@ class bargain_room extends base_room
 
         $this->mAccReq = true;
         $ret = $this->bargain($room_key);
+        $userinfo = $this->find($room_key);
+        if($userinfo == false) return false;
+
         if($ret !== false) {
-            $this->add_return([$room_key],'ret_bargain',['value' => $ret]);
-            $this->add_broad('bargain',['value' => $ret]);
+            $this->add_return([$room_key],'ret_bargain',['from' => $userinfo,'value' => $ret]);
+            $this->add_broad('bargain',['from' => $userinfo,'value' => $ret]);
             return true;
         }
         else {

BIN
mac_webacc


+ 70 - 7
mobile/control/bargain.php

@@ -182,28 +182,91 @@ class tpl_bargain
         echo $str;
     }
 
+    private function user_msg()
+    {
+        static $msgs = ['绑架老板打劫福利',
+            '专治各种买不起',
+            '撸起袖子助你一臂之力',
+            '斧头帮伙计来也',
+            '拔刀相助,在所不辞',
+            '砍得多,全靠俺的一声吼',
+            '看我的青龙偃月刀',
+            '花钱买,不如砍价免费拿',
+            '感情深,刀法稳',
+            '关系好不好,一刀见分晓',
+            '放开那价,让我来',
+            '一刀出手往死里砍'];
+        $count = count($msgs);
+        $pos = mt_rand(0,$count - 1);
+        return $msgs[$pos];
+    }
+
     public function show_friends()
     {
-        $str = "<li>
+        $result = $this->records();
+        if(empty($result)) return;
+
+        $records = $result['records'];
+        $users = $result['users'];
+
+        foreach ($records as $uid => $value)
+        {
+            $user =$users[$uid];
+            $msg = $this->user_msg();
+            $str = "<li>
                     <div class=\"head_portrait\">
-                         <img src=\"". RESOURCE_SITE_URL. "/mobile/bargain/images/head_icon.png\" alt=\"\">
+                         <img src=\"{$user['avatar']}\" alt=\"\">
                     </div>
                     <div class=\"user\">
-                         <div class=\"user_name\">小东</div>
-                              <div class=\"user_msg\">绑架老板打劫福利</div>
+                         <div class=\"user_name\">{$user['nickname']}</div>
+                              <div class=\"user_msg\">{$msg}</div>
                          </div>
                          <div class=\"bargain_msg\">
-                              <span class=\"wallet\"></span><span class=\"msg\">砍掉1.8元</span>
+                              <span class=\"wallet\"></span><span class=\"msg\">砍掉{$value}元</span>
                          </div>
                </li>";
-        echo $str;
+            echo $str;
+        }
     }
 
     private function records()
     {
         $roomid = $this->mBargain->room();
         $mod_room = Model('room');
-        $records = $mod_room->getRoomMsg($roomid,room\proto_type::msg_type_bargain);
+        $items = $mod_room->getRoomMsg($roomid,room\proto_type::msg_type_bargain);
+        if(empty($items)) return [];
+
+        $uids = [];
+        $records = [];
+        foreach ($items as $record) {
+            $uid = intval($record['member_id']);
+            $data = json_decode($record['msg'],true);
+            $value = $data['value'];
+            $uids[] = $uid;
+            $records[$uid] = $value;
+        }
+
+        $mod_member = Model('member');
+        $mInfos = $mod_member->getMemberList(['member_id' => ['in',$uids]]);
+
+        $users = [];
+        foreach ($mInfos as $info)
+        {
+            try
+            {
+                $minfo = new member_info($info);
+                $uid = $minfo->member_id();
+                $avatar = $minfo->avatar();
+                $users[$uid]['avatar'] = $avatar;
+                $users[$uid]['nickname'] = $minfo->nickname();
+            }
+            catch (Exception $ex)
+            {
+                Log::record(__METHOD__,Log::ERR);
+            }
+        }
+
+        return ['records' => $records,'users' => $users];
     }
 
     public function left_time()

+ 105 - 70
mobile/templates/default/bargain/bargain.php

@@ -142,69 +142,6 @@
     };
 
     var barrage = new Barrage();
-    var room    =  <?php echo $output['room']['room']; ?>;
-    var roomkey = "<?php echo $output['room']['room_key']; ?>";
-    var addr    = "<?php echo $output['room']['addr']; ?>";
-
-    var room_msgs = {
-        room    : room,
-        roomkey :roomkey
-    };
-    var callbacks = {
-        onOpen:sOpen,
-        onError:sError,
-        onClose:sClose
-    };
-    var msg_handler = {
-        room_info:ret_join,
-        message:message
-    };
-    var websocket = new WebsocketConnect(addr,true,true,callbacks,room_msgs,msg_handler);
-
-    function sOpen(){
-    }
-    function sError(e){
-        alert('网络连接失败!请刷新重试');
-    }
-    function sClose(e){
-        console.log('网络连接关闭!');
-    }
-
-    function message(datas)
-    {
-        var jsonDatas = new websocket.Json_parse(datas);
-        var msg_type = datas.op;
-        console.log(datas);
-        try
-        {
-            if(msg_type == 'bargain') {
-                var price = datas.content.value;
-                priceChange(price);
-            }
-            else if(msg_type =='ret_bargain') {
-                var ret_bargain_price = datas.content.value;
-                var image = new Image();
-                image.src = "<?php echo RESOURCE_SITE_URL; ?>/mobile/bargain/images/bargain_pop.jpg";
-                image.onload = function(){
-                    $('.bargain_pop').removeClass('hide');
-                };
-                $('.ret_bargain').text(ret_bargain_price);
-            }
-            else if(msg_type = 'message') {
-                var msg = datas.content.content;
-                var avatar = datas.content.from.avatar;
-                var nickname = datas.content.from.nickname;
-                barrage.add({
-                    avatar: avatar,
-                    nickname : nickname,
-                    msg: msg
-                }).send();
-            } 
-        }
-        catch (e) {
-            alert(e.message)
-        }
-    }
 
     function ret_join(datas){
 //        var jsonDatas = new websocket.Json_parse(datas);
@@ -249,7 +186,7 @@
 
 
     //消息滚动
-    var SlideMsgs = function($parent){
+    var SlideMsgs = function ($parent){
         this.slide_play = null;
         this.init = function(){
             this.play();
@@ -271,26 +208,58 @@
             }
         };
         this.addChild = function(msg){
+            var avatar = msg.content.from.avatar;
+            var nickname = msg.content.from.nickname;
+            var value = msg.content.value;
             this.stop();
-            $parent.append('<li><img class="avatar" src="http://img1.imgtn.bdimg.com/it/u=4026848961,760222886&fm=214&gp=0.jpg">'+msg+'</li>');
+            var sub_html = '<li>' +
+                               '<div class="head_portrait">' +
+                                    '<img src="'+avatar+'">' +
+                                '</div>'+
+                                '<div class="user">' +
+                                    '<div class="user_name">'+nickname+'</div> '+
+                                    '<div class="user_msg">'+this.usermsg()+'</div>'+
+                                '</div>'+
+                                '<div class="bargain_msg">'+
+                                    '<span class="wallet"></span><span class="msg">砍掉'+value+'元</span>'+
+                                '</div>'+
+                          '</li>';
+            $parent.append(sub_html);
             return this;
         };
         this.stop = function(){
             clearInterval(this.slide_play);
             return this;
         };
+        this.usermsg = function(){
+            var msgs = [
+                '绑架老板打劫福利',
+                '专治各种买不起',
+                '撸起袖子助你一臂之力',
+                '斧头帮伙计来也',
+                '拔刀相助,在所不辞',
+                '砍得多,全靠俺的一声吼',
+                '看我的青龙偃月刀',
+                '花钱买,不如砍价免费拿',
+                '感情深,刀法稳',
+                '关系好不好,一刀见分晓',
+                '放开那价,让我来',
+                '一刀出手往死里砍'
+            ];
+            var Range = 12;
+            var Rand = Math.random();
+            var num = Math.round(Rand * Range); //四舍五入
+            return msgs[num];
+        }
     };
 
     var slideMsgs = new SlideMsgs($('#slide_list'));
     slideMsgs.init();
 
-
     var random = function(){
         return (Math.random()*10).toFixed(2);
     };
 
-
-
     //价格变更
     var priceAnimated = false;
         function priceChange(nprice){
@@ -299,10 +268,12 @@
         }
         priceAnimated = true;
         $('.stamp').removeClass('hide');
-        document.getElementById('stamp').addEventListener('webkitAnimationEnd',function(){
+        document.getElementById('stamp').addEventListener('webkitAnimationEnd',function()
+        {
             setTimeout(function(){
                 $('.stamp').addClass('hide');
             },500);
+
             setTimeout(function(){
                 var current_price = document.querySelector('#current_price').innerHTML;
                 var price = current_price.replace('现价',"");
@@ -328,7 +299,6 @@
         $('.pop').addClass('hide');
     });
 
-
     //发送信息
     $('#send_btn').on('click',function(){
         var sendMsg = $('#send_msg').val();
@@ -356,6 +326,71 @@
     $('.join_btn').on('click',function(){
         download_app();
     });
+
+    var room    =  <?php echo $output['room']['room']; ?>;
+    var roomkey = "<?php echo $output['room']['room_key']; ?>";
+    var addr    = "<?php echo $output['room']['addr']; ?>";
+
+    var room_msgs = {
+        room    : room,
+        roomkey :roomkey
+    };
+    var callbacks = {
+        onOpen:sOpen,
+        onError:sError,
+        onClose:sClose
+    };
+    var msg_handler = {
+        room_info:ret_join,
+        message:message
+    };
+    var websocket = new WebsocketConnect(addr,true,true,callbacks,room_msgs,msg_handler);
+
+    function sOpen(){
+    }
+    function sError(e){
+        alert('网络连接失败!请刷新重试');
+    }
+    function sClose(e){
+        console.log('网络连接关闭!');
+    }
+
+    function message(datas)
+    {
+        var jsonDatas = new websocket.Json_parse(datas);
+        var msg_type = datas.op;
+        console.log(datas);
+        try
+        {
+            if(msg_type == 'bargain') {
+                var price = datas.content.value;
+                priceChange(price);
+                slideMsgs.addChild(datas).play();
+            }
+            else if(msg_type =='ret_bargain') {
+                var ret_bargain_price = datas.content.value;
+                var image = new Image();
+                image.src = "<?php echo RESOURCE_SITE_URL; ?>/mobile/bargain/images/bargain_pop.jpg";
+                image.onload = function(){
+                    $('.bargain_pop').removeClass('hide');
+                };
+                $('.ret_bargain').text(ret_bargain_price);
+            }
+            else if(msg_type = 'message') {
+                var msg = datas.content.content;
+                var avatar = datas.content.from.avatar;
+                var nickname = datas.content.from.nickname;
+                barrage.add({
+                    avatar: avatar,
+                    nickname : nickname,
+                    msg: msg
+                }).send();
+            }
+        }
+        catch (e) {
+            alert(e.message)
+        }
+    }
 </script>
 </body>
 </html>