RoutineUser.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. *
  4. * @author: xaboy<365615158@qq.com>
  5. * @day: 2017/12/21
  6. */
  7. namespace app\routine\model\user;
  8. use basic\ModelBasic;
  9. use traits\ModelTrait;
  10. use app\routine\model\user\User;
  11. use app\routine\model\user\WechatUser;
  12. class RoutineUser extends ModelBasic
  13. {
  14. use ModelTrait;
  15. /**
  16. * 小程序创建用户后返回uid
  17. * @param $routineInfo
  18. * @return mixed
  19. */
  20. public static function routineOauth($routine){
  21. $routineInfo['nickname'] = $routine['nickName'];//姓名
  22. $routineInfo['sex'] = $routine['gender'];//性别
  23. $routineInfo['language'] = $routine['language'];//语言
  24. $routineInfo['city'] = $routine['city'];//城市
  25. $routineInfo['province'] = $routine['province'];//省份
  26. $routineInfo['country'] = $routine['country'];//国家
  27. $routineInfo['headimgurl'] = $routine['avatarUrl'];//头像
  28. // $routineInfo[''] = $routine['code'];//临时登录凭证 是获取用户openid和session_key(会话密匙)
  29. $routineInfo['routine_openid'] = $routine['routine_openid'];//openid
  30. $routineInfo['session_key'] = $routine['session_key'];//会话密匙
  31. $routineInfo['unionid'] = $routine['unionid'];//用户在开放平台的唯一标识符
  32. $routineInfo['user_type'] = 'routine';//用户类型
  33. // 判断unionid 存在根据unionid判断
  34. if($routineInfo['unionid'] != '' && WechatUser::be(['unionid'=>$routineInfo['unionid']])){
  35. WechatUser::edit($routineInfo,$routineInfo['unionid'],'unionid');
  36. $uid = WechatUser::where('unionid',$routineInfo['unionid'])->value('uid');
  37. User::updateWechatUser($routineInfo,$uid);
  38. }else if(WechatUser::be(['routine_openid'=>$routineInfo['routine_openid']])){ //根据小程序openid判断
  39. WechatUser::edit($routineInfo,$routineInfo['routine_openid'],'routine_openid');
  40. $uid = WechatUser::where('routine_openid',$routineInfo['routine_openid'])->value('uid');
  41. User::updateWechatUser($routineInfo,$uid);
  42. }else{
  43. $routineInfo['add_time'] = time();//用户添加时间
  44. $routineInfo = WechatUser::set($routineInfo);
  45. if(User::isUserSpread($routine['spid'])) {
  46. $res = User::setRoutineUser($routineInfo,$routine['spid']); //用户上级
  47. } else $res = User::setRoutineUser($routineInfo);
  48. $uid = $res->uid;
  49. }
  50. return $uid;
  51. }
  52. /**
  53. * 判断是否是小程序用户
  54. * @param int $uid
  55. * @return bool|int|string
  56. */
  57. public static function isRoutineUser($uid = 0){
  58. if(!$uid) return false;
  59. return WechatUser::where('uid',$uid)->where('user_type','routine')->count();
  60. }
  61. public static function isUserStatus($uid = 0){
  62. if(!$uid) return 0;
  63. $user = User::getUserInfo($uid);
  64. return $user['status'];
  65. }
  66. }