test_service d3170b4d1c 1
2023-12-01 15:43:29 +08:00

125 lines
3.6 KiB
PHP

<?php
namespace app\api\controller\food;
use app\api\controller\food\Controller;
use app\api\model\food\User as UserModel;
use app\api\model\Setting;
use hema\sms\Driver as Sms;
use think\facade\Cache;
/**
* 用户管理
*/
class User extends Controller
{
/**
* 获取当前用户信息
*/
public function h5()
{
$detail = (new UserModel)->where('user_id',10042)->find();
Cache::set('food_token_10042',$detail,3600*24*7);//登录状态存储7天
$detail['is_login'] = true;
return $this->renderSuccess(compact('detail'));
}
/**
* 获取当前用户信息
*/
public function detail()
{
// 当前用户信息
$detail = $this->getUserDetail();
if (!$this->request->isPost()) {
return $this->renderSuccess(compact('detail'));
}
// 更新记录
if ($detail->edit($this->request->post())) {
return $this->renderMsg('更新成功');
}
$error = $detail->getError() ?: '更新失败';
return $this->renderError($error);
}
/**
* 自动登录/注册
*/
public function autoLogin()
{
$model = new UserModel;
if($detail = $model->autoLogin($this->request->post())){
return $this->renderSuccess(compact('detail'),'登录成功');
}
$error = $model->getError() ?: '登录失败';
return $this->renderError($error);
}
/**
* 获取用户手机号
*/
public function getPhoneNumber()
{
$userInfo = $this->getUserDetail();
$model = new UserModel;
if ($detail = $model->getPhoneNumber($this->request->post(),$userInfo)) {
return $this->renderSuccess(compact('detail'),'登录成功');
}
$error = $model->getError() ?: '手机号获取失败';
return $this->renderError($error);
}
/**
* 安全退出
*/
public function logout()
{
$model = new UserModel;
if ($model->logout($this->user_id)) {
return $this->renderMsg('退出成功');
}
$error = $model->getError() ?: '退出失败';
return $this->renderError($error);
}
/**
* 发动短信验证码
*/
public function sendsms()
{
$data = $this->request->post();
$values = Setting::getItem('sms');
if($values['gateway'] == ''){
return $this->renderError('未配置短信平台');
}
if($values['scene']['captcha'] == 0){
return $this->renderError('未开启短信验证码');
}
if($error = get_addons_status('sms'.$values['gateway'])){
return $this->renderError($error);
}
$sms = new Sms($values['gateway']);
$code = get_captcha();
if($sms->sendSms($data['phone'], ['code' => $code])){
Cache::set($data['phone'] . '_' . $code,'sms_captcha',300);
return $this->renderSuccess('发送成功');
}
$error = $sms->getError() ?: '短信验证码发送失败';
return $this->renderError($error);
}
/**
* 手机验证码登录
*/
public function h5CodeLogin()
{
$model = new UserModel;
if($detail = $model->h5CodeLogin($this->request->post())){
return $this->renderSuccess(compact('detail'),'登录成功');
}
$error = $model->getError() ?: '登录失败';
return $this->renderError($error);
}
}