优化:移动端商户登录时 需要判断商户类型,取消跨类型登录支持

This commit is contained in:
wuhui_zzw 2024-07-12 15:08:23 +08:00
parent 27933547a9
commit 65a16c6289
2 changed files with 8 additions and 7 deletions

View File

@ -158,10 +158,10 @@ class MerchantAdminRepository extends BaseRepository
{
return password_hash($password, PASSWORD_BCRYPT);
}
/**
* @param string $account
* @param string $password
* @param int $merchantType
* @return array|Model|null
* @throws DataNotFoundException
* @throws DbException
@ -169,7 +169,7 @@ class MerchantAdminRepository extends BaseRepository
* @author xaboy
* @day 2020-04-17
*/
public function login(string $account, string $password)
public function login(string $account, string $password,int $merchantType = -1)
{
event('admin.merLogin.before',compact('account', 'password'));
$accountInfo = explode('@', $account, 2);
@ -195,8 +195,7 @@ class MerchantAdminRepository extends BaseRepository
throw new ValidateException('账号或密码错误');
}
if ($adminInfo['status'] != 1)
throw new ValidateException('账号已关闭');
if ($adminInfo['status'] != 1) throw new ValidateException('账号已关闭');
/**
@ -206,6 +205,8 @@ class MerchantAdminRepository extends BaseRepository
$merchant = $merchantRepository->get($adminInfo->mer_id);
if (!$merchant) throw new ValidateException('商户不存在');
if (!$merchant['status']) throw new ValidateException('商户已被锁定');
// 判断:如果指定了登录的商户类别 则禁止跨类别登录
if($merchantType >= 0 && $merchant->merchant_type != $merchantType) throw new ValidateException('账号或密码错误');
$adminInfo->last_time = date('Y-m-d H:i:s');
$adminInfo->last_ip = app('request')->ip();

View File

@ -160,12 +160,12 @@ class Merchant extends BaseController
*/
public function storeLogin(){
// 参数获取
$params = $this->request->params(['account','password']);
$params = $this->request->params(['account','password','merchant_type']);
if(empty($params['account'])) throw new ValidateException('请输入账号');
if(empty($params['password'])) throw new ValidateException('请输入密码');
// 判断登录是否成功
$repository = app()->make(MerchantAdminRepository::class);
$adminInfo = $repository->login($params['account'], $params['password']);
$adminInfo = $repository->login($params['account'], $params['password'], $params['merchant_type']);
$tokenInfo = $repository->createToken($adminInfo);
$admin = $adminInfo->toArray();
// 判断:这里仅允许酒道馆和普通商户登录