NoticeService.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace App\Services;
  3. use App\Models\DynamicZanModel;
  4. use App\Models\UserLikeModel;
  5. use App\Models\UserSystemMessageModel;
  6. class NoticeService
  7. {
  8. /**
  9. * 获取消息列表
  10. */
  11. public function get_notice_list(){
  12. }
  13. /**
  14. * 获取喜欢列表
  15. */
  16. public function get_like_list($param){
  17. $query = UserLikeModel::query();
  18. if($param['type']==1){
  19. //我喜欢
  20. $query = $query->with(['like_user'=>function($query){
  21. $query->select('id','sex','is_vip','tencent_im_user_id');
  22. },'like_user_info'])->where('user_id',$param['user_id']);
  23. }else{
  24. //喜欢我
  25. $query = $query->with(['user'=>function($query){
  26. $query->select('id','sex','is_vip','tencent_im_user_id');
  27. },'user_info'])->where('like_id',$param['user_id']);
  28. //清除喜欢我未读状态
  29. UserLikeModel::query()->where(['like_id'=>$param['user_id'],'status'=>0])->update(['status'=>1]);
  30. }
  31. $query = $query->orderByDesc('id')
  32. ->paginate(request('perPage',20));
  33. $query = $query->toArray();
  34. foreach ($query['data'] as $k=>$v){
  35. $query['data'][$k]['distance'] = 0; //计算距离
  36. }
  37. return $query;
  38. }
  39. /**
  40. * 获取点赞列表
  41. */
  42. public function get_zan_list($param){
  43. $query = DynamicZanModel::query();
  44. if($param['type']==1){
  45. //他赞了我
  46. $query = $query->with(['dynamic','user','user_info'])->whereHas('dynamic',function ($query)use($param){
  47. $query->where('user_id',$param['user_id'])->select();
  48. });
  49. //清除他赞了我未读状态
  50. DynamicZanModel::query()->with(['dynamic'])->where('status','=',0)->whereHas('dynamic',function ($query)use($param){
  51. $query->where('user_id',$param['user_id'])->select('id','user_id','content','img_url');
  52. })->update(['status'=>1]);
  53. }else{
  54. //我赞了他
  55. $query = $query->with(['dynamic'=>function($query){
  56. $query->select('id','content','img_url');
  57. },'dynamic.user'=>function($querty){
  58. $querty->select('id','sex','is_vip','tencent_im_user_id');
  59. },'dynamic.user_info'])
  60. ->where('user_id',$param['user_id']);
  61. }
  62. $query = $query->orderByDesc('id')
  63. ->paginate(request('perPage',20));
  64. $query = $query->toArray();
  65. foreach ($query['data'] as $k=>$v){
  66. $query['data'][$k]['dynamic']['img_url'] = json_decode($v['dynamic']['img_url'],true);
  67. }
  68. return $query;
  69. }
  70. }