Skip to content

Commit 51c2bd0

Browse files
committed
added:create and delete and query management api for dir
1 parent 74dcaf8 commit 51c2bd0

File tree

3 files changed

+73
-3
lines changed

3 files changed

+73
-3
lines changed

XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.cpp

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
BOOL XEngine_Task_Manage(LPCTSTR lpszAPIName, LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, TCHAR** pptszListHdr, int nHdrCount)
55
{
66
int nSDLen = 2048;
7+
int nRVLen = 2048;
78
TCHAR tszSDBuffer[2048];
9+
TCHAR tszRVBuffer[2048];
810
RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam;
911

1012
memset(tszSDBuffer, '\0', sizeof(tszSDBuffer));
13+
memset(tszRVBuffer, '\0', sizeof(tszRVBuffer));
1114
memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM));
1215

1316
//文件存储成功的事件上传
@@ -212,5 +215,72 @@ BOOL XEngine_Task_Manage(LPCTSTR lpszAPIName, LPCTSTR lpszClientAddr, LPCTSTR lp
212215
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("业务客户端:%s,请求查询文件列表成功,列表个数:%d"), lpszClientAddr, nListCount);
213216
}
214217
}
218+
else if (0 == _tcsnicmp(XENGINE_STORAGE_APP_METHOD_DIR, lpszAPIName, _tcslen(XENGINE_STORAGE_APP_METHOD_DIR)))
219+
{
220+
int nOPCode = 0;
221+
int nListCount = 0;
222+
CHAR** ppszListDir = NULL;
223+
TCHAR tszUserDir[MAX_PATH];
224+
TCHAR tszRealDir[MAX_PATH];
225+
226+
memset(tszUserDir, '\0', MAX_PATH);
227+
memset(tszRealDir, '\0', MAX_PATH);
228+
229+
st_HDRParam.bIsClose = TRUE;
230+
st_HDRParam.nHttpCode = 200;
231+
232+
XStorageProtocol_Core_REQDirOperator(lpszMsgBuffer, tszUserDir, &nOPCode);
233+
_stprintf(tszRealDir, _T("%s/%s"), st_ServiceCfg.st_XStorage.tszFileDir, tszUserDir);
234+
if (0 == nOPCode)
235+
{
236+
if (!SystemApi_File_EnumFile(tszRealDir, &ppszListDir, &nListCount, NULL, NULL, TRUE, 2))
237+
{
238+
st_HDRParam.bIsClose = TRUE;
239+
st_HDRParam.nHttpCode = 404;
240+
241+
RfcComponents_HttpServer_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
242+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
243+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("业务客户端:%s,请求查询文件夹:%s,失败,错误:%lX"), lpszClientAddr, tszRealDir, SystemApi_GetLastError());
244+
return FALSE;
245+
}
246+
XStorageProtocol_Core_REPDirOperator(tszRVBuffer, &nRVLen, &ppszListDir, nListCount);
247+
BaseLib_OperatorMemory_Free((XPPPMEM)&ppszListDir, nListCount);
248+
RfcComponents_HttpServer_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
249+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
250+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("业务客户端:%s,请求查询文件夹:%s,成功,文件夹个数:%d"), lpszClientAddr, tszRealDir, nListCount);
251+
}
252+
else if (1 == nOPCode)
253+
{
254+
if (!SystemApi_File_CreateMutilFolder(tszRealDir))
255+
{
256+
st_HDRParam.bIsClose = TRUE;
257+
st_HDRParam.nHttpCode = 404;
258+
259+
RfcComponents_HttpServer_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
260+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
261+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("业务客户端:%s,请求创建文件夹:%s,失败,错误:%lX"), lpszClientAddr, tszRealDir, SystemApi_GetLastError());
262+
return FALSE;
263+
}
264+
RfcComponents_HttpServer_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
265+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
266+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("业务客户端:%s,请求创建文件夹:%s,成功"), lpszClientAddr, tszRealDir);
267+
}
268+
else if (2 == nOPCode)
269+
{
270+
if (!SystemApi_File_DeleteMutilFolder(tszRealDir))
271+
{
272+
st_HDRParam.bIsClose = TRUE;
273+
st_HDRParam.nHttpCode = 404;
274+
275+
RfcComponents_HttpServer_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
276+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
277+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("业务客户端:%s,请求删除文件夹:%s,失败,错误:%lX"), lpszClientAddr, tszRealDir, SystemApi_GetLastError());
278+
return FALSE;
279+
}
280+
RfcComponents_HttpServer_SendMsgEx(xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
281+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
282+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("业务客户端:%s,请求删除文件夹:%s,成功"), lpszClientAddr, tszRealDir);
283+
}
284+
}
215285
return TRUE;
216286
}

XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskManage.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
#define XENGINE_STORAGE_APP_METHOD_ADD _T("Add")
44
#define XENGINE_STORAGE_APP_METHOD_DEL _T("Del")
55
#define XENGINE_STORAGE_APP_METHOD_QUERYFILE _T("Query")
6-
#define XENGINE_STORAGE_APP_METHOD_QUERYDIR _T("QueryDir");
6+
#define XENGINE_STORAGE_APP_METHOD_DIR _T("Dir")
77

88
BOOL XEngine_Task_Manage(LPCTSTR lpszAPIName, LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, TCHAR** pptszListHdr, int nHdrCount);

XEngine_Source/XEngine_StorageComponents/XStorage_Protocol/XStorageProtocol_Core/XStorageProtocol_Core.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ BOOL CXStorageProtocol_Core::XStorageProtocol_Core_REQDirOperator(LPCTSTR lpszMs
328328
delete pSt_JsonReader;
329329
pSt_JsonReader = NULL;
330330

331-
*pInt_Operator = st_JsonRoot["lpszUserDir"].asInt();
331+
*pInt_Operator = st_JsonRoot["nOPerator"].asInt();
332332
_tcscpy(ptszUserDir, st_JsonRoot["lpszUserDir"].asCString());
333333
return TRUE;
334334
}
@@ -382,7 +382,7 @@ BOOL CXStorageProtocol_Core::XStorageProtocol_Core_REPDirOperator(TCHAR* ptszMsg
382382
st_JsonRoot["Count"] = st_JsonArray.size();
383383
st_JsonRoot["List"] = st_JsonArray;
384384
st_JsonRoot["Code"] = 0;
385-
st_JsonRoot["Msg"] = _T("查询用户目录成功");
385+
st_JsonRoot["Msg"] = _T("ok");
386386
//打包输出信息
387387
*pInt_MsgLen = st_JsonRoot.toStyledString().length();
388388
memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen);

0 commit comments

Comments
 (0)