LookJob.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Factories\HasFactory;
  4. use Illuminate\Database\Eloquent\Model;
  5. use DateTimeInterface;
  6. use Illuminate\Database\Eloquent\SoftDeletes;
  7. use Illuminate\Support\Facades\Auth;
  8. class LookJob extends Model
  9. {
  10. use HasFactory;
  11. use SoftDeletes;
  12. protected $table='look_job';
  13. protected function serializeDate(DateTimeInterface $date)
  14. {
  15. return $date->format('Y-m-d H:i:s');
  16. }
  17. public function user(){
  18. return $this->belongsTo(User::class,'user_id','id');
  19. }
  20. public function pid(){
  21. return $this->belongsTo(Classify::class,'classify_pid','id');
  22. }
  23. /**del**/
  24. protected function DelJobInfo($id){
  25. LookJob::destroy($id);
  26. }
  27. protected function info($id,$page_index,$page_size){
  28. $num=($page_index-1)*$page_size;
  29. $count=LookJob::where('user_id',$id)->count();
  30. $list=LookJob::where('user_id',$id)->orderByDesc('created_at')->orderByDesc('id')->take($page_size)->skip($num)->get();
  31. foreach ($list as $k=>$v){
  32. $arr[]=$v->classify_one;
  33. if ($v->classify_two){
  34. $arr[]=$v->classify_two;
  35. }
  36. if ($v->classify_three){
  37. $arr[]=$v->classify_three;
  38. }
  39. $v->classify_id=$arr;
  40. unset($list[$k]->classify_one);
  41. unset($list[$k]->classify_two);
  42. unset($list[$k]->classify_three);
  43. $list[$k]->classify_info=Classify::whereIn('id',$arr)->pluck('classify_name');
  44. }
  45. return ['list'=>$list,'total'=>$count];
  46. }
  47. /**首页找活列表**/
  48. protected function GetJobList($page_index,$page_size,$status,$classify_pid,$classify_id,$province,$city,$team_label){
  49. $num=($page_index-1)*$page_size;
  50. $query=LookJob::whereIn('status',[0,1]);
  51. if($classify_id){
  52. $where=function ($q)use($classify_id){
  53. $q->where('classify_one',$classify_id)->orwhere('classify_two',$classify_id)
  54. ->orwhere('classify_three',$classify_id);
  55. };
  56. $query->where($where);
  57. }
  58. if($classify_pid && !$classify_id){
  59. $id_Arr=Classify::where('pid',$classify_pid)->pluck('id');
  60. $wheres=function ($q)use($id_Arr){
  61. $q->whereIn('classify_one',$id_Arr)
  62. ->orwhereIn('classify_two',$id_Arr)
  63. ->orwhereIn('classify_three',$id_Arr);
  64. };
  65. $query->where($wheres);
  66. }
  67. if($province){
  68. $query->where('province',$province);
  69. if ($city){
  70. $query->where('city',$city);
  71. }
  72. }
  73. if ($team_label){
  74. $query->where('team_label',$team_label);
  75. }
  76. $count=$query->count();
  77. $list=$query->select('team_label','datetime','classify_one','classify_two','classify_three','nation','sex','area','work_time','team_label','created_at','status','province','id','city','description','username','mobile','user_id')
  78. ->with(['user:mobile,name,is_realname,id'])
  79. ->orderByDesc('created_at')->orderByDesc('id')->take($page_size)->skip($num)->get();
  80. if (!$status){
  81. foreach ($list as $k=>$v){
  82. $list[$k]->mobile=mb_substr($list[$k]->mobile,0,7).'****';
  83. $list[$k]->user->mobile=mb_substr($list[$k]->user->mobile,0,7).'****';
  84. $re=Classify::whereIn('id',[$v->classify_one,$v->classify_two,$v->classify_three])->select('classify_name')->pluck('classify_name');
  85. $list[$k]->classify_info=$re;
  86. unset($list[$k]->classify_one);
  87. unset($list[$k]->classify_two);
  88. unset($list[$k]->classify_three);
  89. }
  90. }
  91. return ['list'=>$list,'total'=>$count];
  92. }
  93. /*add**/
  94. protected function add($data){
  95. foreach ($data['classify_id'] as $k=>$v){
  96. if ($k==0){
  97. $data['classify_one']=$v;
  98. }elseif ($k==1){
  99. $data['classify_two']=$v;
  100. }elseif ($k==2){
  101. $data['classify_three']=$v;
  102. }
  103. }
  104. $pid=Classify::whereIn('id',$data['classify_id'])->value('pid');
  105. unset($data['classify_id']);
  106. $data['classify_pid']=$pid;
  107. LookJob::insert($data);
  108. }
  109. /*add**/
  110. protected function updateStatus($id,$status){
  111. LookJob::where('id',$id)->where('user_id',Auth::user()->id)->update(['status'=>$status]);
  112. }
  113. /**首页工作列表**/
  114. protected function GetLookJobDetail($id,$status){
  115. $list=LookJob::where('id',$id)
  116. ->select('classify_pid','datetime','nation','sex','area','work_time','team_label','classify_one','classify_two','classify_three','created_at','status','province','city','description','username','id','mobile','user_id')
  117. ->with(['user:mobile,name,is_realname,id'])
  118. ->with(['pid:classify_name,id'])
  119. ->first();
  120. if (!$status){
  121. $list->mobile=mb_substr($list->mobile,0,3).'****'.mb_substr($list->mobile,8,4);
  122. $list->user->mobile=mb_substr($list->user->mobile,0,3).'****'.mb_substr($list->user->mobile,8,4);
  123. }
  124. $re=Classify::whereIn('id',[$list->classify_one,$list->classify_two,$list->classify_three])->select('classify_name')->pluck('classify_name');
  125. $list->classify_info=$re;
  126. unset($list->classify_one);
  127. unset($list->classify_two);
  128. unset($list->classify_three);
  129. return $list;
  130. }
  131. /*update**/
  132. protected function updateInfo($data){
  133. foreach ($data['classify_id'] as $k=>$v){
  134. if ($k==0){
  135. $data['classify_one']=$v;
  136. }elseif ($k==1){
  137. $data['classify_two']=$v;
  138. }elseif ($k==2){
  139. $data['classify_three']=$v;
  140. }
  141. }
  142. $id=$data['id'];
  143. unset($data['id']);
  144. unset($data['classify_id']);
  145. LookJob::where('id',$id)->update($data);
  146. }
  147. }