| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- /**
- * 用户api.
- *
- * @author zhangjunbao <junbaoz1314@gmail.com>
- * @date 2020-01-10 21:12:58
- */
- declare (strict_types=1);
- namespace Modules\Api\Controllers;
- use App\Model\Mongo\UserRelationModel;
- use App\Model\UserModel;
- use App\Repositories\UserRepository;
- use App\Repositories\Utils\SmsRepository;
- use App\Repositories\VipRepository;
- use Hyperf\Validation\Contract\ValidatorFactoryInterface;
- use Modules\Api\Services\SmsService;
- use Psr\SimpleCache\CacheInterface;
- class MsgController extends BaseController
- {
- use \Hyperf\Di\Aop\ProxyTrait;
- use \Hyperf\Di\Aop\PropertyHandlerTrait;
- function __construct()
- {
- if (method_exists(parent::class, '__construct')) {
- parent::__construct(...func_get_args());
- }
- $this->__handlePropertyHandler(__CLASS__);
- }
- /**
- * 发送短信验证码
- * @return mixed
- * @throws \GuzzleHttp\Exception\GuzzleException
- * @throws \Psr\SimpleCache\InvalidArgumentException
- */
- public function sendVerfiy()
- {
- //当前用户邀请码
- $inputData = $this->getJsonData();
- $rules = ['phone' => 'required|string|max:18'];
- $validator = make(ValidatorFactoryInterface::class)->make($inputData, $rules);
- if ($validator->fails()) {
- // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
- return json_fail($validator->errors()->first());
- }
- $phone = $inputData['phone'];
- $code = random(6, 1);
- $cache = make(CacheInterface::class);
- $cache->set('phone:code:' . $phone, $code, 600);
- if (config('app_env') == 'prod') {
- $smsRepository = make(SmsRepository::class);
- $result = $smsRepository->sendVerify($phone, $code);
- } else {
- return json_success(['result' => 'success']);
- }
- // 不管是否真的发送成功, 还是失败。统一让用户觉得发送成功了.
- if (isset($result['code']) && $result['code'] == 200) {
- return json_success($result);
- } else {
- return json_fail($result['message'], 500, $result['data']);
- }
- }
- }
|