123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- <?php
- namespace App\Models;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- use DateTimeInterface;
- use Illuminate\Database\Eloquent\SoftDeletes;
- use Illuminate\Support\Facades\Auth;
- class LookJob extends Model
- {
- use HasFactory;
- use SoftDeletes;
- protected $table='look_job';
- protected function serializeDate(DateTimeInterface $date)
- {
- return $date->format('Y-m-d H:i:s');
- }
- public function user(){
- return $this->belongsTo(User::class,'user_id','id');
- }
- public function pid(){
- return $this->belongsTo(Classify::class,'classify_pid','id');
- }
- /**del**/
- protected function DelJobInfo($id){
- LookJob::destroy($id);
- }
- protected function info($id,$page_index,$page_size){
- $num=($page_index-1)*$page_size;
- $count=LookJob::where('user_id',$id)->count();
- $list=LookJob::where('user_id',$id)->orderByDesc('created_at')->orderByDesc('id')->take($page_size)->skip($num)->get();
- foreach ($list as $k=>$v){
- $arr[]=$v->classify_one;
- if ($v->classify_two){
- $arr[]=$v->classify_two;
- }
- if ($v->classify_three){
- $arr[]=$v->classify_three;
- }
- $v->classify_id=$arr;
- unset($list[$k]->classify_one);
- unset($list[$k]->classify_two);
- unset($list[$k]->classify_three);
- $list[$k]->classify_info=Classify::whereIn('id',$arr)->pluck('classify_name');
- }
- return ['list'=>$list,'total'=>$count];
- }
- /**首页找活列表**/
- protected function GetJobList($page_index,$page_size,$status,$classify_pid,$classify_id,$province,$city,$team_label){
- $num=($page_index-1)*$page_size;
- $query=LookJob::whereIn('status',[0,1]);
- if($classify_id){
- $where=function ($q)use($classify_id){
- $q->where('classify_one',$classify_id)->orwhere('classify_two',$classify_id)
- ->orwhere('classify_three',$classify_id);
- };
- $query->where($where);
- }
- if($classify_pid && !$classify_id){
- $id_Arr=Classify::where('pid',$classify_pid)->pluck('id');
- $wheres=function ($q)use($id_Arr){
- $q->whereIn('classify_one',$id_Arr)
- ->orwhereIn('classify_two',$id_Arr)
- ->orwhereIn('classify_three',$id_Arr);
- };
- $query->where($wheres);
- }
- if($province){
- $query->where('province',$province);
- if ($city){
- $query->where('city',$city);
- }
- }
- if ($team_label){
- $query->where('team_label',$team_label);
- }
- $count=$query->count();
- $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')
- ->with(['user:mobile,name,is_realname,id'])
- ->orderByDesc('created_at')->orderByDesc('id')->take($page_size)->skip($num)->get();
- if (!$status){
- foreach ($list as $k=>$v){
- $list[$k]->mobile=mb_substr($list[$k]->mobile,0,7).'****';
- $list[$k]->user->mobile=mb_substr($list[$k]->user->mobile,0,7).'****';
- $re=Classify::whereIn('id',[$v->classify_one,$v->classify_two,$v->classify_three])->select('classify_name')->pluck('classify_name');
- $list[$k]->classify_info=$re;
- unset($list[$k]->classify_one);
- unset($list[$k]->classify_two);
- unset($list[$k]->classify_three);
- }
- }
- return ['list'=>$list,'total'=>$count];
- }
- /*add**/
- protected function add($data){
- foreach ($data['classify_id'] as $k=>$v){
- if ($k==0){
- $data['classify_one']=$v;
- }elseif ($k==1){
- $data['classify_two']=$v;
- }elseif ($k==2){
- $data['classify_three']=$v;
- }
- }
- $pid=Classify::whereIn('id',$data['classify_id'])->value('pid');
- unset($data['classify_id']);
- $data['classify_pid']=$pid;
- LookJob::insert($data);
- }
- /*add**/
- protected function updateStatus($id,$status){
- LookJob::where('id',$id)->where('user_id',Auth::user()->id)->update(['status'=>$status]);
- }
- /**首页工作列表**/
- protected function GetLookJobDetail($id,$status){
- $list=LookJob::where('id',$id)
- ->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')
- ->with(['user:mobile,name,is_realname,id'])
- ->with(['pid:classify_name,id'])
- ->first();
- if (!$status){
- $list->mobile=mb_substr($list->mobile,0,3).'****'.mb_substr($list->mobile,8,4);
- $list->user->mobile=mb_substr($list->user->mobile,0,3).'****'.mb_substr($list->user->mobile,8,4);
- }
- $re=Classify::whereIn('id',[$list->classify_one,$list->classify_two,$list->classify_three])->select('classify_name')->pluck('classify_name');
- $list->classify_info=$re;
- unset($list->classify_one);
- unset($list->classify_two);
- unset($list->classify_three);
- return $list;
- }
- /*update**/
- protected function updateInfo($data){
- foreach ($data['classify_id'] as $k=>$v){
- if ($k==0){
- $data['classify_one']=$v;
- }elseif ($k==1){
- $data['classify_two']=$v;
- }elseif ($k==2){
- $data['classify_three']=$v;
- }
- }
- $id=$data['id'];
- unset($data['id']);
- unset($data['classify_id']);
- LookJob::where('id',$id)->update($data);
- }
- }
|