MemberInfoController.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. <?php
  2. namespace App\Http\Controllers\Web\Person;
  3. use App\Http\Controllers\Web\WebBaseController;
  4. use App\Models\Task;
  5. use App\Services\Common\CategoryService;
  6. use App\Services\Common\EmailService;
  7. use App\Services\Common\SmsService;
  8. use App\Services\Person\MemberInfoService;
  9. use App\Services\Person\MemberService;
  10. use App\Services\Person\ResumeService;
  11. use App\Validators\PersonValidatorRequest;
  12. use Illuminate\Http\Request;
  13. use Illuminate\Support\Facades\Cache;
  14. class MemberInfoController extends WebBaseController
  15. {
  16. /**
  17. * @var MemberInfoService
  18. */
  19. protected $MemberInfoService;
  20. protected $MemberService;
  21. protected $smsService;
  22. protected $emailService;
  23. protected $categoryService;
  24. protected $resumeService;
  25. /**
  26. * MemberInfoController constructor.
  27. * @param MemberInfoService $MemberInfoService
  28. * @param MemberService $MemberService
  29. * @param SmsService $smsService
  30. * @param EmailService $emailService
  31. * @param CategoryService $categoryService
  32. * @param resumeService $resumeService
  33. */
  34. public function __construct(
  35. MemberInfoService $MemberInfoService,
  36. MemberService $MemberService,
  37. SmsService $smsService,
  38. EmailService $emailService,
  39. CategoryService $categoryService,
  40. ResumeService $resumeService
  41. )
  42. {
  43. $this->MemberInfoService = $MemberInfoService;
  44. $this->MemberService = $MemberService;
  45. $this->smsService = $smsService;
  46. $this->emailService = $emailService;
  47. $this->categoryService = $categoryService;
  48. $this->resumeService = $resumeService;
  49. }
  50. /**
  51. * @des 账号管理--基本资料.
  52. */
  53. public function memberInfo()
  54. {
  55. $resume_id = [];
  56. $resume = $this->resumeService->myResumeAjax(auth('web-member')->user());
  57. if (!$resume->isEmpty()) {
  58. $resume_id = array_column($resume->toArray(), 'id');
  59. }
  60. $res = $this->resumeService->getUserInfo(auth('web-member')->user(), $resume_id);
  61. $district = $this->categoryService->getDefaultDistrict();
  62. return view('app.person.member_info')->with([
  63. 'content'=>$res->member,
  64. 'defaultCity'=>$district->defaultCity,
  65. 'memberInfo'=>$res,
  66. ]);
  67. }
  68. public function updateInfo(PersonValidatorRequest $request)
  69. {
  70. $user = $this->getLoginUser();
  71. $id = $request->id;
  72. $this->MemberInfoService->isOwn($id,$user);
  73. $res = $this->MemberInfoService->updateInfo(request()->all(), auth('web-member')->user());
  74. if ($res['code']) {
  75. return $this->sendSuccessResponse($res['info']);
  76. } else {
  77. return $this->sendErrorResponse('更新失败', '', 400);
  78. }
  79. }
  80. /**
  81. * 我的头像。
  82. */
  83. public function head()
  84. {
  85. $res = $this->MemberInfoService->memberInfo(auth('web-member')->user());
  86. return view('app.person.user_head')->with(['content'=>$res['content']]);
  87. }
  88. public function uploadHead()
  89. {
  90. $res = $this->MemberInfoService->updateHead(request()->pic1, auth('web-member')->user());
  91. return response()->json($res);
  92. }
  93. /**
  94. * 账户安全。
  95. */
  96. public function memberSafe()
  97. {
  98. return view('app.person.member_safe', [
  99. 'member'=> $this->MemberInfoService->memberSafe(auth('web-member')->user()),
  100. 'qq'=> $this->MemberInfoService->qq(auth('web-member')->user(), [1]),
  101. 'weixin'=> $this->MemberInfoService->weixin(auth('web-member')->user(), [2,3,4]),
  102. ]);
  103. }
  104. public function unbind(Request $request)
  105. {
  106. $res = $this->MemberInfoService->unbind(auth('web-member')->user(), $request->type);
  107. if ($res) {
  108. return $this->sendSuccessResponse('解绑成功!');
  109. } else {
  110. return $this->sendErrorResponse('解绑失败!', '', 400);
  111. }
  112. }
  113. /**
  114. * 登录日志。
  115. */
  116. public function memberLog(Request $request)
  117. {
  118. $content = $this->MemberInfoService->getMemberLog(auth('web-member')->user(), $request->route());
  119. return view('app.person.member_log')->with(['content'=>$content]);
  120. }
  121. /**
  122. * 修改密码--试图。
  123. */
  124. public function passwordView()
  125. {
  126. return view('app.person.ajax.password');
  127. }
  128. public function passwordInfo(PersonValidatorRequest $request)
  129. {
  130. $res = $this->MemberInfoService->updatePassword($request->oldpassword,
  131. $request->password, $request->password1, auth('web-member')->user());
  132. return response()->json($res);
  133. }
  134. public function userMobile()
  135. {
  136. return view('app.person.ajax.mobile')->with([
  137. 'content'=>$this->MemberService->getMemberById(auth('web-member')->user())]);
  138. }
  139. public function userEmail()
  140. {
  141. return view('app.person.ajax.email')->with([
  142. 'content'=>$this->MemberService->getMemberById(auth('web-member')->user())]);
  143. }
  144. public function mobileAudit(PersonValidatorRequest $request)
  145. {
  146. $mobile = trim(request()->mobile);
  147. $id = trim(request()->id);
  148. if (!$this->MemberService->findByField($id, $mobile)->isEmpty()) {
  149. return $this->sendErrorResponse('该手机已经认证!', '', 400);
  150. }
  151. $this->smsService->sendAuthSms($mobile, 'sms_auth_check');
  152. return response()->json(['code'=>1]);
  153. }
  154. public function mobileAuditCode(PersonValidatorRequest $request)
  155. {
  156. $mobile = trim(request()->mobile);
  157. $verifycode = trim(request()->verifycode);
  158. $res = $this->smsService->checkAuthSms($mobile, 'sms_auth_check', $verifycode);
  159. if (!$res) {
  160. return $this->sendErrorResponse('验证码错误!', '', 400);
  161. }
  162. $res = $this->MemberInfoService->mobileAuditCode($mobile);
  163. if ($res['code']==1) {
  164. return $this->sendSuccessResponse($res['points']);
  165. } else {
  166. return $this->sendErrorResponse('手机认证失败!', '', 400);
  167. }
  168. }
  169. public function emailAudit(PersonValidatorRequest $request)
  170. {
  171. $email = trim(request()->email);
  172. $id = trim(request()->id);
  173. if (!$this->MemberService->findByEmail($id, $email)->isEmpty()) {
  174. return $this->sendErrorResponse('该邮箱已经认证!', '', 400);
  175. }
  176. $redis = Cache::getRedis();
  177. $value = $redis->get('user_email_'.$request->account);
  178. if(!$value){
  179. $value = 0;
  180. }
  181. if($value >= 5){
  182. $redis->expire('user_email_'.$request->account,900);
  183. return $this->sendErrorResponse("连续登录失败5次,请15分钟后再尝试!");
  184. }else{
  185. $value++;
  186. $redis->set('user_email_',$value);
  187. }
  188. $this->emailService->setAuthTag('personal')
  189. ->setCallback('App\Services\Person\MemberInfoService', 'sendAuthEmailHook', [$email, auth('web-member')->user()])
  190. ->sendAuthMail($email, EmailService::TEMPLATE_VALIDATION);
  191. return response()->json(['status'=>1]);
  192. }
  193. public function saveUsername()
  194. {
  195. return view('app.person.ajax.username');
  196. }
  197. public function updateUsername(PersonValidatorRequest $request)
  198. {
  199. $res = $this->MemberInfoService->updateUsername($request->username);
  200. if ($res) {
  201. return $this->sendSuccessResponse('修改成功!');
  202. } else {
  203. return $this->sendErrorResponse('修改失败!', '', 400);
  204. }
  205. }
  206. public function pms()
  207. {
  208. $res = $this->MemberInfoService->pms(auth('web-member')->user());
  209. /* dd($res);*/
  210. return view('app.person.pms', ['pms'=>$res]);
  211. }
  212. public function checkPms()
  213. {
  214. $res = $this->MemberInfoService->checkPms(request()->id,auth('web-member')->user());
  215. if ($res['code']==1) {
  216. $html = view('app.person.ajax.check_pms', ['pms'=>$res['info']])->render();
  217. return json_encode(['code'=>1,'data'=>$html]);
  218. } else {
  219. $html = view('app.person.ajax.check_error', ['pms'=>$res['info']])->render();
  220. return json_encode(['code'=>0,'data'=>$html]);
  221. }
  222. }
  223. public function deletePms()
  224. {
  225. if (request()->method()=='GET') {
  226. $html = view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除选择的系统消息吗?'])->render();
  227. return $this->sendSuccessResponse($html);
  228. } else {
  229. $res = $this->MemberInfoService->deletePms(request()->id,auth('web-member')->user());
  230. if ($res) {
  231. return $this->sendSuccessResponse('删除成功!');
  232. } else {
  233. return $this->sendErrorResponse('删除失败!');
  234. }
  235. }
  236. }
  237. public function newPms()
  238. {
  239. $res = $this->MemberInfoService->newPms(request()->id, auth('web-member')->user());
  240. if ($res) {
  241. return $this->sendSuccessResponse('系统信息查看成功!');
  242. } else {
  243. return $this->sendErrorResponse('消息已删除或不存在!');
  244. }
  245. }
  246. public function msg()
  247. {
  248. $res = $this->MemberInfoService->msg(auth('web-member')->user());
  249. // dd($res);
  250. return view('app.person.msg', ['content'=>$res]);
  251. }
  252. public function msgSend()
  253. {
  254. $res = $this->MemberInfoService->msgSend(auth('web-member')->user(), request()->all());
  255. if ($res) {
  256. return $this->sendSuccessResponse($res);
  257. } else {
  258. return $this->sendErrorResponse('回复失败!');
  259. }
  260. }
  261. public function msgDelete()
  262. {
  263. if (request()->method()=='POST') {
  264. $res = $this->MemberInfoService->msgDelete(request()->all());
  265. if ($res) {
  266. return $this->sendSuccessResponse('删除成功!');
  267. } else {
  268. return $this->sendErrorResponse('删除失败!');
  269. }
  270. } else {
  271. return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除选择的咨询消息吗?']);
  272. }
  273. }
  274. public function invitation_reg()
  275. {
  276. $task = Task::find(14);
  277. $html = view('app.person.ajax.invitation_reg',['task'=>$task])->render();
  278. return $this->sendSuccessResponse($html);
  279. }
  280. }