123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- <?php
- /**
- * Created by PhpStorm.
- * User: sicilon_IT
- * Date: 2019/12/7
- * Time: 16:12
- */
- namespace app\index\controller;
- use app\common\model\memodel;
- use think\Controller;
- //extends controller 为什么不能继承
- class Me extends Controller{
- public function add(){
- //获取参数
- // $userinfo['address']=('post.address');
- // $userinfo['avatar_url']=I('post.avatarUrl');
- // $userinfo['city']=I('post.city');
- // $userinfo['company']=I('post.company');
- // $userinfo['county']=I('post.county');
- // $userinfo['gender']=I('post.gender');
- // $userinfo['id']=I('post.id');
- // $userinfo['nick_name']=I('post.nickName');
- // $userinfo['open_id']=I('post.openid');
- // $userinfo['province']=I('post.province');
- // $userinfo['tel']=I('post.tel');
- // $userinfo['union_id']=I('post.unionId');
- //验证部分
- $userinfo = request() -> param();
- $userinfo['open_id']=$userinfo['openId'];
- $userinfo['avatar_url']=$userinfo['avatarUrl'];
- $userinfo['nick_name']=$userinfo['nickName'];
- $userinfo['create_date']=date('Y-m-d H:i:s',time());
- // $userinfo['nick_name']=$userinfo['nickName'];
- //var_dump($userinfo);
- //openid为空,返回403
- //修改一下,文档中说自动处理了大写转成下划线加小写字母
- if (!$userinfo['openId']){
- //return
- $add_res['code']='403';
- return json($add_res);
- }
- $metabel=new memodel();
- //先根据open_id判断是否存在,这个以后应当放到logic中
- $u_info=$metabel->getinfobyopenid($userinfo['open_id']);
- if (!$u_info){
- //如果为空就新增
- $id=$metabel->saveme($userinfo);
- $Resultdata['id']=$id;
- //存储之后再查询
- $new_info=$metabel->getinfobyopenid($userinfo['open_id']);
- $add_res['code']='200';
- $add_res['resultData']=$new_info;
- return json($add_res);
- }else{
- //如果有,就另一个处理逻辑,判断是否有电话,没有电话就返回
- //返回数据,前端判断
- if (!$u_info['tel']){
- //看传参中是否有手机,如果有,加上,再返回数据,如果没有,直接返回
- if (array_key_exists('tel',$userinfo)){
- //传参中有,则更新操作
- //tel是另外一个接口,此处后来应该修改
- }else{
- //传参中也没有手机,直接返回
- $add_res['code']='200';
- $add_res['resultData']=$u_info;
- return json($add_res);
- }
- }else{
- $add_res['code']='200';
- $add_res['resultData']=$u_info;
- return json($add_res);
- }
- }
- }
- //更新手机号用
- public function updatemetel(){
- $userinfo = request() -> param();
- // var_dump($userinfo);
- if ($userinfo['tel']){
- //有手机号,继续
- $metabel=new memodel();
- $openid='';
- if(array_key_exists('open_id',$userinfo)){
- $openid=$userinfo['open_id'];
- }else{
- $openid=$userinfo['openid'];
- }
- $metabel->updatetelbyoopenid($openid,$userinfo['tel']);
- $u_info=$metabel->getinfobyopenid($openid);
- $u_info['openid']=$u_info['open_id'];
- $u_info['openId']=$u_info['open_id'];
- $update_res['code']='200';
- $update_res['resultData']=$u_info;;
- }else{
- //无手机号,返回错误
- $update_res['code']='400';
- }
- return json($update_res);
- }
- /*
- * 20200221
- * steelxu
- * 只存入openid的
- */
- public function samplelogin(){
- //
- $userinfo = request() -> param();
- $openid=$userinfo['openId'];
- $mtable=new memodel();
- $rinfo=$mtable->getinfobyopenid($openid);
- if (!$rinfo){
- $insinfo['open_id']=$openid;
- //2010303
- $insinfo['create_date']=date('Y-m-d H:i:s');
- $insinfo['create_pin']=rand(0,1);
- //
- $rid=$mtable->insopenid($insinfo);
- if (array_key_exists('unionid',$userinfo)){
- $unionid=$userinfo['unionid'];
- $mtable->updunionidbyopenid($openid,$unionid);
- }
- $Resultdata['id']=$rid;
- $Resultdata['openId']=$openid;
- $Resultdata['openid']=$openid;
- $Resultdata['create_pin']=$insinfo['create_pin'];
- }else{
- $Resultdata=$rinfo;
- $Resultdata['openId']=$rinfo['open_id'];
- $Resultdata['openid']=$rinfo['open_id'];
- $Resultdata['create_pin']=$rinfo['create_pin'];
- }
- $res_r['code']=200;
- $res_r['resultData']=$Resultdata;
- return json($res_r);
- }
- public function updateme(){
- //验证部分
- $userinfo = request() -> param();
- if (array_key_exists('unionid',$userinfo)){
- $userinfo['union_id']=$userinfo['unionId'];
- }
- $userinfo['open_id']=$userinfo['openId'];
- $userinfo['avatar_url']=$userinfo['avatarUrl'];
- $userinfo['nick_name']=$userinfo['nickName'];
- $userinfo['create_date']=date('Y-m-d H:i:s',time());
- // $userinfo['nick_name']=$userinfo['nickName'];
- //var_dump($userinfo);
- //openid为空,返回403
- //修改一下,文档中说自动处理了大写转成下划线加小写字母
- if (!$userinfo['openId']){
- //return
- $add_res['code']='403';
- return json($add_res);
- }
- $metabel=new memodel();
- //先根据open_id判断是否存在,这个以后应当放到logic中
- $u_info=$metabel->getinfobyopenid($userinfo['open_id']);
- if (!$u_info){
- //如果为空就新增
- $id=$metabel->saveme($userinfo);
- $Resultdata['id']=$id;
- //存储之后再查询
- $new_info=$metabel->getinfobyopenid($userinfo['open_id']);
- $new_info['openid']=$new_info['open_id'];
- $new_info['openId']=$new_info['open_id'];
- $add_res['code']='200';
- $add_res['resultData']=$new_info;
- return json($add_res);
- }else{
- //如果已经有open_id,则判断是否授权了union_id,进行二级登录
- if (!$u_info['nick_name']){
- //数据表中无姓名,则未授权姓名,传参中有姓名,则更新后返回
- if (array_key_exists('unionId',$userinfo)){
- $update_arr['union_id']=$userinfo['unionId'];
- $update_arr['avatar_url']=$userinfo['avatarUrl'];
- $update_arr['nick_name']=$userinfo['nickName'];
- $update_arr['gender']=$userinfo['gender'];
- $update_arr['province']=$userinfo['province'];
- $update_arr['city']=$userinfo['city'];
- $update_arr['country']=$userinfo['country'];
- $update_arr['create_date']=date('Y-m-d H:i:s',time());
- $metabel->updateinfobyopenid($userinfo['open_id'],$update_arr);
- //重新获取,返回
- $u_info=$metabel->getinfobyopenid($userinfo['open_id']);
- $u_info['openid']=$u_info['open_id'];
- $u_info['openId']=$u_info['open_id'];
- $add_res['code']='200';
- $add_res['resultData']=$u_info;
- return json($add_res);
- }else{
- //无姓名,则更新直接返回,不影响使用,但下个功能不能使用
- $update_arr['avatar_url']=$userinfo['avatarUrl'];
- $update_arr['nick_name']=$userinfo['nickName'];
- $update_arr['gender']=$userinfo['gender'];
- $update_arr['province']=$userinfo['province'];
- $update_arr['city']=$userinfo['city'];
- $update_arr['country']=$userinfo['country'];
- $update_arr['create_date']=date('Y-m-d H:i:s',time());
- $metabel->updateinfobyopenid($userinfo['open_id'],$update_arr);
- //重新获取,返回
- $u_info=$metabel->getinfobyopenid($userinfo['open_id']);
- $u_info['openid']=$u_info['open_id'];
- $u_info['openId']=$u_info['open_id'];
- $add_res['code']='200';
- $add_res['resultData']=$u_info;
- return json($add_res);
- }
- }else{
- //数据表中有姓名,则判断有无电话,进行三级登录
- //如果有,就另一个处理逻辑,判断是否有电话,没有电话就返回
- //返回数据,前端判断
- if (!$u_info['tel']){
- //看传参中是否有手机,如果有,加上,再返回数据,如果没有,直接返回,目前不强制登录手机,
- if (array_key_exists('tel',$userinfo)){
- //传参中有,则更新操作
- //tel是另外一个接口,此处后来应该修改
- }else{
- //传参中也没有手机,直接返回
- $u_info['openid']=$u_info['open_id'];
- $u_info['openId']=$u_info['open_id'];
- $add_res['code']='200';
- $add_res['resultData']=$u_info;
- return json($add_res);
- }
- }else{
- //数据表中有手机,说明手机号已授权,直接返回
- $u_info['openid']=$u_info['open_id'];
- $u_info['openId']=$u_info['open_id'];
- $add_res['code']='200';
- $add_res['resultData']=$u_info;
- return json($add_res);
- }
- }
- }
- }
- }
|