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.
180 lines
5.1 KiB
180 lines
5.1 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | Niucloud-admin 企业快速开发的多应用管理平台
|
|
// +----------------------------------------------------------------------
|
|
// | 官方网址:https://www.niucloud.com
|
|
// +----------------------------------------------------------------------
|
|
// | niucloud团队 版权所有 开源版本可自由商用
|
|
// +----------------------------------------------------------------------
|
|
// | Author: Niucloud Team
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\api\controller\login;
|
|
|
|
use app\dict\member\MemberLoginTypeDict;
|
|
use app\model\sys\SysConfig;
|
|
use app\service\admin\sys\SystemService;
|
|
use app\service\api\captcha\CaptchaService;
|
|
use app\service\api\login\ConfigService;
|
|
use app\service\api\login\LoginService;
|
|
use core\base\BaseController;
|
|
use core\pay\PayLoader;
|
|
use core\pay\Wechatpay;
|
|
use Exception;
|
|
use think\facade\Db;
|
|
use think\Response;
|
|
|
|
class Login extends BaseController
|
|
{
|
|
/**
|
|
* 登录
|
|
* @return Response
|
|
*/
|
|
public function login()
|
|
{
|
|
$data = $this->request->params([
|
|
['username', ''],
|
|
['password', ''],
|
|
]);
|
|
//校验登录注册配置
|
|
(new ConfigService())->checkLoginConfig(MemberLoginTypeDict::USERNAME);
|
|
//参数验证
|
|
//验证码验证
|
|
$result = (new LoginService())->account($data['username'], $data['password']);
|
|
if (!$result) {
|
|
//账号密码错误, 重置验证码
|
|
return fail('ACCOUNT_OR_PASSWORD_ERROR');
|
|
}
|
|
return success($result);
|
|
}
|
|
|
|
/**
|
|
* 登出
|
|
* @return Response
|
|
*/
|
|
public function logout()
|
|
{
|
|
(new LoginService)->logout();
|
|
return success('MEMBER_LOGOUT');
|
|
}
|
|
|
|
/**
|
|
* 创建验证码
|
|
* @return Response
|
|
*/
|
|
public function captcha()
|
|
{
|
|
return success((new CaptchaService())->create());
|
|
}
|
|
|
|
/**
|
|
* 发送手机验证码
|
|
* @param $type
|
|
* @return Response
|
|
* @throws Exception
|
|
*/
|
|
public function sendMobileCode($type)
|
|
{
|
|
$data = $this->request->params([
|
|
['mobile', ''],
|
|
]);
|
|
return success((new LoginService())->sendMobileCode($data['mobile'], $type));
|
|
}
|
|
|
|
/**
|
|
* 手机号登录
|
|
* @return Response
|
|
*/
|
|
public function mobile()
|
|
{
|
|
$data = $this->request->params([
|
|
['mobile', ''],
|
|
['nickname', ''],
|
|
['headimg', ''],
|
|
['mobile', '']
|
|
]);
|
|
//校验登录注册配置
|
|
(new ConfigService())->checkLoginConfig(MemberLoginTypeDict::MOBILE);
|
|
return success((new LoginService())->mobile($data));
|
|
}
|
|
|
|
/**
|
|
* 重置密码
|
|
* @return Response
|
|
*/
|
|
public function resetPassword()
|
|
{
|
|
$data = $this->request->params([
|
|
['mobile', ''],
|
|
['password', '']
|
|
]);
|
|
//参数验证
|
|
$this->validate($data, 'app\validate\member\Member.reset_password');
|
|
(new LoginService())->resetPassword($data['mobile'], $data['password']);
|
|
return success('PASSWORD_RESET_SUCCESS');
|
|
}
|
|
|
|
//销售教师人员登陆
|
|
public function personnelLogin()
|
|
{
|
|
$data = $this->request->params([
|
|
['phone', ''],
|
|
['password', ''],
|
|
['login_type', ''],//登陆类型|1=教练,2=销售
|
|
]);
|
|
//验证码验证
|
|
$result = (new LoginService())->loginByPersonnel($data);
|
|
|
|
if(!$result['user_type']){
|
|
if($data['login_type'] == 1){
|
|
$msg = '暂无教练权限';
|
|
}else{
|
|
$msg = '暂无销售权限';
|
|
}
|
|
return fail($msg);//code|0错误
|
|
}
|
|
|
|
return success($result);//code|1正确
|
|
}
|
|
|
|
public function test(){
|
|
$pay_config = Db::name("campus_pay")->where(['campus_id' => 1])->find();
|
|
|
|
$sysConfig = new SysConfig();
|
|
|
|
$vx_config = $sysConfig->where(['config_key' => 'WECHAT'])->value("value");
|
|
|
|
$config = [
|
|
// 必填-商户号
|
|
'mch_id' => $pay_config['mchid'],
|
|
// 必填-商户私钥 字符串或路径
|
|
'mch_secret_cert' => $pay_config['apiclient_cert'],
|
|
// 必填-商户公钥证书路径
|
|
'mch_public_cert_path' => $pay_config['apiclient_key'],
|
|
// 必填
|
|
'notify_url' => 'https://zh.hnhbty.cn/api/pay/qrcodenotify',
|
|
// 选填-公众号 的 app_id
|
|
'mp_app_id' => $vx_config['app_id'],
|
|
// 选填-小程序 的 app_id
|
|
'mini_app_id' => '',
|
|
'mch_secret_key' => $pay_config['pay_sign_key'],
|
|
];
|
|
$params = [
|
|
'out_trade_no' => '123123',
|
|
'body' => '测试',
|
|
'money' => 100,
|
|
];
|
|
$pay = new PayLoader('Wechatpay', $config);
|
|
|
|
$url = $pay->scan($params);
|
|
|
|
$path = qrcode(
|
|
$url['code_url'],
|
|
'',
|
|
[],
|
|
'upload/qrcode/pay/'
|
|
);
|
|
|
|
echo "<img src='/" . $path . "'>";die;
|
|
}
|
|
}
|
|
|