You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
4.2 KiB
162 lines
4.2 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | Niucloud-admin 企业快速开发的多应用管理平台
|
|
// +----------------------------------------------------------------------
|
|
// | 官方网址:https://www.niucloud.com
|
|
// +----------------------------------------------------------------------
|
|
// | niucloud团队 版权所有 开源版本可自由商用
|
|
// +----------------------------------------------------------------------
|
|
// | Author: Niucloud Team
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\api\controller\login;
|
|
|
|
use app\service\api\login\LoginService;
|
|
use app\service\api\login\UnifiedLoginService;
|
|
use core\base\BaseController;
|
|
use think\Response;
|
|
|
|
/**
|
|
* 统一登录控制器
|
|
* 支持员工端和会员端两种登录方式
|
|
*/
|
|
class UnifiedLogin extends BaseController
|
|
{
|
|
/**
|
|
* 统一登录接口
|
|
* @return Response
|
|
*/
|
|
public function login()
|
|
{
|
|
$data = $this->request->params([
|
|
['username', ''], // 用户名/手机号
|
|
['password', ''], // 密码
|
|
['login_type', ''], // 登录类型: staff=员工端, member=会员端
|
|
]);
|
|
|
|
// 参数验证
|
|
$this->validate($data, [
|
|
'username' => 'require',
|
|
'password' => 'require',
|
|
'login_type' => 'require|in:staff,member'
|
|
]);
|
|
|
|
try {
|
|
$service = new UnifiedLoginService();
|
|
$result = $service->unifiedLogin($data);
|
|
|
|
if (!$result) {
|
|
return fail('登录失败,请检查用户名和密码');
|
|
}
|
|
|
|
return success($result, '登录成功');
|
|
|
|
} catch (\Exception $e) {
|
|
return fail($e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 员工端登录(兼容旧接口)
|
|
* @return Response
|
|
*/
|
|
public function staffLogin()
|
|
{
|
|
$data = $this->request->params([
|
|
['phone', ''],
|
|
['password', ''],
|
|
['user_type', ''], // 1=市场, 2=教练, 3=销售
|
|
]);
|
|
|
|
// 参数验证
|
|
$this->validate($data, [
|
|
'phone' => 'require|mobile',
|
|
'password' => 'require',
|
|
'user_type' => 'require|in:1,2,3'
|
|
]);
|
|
|
|
try {
|
|
$service = new UnifiedLoginService();
|
|
$result = $service->staffLogin($data);
|
|
|
|
return success($result, '员工登录成功');
|
|
|
|
} catch (\Exception $e) {
|
|
return fail($e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 会员端登录(兼容旧接口)
|
|
* @return Response
|
|
*/
|
|
public function memberLogin()
|
|
{
|
|
$data = $this->request->params([
|
|
['username', ''],
|
|
['password', ''],
|
|
['mobile', ''],
|
|
]);
|
|
|
|
try {
|
|
$service = new UnifiedLoginService();
|
|
$result = $service->memberLogin($data);
|
|
|
|
return success($result, '会员登录成功');
|
|
|
|
} catch (\Exception $e) {
|
|
return fail($e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 登出
|
|
* @return Response
|
|
*/
|
|
public function logout()
|
|
{
|
|
try {
|
|
$service = new UnifiedLoginService();
|
|
$service->logout();
|
|
|
|
return success([], '登出成功');
|
|
|
|
} catch (\Exception $e) {
|
|
return fail($e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取用户信息
|
|
* @return Response
|
|
*/
|
|
public function getUserInfo()
|
|
{
|
|
try {
|
|
$service = new UnifiedLoginService();
|
|
$result = $service->getUserInfo();
|
|
|
|
return success($result, '获取用户信息成功');
|
|
|
|
} catch (\Exception $e) {
|
|
return fail($e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 刷新Token
|
|
* @return Response
|
|
*/
|
|
public function refreshToken()
|
|
{
|
|
try {
|
|
$service = new UnifiedLoginService();
|
|
$result = $service->refreshToken();
|
|
|
|
return success($result, 'Token刷新成功');
|
|
|
|
} catch (\Exception $e) {
|
|
return fail($e->getMessage());
|
|
}
|
|
}
|
|
}
|