input('id'); $type=$request->input('type',0); $remark=$request->input('remark'); $imgList=$request->input('imgList'); $audioList=$request->input('audioList'); $count=WareaApply::where('user_id',$user_id)->where('type',$type)->where('status',0)->count(); if ($count>0){ return $this->error(5002141,'当前代理的申请尚未处理完毕!'); } $num=User::where('recom_id',$user_id)->where('level','!=',3)->whereNull('deleted_at')->count(); if ($type==1){ if ($num>0){ return $this->error(5002101,'该代理团队有人,不允许变更!!'); } } if ($type==2){ $res=AgentOperationLog::where('user_id',$user_id) ->where('type',4)->orderByDesc('created_at')->first(); if ($res){ $remarks=$res->remark; if (is_numeric(stripos($remarks,'违反'))){ return $this->error(500214,'违规的代理不能够恢复'); } if (is_numeric(stripos($remarks,'违规'))){ return $this->error(500214,'违规的代理不能够恢复'); } } } $re=new WareaApply(); $re->user_id=$user_id; $re->remark=$remark; $re->imgList=$imgList; $re->audioList=$audioList; $re->status=0; $re->type=$type; $re->apply_id=Auth::user()->id; $re->mobile=$request->input('mobile'); $re->save(); $data=[]; if ($type==1){ $data=['id'=>$re->id]; } return $this->success($data); } /* * 获取列表信息 * ***/ public function GetApplyList(Request $request){ $type=$request->input('type')??-1; $status=$request->input('status')??-1; $search_name=$request->input('search_name',null); $re=WareaApply::query(); if (Auth::user()->role_id==23){ $re->where('apply_id',Auth::user()->id); } if ($search_name){ $ids=User::where('mobile','like',"%$search_name%")->orwhere('nickname','like',"%$search_name%") ->orwhere('realname','like',"%$search_name%")->withTrashed()->pluck('id'); $re->whereIn('user_id',$ids); } if ($type>=0){ $re->where('type',$type); } if ($status>=0){ $re->where('status',$status); } $count=$re->count(); $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $num=($page_index-1)*$page_size; $re=$re->with(['user'])->orderByDesc('id')->take($page_size)->skip($num)->get(); foreach ($re as $k=>$v){ $counts=User::where('recom_id',$v->user_id)->whereNull('deleted_at')->whereIn('cert_status',[3,6])->count(); $re[$k]->count=$counts; if ($v->type==2){ $re[$k]->deleted_info=AgentOperationLog::where('user_id',$v->user_id) ->where('type',4)->orderByDesc('created_at')->first(); } } return $this->success_list($re,'',$count); } public function GetUserInfo(Request $request){ $user_id=$request->input('user_id'); $re=User::where('recom_id',$user_id)->whereNull('deleted_at')->whereIn('cert_status',[3,6])->select('id','nickname','level','headimgurl','mobile')->get(); return $this->success($re); } /* * 获取列表信息 * ***/ public function GetApplyListCount(Request $request){ $re=WareaApply::query(); if (Auth::user()->role_id==23){ $re->where('apply_id',Auth::user()->id); } $re->whereIn('status',[0,2]); $count=$re->count(); return $this->success(['count'=>$count]); } /* * 修改申请 * ***/ public function UpdateApply(Request $request){ $input=$request->all(); $result=WareaApply::find($input['id']); $result->mobile=$input['mobile']; $result->remark=$input['remark']; $result->imgList=$input['imgList']; $result->audioList=$input['audioList']; $result->type=$input['type']; $result->status=0; $result->save(); return $this->success([]); } /* * 通过或者拒绝 * **/ public function RejectAccept(Request $request){ /**0表示拒绝,1表示通过***/ $status=$request->input('status'); $id=$request->input('id'); $re=WareaApply::find($id); if ($status){ if ($re->type==0){ $s=$this->destoryUser($id); }else if($re->type==1){ $s=$this->updateRecom($id); }else if($re->type==2){ $s=$this->restoreUserInfo($re->mobile); } if (is_numeric($s)){ $re->status=1; $re->save(); return $this->success([]); }else{ return $this->error(500214,$s); } }else{ $cause=$request->input('cause'); $re->cause=$cause; $re->status=2; $re->save(); return $this->success([]); } } //恢复误删除人员信息 public function restoreUserInfo($mobile){ $rules = [ 'mobile' => [ 'required', 'regex:/^1[3456789][0-9]{9}$/' ], ]; $messages = [ 'mobile.required' => '手机号不能为空.', 'mobile.regex' => '手机号格式有误.', ]; $uuu = new User(); DB::beginTransaction(); try { $result1=User::where('mobile',$mobile)->first(); if($result1){ return '该手机号用户未被删除,核对后再操作'; } $result=User::onlyTrashed()->where('mobile',$mobile)->first(); if(!$result){ return'手机号信息有误,核对后再操作'; } User::withTrashed()->where('mobile',$mobile)->restore(); $re_id=$result->recom_id; $ag_id=$result->agent_id; $recom_ids=$this->RecomInfo($result->recom_id); $result->recom_id=$recom_ids; if ($result->level==3){ $result->agent_id=1; }else{ $result->agent_id=$this->AgentInfo($recom_ids,$result->level); } $result->save(); $this->addAgentOperationLog('6', $result->id, '代理恢复后,更新了邀请人和上级的信息', '原邀请人id为:'.$re_id.'、上级id为:'.$ag_id.'修改后的邀请人ID为:'.$recom_ids.'、上级ID为:'.$result->agent_id); $this->addAgentOperationLog('41', $result->id, '撤销删除状态', '撤销删除状态'); Log::info('用户'.$mobile.'被恢复'); DB::commit(); return 1; }catch(\Exception $e){ DB::rollBack(); return $e->getMessage(); } } /**查看邀请人是否删除**/ public function RecomInfo($id){ $user=User::withTrashed()->where('id',$id)->first(); $recom_id=$id; if ($user->deleted_at){ $recom_id=$this->RecomInfo($user->recom_id); } return $recom_id; } /**查看上级是否删除**/ public function AgentInfo($id,$level,$k=0){ $user=User::withTrashed()->where('id',$id)->first(); $agent_id=$user->id; if ($k>5){ throw new \Exception('代理关系有误,请联系开发人员'); } if ($user->level<=$level){ $k++; $agent_id=$this->AgentInfo($user->agent_id,$level,$k); } return $agent_id; } /**变更邀请人**/ public function updateRecom($id) { $data=WareaApply::find($id); $input['id'] = $data->user_id; $input['mobile'] = $data->mobile; Log::error('1111'); $uuu = new User(); $user = User::find($input['id']);//当前用户 if ($user->recom_id) { $recom_id = $user->recom_id; } else { $recom_id = '暂无'; } if ($user->agent_id) { $up_id = $user->agent_id; } else { $up_id = '暂无'; } $agentCount = User::where(function ($query) use ($input) { $query->where('recom_id', '=', $input['id']) ->orWhere('agent_id', '=', $input['id']); })->count(); //代理邀请人员后,或者成为上级后不能变更推荐人 // if($agentCount>0){ // return $this->error('400112','当前用户邀请人信息不能修改'); // } $recomUser = User::where("mobile", $input['mobile'])->first();//新邀请人信息 if (empty($recomUser)) { return '邀请人信息不存在'; } if ($user->recom_id == $recomUser->id) { return '要更改的邀请人与当前邀请人相同'; } if ($user->id == $recomUser->id) { return '邀请人的手机号不能为自己本人'; } if ($user->id == $recomUser->recom_id) { return '要更改的邀请人的邀请人为自己'; } if ($user->id == $recomUser->id) { return '要更改的邀请人不能为自己'; } $uuu = new User(); $rechecking = $uuu->changeRecomSystem($input['id'], $input['mobile']); if ($rechecking == '222') { return '要更改的邀请人为当前代理邀请人系统体系内部成员'; } DB::beginTransaction(); try { if ($user->level == '3') { $user->recom_id = $recomUser->id; $user->agent_id = '1'; $user->crown_id = ''; if ($user->warea_id != $recomUser->warea_id) { $user->warea_id = $recomUser->warea_id; $one_agent = User::where('agent_id', $user->id)->pluck('id'); if (count($one_agent) > 0) { User::whereIn('id', $one_agent)->update(['warea_id' => $recomUser->warea_id]); foreach ($one_agent as $key => $val) { $two_agent = User::where('agent_id', $val)->pluck('id'); if (count($two_agent) > 0) { User::whereIn('id', $two_agent)->update(['warea_id' => $recomUser->warea_id]); } } } } } else { if ($recomUser->level == '3') { $user->recom_id = $recomUser->id; $user->agent_id = $recomUser->id; $user->crown_id = $recomUser->id; $user->warea_id = $recomUser->warea_id; if ($user->level == '2') { $uuu->changeAgentLevelInfoTwo($user->id, $recomUser->id); } elseif ($user->level == '1') { $uuu->changeAgentLevelInfoThree($user->id, $recomUser->id, $recomUser->id); } $uuu->changeAgentRecomCrown($user->id, $recomUser->id, $recomUser->warea_id); } elseif ($recomUser->level == '2') { if ($user->level == '2') { $user->recom_id = $recomUser->id; $user->agent_id = $recomUser->agent_id; $user->crown_id = $recomUser->crown_id; $user->warea_id = $recomUser->warea_id; $uuu->changeAgentLevelInfoTwo($user->id, $recomUser->agent_id); } elseif ($user->level == '1') { $user->recom_id = $recomUser->id; $user->agent_id = $recomUser->id; $user->crown_id = $recomUser->crown_id; $user->warea_id = $recomUser->warea_id; $uuu->changeAgentLevelInfoThree($user->id, $recomUser->agent_id, $recomUser->id); } $uuu->changeAgentRecomCrown($user->id, $recomUser->crown_id, $recomUser->warea_id); } elseif ($recomUser->level == '1') { $recomAgent = User::find($recomUser->agent_id); if ($user->level == '2') { if ($recomAgent->level == $user->level) { $user->recom_id = $recomUser->id; $user->agent_id = $recomAgent->agent_id; $user->crown_id = $recomUser->crown_id; $user->warea_id = $recomUser->warea_id; $uuu->changeAgentLevelInfoTwo($user->id, $recomAgent->agent_id); } elseif ($recomAgent->level == 3) { $user->recom_id = $recomUser->id; $user->agent_id = $recomAgent->id; $user->crown_id = $recomUser->crown_id; $user->warea_id = $recomUser->warea_id; $uuu->changeAgentLevelInfoTwo($user->id, $recomAgent->id); } } elseif ($user->level == '1') { $user->recom_id = $recomUser->id; $user->agent_id = $recomUser->agent_id; $user->crown_id = $recomUser->crown_id; $user->warea_id = $recomUser->warea_id; $uuu->changeAgentLevelInfoThree($user->id, $recomAgent->agent_id, $recomUser->agent_id); } $uuu->changeAgentRecomCrown($user->id, $recomUser->crown_id, $recomUser->warea_id); } } $row = $user->save(); $remark = $data->remark; $before = User::where('id', $recom_id)->select('id', 'nickname', 'mobile')->first(); $after = ['id' => $recomUser->id, 'nickname' => $recomUser->nickname, 'mobile' => $recomUser->mobile]; $log = '变更前邀请人:' . json_encode($before, JSON_UNESCAPED_UNICODE) . ',变更后邀请人:' . json_encode($after, JSON_UNESCAPED_UNICODE); $this->addAgentOperationLog('3', $user->id, $remark, $log, $data->imgList); event(new ChangeRecom($user)); DB::commit(); Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')修改代理:' . $user->nickname . '(id=' . $user->id . ')邀请人成功,原邀请人id=' . $recom_id . ',原上级id=' . $up_id . ',新邀请人:' . $recomUser->nickname . '(id=' . $recomUser->id . ')'); $data->status=1; $data->save(); Log::error(222); return 0; } catch (\Exception $e) { DB::rollBack(); Log::error($e->getMessage()); return $e->getMessage(); } } //删除用户 public function destoryUser($id) { $data=WareaApply::find($id); $img=$data->imgList; $input['id']=$data->user_id; $user = User::withTrashed()->where('id',$data->user_id)->first(); if ($user->deleted_at){ $data->status=1; $data->save(); return 0; } if ($user->level==3){ return '不能直接删除代理公司!'; } $recom = User::find($user->recom_id);//代理邀请人信息 if (!$recom) { return '该代理邀请人信息有误,不能删除'; } //获取代理邀请的人 $recomed=User::where('recom_id',$input['id'])->pluck('id'); $agented=User::where('agent_id',$input['id'])->pluck('id'); //获取代理下级信息 DB::beginTransaction(); $userInfo=User::where('id',$input['id'])->first(); // event(new DeleteAgent($userInfo)); try { if ($user->level == '3') { if ($recom->level == '3') {//邀请人等级信息 User::where('agent_id', $input['id'])->update(['agent_id' => $recom->id]); User::where('recom_id', $input['id'])->update(['recom_id' => $recom->id]); User::where('crown_id', $input['id'])->update(['crown_id' => $recom->id, 'warea_id' => $recom->warea_id]); } elseif ($recom->level == '2') { User::where('agent_id', $input['id'])->where('level', 2)->update(['agent_id' => $recom->agent_id]); User::where('agent_id', $input['id'])->where('level', 1)->update(['agent_id' => $recom->id]); User::where('recom_id', $input['id'])->update(['recom_id' => $recom->id]); $recom_agent = User::where('id', $recom->agent_id)->first(); User::where('crown_id', $input['id'])->update(['crown_id' => $recom_agent->id, 'warea_id' => $recom_agent->warea_id]); } elseif ($recom->level == '1') { $upRecom = User::find($recom->agent_id);//代理邀请人上级信息 if (!$upRecom) { return '该代理邀请人上级信息有误,不能删除'; } User::where('agent_id', $input['id'])->where('level', 1)->update(['agent_id' => $upRecom->id]); User::where('agent_id', $input['id'])->where('level', 2)->update(['agent_id' => $upRecom->agent_id]); User::where('recom_id', $input['id'])->update(['recom_id' => $recom->id]); $recom_agent = User::where('id', $upRecom->agent_id)->first(); User::where('crown_id', $input['id'])->update(['crown_id' => $upRecom->agent_id, 'warea_id' => $recom_agent->warea_id]); } } elseif ($user->level == '2') { if ($recom->level == '3' || $recom->level == '2') { User::where('agent_id', $input['id'])->update(['agent_id' => $recom->id]); } elseif ($recom->level == '1') { User::where('agent_id', $input['id'])->update(['agent_id' => $recom->agent_id]); } User::where('recom_id', $input['id'])->update(['recom_id' => $user->recom_id]); } elseif ($user->level == '1') { User::where('recom_id', $input['id'])->update(['recom_id' => $user->recom_id]); } $user->delete(); $remark = $data->remark; $after = ['id' => $user->id, 'nickname' => $user->nickname, 'mobile' => $user->mobile, 'level' => $user->level, 'recom_id' => $user->recom_id, 'agent_id' => $user->agent_id]; $log = '删除用户成功,用户信息:' . json_encode($after, JSON_UNESCAPED_UNICODE).',用户邀请的人ID:'.json_encode($recomed).',用户下级ID:'.json_encode($agented); $this->addAgentOperationLog('4', $user->id, $remark, $log,$img); $data->status=1; $data->save(); Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')删除代理:' . $user->nickname . '(id=' . $user->id . ')成功'); DB::commit(); return 0; } catch (\Exception $e) { DB::rollBack(); return $e->getMessage(); } } //添加代理操作日志 public function addAgentOperationLog($type, $user_id, $remark = null, $log = null,$img=null) { return AgentOperationLog::create([ 'type' => $type, 'admin_name' => Auth::user()->name, 'admin_id' => Auth::user()->id, 'user_id' => $user_id, 'remark' => $remark, 'img'=>$img, 'log' => $log, ]); } /* * 删除申请 * ***/ public function destroy(Request $request){ $re=WareaApply::where('id',$request->input('id'))->first(); if ($re->status==1){ return $this->error(500214,'审核完成的不能删除'); } WareaApply::where('id',$request->input('id'))->update(['status'=>3,'destroy_cause'=>$request->input('destroy_cause')]); return $this->success([]); } }