ChatLog.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Admin\Actions\Chat;
  3. use App\Models\ChatList;
  4. use App\Repositories\ImMessage;
  5. use App\Services\TencentImMessage;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Grid\LazyRenderable;
  8. class ChatLog extends LazyRenderable
  9. {
  10. public function grid(): Grid
  11. {
  12. $chat_data = ChatList::query()->find($this->payload['id']);
  13. return Grid::make(new ImMessage($chat_data->user_id,$chat_data->to_user_id), function (Grid $grid) {
  14. $grid->column('user_id', 'ID')->sortable();
  15. $grid->column('From_Account');
  16. $grid->column('To_Account');
  17. $grid->column('MsgTimeStamp');
  18. $grid->column('MsgBody')->display(function ($res){
  19. //dd($res);
  20. //$res = json_decode($res,true);
  21. if($res[0]['MsgType']=='TIMTextElem'){
  22. //文本消息
  23. return $res[0]['MsgContent']['Text'];
  24. }elseif ($res[0]['MsgType']=="TIMLocationElem"){
  25. //位置消息
  26. return $res[0]['MsgContent']['Desc'];
  27. }elseif ($res[0]['MsgType']=="TIMFaceElem"){
  28. //表情消息
  29. }elseif ($res[0]['MsgType']=="TIMCustomElem"){
  30. //自定义消息
  31. }elseif ($res[0]['MsgType']=="TIMSoundElem"){
  32. //语音消息
  33. }elseif ($res[0]['MsgType']=="TIMImageElem"){
  34. //图像消息
  35. }elseif ($res[0]['MsgType']=="TIMFileElem"){
  36. //文件消息
  37. }elseif ($res[0]['MsgType']=="TIMVideoFileElem"){
  38. //视频消息
  39. }
  40. });
  41. $grid->quickSearch(['user_id', 'nickname']);
  42. $grid->paginate(10);
  43. $grid->disableActions();
  44. $grid->filter(function (Grid\Filter $filter) {
  45. $filter->like('nickname','昵称')->width(4);
  46. });
  47. });
  48. }
  49. }