MemberInfoController.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  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. }
  185. $this->emailService->setAuthTag('personal')
  186. ->setCallback('App\Services\Person\MemberInfoService', 'sendAuthEmailHook', [$email, auth('web-member')->user()])
  187. ->sendAuthMail($email, EmailService::TEMPLATE_VALIDATION);
  188. return response()->json(['status'=>1]);
  189. }
  190. public function saveUsername()
  191. {
  192. return view('app.person.ajax.username');
  193. }
  194. public function updateUsername(PersonValidatorRequest $request)
  195. {
  196. $res = $this->MemberInfoService->updateUsername($request->username);
  197. if ($res) {
  198. return $this->sendSuccessResponse('修改成功!');
  199. } else {
  200. return $this->sendErrorResponse('修改失败!', '', 400);
  201. }
  202. }
  203. public function pms()
  204. {
  205. $res = $this->MemberInfoService->pms(auth('web-member')->user());
  206. /* dd($res);*/
  207. return view('app.person.pms', ['pms'=>$res]);
  208. }
  209. public function checkPms()
  210. {
  211. $res = $this->MemberInfoService->checkPms(request()->id,auth('web-member')->user());
  212. if ($res['code']==1) {
  213. $html = view('app.person.ajax.check_pms', ['pms'=>$res['info']])->render();
  214. return json_encode(['code'=>1,'data'=>$html]);
  215. } else {
  216. $html = view('app.person.ajax.check_error', ['pms'=>$res['info']])->render();
  217. return json_encode(['code'=>0,'data'=>$html]);
  218. }
  219. }
  220. public function deletePms()
  221. {
  222. if (request()->method()=='GET') {
  223. $html = view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除选择的系统消息吗?'])->render();
  224. return $this->sendSuccessResponse($html);
  225. } else {
  226. $res = $this->MemberInfoService->deletePms(request()->id,auth('web-member')->user());
  227. if ($res) {
  228. return $this->sendSuccessResponse('删除成功!');
  229. } else {
  230. return $this->sendErrorResponse('删除失败!');
  231. }
  232. }
  233. }
  234. public function newPms()
  235. {
  236. $res = $this->MemberInfoService->newPms(request()->id, auth('web-member')->user());
  237. if ($res) {
  238. return $this->sendSuccessResponse('系统信息查看成功!');
  239. } else {
  240. return $this->sendErrorResponse('消息已删除或不存在!');
  241. }
  242. }
  243. public function msg()
  244. {
  245. $res = $this->MemberInfoService->msg(auth('web-member')->user());
  246. // dd($res);
  247. return view('app.person.msg', ['content'=>$res]);
  248. }
  249. public function msgSend()
  250. {
  251. $res = $this->MemberInfoService->msgSend(auth('web-member')->user(), request()->all());
  252. if ($res) {
  253. return $this->sendSuccessResponse($res);
  254. } else {
  255. return $this->sendErrorResponse('回复失败!');
  256. }
  257. }
  258. public function msgDelete()
  259. {
  260. if (request()->method()=='POST') {
  261. $res = $this->MemberInfoService->msgDelete(request()->all());
  262. if ($res) {
  263. return $this->sendSuccessResponse('删除成功!');
  264. } else {
  265. return $this->sendErrorResponse('删除失败!');
  266. }
  267. } else {
  268. return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除选择的咨询消息吗?']);
  269. }
  270. }
  271. public function invitation_reg()
  272. {
  273. $task = Task::find(14);
  274. $html = view('app.person.ajax.invitation_reg',['task'=>$task])->render();
  275. return $this->sendSuccessResponse($html);
  276. }
  277. }