文件
mashangyoujiu/Application/Delivery/Controller/UserController.class.php

106 行
3.1 KiB
PHP
可执行文件

<?php
namespace Delivery\Controller;
use addons\paotui\service\Third;
use app\admin\model\paotui\Config;
use app\common\controller\Api;
use EasyWeChat\Factory;
use EasyWeChat\Kernel\Exceptions\HttpException;
/**
* 会员接口
*/
class User extends BaseController
{
protected $noNeedLogin = ['oauthMiniUser'];
protected $noNeedRight = '*';
public function _initialize()
{
parent::_initialize();
}
//小程序登录
public function oauthMiniUser(){
$configModel = new Config();
$config = $configModel->where(['group'=>'mini'])->column("name,value");
$code = $this->request->request("code");
$options = [
'app_id' => $config['mini_appid'],
'secret' => $config['mini_appsecret'],
];
try {
$app = Factory::miniProgram($options);
$sns = $app->auth->session($code);
if(!empty($sns['openid'])){
$result = [
'openid' => $sns['openid'],
'nickname' => "新用户"
];
$loginret = Third::connect('miniapp', $result);
if ($loginret) {
$userinfo = $this->auth->getUserinfo();
$data = [
'user_id'=> $userinfo['user_id'],
'token' => $userinfo['token'],
];
$this->success(__('Logged in successful'), $data);
}else{
$this->error(Third::$error);
}
}else{
$this->error(Third::$error);
}
}catch (HttpException $e){
$this->error($e->getMessage());
}
}
/**
* 获取用户信息
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function info(){
$userModel = new \app\common\model\User();
$userInfo = $userModel
->alias("user")
->join("paotui_user_level","user.id=paotui_user_level.user_id","left")
->join("paotui_level","paotui_user_level.level_id=paotui_level.id","left")
->where(['user.id'=>$this->auth->id])->field("user.id,user.nickname,user.avatar,user.mobile,paotui_level.level_name")->find();
$this->success('请求成功',$userInfo);
}
/**
* 修改会员个人信息
*
* @ApiMethod (POST)
* @param string $avatar 头像地址
* @param string $nickname 昵称
*/
public function profile()
{
$user = $this->auth->getUser();
$nickname = $this->request->post('nickname');
$mobile = $this->request->post('mobile');
$avatar = $this->request->post('avatar', '', 'trim,strip_tags,htmlspecialchars');
$user->nickname = $nickname;
$user->mobile = $mobile;
$user->avatar = $avatar;
$user->save();
$this->success();
}
}