{
//填充玩家信息
stPlayer.SetUsername(obj.getStringField("name"));
stPlayer.SetPassword(obj.getStringField("passwd"));
stPlayer.SetPlayerID((PlayerID_t)obj.getField("id").number());
}
int CDataConvertUtil::ConvertPlayer2BSONObj(const CPlayer& stPlayer, mongo::BSONObjBuilder& obj)
{
//插入数据
obj.append("name", stPlayer.GetUsername().Get());
obj.append("passwd",stPlayer.GetPassword().Get());
obj.append("id", stPlayer.GetPlayerID());
obj.appendNumber("act_role_id", stPlayer.GetActiveRoleId());
}
int CDataOutInf::InsertPlayer(const CPlayer& stPlayer)
{
//插入数据
mongo::BSONObjBuilder obj;
int iRet = CDataConvertUtil::ConvertPlayer2BSONObj(stPlayer, obj);
if (ERET_OK != iRet)
{
VD_ERROR(("CDataConvertUtil::ConvertPlayer %u 2BSONObj failed !", stPlayer.GetPlayerID()));
return iRet;
}
//插入数据
iRet = P_DB_MGR->Insert("gamedb.player", obj);
if (ERET_OK != iRet)
{
VD_ERROR(("insert player %u data to db failed !", stPlayer.GetPlayerID()));
return iRet;
}
return ERET_OK;
}
int CDataOutInf::UpdatePlayer(const CPlayer& stPlayer)
{
mongo::BSONObjBuilder obj;
int iRet = CDataConvertUtil::ConvertPlayer2BSONObj(stPlayer, obj);
if (ERET_OK != iRet)
{
VD_ERROR(("CDataConvertUtil::ConvertPlayer %u 2BSONObj failed !", stPlayer.GetPlayerID()));
return iRet;
}
iRet = P_DB_MGR->Update("gamedb.player", QUERY("id" << stPlayer.GetPlayerID()), obj);
if (ERET_OK != iRet)
{
VD_ERROR(("update player %u data to db failed !", stPlayer.GetPlayerID()));
return iRet;
}
return ERET_OK;
}
int CDataOutInf::GetPlayer(const PlayerID_t idPlayer)
{
//从mongo db 获取玩家数据
auto_ptr<mongo::DBClientCursor> cursor = P_DB_MGR->GetInstance()->query("gamedb.player",QUERY("id" << idPlayer));
while (cursor->more())
{
mongo::BSONObj p = cursor->next();
string name = p.getStringField("name");
string id = p.getStringField("id");
}
return ERET_OK;
}
int CDataOutInf::RemoveHumanRole(const RoleInstID_t idRole)
{
int iRet = P_DB_MGR->Remove("gamedb.role", QUERY("id" << (long long)idRole));
if (ERET_OK != iRet)
{
VD_ERROR(("remove role %lu data from db failed !", idRole));
return iRet;
}
return ERET_OK;
}