智慧教务系统
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

<?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());
}
}
}