Files
2022-10-26 12:25:11 +08:00

178 lines
4.8 KiB
C++

#pragma once
#ifndef __DBPROXY_DBUNIT_RANK_REPORTER_QUERY_H
#define __DBPROXY_DBUNIT_RANK_REPORTER_QUERY_H
#include "QueryObjects/StructInQuery.h"
// implemented by _NA000000_110218_RANK_REPORTER_IN_DBUNIT
namespace batch_unit {
;
#define MAX_GET_ITEM_ROWS_PER_PAGE (2000)
};
//USP_GetItemListForGuildWare
//USP_GetItemListForInven
//USP_GetItemListForWare
// 1: Inventory + Equipment, 2: Warehouse, 3: Guild warehouse
class Query_GetItemList : public QueryResult
{
__DECL_SAFECUSTOMPOOL_PTR(Query_GetItemList)
public:
enum
{
PARAM_ROW_NUM = 1,
PARAM_COL_NUM = 1,
RESULT_ROW_NUM = MAX_GET_ITEM_ROWS_PER_PAGE,
RESULT_COL_NUM = 5,
};
struct sQUERY_PARAM
{
int query_page;
int end_page;
} parameter_[PARAM_ROW_NUM];
struct sQUERY_RESULT
{
int guid;
short version;
int item_code;
short dura_or_num;
uint8_t option_stream[sizeof(OPTIONPART)];
} query_result_[RESULT_ROW_NUM];
ULONG uLength[RESULT_COL_NUM];
_BEGIN_PARAM_DATA(sQUERY_PARAM, parameter_, PARAM_COL_NUM)
//_BINDING_PARAM(0, query_page, SQL_PARAM_INPUT)
//_BINDING_PARAM(1, end_page, SQL_PARAM_OUTPUT)
_BINDING_PARAM(0, end_page, SQL_PARAM_OUTPUT)
_END_PARAM_DATA();
_BEGIN_BINDING_DATA(sQUERY_RESULT, query_result_, uLength, RESULT_ROW_NUM, RESULT_COL_NUM)
_BINDING_COLUMN(0, guid)
_BINDING_COLUMN(1, item_code)
_BINDING_COLUMN(2, dura_or_num)
_BINDING_COLUMN(3, version)
_BINDING_COLUMN_PTR(4, option_stream)
_END_BINDING_DATA();
// 결과 처리는 Record반환 개수에 의존한다.
void SetQueriedPage(int queried_page) {
queried_page_ = queried_page;
}
int QueriedPage() const {
return queried_page_;
}
public:
int queried_page_;
};
//==================================================================================================
#if !defined(_JAPAN)
//USP_SetRankReportForGuildWare
//USP_SetRankReportForInven
//USP_SetRankReportForWare
class Query_SetRankReport : public QueryResult
{
__DECL_SAFECUSTOMPOOL_PTR(Query_SetRankReport);
public:
enum
{
PARAM_ROW_NUM = 1,
PARAM_COL_NUM = 11,
};
struct sQUERY_PARAM
{
int guid;
// RANK_E = 0, <- NONE
// RANK_D, RANK_C, RANK_B, RANK_MA, RANK_A, RANK_PA, RANK_MS, RANK_S, RANK_PS
short rank_array[10]; // [0]:unused, [1]~[9]
} parameter_[PARAM_ROW_NUM];
//struct sQUERY
//{
//
//} result_[RESULT_ROW_NUM];
//ULONG uLength[RESULT_COL_NUM];
_BEGIN_PARAM_DATA(sQUERY_PARAM, parameter_, PARAM_COL_NUM)
_BINDING_PARAM(0, guid, SQL_PARAM_INPUT)
_BINDING_PARAM(1, rank_array[1], SQL_PARAM_INPUT) // RANK_D
_BINDING_PARAM(2, rank_array[2], SQL_PARAM_INPUT) // RANK_C
_BINDING_PARAM(3, rank_array[3], SQL_PARAM_INPUT) // RANK_B
_BINDING_PARAM(4, rank_array[4], SQL_PARAM_INPUT) // RANK_MA
_BINDING_PARAM(5, rank_array[5], SQL_PARAM_INPUT) // RANK_A
_BINDING_PARAM(6, rank_array[6], SQL_PARAM_INPUT) // RANK_PA
_BINDING_PARAM(7, rank_array[7], SQL_PARAM_INPUT) // RANK_MS
_BINDING_PARAM(8, rank_array[8], SQL_PARAM_INPUT) // RANK_S
_BINDING_PARAM(9, rank_array[9], SQL_PARAM_INPUT) // RANK_PS
_BINDING_PARAM(10, rank_array[0], SQL_PARAM_INPUT) // is_accessory
_END_PARAM_DATA();
_INIT_BINDING_DATA();
public:
void* node_pointer_;
};
//==================================================================================================
#elif defined(_JAPAN)
//==================================================================================================
namespace batch_unit {
;
struct RankReportNode
{
int guid;
int item_code;
// RANK_E = 0, <- NONE, not reporting
// RANK_D, RANK_C, RANK_B, RANK_MA, RANK_A, RANK_PA, RANK_MS, RANK_S, RANK_PS
short rank_grade;
};
}; //end of namespace
//USP_SetRankReportForGuildWare
//USP_SetRankReportForInven
//USP_SetRankReportForWare
class Query_SetRankReport : public QueryResult
{
__DECL_SAFECUSTOMPOOL_PTR(Query_SetRankReport);
public:
enum
{
PARAM_ROW_NUM = 1,
PARAM_COL_NUM = 3,
};
struct sQUERY_PARAM : batch_unit::RankReportNode
{
} parameter_[PARAM_ROW_NUM];
_BEGIN_PARAM_DATA(sQUERY_PARAM, parameter_, PARAM_COL_NUM)
_BINDING_PARAM(0, guid, SQL_PARAM_INPUT)
_BINDING_PARAM(1, item_code, SQL_PARAM_INPUT)
_BINDING_PARAM(2, rank_grade, SQL_PARAM_INPUT)
_END_PARAM_DATA();
_INIT_BINDING_DATA();
public:
void* node_pointer_;
};
//==================================================================================================
#else
#error "Unknown nation code"
#endif
//==================================================================================================
#endif //__DBPROXY_DBUNIT_RANK_REPORTER_QUERY_H