| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 | 
							- <?php
 
- namespace app\h5\controller;
 
- use app\hander\HelpHander;
 
- use EasyWeChat\Factory;
 
- use think\Controller;
 
- use think\Db;
 
- use think\Exception;
 
- class WxHome extends Controller
 
- {
 
-     public function index(){
 
-         $code = input('code','');
 
-         if(!$code){
 
-             $code = decodecookie('sn');
 
-         }
 
-         if(!$code){
 
-             return $this->fetch('h5/msg_error',['msg'=>'请扫码二维码']);
 
-         }
 
-         $data = get_qrcode_arr($code);
 
-         if(!$data || $data['ucode'] != config('app.ucode') || $data['type'] != 'dinner_address'){
 
-             return $this->fetch('h5/msg_error',['msg'=>'二维码错误']);
 
-         }
 
- //        session('sn',$code);
 
-         encodecookie('sn',$code,100*365*24*60*60);
 
-         $info = Db::name('dinner_address')->where('id',$data['id'])->where('del',0)->where('enable',1)->find();
 
-         if(!$info || !$info['org_id']){
 
-             return $this->fetch('h5/msg_error',['msg'=>'二维码错误']);
 
-         }
 
-         $HospitalId = $info['org_id'];
 
- //        session('HospitalId',$HospitalId);
 
-         encodecookie('HospitalId',$HospitalId,100*365*24*60*60);
 
- //        $user = Db::name('wxuser')->where('id',206)->find();
 
- //        $user['HospitalName'] = "北京国天健宇物业管理发展有限公司";
 
- //        session('userinfo',$user);
 
-         $userId = dinner_is_login();
 
- //        $userId = 205;
 
-         if(!$userId){
 
-             $this->redirect(url('WxHome/login'));
 
-         }
 
-         $user = Db::name('wxuser')->where('id',$userId)->find();
 
-         if (empty($user)||empty($user['id'])) {
 
-            $this->redirect(url('WxHome/login'));
 
-         }
 
-         if($user['curr_org_id'] != $HospitalId){
 
-             Db::name('wxuser')->where('id',$user['id'])->update(['curr_org_id'=>$HospitalId]);
 
-         }
 
-         $org = Db::name('org')->where('id',$HospitalId)->where('del',0)->where('enable',1)->find();
 
-         if(!$org){
 
-             return $this->fetch('h5/msg_error',['msg'=>'二维码错误或已失效']);
 
-         }
 
-         $this->redirect(url('WxBookDinner/index'));
 
-     }
 
-     public function login() {
 
-         $sn = decodecookie('sn');
 
-         $orgId = decodecookie('HospitalId');
 
-         if(!$sn||!$orgId){
 
-             return $this->fetch('h5/msg_error',['msg'=>'请扫码二维码']);
 
-         }
 
-         session('user_auth',null);
 
-         session('user_auth_sign',null);
 
-         $currUrl = url("oauth",[],false,true).'?w='.$sn;
 
-         $config = get_pay_wechat($orgId);
 
-         $app = \EasyWeChat\Factory::officialAccount($config);
 
-         $response = $app->oauth->scopes(['snsapi_userinfo'])->redirect($currUrl);
 
-         $response->send();
 
-         exit();
 
-     }
 
-     public function oauth() {
 
-         $parameter = input('w');
 
-         $data = get_qrcode_arr($parameter);
 
-         if(!$data || $data['ucode'] != config('app.ucode') || $data['type'] != 'dinner_address'){
 
-             return $this->fetch('h5/msg_error',['msg'=>'二维码错误']);
 
-         }
 
-         $info = Db::name('dinner_address')->where('id',$data['id'])->where('del',0)->where('enable',1)->find();
 
-         if(!$info || !$info['org_id']){
 
-             return $this->fetch('h5/msg_error',['msg'=>'二维码错误']);
 
-         }
 
-         $orgId = $info['org_id'];
 
-         try {
 
-             $config =get_pay_wechat($orgId);
 
-             $userType = $config['user_type'];
 
-             $app = \EasyWeChat\Factory::officialAccount($config);
 
-             $user = $app->oauth->user();
 
-             $openid = $user->id;
 
-             $_data['curr_org_id'] = $orgId;
 
-             $_data['img'] = $user->avatar;
 
-             $_data['nickname'] = $user->nickname;
 
-             $userId = 0;
 
-             //查找数据库
 
-             $user = Db::name('wxuser')
 
-                 ->where('openid', $openid)
 
-                 ->where('type', $userType)
 
-                 ->where('del',0)
 
-                 ->find();
 
-             //不存在此用户
 
-             if (empty($user)) {
 
-                 $_data['create_time'] = date('Y-m-d H:i:s');
 
-                 $_data['enable'] = 1;
 
-                 $_data['type'] = $userType;
 
-                 $_data['openid'] = $openid;
 
-                 $userId = Db::name('wxuser')->insertGetId($_data);
 
-                 if(!$userId){
 
-                     \exception('登录失败');
 
-                 }
 
-             }
 
-             else { //存在此用户则更新信息
 
-                 $userId = $user['id'];
 
-                 if (trim($_data['img']) == trim($user['img'])) {
 
-                     unset($_data['img']);
 
-                 }
 
-                 if (trim($_data['nickname']) == trim($user['nickname'])) {
 
-                     unset($_data['nickname']);
 
-                 }
 
-                 if (!empty($_data)) {
 
-                     Db::name('wxuser')->where('id', $user['id'])->update($_data);
 
-                 }
 
-             }
 
-             //查找用户信息
 
-             $user = Db::name('wxuser')
 
-                 ->where('id', $userId)
 
-                 ->where('del',0)
 
-                 ->find();
 
-             if (empty($user)) {
 
-                 return $this->fetch('h5/msg_error', ['msg' => '不存在此用户']);
 
-             }
 
-             /* 记录登录SESSION和COOKIES */
 
-             $auth = array(
 
-                 'id'                => $user['id'],
 
-                 'nickname'           => $user['nickname'],
 
-             );
 
-             session('user_auth',$auth);
 
-             session('user_auth_sign',data_auth_sign($auth));
 
-             Db::name('dinner_cart')->where('user_id', $user['id'])->delete();
 
-             $this->redirect(url('WxHome/index').'?code='.$parameter);
 
-         } catch (Exception $e) {
 
-             return $this->fetch('h5/msg_error', ['msg' => '登录失败' . $e->getMessage()]);
 
-         }
 
-     }
 
- }
 
 
  |