MemberInfoController.php 9.8 KB

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