| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309 | <?phpnamespace App\Http\Controllers\Web\Person;use App\Http\Controllers\Web\WebBaseController;use App\Models\Task;use App\Services\Common\CategoryService;use App\Services\Common\EmailService;use App\Services\Common\SmsService;use App\Services\Person\MemberInfoService;use App\Services\Person\MemberService;use App\Services\Person\ResumeService;use App\Validators\PersonValidatorRequest;use Illuminate\Http\Request;use Illuminate\Support\Facades\Cache;class MemberInfoController extends WebBaseController{    /**     * @var MemberInfoService     */    protected $MemberInfoService;    protected $MemberService;    protected $smsService;    protected $emailService;    protected $categoryService;    protected $resumeService;    /**     * MemberInfoController constructor.     * @param MemberInfoService $MemberInfoService     * @param MemberService $MemberService     * @param SmsService $smsService     * @param EmailService $emailService     * @param CategoryService $categoryService     * @param resumeService $resumeService     */    public function __construct(        MemberInfoService $MemberInfoService,        MemberService $MemberService,        SmsService $smsService,        EmailService $emailService,        CategoryService $categoryService,        ResumeService $resumeService    )    {        $this->MemberInfoService = $MemberInfoService;        $this->MemberService = $MemberService;        $this->smsService = $smsService;        $this->emailService = $emailService;        $this->categoryService = $categoryService;        $this->resumeService = $resumeService;    }    /**     * @des 账号管理--基本资料.     */    public function memberInfo()    {        $resume_id = [];        $resume = $this->resumeService->myResumeAjax(auth('web-member')->user());        if (!$resume->isEmpty()) {            $resume_id = array_column($resume->toArray(), 'id');        }        $res = $this->resumeService->getUserInfo(auth('web-member')->user(), $resume_id);        $district = $this->categoryService->getDefaultDistrict();        return view('app.person.member_info')->with([            'content'=>$res->member,            'defaultCity'=>$district->defaultCity,            'memberInfo'=>$res,        ]);    }    public function updateInfo(PersonValidatorRequest $request)    {        $user = $this->getLoginUser();        $id = $request->id;        $this->MemberInfoService->isOwn($id,$user);        $res = $this->MemberInfoService->updateInfo(request()->all(), auth('web-member')->user());        if ($res['code']) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    /**     * 我的头像。     */    public function head()    {        $res = $this->MemberInfoService->memberInfo(auth('web-member')->user());        return view('app.person.user_head')->with(['content'=>$res['content']]);    }    public function uploadHead()    {        $res = $this->MemberInfoService->updateHead(request()->pic1, auth('web-member')->user());        return response()->json($res);    }    /**     * 账户安全。     */    public function memberSafe()    {        return view('app.person.member_safe', [            'member'=> $this->MemberInfoService->memberSafe(auth('web-member')->user()),            'qq'=> $this->MemberInfoService->qq(auth('web-member')->user(), [1]),            'weixin'=> $this->MemberInfoService->weixin(auth('web-member')->user(), [2,3,4]),        ]);    }    public function unbind(Request $request)    {        $res = $this->MemberInfoService->unbind(auth('web-member')->user(), $request->type);        if ($res) {            return $this->sendSuccessResponse('解绑成功!');        } else {            return $this->sendErrorResponse('解绑失败!', '', 400);        }    }    /**     * 登录日志。     */    public function memberLog(Request $request)    {        $content =  $this->MemberInfoService->getMemberLog(auth('web-member')->user(), $request->route());        return view('app.person.member_log')->with(['content'=>$content]);    }    /**     * 修改密码--试图。     */    public function passwordView()    {        return view('app.person.ajax.password');    }    public function passwordInfo(PersonValidatorRequest $request)    {        $res = $this->MemberInfoService->updatePassword($request->oldpassword,            $request->password, $request->password1, auth('web-member')->user());        return response()->json($res);    }    public function userMobile()    {        return view('app.person.ajax.mobile')->with([            'content'=>$this->MemberService->getMemberById(auth('web-member')->user())]);    }    public function userEmail()    {        return view('app.person.ajax.email')->with([            'content'=>$this->MemberService->getMemberById(auth('web-member')->user())]);    }    public function mobileAudit(PersonValidatorRequest $request)    {        $mobile = trim(request()->mobile);        $id = trim(request()->id);        if (!$this->MemberService->findByField($id, $mobile)->isEmpty()) {            return $this->sendErrorResponse('该手机已经认证!', '', 400);        }        $this->smsService->sendAuthSms($mobile, 'sms_auth_check');        return response()->json(['code'=>1]);    }    public function mobileAuditCode(PersonValidatorRequest $request)    {        $mobile = trim(request()->mobile);        $verifycode = trim(request()->verifycode);        $res = $this->smsService->checkAuthSms($mobile, 'sms_auth_check', $verifycode);        if (!$res) {            return $this->sendErrorResponse('验证码错误!', '', 400);        }        $res = $this->MemberInfoService->mobileAuditCode($mobile);        if ($res['code']==1) {            return $this->sendSuccessResponse($res['points']);        } else {            return $this->sendErrorResponse('手机认证失败!', '', 400);        }    }    public function emailAudit(PersonValidatorRequest $request)    {        $email = trim(request()->email);        $id = trim(request()->id);        if (!$this->MemberService->findByEmail($id, $email)->isEmpty()) {            return $this->sendErrorResponse('该邮箱已经认证!', '', 400);        }        $redis = Cache::getRedis();        $value = $redis->get('user_email_'.$request->account);        if(!$value){            $value = 0;        }        if($value >= 5){            $redis->expire('user_email_'.$request->account,900);            return $this->sendErrorResponse("连续登录失败5次,请15分钟后再尝试!");        }else{            $value++;            $redis->set('user_email_',$value);        }        $this->emailService->setAuthTag('personal')            ->setCallback('App\Services\Person\MemberInfoService', 'sendAuthEmailHook', [$email, auth('web-member')->user()])            ->sendAuthMail($email, EmailService::TEMPLATE_VALIDATION);        return response()->json(['status'=>1]);    }    public function saveUsername()    {        return view('app.person.ajax.username');    }    public function updateUsername(PersonValidatorRequest $request)    {        $res = $this->MemberInfoService->updateUsername($request->username);        if ($res) {            return $this->sendSuccessResponse('修改成功!');        } else {            return $this->sendErrorResponse('修改失败!', '', 400);        }    }    public function pms()    {        $res = $this->MemberInfoService->pms(auth('web-member')->user());     /*   dd($res);*/        return view('app.person.pms', ['pms'=>$res]);    }    public function checkPms()    {        $res = $this->MemberInfoService->checkPms(request()->id,auth('web-member')->user());        if ($res['code']==1) {            $html = view('app.person.ajax.check_pms', ['pms'=>$res['info']])->render();            return json_encode(['code'=>1,'data'=>$html]);        } else {            $html = view('app.person.ajax.check_error', ['pms'=>$res['info']])->render();            return json_encode(['code'=>0,'data'=>$html]);        }    }    public function deletePms()    {        if (request()->method()=='GET') {            $html = view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除选择的系统消息吗?'])->render();            return $this->sendSuccessResponse($html);        } else {            $res = $this->MemberInfoService->deletePms(request()->id,auth('web-member')->user());            if ($res) {                return $this->sendSuccessResponse('删除成功!');            } else {                return $this->sendErrorResponse('删除失败!');            }        }    }    public function newPms()    {        $res = $this->MemberInfoService->newPms(request()->id, auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse('系统信息查看成功!');        } else {            return $this->sendErrorResponse('消息已删除或不存在!');        }    }    public function msg()    {        $res = $this->MemberInfoService->msg(auth('web-member')->user());       // dd($res);        return view('app.person.msg', ['content'=>$res]);    }    public function msgSend()    {        $res = $this->MemberInfoService->msgSend(auth('web-member')->user(), request()->all());        if ($res) {            return $this->sendSuccessResponse($res);        } else {            return $this->sendErrorResponse('回复失败!');        }    }    public function msgDelete()    {        if (request()->method()=='POST') {            $res = $this->MemberInfoService->msgDelete(request()->all());            if ($res) {                return $this->sendSuccessResponse('删除成功!');            } else {                return $this->sendErrorResponse('删除失败!');            }        } else {            return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除选择的咨询消息吗?']);        }    }    public function invitation_reg()    {        $task = Task::find(14);        $html = view('app.person.ajax.invitation_reg',['task'=>$task])->render();        return $this->sendSuccessResponse($html);    }}
 |