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]; } 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, $username, $market_key, $db, $pdo) { // 首先验证指定的账号在全局用户信息中是否存在对应的记录 $user_exist = Sql::select('a.id') ->from('syweb_users a') ->where('a.openid=? and a.market_key=? and a.auth_type=?', $username, $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_exist = "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) { $insertData = array(); $insertData['main_account_id'] = ""; // 默认没有绑定主账户 $insertData['sid'] = $sid; $insertData['scode'] = $scode; $insertData['sid_expire_time'] = $sid_expire_time; $insertData['access_id'] = $access_id; $insertData['access_key'] = $access_key; $insertData['access_expire_time'] = $access_expire_time; $insertData['market_key'] = $market_key; $insertData['auth_type'] = $auth_type; $insertData['openid'] = $username; $insertData['market_jifen'] = 0; $insertData['create_time'] = TIMESTAMP; $id = Sql::insertInto('syweb_users')->values($insertData)->exec($pdo)->lastInsertId(); if (!$id) { return -1; } return $id; } else { // 假如当前username存在,则修改一条对应的全局用户记录 $updateData = array(); $updateData['sid'] = $sid; $updateData['scode'] = $scode; $updateData['sid_expire_time'] = $sid_expire_time; $updateData['access_id'] = $access_id; $updateData['access_key'] = $access_key; $updateData['access_expire_time'] = $access_expire_time; $updateData['auth_type'] = $auth_type; Sql::update('syweb_users')->setArgs($updateData)->where('openid=? and market_key=? and auth_type=?', $username, $market_key, $auth_type)->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"]; } }