⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 auction.cpp

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 CPP
📖 第 1 页 / 共 4 页
字号:

////////////////////////////////////////////////////////////////////////////////////////////////////////////
//俺牢利 芭贰 府胶飘 矫累
////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CAuction::RecvCMD_MERCHANT_DIRECT_EXCHANGE_LIST_REQUEST(const int iCn,t_packet &p)
{
	SEARCHRESULTLIST FindResult;
	memset(&FindResult ,0, sizeof(SEARCHRESULTLIST));
	FindResult.iCn = p.u.MerchantExchangeRequest.iCn;
	FindResult.iKey = p.u.MerchantExchangeRequest.iKey;//021113 lsw
	memcpy(FindResult.szName,p.u.MerchantExchangeRequest.szMyName,20);
	char szQuery[1000] ={0,};

	if(p.u.MerchantExchangeRequest.iKey)//牢郸胶 困牢啊 酒贰牢啊.
	{
	sprintf(szQuery,"EXEC MerchantItemSearchDirectExchage '%s', %d, %d, %d, %d",
		p.u.MerchantExchangeRequest.szSellerName,
		IS_END_ALL_RIGHT,
		IS_END_ALL_RIGHT,
		IS_END_ALL_RIGHT,
		p.u.MerchantExchangeRequest.iIndex);
	}
	else
	{
	sprintf(szQuery,"EXEC MerchantItemSearchDirectExchageInverse '%s', %d, %d, %d, %d",
		p.u.MerchantExchangeRequest.szSellerName,
		IS_END_ALL_RIGHT,
		IS_END_ALL_RIGHT,
		IS_END_ALL_RIGHT,
		p.u.MerchantExchangeRequest.iIndex);
	}
	if(SearchAuctionItem(&FindResult,szQuery))
	{
		t_packet rp;
		rp.h.header.type = CMD_MERCHANT_DIRECT_EXCHANGE_LIST_REQUSET_RESULT;
		rp.h.header.size = sizeof(SEARCHRESULTLIST);
		rp.u.SearchResultList= FindResult;
		::QueuePacket(connections,iCn,&rp,1);
	}
	return;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
//俺牢利 芭贰 府胶飘 场
////////////////////////////////////////////////////////////////////////////////////////////////////////////


//<! BBD 040226	芭贰啊 辆丰登芭唱 殿废秒家肺 鞘夸绝绰 饭内靛甫 昏力窍绰 扁瓷 眠啊
void CAuction::RecvCMD_MERCHANT_RECORD_DEL_CANCLE(const int iCn,t_packet &p)
{
	HSTMT		hStmt = NULL;
	RETCODE		retCode;
	SDWORD		cbValue;
	char szQuery[255] ={0,};
	SELLERITEMDELETE *pSID = &p.u.SellerItemDelete;
	// 促澜 牢磊甫 概俺函荐肺 窍绰 历厘橇肺矫历甫 惯悼窍咯 瘤款促
	// (No, name = 颇绰仇, IsEnd = IS_END_DELETE_COMPLETE)
	::SQLAllocStmt(hDBC, &hStmt);
	::memset(szQuery, 0L, sizeof(szQuery));
	sprintf(szQuery,"EXEC MerchantDelbyCancel %d, '%s' , %d", pSID->iIndex, pSID->szName , IS_END_DELETE_COMPLETE);

	retCode = SQLExecDirect(hStmt, (UCHAR *)szQuery, SQL_NTS);
	if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
	{
		// 孽府 己傍
		// 瘤况柳扒瘤 酒囱瘤俊 蝶扼 瘤况脸栏搁 甘辑滚茄抛 舅妨具 茄促
		retCode = SQLFetch(hStmt);
		if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
		{
			int count;
			retCode = ::SQLGetData(hStmt, 1, SQL_C_LONG,	&count,			0, &cbValue);

			if(count == 1)		// 1俺狼 饭内靛啊 昏力 登菌促
			{
				// 趣 昏力沁促绊 甘辑滚俊霸 舅妨具 且鳖? 肺弊档 巢扁绊 吭绰单?
//				p.h.header.type = CMD_MERCHANT_RECORD_DEL_CANCLE; //饭内靛 昏力沁促绊 舅赴促
//				::QueuePacket(connections,cn,&p,1);
			}
			else
			{
				// 秦寸 饭内靛啊 绝促 BBD啊 眠啊窍扁 捞傈何盒俊辑 捞固 巩力啊 惯积沁促
				// 魄概秒家窍促啊 唱艾促芭唱 扁鸥殿殿狼 捞蜡肺 力措肺 秒家啊 臼夌促
			}

			::SQLFreeStmt(hStmt, SQL_DROP);
			return;
		}
	}
	else
	{
		// 捞惑炔篮 孽府 俊矾
		MyLog(0,"Query Failed");
		::SQLFreeStmt(hStmt, SQL_DROP);
		return;
	}


}

void CAuction::RecvCMD_MERCHANT_RECORD_DEL_COMPLETE(const int iCn,t_packet &p)
{
	HSTMT		hStmt = NULL;
	RETCODE		retCode;
	SDWORD		cbValue;
	char szQuery[255] ={0,};
	MERCHANTRESULTTAKE *pMRT = &p.u.MerchantResultTake;

	// 促澜 牢磊甫 概俺函荐肺 窍绰 历厘橇肺矫历甫 惯悼窍咯 瘤款促
	// (No, name = 颇绰仇捞唱 荤绰仇, IsEnd = IS_END_WAIT_TAKE, SellerTake = IS_END_DELETE_COMPLETE, BuyerTake = IS_END_DELETE_COMPLETE)
	if(pMRT->iKey == 100|| pMRT->iKey == 101)
	{
		::SQLAllocStmt(hDBC, &hStmt);
		::memset(szQuery, 0L, sizeof(szQuery));
		sprintf(szQuery,"EXEC MerchantDelbyComplete %d, '%s', %d, %d, %d"//牢郸胶,捞抚, 
			,pMRT->iIndex, pMRT->szMyName, IS_END_WAIT_TAKE, IS_END_DELETE_COMPLETE, IS_END_DELETE_COMPLETE);

        retCode = SQLExecDirect(hStmt, (UCHAR *)szQuery, SQL_NTS);
		if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
		{
			// 孽府 己傍
			retCode = SQLFetch(hStmt);
			if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
			{
				int count;
				retCode = ::SQLGetData(hStmt, 1, SQL_C_LONG,	&count,			0, &cbValue);

				if(count == 1)		// 1俺狼 饭内靛啊 昏力 登菌促
				{
					// 趣 昏力沁促绊 甘辑滚俊霸 舅妨具 且鳖? 肺弊档 巢扁绊 吭绰单?
//					p.h.header.type = CMD_MERCHANT_RECORD_DEL_COMPLETE; //饭内靛 昏力沁促绊 舅赴促
//					::QueuePacket(connections,cn,&p,1);
				}
				else
				{
					// 秦寸 饭内靛啊 绝促
					// 酒流 瘤快扁俊绰 炼扒捞 面盒摹 给窍促
				}

				::SQLFreeStmt(hStmt, SQL_DROP);
				return;
			}
			else
			{
				// 捞惑炔篮 孽府 俊矾
				MyLog(0,"Query Failed");
				::SQLFreeStmt(hStmt, SQL_DROP);
				return;
			}
		}
		else
		{
			// 捞惑炔篮 孽府 俊矾
			MyLog(0,"Query Failed");
			::SQLFreeStmt(hStmt, SQL_DROP);
			return;
		}
	}

}
//> BBD 040226	芭贰啊 辆丰登芭唱 殿废秒家肺 鞘夸绝绰 饭内靛甫 昏力窍绰 扁瓷 眠啊
//<!  BBD 040303 归诀抛捞喉狼 酒捞袍 府胶飘 夸没
void CAuction::RecvCMD_MERCHANT_BACKUP_LIST_REQUEST(const int iCn,t_packet &p)
{
	short int server_id = p.u.kein.send_db_direct_map.server_id;
	SELLERITEMREQUEST *pData = (SELLERITEMREQUEST*)p.u.kein.send_db_direct_map.data;
	

	SEARCHRESULTLIST FindResult;
	memset(&FindResult ,0, sizeof(SEARCHRESULTLIST));
	FindResult.iCn = pData->iCn;
	FindResult.iKey =pData->iKey;
	memcpy(FindResult.szName,pData->szName,20);

	char szQuery[255] ={0,};
	if(FindResult.iKey)
	{
		sprintf(szQuery,"Exec MerchantBackupListSearch %d, %s", FindResult.iKey, FindResult.szName);
			
	}
	else
	{
//		sprintf(szQuery,"EXEC MerchantResultItemSearchInverse %d,'%s',%d",
//			p.u.SellerItemRequest.iIndex, szName,IS_END_WAIT_TAKE);//捞抚苞 IsEnd 绰 0 牢巴阑 啊廉可聪促.
	}
	if(SearchAuctionItem(&FindResult,szQuery))
	{
		DirectClient( CMD_MERCHANT_BACKUP_LIST_RESPONSE, server_id, iCn, &FindResult, sizeof( SEARCHRESULTLIST ) );
	}
}
//>  BBD 040303 归诀抛捞喉狼 酒捞袍 府胶飘 夸没
//<! BBD 040303 归诀抛捞喉狼 酒捞袍 瘤鞭 夸没
void CAuction::RecvCMD_MERCHANT_BACKUP_TAKE_REQUEST(const int iCn,t_packet &p)
{
	short int server_id = p.u.kein.send_db_direct_map.server_id;
	t_MerchantResultTake *pData = (t_MerchantResultTake*)p.u.kein.send_db_direct_map.data;
	MERCHANTRESULTTAKE *pMRT = &p.u.MerchantResultTake;

	char szQuery[255] ={0,};
	sprintf(szQuery,"Exec MerchantBackupByNoName %d, %s", pData->iIndex, pData->szMyName);

	SEARCHRESULTLIST FindResult;
	memset(&FindResult, 0L, sizeof(FindResult));

	if(!SearchAuctionItem(&FindResult,szQuery))	// 罐篮 沥焊吝 index逞滚客 捞抚俊 狼粮窍咯 八祸茄第
	{
		MyLog(0,"This Query Failed : %s", szQuery);		// 捞惑炔篮 孽府 俊矾
		return;	// 孽府 角菩促
	}
	SEARCHRESULT * pRecord = &(FindResult.ResultList[0]);

	// 殿废秒家啊瓷档 酒聪绊 拱扒茫扁 措扁惑怕档 酒聪扼搁
	if(pRecord->iIsEnd != IS_END_ALL_RIGHT && pRecord->iIsEnd != IS_END_WAIT_TAKE)
	{
		return;		// 捞繁仇捞 绢纳 咯鳖瘤 吭唱?
	}

	pMRT->iKey = pRecord->iIsEnd;	// 捞锭绰 iKey甫 IsEnd侩档肺 静磊

	memset(szQuery, 0L, sizeof(szQuery));
	if(strcmp(pData->szMyName, pRecord->szSellerName))		// 捞抚栏肺 buyer牢磊 seller牢瘤 备盒窍绊
	{		// Buyer焙...
		if(pRecord->iBuyerTake != IS_END_ALL_RIGHT)
		{
			return;			// 静国 冈备 肚 媚冈栏妨备?
		}
		sprintf(szQuery, "Exec MerchantBackupTakeUpdate %d, 1, %d", pRecord->iIndex, IS_END_GIVIING);
	}
	else
	{		// Seller焙...
		if(pRecord->iSellerTake != IS_END_ALL_RIGHT)
		{
			return;			// 静国 冈备 肚 媚冈栏妨备?
		}
		sprintf(szQuery, "Exec MerchantBackupTakeUpdate %d, 0, %d", pRecord->iIndex, IS_END_GIVIING);
	}
	// 鞘靛甫 诀单捞飘 矫难初磊	...Take 鞘靛俊 IS_END_GIVIING肺 捞仇捞 瘤鞭吝捞扼绰 钎矫 悸泼饶
	{
		HSTMT		hStmt = NULL;
		RETCODE		retCode;
		::SQLAllocStmt(hDBC, &hStmt);
		retCode = SQLExecDirect(hStmt, (UCHAR *)szQuery, SQL_NTS);
		if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
		{
		}
		else
		{
			MyLog(0,"This Query Failed : %s", szQuery);		// 捞惑炔篮 孽府 俊矾
		}
		::SQLFreeStmt(hStmt, SQL_DROP);
	}
	// 单捞鸥 悸泼饶
	pMRT->dwSellValue = pRecord->iSellValue;
	pMRT->iBuyerTake = pRecord->iBuyerTake;
	pMRT->iCn = pData->iCn;
	pMRT->iIndex = pRecord->iIndex;
	pMRT->iSellerTake = pRecord->iSellerTake;
	memcpy(&pMRT->SellItem, &pRecord->m_ResultItem, sizeof(ItemAttr));
	memcpy(pMRT->szBuyerName , pRecord->szBuyerName, sizeof(pMRT->szBuyerName));
	memcpy(pMRT->szMyName , pData->szMyName, sizeof(pMRT->szMyName));
	memcpy(pMRT->szSellerName , pRecord->szSellerName, sizeof(pMRT->szMyName));

	// 甘辑滚肺 瘤鞭窍扼绊 舅赴促
	p.h.header.type = CMD_MERCHANT_BACKUP_TAKE_REQUEST;
	p.h.header.size	= sizeof(MERCHANTRESULTTAKE);		// BBD 040308
	::QueuePacket(connections,iCn,&p,1);
	
}

void CAuction::RecvCMD_MERCHANT_BACKUP_TAKE_RESPONSE(const int iCn,t_packet &p)
{
	MERCHANTRESULTTAKE *pMRT = &p.u.MerchantResultTake;

	char szQuery[255] ={0,};
	switch(pMRT->iKey)
	{
	case 101://魄概磊 瘤鞭 己傍
		{
			sprintf(szQuery, "Exec MerchantBackupTakeUpdate %d, 0, %d", pMRT->iIndex, IS_END_DELETE_COMPLETE);
		}break;
	case 100://备概磊 瘤鞭 己傍
		{
			sprintf(szQuery, "Exec MerchantBackupTakeUpdate %d, 1, %d", pMRT->iIndex, IS_END_DELETE_COMPLETE);
		}break;
	case 11://魄概磊 瘤鞭 角菩
		{
			sprintf(szQuery, "Exec MerchantBackupTakeUpdate %d, 0, %d", pMRT->iIndex, IS_END_ALL_RIGHT);
		}break;
	case 10://备概磊 瘤鞭 角菩
		{
			sprintf(szQuery, "Exec MerchantBackupTakeUpdate %d, 1, %d", pMRT->iIndex, IS_END_ALL_RIGHT);
		}break;
	default:
		{
		}break;
	}

	// 绢骂登菌扒 孽府绰 角青窍绊
	HSTMT		hStmt = NULL;
	RETCODE		retCode;
	::SQLAllocStmt(hDBC, &hStmt);
	retCode = SQLExecDirect(hStmt, (UCHAR *)szQuery, SQL_NTS);
	if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
	{
	}
	else
	{
		MyLog(0,"This Query Failed : %s", szQuery);		// 捞惑炔篮 孽府 俊矾
	}
	::SQLFreeStmt(hStmt, SQL_DROP);

	if(pMRT->iKey >= 100)	// 捞仇甸篮 己傍茄仇甸 饭内靛犬牢捞 鞘夸窍促
	{
		// 捞 饭内靛啊 瘤匡荐 乐绰瘤 犬牢茄促
		MerchantBackup_Check_and_Delete(pMRT->iIndex);
	}

	// 努扼捞攫飘俊霸 府胶飘 促矫焊霸 朝府绊
	SELLERITEMREQUEST data;
	data.iCn = pMRT->iCn;
	strcpy(data.szName, pMRT->szMyName);
	data.iIndex = 0;
	data.iKey = 1;
	p.u.kein.send_db_direct_map.server_id = pMRT->iCn;

	memcpy(&(p.u.kein.send_db_direct_map.data), &data, sizeof(SELLERITEMREQUEST));

	RecvCMD_MERCHANT_BACKUP_LIST_REQUEST(iCn, p);
}

void CAuction::MerchantBackup_Check_and_Delete(int iIndex)
{
	HSTMT		hStmt = NULL;
	RETCODE		retCode;
	char szQuery[255] ={0,};

	sprintf(szQuery, "MerchantBackupRecordDelete %d", iIndex);
	::SQLAllocStmt(hDBC, &hStmt);
	retCode = SQLExecDirect(hStmt, (UCHAR *)szQuery, SQL_NTS);
	if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
	{
	}
	else
	{
		MyLog(0,"This Query Failed : %s", szQuery);		// 捞惑炔篮 孽府 俊矾
	}
	::SQLFreeStmt(hStmt, SQL_DROP);
}


//> BBD 040303 归诀抛捞喉狼 酒捞袍 瘤鞭 夸没

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -