MsgController.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace App\Http\Controllers\V1;
  3. use App\Models\Msg;
  4. use App\Models\MsgRead;
  5. use Illuminate\Http\Request;
  6. class MsgController extends Controller
  7. {
  8. public function __construct()
  9. {
  10. $this->user = auth('api')->user();
  11. $this->userId = $this->user ? $this->user->id : 0;
  12. //如果用户被删除,会自动退出登录
  13. if (!empty($this->user->deleted_at)) {
  14. $this->user->online = 0;
  15. $this->user->save();
  16. auth('api')->logout();
  17. }
  18. }
  19. /**
  20. * @return void
  21. * 消息列表
  22. */
  23. public function msgList(Request $request){
  24. $limit = $request->get('limit',10);
  25. $list = Msg::query()->with('user:id,name,avatar')->where('to_user_id',$this->userId)
  26. ->orWhere('to_user_id',0)
  27. ->orderByDesc("id")
  28. ->paginate($limit);
  29. foreach ($list as $v){
  30. if($v){
  31. $v['is_read'] = MsgRead::query()->where('user_id',$this->userId)->where('msg_id',$v['id'])->count();
  32. }
  33. }
  34. return $this->success($this->page($list));
  35. }
  36. /**
  37. * @param Request $request
  38. * @return void
  39. * 消息详情
  40. */
  41. public function msgDetail(Request $request){
  42. $id = $request->get('id');
  43. if(!$id){
  44. return $this->error("缺少参数ID!");
  45. }
  46. $msg = Msg::query()->with('user:id,name,avatar')->where('id',$id)->first();
  47. $MsgRead = MsgRead::query()->where('user_id',$this->userId)->where('msg_id',$msg['id'])->count();
  48. if(!$MsgRead){
  49. $data =[
  50. 'user_id'=>$this->userId,
  51. 'msg_id'=>$msg['id']
  52. ];
  53. MsgRead::query()->create($data); // 已读
  54. }
  55. return $this->success($msg);
  56. }
  57. }