where('user_id', 10042)->find(); Cache::set('food_token_10042', $detail, 3600 * 24 * 7);//登录状态存储7天 $detail['is_login'] = true; return $this->renderSuccess(compact('detail')); } /** * 获取当前用户信息 */ public function detail() { // 当前用户信息 $detail = $this->getUserDetail(); if (!$this->request->isPost()) { return $this->renderSuccess(compact('detail')); } // 更新记录 if ($detail->edit($this->request->post())) { return $this->renderMsg('更新成功'); } $error = $detail->getError() ?: '更新失败'; return $this->renderError($error); } /** * 自动登录/注册 */ public function autoLogin() { $model = new UserModel; if ($detail = $model->autoLogin($this->request->post())) { return $this->renderSuccess(compact('detail'), '登录成功'); } $error = $model->getError() ?: '登录失败'; return $this->renderError($error); } /** * 获取用户手机号 */ public function getPhoneNumber() { $userInfo = $this->getUserDetail(); $model = new UserModel; if ($detail = $model->getPhoneNumber($this->request->post(), $userInfo)) { return $this->renderSuccess(compact('detail'), '登录成功'); } $error = $model->getError() ?: '手机号获取失败'; return $this->renderError($error); } /** * 安全退出 */ public function logout() { $model = new UserModel; if ($model->logout($this->user_id)) { return $this->renderMsg('退出成功'); } $error = $model->getError() ?: '退出失败'; return $this->renderError($error); } /** * 发动短信验证码 */ public function sendsms() { $data = $this->request->post(); $values = Setting::getItem('sms'); if ($values['gateway'] == '') { return $this->renderError('未配置短信平台'); } if ($values['scene']['captcha'] == 0) { return $this->renderError('未开启短信验证码'); } if ($error = get_addons_status('sms' . $values['gateway'])) { return $this->renderError($error); } $sms = new Sms($values['gateway']); $code = get_captcha(); if ($sms->sendSms($data['phone'], ['code' => $code])) { Cache::set($data['phone'] . '_' . $code, 'sms_captcha', 300); return $this->renderSuccess('发送成功'); } $error = $sms->getError() ?: '短信验证码发送失败'; return $this->renderError($error); } /** * 手机验证码登录 */ public function h5CodeLogin() { $model = new UserModel; if ($detail = $model->h5CodeLogin($this->request->post())) { return $this->renderSuccess(compact('detail'), '登录成功'); } $error = $model->getError() ?: '登录失败'; return $this->renderError($error); } /** * 公众号 优惠券列表 * @return \think\response\Json * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function getWxUserCoupon() { $post = $this->request->post(); $where = [ 'openid' => $post['openid'], ]; if (isset($post['id'])) { $where['coupon_user_id'] = $post['id']; } $data = Db::name('food_coupon_user_wx')->where($where)->select(); return $this->renderSuccess($data, '成功'); } /** * 公众号 优惠券核销 * @return \think\response\Json * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function write() { $post = $this->request->post(); $user = Db::name('user_wx')->where(['wx_openid' => $post['openid']])->value('is_role'); if (empty($user) || $user == 0) { return $this->renderError('你没核销权限'); } $where = [ // 'openid' => $post['openid'], 'coupon_user_id' => $post['id'], ]; $data = Db::name('food_coupon_user_wx')->where($where)->update(['status' => 2]); return $this->renderSuccess($data, '成功'); } public function wxCode() { $appid = 'wx89c12dd426a55a2e'; $redirect_uri = $this->request->host() . 'api/food.user/wxLogin'; $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; return $this->renderSuccess($url, '成功'); } public function wxLogin() { $get = $this->request->get(); if (empty($get['code'])) { return $this->renderError('授权失败'); } $appid = 'wx89c12dd426a55a2e'; $app_secret = '33e66bcf944f9810abbb5ddd7825403d'; $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$app_secret&code={$get['code']}&grant_type=authorization_code"; $result = json_decode(Http::get($url), true); if (isset($result['access_token'])) { $access_token = $result['access_token']; $openid = $result['openid']; $wx_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN"; $data = json_decode(Http::get($wx_url), true); if (isset($data['headimgurl'])) { Db::name('user_wx')->where(['wx_openid' => $openid])->update(['headimgurl' => $data['headimgurl'], 'nickname' => $data['nickname']]); $arr = [ 'openid' => $openid, 'redirect_uri' => 'https://app.cxhxy.dev.1nww.com/#/pages/details/details' ]; return $this->renderSuccess($arr, '成功'); } } return $this->renderError('授权失败'); } }