NoticeService.php 3.2 KB

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