from('syweb_users a,syweb_users_weixin b') ->where('b.uid=a.id and b.openid=? and a.market_key=?', $UId, $market_key) ->get($db, null); break; case AUTHTYPE_QQ: // QQ用户信息查询 $userInfo = Sql::select('a.*') ->from('syweb_users a,syweb_users_qq b') ->where('b.uid=a.id and b.openid=? and a.market_key=?', $UId, $market_key) ->get($db, null); break; case AUTHTYPE_JKX: // 聚开心会员信息查询 $userInfo = Sql::select('a.*') ->from('syweb_users a,syweb_users_jkx b') ->where('b.uid=a.id and b.username=? and a.market_key=?', $UId, $market_key) ->get($db, null); break; case AUTHTYPE_MEMBER: // 会员注册登录 $userInfo = Sql::select('a.*') ->from('syweb_users a,syweb_users_normal b') ->where('b.uid=a.id and b.username=? and a.market_key=?', $UId, $market_key) ->get($db, null); break; case AUTHTYPE_NIUNIUGAME: // 友乐牛牛注册登录 $userInfo = Sql::select('a.*') ->from('syweb_users a,syweb_users_ylnn b') ->where('b.uid=a.id and b.user_key=? and a.market_key=?', $UId, $market_key) ->get($db, null); break; default: break; } if (!empty($userInfo) && count($userInfo) > 0) return $userInfo[0]; else return null; } function get_wechat_by_user_id($market_key, $open_id, $union_id, $db) { if (!empty($union_id)) $userInfo = Sql::select('a.*') ->from('syweb_users a,syweb_users_weixin b') ->where('b.uid = a.id and a.market_key = ? and b.unionid = ?', $market_key, $union_id) ->get($db, null); else $userInfo = Sql::select('a.*') ->from('syweb_users a,syweb_users_weixin b') ->where('b.uid = a.id and a.market_key = ? and b.openid = ?', $market_key, $open_id) ->get($db, null); if (!empty($userInfo) && count($userInfo) > 0) return $userInfo[0]; else return null; } // 查询指定的openId微信用户是否存在 function getUserById($id, $db) { $userInfo = Sql::select('a.*') ->from('syweb_users a') ->where('a.id=?', $id) ->get($db, null); if (count($userInfo) > 0) { return $userInfo[0]; } return null; } // 根据UID查询微信粉丝详细信息 function getWeixinUserByUId($uid, $db) { $weixinUserInfo = Sql::select('a.*') ->from('syweb_users_weixin a') ->where('a.uid=?', $uid) ->get($db, null); if (count($weixinUserInfo) > 0) { return $weixinUserInfo[0]; } return null; } // 根据UID查询聚开心粉丝详细信息 function getJkxUserByUId($uid, $db) { $weixinUserInfo = Sql::select('a.*') ->from('syweb_users_jkx a') ->where('a.uid=?', $uid) ->get($db, null); if (count($weixinUserInfo) > 0) { return $weixinUserInfo[0]; } return null; } // 根据UID查询友乐牛牛粉丝详细信息 function getYlnnUserByUId($uid, $db) { $userInfo = Sql::select('a.*') ->from('syweb_users_ylnn a') ->where('a.uid=?', $uid) ->get($db, null); if (count($userInfo) > 0) { return $userInfo[0]; } return null; } // 根据UID查询微信粉丝详细信息 function getQqUserByUId($uid, $db) { $qqUserInfo = Sql::select('syweb_users_qq.*') ->from('syweb_users_qq') ->where('syweb_users_qq.uid=?', $uid) ->get($db, null); if (!empty($qqUserInfo) > 0 && count($qqUserInfo) > 0) { return $qqUserInfo[0]; } return null; } // 增加/更新用户信息 function updateUserInfo($scode, $auth_type, $open_id, $union_id, $market_key, $db, $pdo) { // 首先验证指定的账号在全局用户信息中是否存在对应的记录 if (!empty($union_id)) $user_exist = Sql::select('a.id') ->from('syweb_users a') ->where('a.unionid = ? and a.market_key = ? and a.auth_type = ?', $union_id, $market_key, $auth_type) ->get($db, null); else $user_exist = Sql::select('a.id') ->from('syweb_users a') ->where('a.openid = ? and a.market_key = ? and a.auth_type = ?', $open_id, $market_key, $auth_type) ->get($db, null); // 循环创建用户全局唯一ID(临时绑定,20分钟有效) $sid = random(32, false); while (true) { $sid_exist = Sql::select('a.sid') ->from('syweb_users a') ->where('a.sid=?', $sid) ->get($db, null); if ($sid_exist) $sid = random(32, false); else break; } // 循环创建access_id(长时间绑定,30天有效) $access_id = "gm_" . random(13, false); while (true) { $access_id_exist = Sql::select('a.sid') ->from('syweb_users a') ->where('a.access_id=?', $access_id) ->get($db, null); if ($access_id_exist) $access_id = "gm_" . random(13, false); else break; } $access_key = random(36, false); while (true) { $access_key_exist = Sql::select('a.sid') ->from('syweb_users a') ->where('a.access_key=?', $access_key) ->get($db, null); if ($access_key_exist) $access_key = random(36, false); else break; } //SID过期时间(默认2天内有效) $sid_expire_time = time() + (2 * 24 * 60 * 60); //AccessToken过期时间(默认两个月内有效) $access_expire_time = time() + (60 * 24 * 60 * 60); // 假如当前username不存在,则新增一条对应的全局用户记录 if (empty($user_exist) || count($user_exist) <= 0) { $data = array( 'main_account_id' => '', /// 默认没有绑定主账户 'sid' => $sid, 'scode' => $scode, 'sid_expire_time' => $sid_expire_time, 'access_id' => $access_id, 'access_key' => $access_key, 'access_expire_time' => $access_expire_time, 'market_key' => $market_key, 'auth_type' => $auth_type, 'openid' => $open_id, 'unionid' => $union_id, 'market_jifen' => 0, 'create_time' => TIMESTAMP, ); $id = Sql::insertInto('syweb_users')->values($data)->exec($pdo)->lastInsertId(); if (!$id) return -1; else return $id; } else { // 假如当前username存在,则修改一条对应的全局用户记录 $data = array( 'sid' => $sid, 'scode' => $scode, 'sid_expire_time' => $sid_expire_time, 'access_id' => $access_id, 'access_key' => $access_key, 'access_expire_time' => $access_expire_time, 'auth_type' => $auth_type, ); Sql::update('syweb_users')->setArgs($data)->where('id = ?', $user_exist[0]['id'])->exec($pdo); return $user_exist[0]['id']; } } // 更新微信用户信息 function updateWeixinUserInfo($weixinUserInfo, $db, $pdo) { $uid_exist = Sql::select('a.id') ->from('syweb_users_weixin a') ->where('a.uid=? and a.openid=?', $weixinUserInfo["uid"], $weixinUserInfo["openid"]) ->get($db, null); if (empty($uid_exist) || count($uid_exist) <= 0) { // 假如当前uid不存在 $insertData = array(); $insertData['uid'] = $weixinUserInfo["uid"]; $insertData['nickname'] = $weixinUserInfo["nickname"]; $insertData['sex'] = $weixinUserInfo["sex"]; $insertData['province'] = $weixinUserInfo["province"]; $insertData['city'] = $weixinUserInfo["city"]; $insertData['country'] = $weixinUserInfo["country"]; $insertData['headimgurl'] = $weixinUserInfo["headimgurl"]; $insertData['privilege'] = $weixinUserInfo["privilege"]; $insertData['subscribe'] = $weixinUserInfo["subscribe"]; $insertData['subscribe_time'] = $weixinUserInfo["subscribe_time"]; $insertData['openid'] = $weixinUserInfo["openid"]; $insertData['unionid'] = $weixinUserInfo["unionid"]; $id = Sql::insertInto('syweb_users_weixin')->values($insertData)->exec($pdo)->lastInsertId(); if (!$id) { return -1; } return $id; } else { $updateData = array(); $updateData['nickname'] = $weixinUserInfo["nickname"]; $updateData['sex'] = $weixinUserInfo["sex"]; $updateData['province'] = $weixinUserInfo["province"]; $updateData['city'] = $weixinUserInfo["city"]; $updateData['country'] = $weixinUserInfo["country"]; $updateData['headimgurl'] = $weixinUserInfo["headimgurl"]; $updateData['privilege'] = $weixinUserInfo["privilege"]; $updateData['subscribe'] = $weixinUserInfo["subscribe"]; $updateData['subscribe_time'] = $weixinUserInfo["subscribe_time"]; $updateData['unionid'] = $weixinUserInfo["unionid"]; Sql::update('syweb_users_weixin')->setArgs($updateData)->where('uid=? and openid=?', $weixinUserInfo["uid"], $weixinUserInfo["openid"])->exec($pdo); return $uid_exist["id"]; } } // 更新QQ用户信息 function updateQqUserInfo($qqUserInfo, $db, $pdo) { $uid_exist = Sql::select('syweb_users_qq.id') ->from('syweb_users_qq') ->where('syweb_users_qq.uid=? and syweb_users_qq.openid=?', $qqUserInfo["uid"], $qqUserInfo["openid"]) ->get($db, null); if (empty($uid_exist)) { // 假如当前uid不存在 $insertData = array(); $insertData['uid'] = $qqUserInfo["uid"]; $insertData['gender'] = $qqUserInfo["gender"]; $insertData['nickname'] = $qqUserInfo["nickname"]; $insertData['province'] = $qqUserInfo["province"]; $insertData['city'] = $qqUserInfo["city"]; $insertData['year'] = $qqUserInfo["year"]; $insertData['figureurl_qq_1'] = $qqUserInfo["figureurl_qq_1"]; $insertData['figureurl_qq_2'] = $qqUserInfo["figureurl_qq_2"]; $insertData['figureurl'] = $qqUserInfo["figureurl"]; $insertData['figureurl_1'] = $qqUserInfo["figureurl_1"]; $insertData['figureurl_2'] = $qqUserInfo["figureurl_2"]; $insertData['vip'] = $qqUserInfo["vip"]; $insertData['level'] = $qqUserInfo["level"]; $insertData['is_yellow_year_vip'] = $qqUserInfo["is_yellow_year_vip"]; $insertData['yellow_vip_level'] = $qqUserInfo["yellow_vip_level"]; $insertData['openid'] = $qqUserInfo["openid"]; $id = Sql::insertInto('syweb_users_qq')->values($insertData)->exec($pdo)->lastInsertId(); if (!$id) { return -1; } return $id; } else { $updateData = array(); $updateData['gender'] = $qqUserInfo["gender"]; $updateData['nickname'] = $qqUserInfo["nickname"]; $updateData['province'] = $qqUserInfo["province"]; $updateData['city'] = $qqUserInfo["city"]; $updateData['year'] = $qqUserInfo["year"]; $updateData['figureurl_qq_1'] = $qqUserInfo["figureurl_qq_1"]; $updateData['figureurl_qq_2'] = $qqUserInfo["figureurl_qq_2"]; $updateData['figureurl'] = $qqUserInfo["figureurl"]; $updateData['figureurl_1'] = $qqUserInfo["figureurl_1"]; $updateData['figureurl_2'] = $qqUserInfo["figureurl_2"]; $updateData['vip'] = $qqUserInfo["vip"]; $updateData['level'] = $qqUserInfo["level"]; $updateData['is_yellow_year_vip'] = $qqUserInfo["is_yellow_year_vip"]; $updateData['yellow_vip_level'] = $qqUserInfo["yellow_vip_level"]; Sql::update('syweb_users_qq')->setArgs($updateData)->where('uid=? and openid=?', $qqUserInfo["uid"], $qqUserInfo["openid"])->exec($pdo); return $uid_exist["id"]; } } // 更新聚开心用户信息 function updateJkxUserInfo($userInfo, $db, $pdo) { $uid_exist = Sql::select('a.id') ->from('syweb_users_jkx a') ->where('a.uid=? and a.username=?', $userInfo["uid"], $userInfo["username"]) ->get($db, null); if (empty($uid_exist) || count($uid_exist) <= 0) { // 假如当前uid不存在 $insertData = array(); $insertData['uid'] = $userInfo["uid"]; $insertData['level'] = $userInfo["level"]; $insertData['enum'] = $userInfo["enum"]; $insertData['realname'] = $userInfo["realname"]; $insertData['tel'] = $userInfo["tel"]; $insertData['headimgurl'] = $userInfo["headimgurl"]; $insertData['username'] = $userInfo["username"]; $insertData['integral'] = $userInfo["integral"]; $id = Sql::insertInto('syweb_users_jkx')->values($insertData)->exec($pdo)->lastInsertId(); if (!$id) { return -1; } return $id; } else { $updateData = array(); $updateData['level'] = $userInfo["level"]; $updateData['enum'] = $userInfo["enum"]; $updateData['realname'] = $userInfo["realname"]; $updateData['tel'] = $userInfo["tel"]; $updateData['headimgurl'] = $userInfo["headimgurl"]; $updateData['integral'] = $userInfo["integral"]; Sql::update('syweb_users_jkx')->setArgs($updateData)->where('uid=? and username=?', $userInfo["uid"], $userInfo["username"])->exec($pdo); return $uid_exist["id"]; } } // 更新友乐牛牛用户信息 function updateYlnnUserInfo($userInfo, $db, $pdo) { $uid_exist = Sql::select('a.id') ->from('syweb_users_ylnn a') ->where('a.uid=? and a.user_key=?', $userInfo["uid"], $userInfo["user_key"]) ->get($db, null); if (empty($uid_exist) || count($uid_exist) <= 0) { // 假如当前uid不存在 $insertData = array(); $insertData['uid'] = $userInfo["uid"]; $insertData['user_key'] = $userInfo["user_key"]; $insertData['agent_key'] = $userInfo["agent_key"]; $insertData['game_key'] = $userInfo["game_key"]; $insertData['player_key'] = $userInfo["player_key"]; $insertData['headimgurl'] = $userInfo["headimgurl"]; $insertData['nickname'] = $userInfo["nickname"]; $id = Sql::insertInto('syweb_users_ylnn')->values($insertData)->exec($pdo)->lastInsertId(); if (!$id) { return -1; } return $id; } else { $updateData = array(); $updateData['agent_key'] = $userInfo["agent_key"]; $updateData['game_key'] = $userInfo["game_key"]; $updateData['player_key'] = $userInfo["player_key"]; $updateData['headimgurl'] = $userInfo["headimgurl"]; $updateData['nickname'] = $userInfo["nickname"]; Sql::update('syweb_users_ylnn')->setArgs($updateData)->where('uid=? and user_key=?', $userInfo["uid"], $userInfo["user_key"])->exec($pdo); return $uid_exist["id"]; } }