NoticeService.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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_users'=>function($query){
  21. $query->select('id','sex','is_vip');
  22. },'like_users_info'])->where('user_id',$param['user_id']);
  23. }else{
  24. //喜欢我
  25. $query = $query->with(['users'=>function($query){
  26. $query->select('id','sex','is_vip');
  27. },'users_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'=>function($query){
  47. $query->select('id','content','img_url');
  48. },'dynamic.users'=>function($querty){
  49. $querty->select('id','sex','is_vip');
  50. },'dynamic.users_info'])
  51. ->where('user_id',$param['user_id']);
  52. }else{
  53. //他赞了我
  54. $query = $query->with(['dynamic'])->whereHas('dynamic',function ($query)use($param){
  55. $query->where('user_id',$param['user_id'])->select();
  56. });
  57. //清除他赞了我未读状态
  58. DynamicZanModel::query()->with(['dynamic'])->where('status','=',0)->whereHas('dynamic',function ($query)use($param){
  59. $query->where('user_id',$param['user_id'])->select('id','user_id','content','img_url');
  60. })->update(['status'=>1]);
  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. }