ChenWuJie 4 rokov pred
rodič
commit
f0e5be0c8d

+ 66 - 0
app/Admin/Controllers/OrdersManagement/ConsultingOrdersController.php

xqd xqd xqd xqd
@@ -3,19 +3,24 @@
 namespace App\Admin\Controllers\OrdersManagement;
 
 use App\Admin\Actions\backstage\Orders\Evaluate;
+use App\Admin\Actions\backstage\Orders\Message;
 use App\Admin\Actions\backstage\Orders\OrderDetails;
 use App\Admin\Actions\backstage\Orders\OrderOpinion;
 use App\Admin\Actions\backstage\Orders\RefundApplicationAction;
 use App\Admin\Actions\backstage\User\MapDepot;
 use App\Admin\Actions\backstage\User\Suggests;
+use App\Models\ImMessage;
 use App\Models\Order;
 use App\Models\OrderPack;
 use App\Models\ServicePack;
+use Encore\Admin\Layout\Content;
 use Encore\Admin\Widgets\Table;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Form;
 use Encore\Admin\Grid;
 use Encore\Admin\Show;
+use Illuminate\Http\Request;
+use Encore\Admin\Facades\Admin;
 
 class ConsultingOrdersController extends AdminController
 {
@@ -93,6 +98,10 @@ class ConsultingOrdersController extends AdminController
             $actions->disableEdit();
             $actions->disableDelete();
             $actions->add(new OrderOpinion());
+            if ($actions->row->order_status == 4)
+            {
+                $actions->add(new Message());
+            }
         });
         $grid->export(function ($export) {
             $export->filename('咨询订单');
@@ -168,6 +177,9 @@ class ConsultingOrdersController extends AdminController
             return new Table(['订单id','评价内容','评价状态'],$infos);
         });
         $grid->column('evaluate.score', __('订单评分'));
