UserBehavior.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. /**
  3. *
  4. * @author: xaboy<365615158@qq.com>
  5. * @day: 2017/11/25
  6. */
  7. namespace behavior\wechat;
  8. use app\wap\model\user\User;
  9. use app\wap\model\user\WechatUser;
  10. use think\Cookie;
  11. use think\Request;
  12. class UserBehavior
  13. {
  14. /**
  15. * 微信授权成功后
  16. * @param $userInfo
  17. */
  18. public static function wechatOauthAfter($openid,$wechatInfo)
  19. {
  20. // echo "调试中";
  21. // var_dump($wechatInfo);
  22. $wechatInfo['nickname'] = filterEmoji($wechatInfo['nickname']);
  23. Cookie::set('is_login',1);
  24. if(isset($wechatInfo['unionid']) && $wechatInfo['unionid'] != '' && WechatUser::be(['unionid'=>$wechatInfo['unionid']])){
  25. WechatUser::edit($wechatInfo,$wechatInfo['unionid'],'unionid');
  26. $uid = WechatUser::where('unionid',$wechatInfo['unionid'])->value('uid');
  27. if(!User::be(['uid'=>$uid])){
  28. $wechatInfo = WechatUser::where('uid',$uid)->find();
  29. User::setWechatUser($wechatInfo);
  30. }else{
  31. User::updateWechatUser($wechatInfo,$uid);
  32. }
  33. }else if(WechatUser::be(['openid'=>$wechatInfo['openid']])){
  34. WechatUser::edit($wechatInfo,$wechatInfo['openid'],'openid');
  35. User::updateWechatUser($wechatInfo,WechatUser::openidToUid($wechatInfo['openid']));
  36. }else{
  37. $wechatInfo = WechatUser::set($wechatInfo);
  38. User::setWechatUser($wechatInfo);
  39. }
  40. User::where('uid',WechatUser::openidToUid($openid))
  41. ->limit(1)->update(['last_time'=>time(),'last_ip'=>Request::instance()->ip()]);
  42. }
  43. }