Skip to content

Commit 490d6af

Browse files
committed
added:count for timezone
fixed:timezone list and convert is incorrent
1 parent e5d6c0e commit 490d6af

File tree

2 files changed

+56
-14
lines changed

2 files changed

+56
-14
lines changed

XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp

Lines changed: 54 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -543,17 +543,22 @@ BOOL CPlugin_Timezone::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int*
543543
memset(tszParamTime, '\0', sizeof(tszParamTime));
544544

545545
BaseLib_OperatorString_GetKeyValue((*pppHDRList)[1], "=", tszKeyName, tszParamType);
546-
if (1 == _ttoi(tszParamType))
546+
if (0 == _ttoi(tszParamType))
547+
{
548+
//如果是统计
549+
Plugin_Timezone_Count(ptszMsgBuffer, pInt_MsgLen);
550+
}
551+
else if (1 == _ttoi(tszParamType))
547552
{
548553
//如果是列举
549-
Plugin_Timezone_List(ptszMsgBuffer, pInt_MsgLen);
554+
BaseLib_OperatorString_GetKeyValue((*pppHDRList)[2], "=", tszKeyName, tszParamCvt);
555+
Plugin_Timezone_List(tszParamCvt, ptszMsgBuffer, pInt_MsgLen);
550556
}
551557
else if (2 == _ttoi(tszParamType))
552558
{
553559
//如果是转换
554560
BaseLib_OperatorString_GetKeyValue((*pppHDRList)[2], "=", tszKeyName, tszParamCvt);
555561
BaseLib_OperatorString_GetKeyValue((*pppHDRList)[3], "=", tszKeyName, tszParamTime);
556-
557562
if (!Plugin_Timezone_Convert(tszParamCvt, tszParamTime, ptszMsgBuffer, pInt_MsgLen))
558563
{
559564
*pInt_HTTPCode = 404;
@@ -567,24 +572,51 @@ BOOL CPlugin_Timezone::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int*
567572
//////////////////////////////////////////////////////////////////////////
568573
// 保护函数
569574
//////////////////////////////////////////////////////////////////////////
570-
BOOL CPlugin_Timezone::Plugin_Timezone_List(TCHAR* ptszMsgBufer, int* pInt_Len)
575+
BOOL CPlugin_Timezone::Plugin_Timezone_Count(TCHAR* ptszMsgBufer, int* pInt_Len)
576+
{
577+
Timezone_IsErrorOccur = FALSE;
578+
579+
Json::Value st_JsonRoot;
580+
Json::Value st_JsonObject;
581+
Json::StreamWriterBuilder st_JsonBuilder;
582+
583+
st_JsonObject["Count"] = stl_MapTimezone.size();
584+
st_JsonRoot["data"] = st_JsonObject;
585+
st_JsonRoot["code"] = 0;
586+
st_JsonRoot["msg"] = "success";
587+
st_JsonBuilder["emitUTF8"] = true;
588+
589+
*pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length();
590+
memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len);
591+
return TRUE;
592+
}
593+
BOOL CPlugin_Timezone::Plugin_Timezone_List(LPCTSTR lpszConvert, TCHAR* ptszMsgBufer, int* pInt_Len)
571594
{
572595
Timezone_IsErrorOccur = FALSE;
573596

597+
int nPosStart = 0;
598+
int nPosEnd = 0;
574599
Json::Value st_JsonRoot;
575600
Json::Value st_JsonObject;
576601
Json::StreamWriterBuilder st_JsonBuilder;
577602

603+
_stscanf(lpszConvert, _T("%d-%d"), &nPosStart, &nPosEnd);
604+
578605
unordered_map<string, MODULEPLUGIN_TIMEZONE>::const_iterator stl_MapIterator = stl_MapTimezone.cbegin();
579-
for (; stl_MapIterator != stl_MapTimezone.cend(); stl_MapIterator++)
606+
for (int i = 0; stl_MapIterator != stl_MapTimezone.cend(); stl_MapIterator++, i++)
580607
{
581-
Json::Value st_JsonArray;
582-
st_JsonArray["tszTimeZone"] = stl_MapIterator->first.c_str();
583-
st_JsonArray["tszTimeCountry"] = stl_MapIterator->second.tszTimeCountry;
584-
st_JsonObject.append(st_JsonArray);
608+
if ((nPosEnd >= i) && (nPosStart <= i))
609+
{
610+
Json::Value st_JsonArray;
611+
st_JsonArray["tszTimeZone"] = stl_MapIterator->first.c_str();
612+
st_JsonArray["tszTimeCountry"] = stl_MapIterator->second.tszTimeCountry;
613+
st_JsonObject.append(st_JsonArray);
614+
}
585615
}
586616
st_JsonRoot["Array"] = st_JsonObject;
587-
st_JsonRoot["Count"] = st_JsonObject.size();
617+
st_JsonRoot["Count"] = nPosEnd - nPosStart;
618+
st_JsonRoot["nPosStat"] = nPosStart;
619+
st_JsonRoot["nPosEnd"] = nPosEnd;
588620
st_JsonRoot["code"] = 0;
589621
st_JsonRoot["msg"] = "success";
590622
st_JsonBuilder["emitUTF8"] = true;
@@ -601,17 +633,26 @@ BOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCTSTR lpszConvert, LPCTSTR lpsz
601633
Json::Value st_JsonObject;
602634
Json::StreamWriterBuilder st_JsonBuilder;
603635

604-
unordered_map<string, MODULEPLUGIN_TIMEZONE>::iterator stl_MapIterator = stl_MapTimezone.find(lpszConvert);
636+
unordered_map<string, MODULEPLUGIN_TIMEZONE>::const_iterator stl_MapIterator = stl_MapTimezone.find(lpszConvert);
605637
if (stl_MapIterator == stl_MapTimezone.end())
606638
{
607639
return FALSE;
608640
}
641+
TCHAR tszTimeStr[64];
609642
XENGINE_LIBTIMER st_TimeStart;
643+
XENGINE_LIBTIMER st_TimeEnd;
644+
645+
memset(tszTimeStr, '\0', sizeof(tszTimeStr));
610646
memset(&st_TimeStart, '\0', sizeof(XENGINE_LIBTIMER));
647+
memset(&st_TimeEnd, '\0', sizeof(XENGINE_LIBTIMER));
648+
649+
st_TimeEnd = stl_MapIterator->second.st_TimeZone;
611650

612-
BaseLib_OperatorTime_StrToTime(lpszConvert, &st_TimeStart);
613-
BaseLib_OperatorTimeSpan_CalForStu(&st_TimeStart, &stl_MapIterator->second.st_TimeZone);
651+
_stscanf(lpszTimeStr, _T("%04d-%02d-%02d_%02d:%02d:%02d"), &st_TimeStart.wYear, &st_TimeStart.wMonth, &st_TimeStart.wDay, &st_TimeStart.wHour, &st_TimeStart.wMinute, &st_TimeStart.wSecond);
652+
BaseLib_OperatorTimeSpan_CalForStu(&st_TimeStart, &st_TimeEnd);
653+
_stprintf(tszTimeStr, _T("%04d-%02d-%02d %02d:%02d:%02d"), st_TimeEnd.wYear, st_TimeEnd.wMonth, st_TimeEnd.wDay, st_TimeEnd.wHour, st_TimeEnd.wMinute, st_TimeEnd.wSecond);
614654

655+
st_JsonObject["tszTimeStr"] = tszTimeStr;
615656
st_JsonObject["tszTimeZone"] = stl_MapIterator->first.c_str();
616657
st_JsonObject["tszTimeCountry"] = stl_MapIterator->second.tszTimeCountry;
617658
st_JsonRoot["data"] = st_JsonObject;

XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ class CPlugin_Timezone
2727
BOOL PluginCore_UnInit();
2828
BOOL PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen);
2929
protected:
30-
BOOL Plugin_Timezone_List(TCHAR* ptszMsgBufer, int* pInt_Len);
30+
BOOL Plugin_Timezone_Count(TCHAR* ptszMsgBufer, int* pInt_Len);
31+
BOOL Plugin_Timezone_List(LPCTSTR lpszConvert, TCHAR* ptszMsgBufer, int* pInt_Len);
3132
BOOL Plugin_Timezone_Convert(LPCTSTR lpszConvert, LPCTSTR lpszTimeStr, TCHAR* ptszMsgBufer, int* pInt_Len);
3233
private:
3334
unordered_map<string, MODULEPLUGIN_TIMEZONE> stl_MapTimezone;

0 commit comments

Comments
 (0)