+//        $grid->column('file_path','录音')->display(function (){
+//            return 'callLog/1.mp3';
+//        })->downloadable('/upload');
         $grid->column('order_notes', __('订单备注'));
         $grid->column('payment_time', __('支付时间'))->display(function ($time){
             if ($time == 0)
@@ -296,4 +308,58 @@ class ConsultingOrdersController extends AdminController
 
         return $form;
     }
+    function message(Content $content,Request $request)
+    {
+//        dd($request->all());
+        $user = $request->input('user_id');
+        $docter = $request->input('docter_id');
+        $start = $request->input('start');
+        $end = $request->input('end');
+        $str_docter = 'doctor_'.$user;
+        $str_user = 'member_'.$docter;
+//        $docter = 10086;
+//        $user = 29068;
+//        $start = 1614433272;
+//        $end = 1614433703;
+//        $str_docter = 'doctor_'.$docter;
+//        $str_user = 'member_'.$user;
+        $user_arr = ImMessage::whereBetween('create_time',[$start,$end])
+            ->where('senderId',$str_user)
+            ->get()->toArray();
+        $docter_arr = ImMessage::whereBetween('create_time',[$start,$end])
+            ->where('senderId',$str_docter)
+            ->get()->toArray();
+        $arr = array_merge($user_arr,$docter_arr);
+        array_multisort(array_column($arr,'create_time'),SORT_ASC,$arr);
+        $content = new Content();
+        $order_id = $request->input('order_id');
+        $content->title('图文咨询聊天记录 ');
+        $content->description('订单号'.$order_id);
+        Admin::js('jquery-3.5.1.min.js');
+        $content->body('<iframe src="/admin/message_view?docter_id='.$docter.'
+                                                                &user='.$user.'
+                                                                &start='.$start.'
+                                                                &end='.$end.'
+                                                                &order_id='.$order_id.'" style="width: 100%;height:800px;border: none"></iframe>');
+        return $content;
+    }
+    public function message_view(Request $request)
+    {
+        $start = $request->input('start');
+        $end = $request->input('end');
+        $docter = $request->input('docter_id');
+        $user = $request->input('user');
+        $order_id = $request->input('order_id');
+        $str_docter = 'doctor_'.$docter;
+        $str_user = 'member_'.$user;
+        $user_arr = ImMessage::whereBetween('create_time',[$start,$end])
+            ->where('senderId',$str_user)
+            ->get()->toArray();
+        $docter_arr = ImMessage::whereBetween('create_time',[$start,$end])
+            ->where('senderId',$str_docter)
+            ->get()->toArray();
+        $arr = array_merge($user_arr,$docter_arr);
+        array_multisort(array_column($arr,'create_time'),SORT_ASC,$arr);
+        return view('admin.message',compact('arr','order_id','docter','user'));
+    }
 }

+ 92 - 54
resources/views/admin/message.blade.php

xqd xqd xqd xqd
@@ -9,6 +9,7 @@
         .title{
             width: 100%;
             height: 50px;
+            text-align: center;
         }
         .docter{
             width: 50px;
@@ -19,21 +20,46 @@
         .docter img{
             width: 100%;
         }
-        .content{
-            align-content: center;
+        .user{
+            width: 50px;
+            height: 50px;
+            border-radius: 50%;
+            overflow: hidden;
         }
-        .user-content{
-            float: right;
+        .user img{
+            width: 100%;
         }
-        .substance{
-            display: inline;
+        .docter-info{
+            float: left;
+        }
+        .docter—content{
+            margin-top: 20px;
+            margin-left: 50px;
             float: left;
         }
         .clear{
             clear: both;
         }
-        .content-img{
-            width: 500px;
+        .user-info{
+            float: right;
+        }
+        .user-content{
+            float: left;
+            margin-right: 50px;
+            margin-top: 20px;
+            size: 100px;
+        }
+        .left
+        {
+            margin-top: 20px;
+            margin-bottom: 20px;
+            float: left;
+        }
+        .right{
+            margin-top: 20px;
+            float: right;
+            margin-bottom: 20px;
+
         }
     </style>
 </head>
@@ -52,62 +78,59 @@
         $docter_info = \App\Models\Docter::where('id',$docter)->first(['name','avatar'])->toArray();
         $user_info = \App\Models\User::where('id',$user)->first(['nickname','avatar'])->toArray();
     ?>
-    <div class="title">订单号:{{$order_id}}</div>
+    <div class="title"><h3>订单号:{{$order_id}}</h3></div>
         @foreach($arr as $value)
             @php($str = substr($value['senderId'],0,6))
+            @php($time = date('Y-m-d H:i:s',$value['create_time']))
             @if($str == 'doctor')
-                {{--头像和名字区域--}}
-                <div class="content">
-                    <div class="docter-content">
-                        {{$docter_info['name']}}
-                    </div>
-                    <div class="docter">
-                        <img src="{{$docter_info['avatar']}}" alt="医生">
-                    </div>
-                    <div class="clear"></div>
-                </div>
-                {{--内容区域--}}
-                <div>
-                    @if($value['type']=='audio')
-                        <?php
-                            $url = json_decode($value['payload']);
-                            $url = (Array)$url;
-                        ?>
-                        <div>
-                            <audio src="{{$url['url']}}" controls="controls">
-                            </audio>
-                        </div>
-                    @elseif($value['type']=='text')
-                        <?php
-                        $text = json_decode($value['payload']);
-                        $text = (Array)$text;
-                        ?>
-                        <div>
-                            <p>{{$text['text']}}</p>
+                <div class="left">
+                    {{--头像和名字区域--}}
+                    <div class="docter-info">
+                        <div>{{$time}}</div>
+                        <div class="name">
+                            {{$docter_info['name']}}
                         </div>
-                        @elseif($value['type']=='image')
-                        <?php
-                        $image = json_decode($value['payload']);
-                        $image = (Array)$image;
-                        ?>
-                        <div>
-                            <img class="content-img" src="{{$image['url']}}" alt="图片">
+                        <div class="docter">
+                            <img src="{{$docter_info['avatar']}}" alt="医生">
                         </div>
-                    @endif
-                </div>
-            @elseif($str == 'member')
-                {{--头像和名字区域--}}
-                <div class="user-content">
-                    <div class="docter-content">
-                        {{$user_info['nickname']}}
                     </div>
-                    <div class="docter">
-                        <img src="{{$user_info['avatar']}}" alt="用户">
+                    {{--内容区域--}}
+                    <div class="docter—content">
+                        @if($value['type']=='audio')
+                            <?php
+                                $url = json_decode($value['payload']);
+                                $url = (Array)$url;
+                            ?>
+                            <div>
+                                <audio src="{{$url['url']}}" controls="controls">
+                                </audio>
+                            </div>
+                        @elseif($value['type']=='text')
+                            <?php
+                            $text = json_decode($value['payload']);
+                            $text = (Array)$text;
+                            ?>
+                            <div>
+                                <p>{{$text['text']}}</p>
+                            </div>
+                            @elseif($value['type']=='image')
+                            <?php
+                            $image = json_decode($value['payload']);
+                            $image = (Array)$image;
+                            ?>
+                            <div>
+                                <img class="content-img" src="{{$image['url']}}" alt="图片">
+                            </div>
+                        @endif
                     </div>
                     <div class="clear"></div>
                 </div>
+                <div class="clear"></div>
+            @endif
+            @if($str == 'member')
+            <div class="right">
                 {{--内容区域--}}
-                <div>
+                <div class="user-content">
                     @if($value['type']=='audio')
                         <?php
                         $url = json_decode($value['payload']);
@@ -135,6 +158,21 @@
                         </div>
                     @endif
                 </div>
+                {{--头像和名字区域--}}
+                <div class="user-info">
+                    <div>
+                        {{$time}}
+                    </div>
+                    <div class="user-name">
+                        {{$user_info['nickname']}}
+                    </div>
+                    <div class="user">
+                        <img src="{{$user_info['avatar']}}" alt="医生">
+                    </div>
+                </div>
+                <div class="clear"></div>
+            </div>
+            <div class="clear"></div>
             @endif
         @endforeach