UserController.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. declare(strict_types=1);
  3. namespace SixShop\Wechat\Controller;
  4. use app\model\User;
  5. use SixShop\Wechat\Entity\ExtensionWechatUserEntity;
  6. use think\Request;
  7. use think\Response;
  8. use function SixShop\Core\success_response;
  9. use function SixShop\Core\throw_logic_exception;
  10. class UserController
  11. {
  12. public function phoneNumber(Request $request, ExtensionWechatUserEntity $wechatUserEntity): Response
  13. {
  14. $code = $request->get('code/s');
  15. $user = User::find($request->userID);
  16. if ($user->mobile) {
  17. throw_logic_exception('手机号已绑定');
  18. }
  19. $phoneInfo = $wechatUserEntity->getPhoneNumber($code);
  20. $mobileUser = User::where(['mobile' => $phoneInfo['phoneNumber']])->findOrEmpty();
  21. if (!$mobileUser->isEmpty()) {
  22. if ($mobileUser->id != $request->userID) {
  23. throw_logic_exception('手机号已绑定其他账号');
  24. } else {
  25. throw_logic_exception('手机号已绑定');
  26. }
  27. }
  28. $user->mobile = $phoneInfo['phoneNumber'];
  29. $user->save();
  30. return success_response([
  31. 'mobile' => $user->mobile,
  32. ]);
  33. }
  34. }