118 lines
3.8 KiB
PHP
118 lines
3.8 KiB
PHP
<?php
|
||
// +----------------------------------------------------------------------
|
||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||
// +----------------------------------------------------------------------
|
||
// | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
|
||
// +----------------------------------------------------------------------
|
||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||
// +----------------------------------------------------------------------
|
||
// | Author: CRMEB Team <admin@crmeb.com>
|
||
// +----------------------------------------------------------------------
|
||
|
||
namespace app\controller\admin\system\serve;
|
||
|
||
use app\common\repositories\system\config\ConfigValueRepository;
|
||
use app\validate\admin\CrmebServeValidata;
|
||
use app\Request;
|
||
use crmeb\basic\BaseController;
|
||
use crmeb\services\CrmebServeServices;
|
||
|
||
use think\App;
|
||
use think\facade\Cache;
|
||
|
||
/**
|
||
* 服务登录
|
||
* Class Login
|
||
* @package app\controller\admin\v1\serve
|
||
*/
|
||
class Login extends BaseController
|
||
{
|
||
protected $services;
|
||
|
||
public function __construct(App $app, CrmebServeServices $services)
|
||
{
|
||
parent::__construct($app);
|
||
$this->services = $services;
|
||
}
|
||
|
||
/**
|
||
* 发送验证码
|
||
* @param string $phone
|
||
* @return mixed
|
||
*/
|
||
public function captcha(string $phone, CrmebServeValidata $validata)
|
||
{
|
||
$validata->scene('phone')->check(['phone' => $phone]);
|
||
$this->services->user()->code($phone);
|
||
return app('json')->success('短信发送成功');
|
||
}
|
||
|
||
/**
|
||
* 验证验证码
|
||
* @param string $phone
|
||
* @param $code
|
||
* @return mixed
|
||
*/
|
||
public function checkCode(CrmebServeValidata $validata)
|
||
{
|
||
$phone = $this->request->param('phone');
|
||
$verify_code = $this->request->param('verify_code');
|
||
$validata->scene('phone')->check(['phone' => $phone]);
|
||
$this->services->user()->checkCode($phone, $verify_code);
|
||
return app('json')->success('success');
|
||
}
|
||
|
||
/**
|
||
* 注册服务
|
||
* @param Request $request
|
||
* @param SmsAdminServices $services
|
||
* @return mixed
|
||
*/
|
||
public function register(Request $request, CrmebServeValidata $validata)
|
||
{
|
||
$data = $this->request->params(['phone', 'account', 'password', 'verify_code']);
|
||
|
||
$data['account'] = $data['phone'];
|
||
$validata->check($data);
|
||
$data['password'] = md5($data['password']);
|
||
$res = $this->services->user()->register($data);
|
||
if ($res) {
|
||
$arr = [
|
||
'serve_account' => $data['account'],
|
||
'serve_token' => md5($data['account'] . md5($data['password'])),
|
||
];
|
||
app()->make(ConfigValueRepository::class)->setFormData($arr, 0);
|
||
return app('json')->success('一号通注册成功');
|
||
} else {
|
||
return app('json')->fail('一号通注册失败');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 平台登录
|
||
* @return mixed
|
||
* @throws \Psr\SimpleCache\InvalidArgumentException
|
||
*/
|
||
public function login(CrmebServeValidata $validata)
|
||
{
|
||
$account = $this->request->param('account');
|
||
$password = $this->request->param('password');
|
||
$validata->scene('login')->check(['account' => $account, 'password' => $password]);
|
||
$password = md5($account . md5($password));
|
||
$res = $this->services->user()->login($account, $password);
|
||
|
||
if ($res) {
|
||
Cache::set('serve_account', $account);
|
||
$arr = [
|
||
'serve_account' => $account,
|
||
'serve_token' => $password,
|
||
];
|
||
app()->make(ConfigValueRepository::class)->setFormData($arr, 0);
|
||
return app('json')->success('一号通登录成功', $res);
|
||
} else {
|
||
return app('json')->fail('一号通登录失败');
|
||
}
|
||
}
|
||
|
||
}
|