<?php
namespace App\Http\Controllers\Jkq\Person;
use App\Http\Controllers\Jkq\JkqBaseController;
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;
class MemberInfoController extends JkqBaseController
{
/**
* @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('jkq.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('jkq.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('jkq.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('jkq.person.member_log')->with(['content'=>$content]);
}
/**
* 修改密码--试图。
*/
public function passwordView()
{
return view('jkq.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('jkq.person.ajax.mobile')->with([
'content'=>$this->MemberService->getMemberById(auth('web-member')->user())]);
}
public function userEmail()
{
return view('jkq.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);
}
$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('jkq.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('jkq.person.pms', ['pms'=>$res]);
}
public function checkPms()
{
$res = $this->MemberInfoService->checkPms(request()->id,auth('web-member')->user());
if ($res['code']==1) {
$html = view('jkq.person.ajax.check_pms', ['pms'=>$res['info']])->render();
return json_encode(['code'=>1,'data'=>$html]);
} else {
$html = view('jkq.person.ajax.check_error', ['pms'=>$res['info']])->render();
return json_encode(['code'=>0,'data'=>$html]);
}
}
public function deletePms()
{
if (request()->method()=='GET') {
$html = view('jkq.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('jkq.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('jkq.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除选择的咨询消息吗?']);
}
}
public function invitation_reg()
{
$task = Task::find(14);
$html = view('jkq.person.ajax.invitation_reg',['task'=>$task])->render();
return $this->sendSuccessResponse($html);
}
}