LoginController.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. namespace App\Http\Controllers\Api\v1;
  3. use App\Http\Controllers\Api\webApp;
  4. use App\Http\Validator\MemberValidator;
  5. use App\Services\Api\MemberService;
  6. use App\Services\ConfigService;
  7. use App\Services\EmailService;
  8. use App\Services\SmsService;
  9. use App\Services\WechatService;
  10. /**
  11. * 授权登录控制器基类
  12. * Class LoginController
  13. * @package App\Http\Controllers
  14. */
  15. class LoginController extends webApp
  16. {
  17. /**
  18. * 手机号登录
  19. * @return array
  20. */
  21. public function loginEmail(MemberValidator $validator)
  22. {
  23. $params = request()->all();
  24. $params = $validator->check($params, 'email_login');
  25. if (!is_array($params)) {
  26. return message($params, false);
  27. }
  28. if(!$result = MemberService::make()->loginByEmail($params)){
  29. return message(MemberService::make()->getError(), false);
  30. }
  31. return message(MemberService::make()->getError(), true, $result);
  32. }
  33. /**
  34. * 手机号登录
  35. * @return array
  36. */
  37. public function loginMobile(MemberValidator $validator)
  38. {
  39. $params = request()->all();
  40. $params = $validator->check($params, 'sms_login');
  41. if (!is_array($params)) {
  42. return message($params, false);
  43. }
  44. if(!$result = MemberService::make()->loginByMobile($params)){
  45. return message(MemberService::make()->getError(), false);
  46. }
  47. return message(MemberService::make()->getError(), true, $result);
  48. }
  49. /**
  50. * 注册
  51. * @return array
  52. */
  53. public function register(MemberValidator $validator)
  54. {
  55. $params = request()->all();
  56. $params = $validator->check($params, 'email_register');
  57. if (!is_array($params)) {
  58. return message($params, false);
  59. }
  60. if(!$result = MemberService::make()->register($params)){
  61. return message(MemberService::make()->getError(), false);
  62. }
  63. return message(MemberService::make()->getError(), true, $result);
  64. }
  65. /**
  66. * 发送短信验证码
  67. * @return array
  68. */
  69. public function sendSms(MemberValidator $validator)
  70. {
  71. $params = request()->all();
  72. $params = $validator->check($params, 'sms');
  73. $appSources = isset($params['app_sources']) ? $params['app_sources'] : '';
  74. if (!is_array($params)) {
  75. return message($params, false);
  76. }
  77. // 发送验证码处理
  78. $mobile = isset($params['mobile'])? $params['mobile'] : '';
  79. $type = isset($params['sms_type'])? $params['sms_type'] : '';
  80. switch ($type){
  81. case 'reg':
  82. if(MemberService::make()->checkPhoneExists($mobile)){
  83. return message(2009, false,[ 'app_url' => ConfigService::make()->getConfigByCode("app_{$appSources}_url"),],406);
  84. }
  85. break;
  86. }
  87. if(!SmsService::make()->send($mobile, $type)){
  88. return message(SmsService::make()->getError(), false);
  89. }
  90. return message(1011, true);
  91. }
  92. /**
  93. * 发送邮箱验证码
  94. * @return array
  95. */
  96. public function sendEmail(MemberValidator $validator)
  97. {
  98. $params = request()->all();
  99. $params = $validator->check($params, 'email');
  100. $appSources = isset($params['app_sources']) ? $params['app_sources'] : '';
  101. if (!is_array($params)) {
  102. return message($params, false);
  103. }
  104. // 发送验证码处理
  105. $email = isset($params['email'])? $params['email'] : '';
  106. $scene = isset($params['scene'])? $params['scene'] : '';
  107. switch ($scene){
  108. case 'reg':
  109. if(MemberService::make()->checkExists('email',$email)){
  110. return message(2009, false,[ 'app_url' => ConfigService::make()->getConfigByCode("app_{$appSources}_url"),],406);
  111. }
  112. break;
  113. }
  114. if(!EmailService::make()->send($email, $scene)){
  115. return message(EmailService::make()->getError(), false);
  116. }
  117. return message(2020, true);
  118. }
  119. }