RoutineUser.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. if(!User::be(['uid'=>$uid])){
  42. $routineInfo = WechatUser::where('uid',$uid)->find();
  43. User::setRoutineUser($routineInfo);
  44. }else{
  45. User::updateWechatUser($routineInfo,$uid);
  46. }
  47. }else{
  48. $routineInfo['add_time'] = time();//用户添加时间
  49. $routineInfo = WechatUser::set($routineInfo);
  50. if(User::isUserSpread($routine['spid'])) {
  51. $res = User::setRoutineUser($routineInfo,$routine['spid']); //用户上级
  52. } else $res = User::setRoutineUser($routineInfo);
  53. $uid = $res->uid;
  54. }
  55. return $uid;
  56. }
  57. /**
  58. * 判断是否是小程序用户
  59. * @param int $uid
  60. * @return bool|int|string
  61. */
  62. public static function isRoutineUser($uid = 0){
  63. if(!$uid) return false;
  64. return WechatUser::where('uid',$uid)->where('user_type','routine')->count();
  65. }
  66. public static function isUserStatus($uid = 0){
  67. if(!$uid) return 0;
  68. $user = User::getUserInfo($uid);
  69. return $user['status'];
  70. }
  71. }