1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?php
- namespace app\index\controller;
- use app\model\Company;
- use app\model\Employee;
- use app\model\User;
- use think\facade\Request;
- use wx\Oplatform;
- use openssl\Aes;
- class Wx
- {
- /**
- * 开放平台扫码登录接口
- */
- public function platformLogin($code, $r)
- {
- $appid = config('app.kfweb_appid');
- $secret = config('app.kfweb_secret');
- $field = 'unionid';
- $data = (new Oplatform())->getAccessToken($appid, $secret, $code);
- if (!$data) {
- return json(['code' => 1, 'msg' => '登录失败']);
- }
- if (isset($data['errcode'])) { // code已经被使用
- if (in_array($data['errcode'], [40029, 40163, 41008, 42003])) {
- return json(['code' => 1, 'msg' => '登录失败,请刷新页面后重试!']);
- } else {
- return json(['code' => 1, 'msg' => $data['errmsg']]);
- }
- }
- $aes = new Aes('zqxg@screen');
- $r = $aes->decrypt($r);
- // 查询用户信息
- $userIds = User::where([
- ['root_id', '=', $r],
- [$field, '=', $data['unionid']]
- ])->column('id');
- // 领导登录
- $emp = Employee::where([['root_id', '=', $r], ['uid', 'in', $userIds], ['is_manager', '=', 1], ['state', '=', '在职']])->find();
- if ($emp == null) {
- return json(['code' => 1, 'msg' => '登录失败,未授权的账号']);
- }
- session('platform', $emp);
- $companyName = Company::where([['root_id', '=', $emp->root_id]])->value('company_name');
- return json(['code' => 0, 'msg' => '登录成功', 'data' => $companyName]);
- }
- public function getQrcodeConfig()
- {
- $data = [
- 'appid' => config('app.kfweb_appid'),
- 'domain' => Request::domain(),
- 'state' => rand(111111, 999999)
- ];
- $r = input('r');
- $aes = new Aes('zqxg@screen');
- $r = $aes->decrypt($r);
- $companyName = Company::where(['root_id' => $r])->value('company_name');
- $companyName = str_replace(['集团', '装饰'], '', $companyName);
- return json(['code' => 0, 'data' => $data, 'company_name' => $companyName]);
- }
- }
|