118 lines
3.6 KiB
PHP
118 lines
3.6 KiB
PHP
<?php
|
||
// +----------------------------------------------------------------------
|
||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||
// +----------------------------------------------------------------------
|
||
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
|
||
// +----------------------------------------------------------------------
|
||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||
// +----------------------------------------------------------------------
|
||
// | Author: CRMEB Team <admin@crmeb.com>
|
||
// +----------------------------------------------------------------------
|
||
|
||
namespace app\adminapi\controller\v1\serve;
|
||
|
||
|
||
use app\adminapi\controller\AuthController;
|
||
use app\adminapi\validate\serve\ServeValidata;
|
||
use app\Request;
|
||
use app\services\yihaotong\SmsAdminServices;
|
||
use crmeb\services\CacheService;
|
||
use app\services\serve\ServeServices;
|
||
use think\facade\App;
|
||
|
||
/**
|
||
* 服务登录
|
||
* Class Login
|
||
* @package app\adminapi\controller\v1\serve
|
||
*/
|
||
class Login extends AuthController
|
||
{
|
||
|
||
public function __construct(App $app, ServeServices $services)
|
||
{
|
||
parent::__construct($app);
|
||
$this->services = $services;
|
||
}
|
||
|
||
/**
|
||
* 发送验证码
|
||
* @param string $phone
|
||
* @return mixed
|
||
*/
|
||
public function captcha(string $phone)
|
||
{
|
||
$this->validate(['phone' => $phone], ServeValidata::class, 'phone');
|
||
return app('json')->success('发送成功', $this->services->user()->code($phone));
|
||
}
|
||
|
||
/**
|
||
* 验证验证码
|
||
* @param string $phone
|
||
* @param $code
|
||
* @return mixed
|
||
*/
|
||
public function checkCode()
|
||
{
|
||
[$phone, $verify_code] = $this->request->postMore([
|
||
['phone', ''],
|
||
['verify_code', ''],
|
||
], true);
|
||
$this->validate(['phone' => $phone], ServeValidata::class, 'phone');
|
||
return app('json')->success('success', $this->services->user()->checkCode($phone, $verify_code));
|
||
}
|
||
|
||
/**
|
||
* 注册服务
|
||
* @param Request $request
|
||
* @param SmsAdminServices $services
|
||
* @return mixed
|
||
*/
|
||
public function register(Request $request, SmsAdminServices $services)
|
||
{
|
||
$data = $request->postMore([
|
||
['phone', ''],
|
||
['account', ''],
|
||
['password', ''],
|
||
['verify_code', ''],
|
||
]);
|
||
|
||
$data['account'] = $data['phone'];
|
||
$this->validate($data, ServeValidata::class);
|
||
$data['password'] = md5($data['password']);
|
||
$res = $this->services->user()->register($data);
|
||
if ($res) {
|
||
$services->updateSmsConfig($data['account'], md5($data['account'] . md5($data['password'])));
|
||
return app('json')->success(400170);
|
||
} else {
|
||
return app('json')->fail(400171);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 平台登录
|
||
* @return mixed
|
||
* @throws \Psr\SimpleCache\InvalidArgumentException
|
||
*/
|
||
public function login(SmsAdminServices $services)
|
||
{
|
||
[$account, $password] = $this->request->postMore([
|
||
['account', ''],
|
||
['password', '']
|
||
], true);
|
||
|
||
$this->validate(['account' => $account, 'password' => $password], ServeValidata::class, 'login');
|
||
|
||
$password = md5($account . md5($password));
|
||
|
||
$res = $this->services->user()->login($account, $password);
|
||
if ($res) {
|
||
CacheService::clear();
|
||
CacheService::set('sms_account', $account);
|
||
$services->updateSmsConfig($account, $password);
|
||
return app('json')->success(400139, $res);
|
||
} else {
|
||
return app('json')->fail(400172);
|
||
}
|
||
}
|
||
}
|