Skip to content

Commit 85bfee0

Browse files
committed
added:serial expired time support
1 parent 45f803c commit 85bfee0

File tree

9 files changed

+73
-11
lines changed

9 files changed

+73
-11
lines changed

XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -809,6 +809,12 @@ bool CDBModule_MySQL::DBModule_MySQL_SerialQuery(LPCXSTR lpszSerialNumber, LPAUT
809809
//超时时间
810810
nFliedValue++;
811811
_tcsxcpy(pSt_SerialTable->tszCreateTime, ppszResult[nFliedValue]);
812+
//过期时间
813+
nFliedValue++;
814+
if (NULL != ppszResult[nFliedValue])
815+
{
816+
_tcsxcpy(pSt_SerialTable->tszExpiredTime, ppszResult[nFliedValue]);
817+
}
812818
}
813819

814820
DataBase_MySQL_FreeResult(xhData, xhTable);
@@ -898,6 +904,12 @@ bool CDBModule_MySQL::DBModule_MySQL_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt
898904
//创建时间
899905
_tcsxcpy((*pppSt_SerialTable)[i]->tszCreateTime, ppszResult[nFliedValue]);
900906
nFliedValue++;
907+
//过期时间
908+
if (NULL != ppszResult[nFliedValue])
909+
{
910+
_tcsxcpy((*pppSt_SerialTable)[i]->tszExpiredTime, ppszResult[nFliedValue]);
911+
}
912+
nFliedValue++;
901913
}
902914
DataBase_MySQL_FreeResult(xhData, xhTable);
903915
return true;
@@ -928,7 +940,7 @@ bool CDBModule_MySQL::DBModule_MySQL_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialT
928940
SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST;
929941
return false;
930942
}
931-
_xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'%s','%s','%s',%d,%d,'%s')"), pSt_SerialTable->tszUserName, pSt_SerialTable->tszSerialNumber, pSt_SerialTable->tszMaxTime, pSt_SerialTable->enSerialType, pSt_SerialTable->bIsUsed, pSt_SerialTable->tszCreateTime);
943+
_xstprintf(tszSQLStatement, _X("INSERT INTO `Authorize_Serial` values(NULL,'%s','%s','%s',%d,%d,'%s','%s')"), pSt_SerialTable->tszUserName, pSt_SerialTable->tszSerialNumber, pSt_SerialTable->tszMaxTime, pSt_SerialTable->enSerialType, pSt_SerialTable->bIsUsed, pSt_SerialTable->tszCreateTime, pSt_SerialTable->tszExpiredTime);
932944

933945
if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
934946
{

XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -755,6 +755,12 @@ bool CDBModule_SQLite::DBModule_SQLite_SerialQuery(LPCXSTR lpszSerialNumber, LPA
755755
//超时时间
756756
nFliedValue++;
757757
_tcsxcpy(pSt_SerialTable->tszCreateTime, ppszResult[nFliedValue]);
758+
//过期时间
759+
nFliedValue++;
760+
if (NULL != ppszResult[nFliedValue])
761+
{
762+
_tcsxcpy(pSt_SerialTable->tszExpiredTime, ppszResult[nFliedValue]);
763+
}
758764
}
759765

760766
DataBase_SQLite_FreeTable(ppszResult);
@@ -837,6 +843,12 @@ bool CDBModule_SQLite::DBModule_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE*** ppp
837843
nFliedValue++;
838844
//创建时间
839845
_tcsxcpy((*pppSt_SerialTable)[i]->tszCreateTime, ppszResult[nFliedValue]);
846+
nFliedValue++;
847+
//过期时间
848+
if (NULL != ppszResult[nFliedValue])
849+
{
850+
_tcsxcpy((*pppSt_SerialTable)[i]->tszExpiredTime, ppszResult[nFliedValue]);
851+
}
840852
nFliedValue++;
841853
}
842854
DataBase_SQLite_FreeTable(ppszResult);
@@ -868,7 +880,7 @@ bool CDBModule_SQLite::DBModule_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_Seria
868880
SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST;
869881
return false;
870882
}
871-
_xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'%s','%s','%s',%d,%d,'%s')"), pSt_SerialTable->tszUserName, pSt_SerialTable->tszSerialNumber, pSt_SerialTable->tszMaxTime, pSt_SerialTable->enSerialType, pSt_SerialTable->bIsUsed, pSt_SerialTable->tszCreateTime);
883+
_xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'%s','%s','%s',%d,%d,'%s','%s')"), pSt_SerialTable->tszUserName, pSt_SerialTable->tszSerialNumber, pSt_SerialTable->tszMaxTime, pSt_SerialTable->enSerialType, pSt_SerialTable->bIsUsed, pSt_SerialTable->tszCreateTime, pSt_SerialTable->tszExpiredTime);
872884

873885
if (!DataBase_SQLite_Exec(xhData, tszSQLStatement))
874886
{

XEngine_Source/AuthorizeModule_Protocol/Protocol_Packet/Protocol_Packet.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,7 @@ bool CProtocol_Packet::Protocol_Packet_HttpSerialList(XCHAR* ptszMsgBuffer, int*
533533
st_JsonObject["enSerialType"] = (*pppSt_SerialList)[i]->enSerialType;
534534
st_JsonObject["bIsUsed"] = (*pppSt_SerialList)[i]->bIsUsed;
535535
st_JsonObject["tszCreateTime"] = (*pppSt_SerialList)[i]->tszCreateTime;
536+
st_JsonObject["tszExpiredTime"] = (*pppSt_SerialList)[i]->tszExpiredTime;
536537
st_JsonArray.append(st_JsonObject);
537538
}
538539
st_JsonRoot["msg"] = "success";

XEngine_Source/AuthorizeModule_Protocol/Protocol_Parse/Protocol_Parse.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,10 @@ bool CProtocol_Parse::Protocol_Parse_HttpParseSerial(LPCXSTR lpszMsgBuffer, int
582582
{
583583
_tcsxcpy((*pppSt_SerialTable)[i]->tszCreateTime, st_JsonArray[i]["tszCreateTime"].asCString());
584584
}
585+
if (!st_JsonArray[i]["tszExpiredTime"].isNull())
586+
{
587+
_tcsxcpy((*pppSt_SerialTable)[i]->tszExpiredTime, st_JsonArray[i]["tszExpiredTime"].asCString());
588+
}
585589
if (!st_JsonArray[i]["tszMaxTime"].isNull())
586590
{
587591
_tcsxcpy((*pppSt_SerialTable)[i]->tszMaxTime, st_JsonArray[i]["tszMaxTime"].asCString());

XEngine_Source/XAuth_Protocol.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
#define ERROR_AUTHORIZE_PROTOCOL_NOTMATCH 0x114 //数据不匹配
5252
#define ERROR_AUTHORIZE_PROTOCOL_TIMEOUT 0x115 //超时
5353
#define ERROR_AUTHORIZE_PROTOCOL_PERMISSION 0x116 //用户权限错误
54+
#define ERROR_AUTHORIZE_PROTOCOL_EXPIRED 0x117 //已经过期
5455

5556
#define ERROR_AUTHORIZE_PROTOCOL_SERVER 0x201 //服务端内部错误
5657
#define ERROR_AUTHORIZE_PROTOCOL_LIMIT 0x202 //服务端内部限制,数据过大后者过小
@@ -194,9 +195,10 @@ typedef struct tag_AuthReg_SerialTable
194195
XCHAR tszUserName[XENGINE_AUTHREG_SERVICE_SQL_MAX_USERNAME]; //使用者是谁
195196
XCHAR tszSerialNumber[128]; //序列号
196197
XCHAR tszMaxTime[64]; //使用时间
197-
ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType; //充值卡类型
198-
int bIsUsed; //是否已经使用
198+
ENUM_AUTHORIZE_MODULE_SERIAL_TYPE enSerialType; //充值卡类型
199+
int bIsUsed; //是否已经使用
199200
XCHAR tszCreateTime[64]; //创建时间
201+
XCHAR tszExpiredTime[64]; //过期时间
200202
}AUTHREG_SERIALTABLE, * LPAUTHREG_SERIALTABLE;
201203
//网络临时验证表
202204
typedef struct

XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.cpp

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ void CDialog_Serial::DoDataExchange(CDataExchange* pDX)
3131
DDX_Control(pDX, IDC_EDIT2, m_EditHasTime);
3232
DDX_Control(pDX, IDC_EDIT3, m_EditPosStart);
3333
DDX_Control(pDX, IDC_EDIT7, m_EditPosEnd);
34+
DDX_Control(pDX, IDC_EDIT8, m_EditExpiredTime);
3435
}
3536

3637

@@ -52,12 +53,13 @@ BOOL CDialog_Serial::OnInitDialog()
5253
CDialogEx::OnInitDialog();
5354

5455
// TODO: 在此添加额外的初始化
55-
m_ListSerial.InsertColumn(0, _T("使用者"), LVCFMT_LEFT, 80);
56+
m_ListSerial.InsertColumn(0, _T("使用者"), LVCFMT_LEFT, 100);
5657
m_ListSerial.InsertColumn(1, _T("序列号"), LVCFMT_LEFT, 450);
5758
m_ListSerial.InsertColumn(2, _T("时间/次数"), LVCFMT_LEFT, 90);
5859
m_ListSerial.InsertColumn(3, _T("卡类型"), LVCFMT_LEFT, 80);
5960
m_ListSerial.InsertColumn(4, _T("是否使用"), LVCFMT_LEFT, 80);
60-
m_ListSerial.InsertColumn(5, _T("创建日期"), LVCFMT_LEFT, 180);
61+
m_ListSerial.InsertColumn(5, _T("创建日期"), LVCFMT_LEFT, 120);
62+
m_ListSerial.InsertColumn(6, _T("过期日期"), LVCFMT_LEFT, 120);
6163
m_ListSerial.SetExtendedStyle(LVS_EX_FULLROWSELECT);
6264

6365
for (int i = 0; i < 5; i++)
@@ -175,6 +177,7 @@ void CDialog_Serial::OnBnClickedButton1()
175177
m_ListSerial.SetItemText(i, 4, _T("未使用"));
176178
}
177179
m_ListSerial.SetItemText(i, 5, A2W(st_JsonArray["tszCreateTime"].asCString()));
180+
m_ListSerial.SetItemText(i, 6, A2W(st_JsonArray["tszExpiredTime"].asCString()));
178181
}
179182
BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
180183
}
@@ -197,9 +200,11 @@ void CDialog_Serial::OnBnClickedButton2()
197200
CString m_StrHasTime;
198201
CString m_StrSerialCount;
199202
CString m_StrNumberCount;
203+
CString m_StrExpiredTime;
200204
Json::Value st_JsonRoot;
201205
Json::Value st_JsonObject;
202206

207+
m_EditExpiredTime.GetWindowText(m_StrExpiredTime);
203208
m_EditHasTime.GetWindowText(m_StrHasTime);
204209
m_EditSerialCount.GetWindowText(m_StrSerialCount);
205210
m_ComboNumber.GetLBText(m_ComboNumber.GetCurSel(), m_StrNumberCount);
@@ -209,6 +214,7 @@ void CDialog_Serial::OnBnClickedButton2()
209214
st_JsonObject["nNumberCount"] = _ttoi(m_StrNumberCount.GetBuffer());
210215
st_JsonObject["nSerialCount"] = _ttoi(m_StrSerialCount.GetBuffer());
211216
st_JsonObject["tszHasTime"] = W2A(m_StrHasTime.GetBuffer());
217+
st_JsonObject["tszExpiredTime"] = W2A(m_StrExpiredTime.GetBuffer());
212218
st_JsonRoot["st_SerialInfo"] = st_JsonObject;
213219
st_JsonRoot["xhToken"] = _ttoll(m_StrToken.GetBuffer());
214220

@@ -279,7 +285,7 @@ void CDialog_Serial::OnBnClickedButton4()
279285
int nSelect = m_ListSerial.GetNextSelectedItem(pSt_Sition);
280286
if (nSelect < 0)
281287
{
282-
Authorize_Help_LogPrint(_T("你没有选择任何客户"));
288+
Authorize_Help_LogPrint(_T("你没有选择任何序列号"));
283289
return;
284290
}
285291
CString m_StrSerial = m_ListSerial.GetItemText(nSelect, 1);
@@ -425,8 +431,7 @@ void CDialog_Serial::OnBnClickedButton6()
425431
AUTHREG_SERIALTABLE st_SerialTable;
426432
memset(&st_SerialTable, '\0', sizeof(AUTHREG_SERIALTABLE));
427433

428-
int nRet = _stxscanf(tszMsgBuffer, _X("%d %s %s %s %d %d %s %s"), &nID, st_SerialTable.tszUserName, st_SerialTable.tszSerialNumber, st_SerialTable.tszMaxTime, &st_SerialTable.enSerialType, &st_SerialTable.bIsUsed, st_SerialTable.tszCreateTime, (st_SerialTable.tszCreateTime + 11));
429-
st_SerialTable.tszCreateTime[10] = ' ';
434+
int nRet = _stxscanf(tszMsgBuffer, _X("%d %s %s %s %d %d %19c %19c"), &nID, st_SerialTable.tszUserName, st_SerialTable.tszSerialNumber, st_SerialTable.tszMaxTime, &st_SerialTable.enSerialType, &st_SerialTable.bIsUsed, st_SerialTable.tszCreateTime, st_SerialTable.tszExpiredTime);
430435
stl_ListSerial.push_back(st_SerialTable);
431436
}
432437
fclose(pSt_File);
@@ -458,6 +463,7 @@ void CDialog_Serial::OnBnClickedButton6()
458463
st_JsonObject["bIsUsed"] = stl_ListIterator->bIsUsed;
459464
st_JsonObject["enSerialType"] = stl_ListIterator->enSerialType;
460465
st_JsonObject["tszCreateTime"] = stl_ListIterator->tszCreateTime;
466+
st_JsonObject["tszExpiredTime"] = stl_ListIterator->tszExpiredTime;
461467
st_JsonObject["tszMaxTime"] = stl_ListIterator->tszMaxTime;
462468
st_JsonObject["tszSerialNumber"] = stl_ListIterator->tszSerialNumber;
463469
st_JsonObject["tszUserName"] = stl_ListIterator->tszUserName;
@@ -542,7 +548,7 @@ void CDialog_Serial::OnBnClickedButton7()
542548
XCHAR tszMsgBuffer[XPATH_MAX];
543549
memset(tszMsgBuffer, '\0', XPATH_MAX);
544550
//写字段头
545-
int nRet = _xstprintf(tszMsgBuffer, _X("ID UserName SerialNumber MaxTime CardSerialType bIsUsed CreateTime\r\n"));
551+
int nRet = _xstprintf(tszMsgBuffer, _X("ID UserName SerialNumber MaxTime CardSerialType bIsUsed CreateTime ExpiredTime\r\n"));
546552
fwrite(tszMsgBuffer, 1, nRet, pSt_File);
547553

548554
for (int i = 0; i < m_ListSerial.GetItemCount(); i++)
@@ -564,7 +570,7 @@ void CDialog_Serial::OnBnClickedButton7()
564570
{
565571
nUsedType = 0;
566572
}
567-
nRet = _xstprintf(tszMsgBuffer, _X("%d %s %s %s %d %d %s %s\r\n"), i, W2A(m_ListSerial.GetItemText(i, 0).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 1).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 2).GetBuffer()), nSerialType, nUsedType, W2A(m_ListSerial.GetItemText(i, 5).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 6).GetBuffer()));
573+
nRet = _xstprintf(tszMsgBuffer, _X("%d %s %s %s %d %d %s %s %s\r\n"), i, W2A(m_ListSerial.GetItemText(i, 0).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 1).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 2).GetBuffer()), nSerialType, nUsedType, W2A(m_ListSerial.GetItemText(i, 5).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 6).GetBuffer()), W2A(m_ListSerial.GetItemText(i, 7).GetBuffer()));
568574
fwrite(tszMsgBuffer, 1, nRet, pSt_File);
569575
}
570576
fclose(pSt_File);

XEngine_Source/XEngine_APPService/XEngine_AuthorizeApp/Authorize_Dialog/Dialog_Serial.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,5 @@ class CDialog_Serial : public CDialogEx
3636
afx_msg void OnBnClickedButton7();
3737
CEdit m_EditPosStart;
3838
CEdit m_EditPosEnd;
39+
CEdit m_EditExpiredTime;
3940
};
Binary file not shown.

XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,30 @@ bool XEngine_AuthorizeHTTP_User(XNETHANDLE xhToken, LPCXSTR lpszClientAddr, LPCX
177177
return false;
178178
}
179179
Protocol_Parse_HttpParsePay(lpszMsgBuffer, nMsgLen, &st_UserPay);
180+
//判断序列号是否过期
181+
AUTHREG_SERIALTABLE st_SerialTable = {};
182+
if (!DBModule_SQLite_SerialQuery(st_UserPay.tszSerialNumber, &st_SerialTable))
183+
{
184+
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_NOTFOUND, "serial number not found");
185+
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
186+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,充值失败,充值序列卡:%s 不存在!"), lpszClientAddr, st_SerialTable.tszSerialNumber);
187+
return false;
188+
}
189+
if (_tcsxlen(st_SerialTable.tszExpiredTime) > 1)
190+
{
191+
__int64x nTimeValue = 0;
192+
XCHAR tszTimeStr[128] = {};
193+
BaseLib_Time_TimeToStr(tszTimeStr);
194+
BaseLib_TimeSpan_GetForStr(tszTimeStr, st_SerialTable.tszExpiredTime, &nTimeValue, 3);
195+
if (nTimeValue < 0)
196+
{
197+
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_EXPIRED, "serial was expired");
198+
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
199+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,充值失败,序列卡:%s 已经过期!"), lpszClientAddr, st_SerialTable.tszSerialNumber);
200+
return false;
201+
}
202+
}
203+
180204
bool bSuccess = false;
181205
if (0 == st_AuthConfig.st_XSql.nDBType)
182206
{

0 commit comments

Comments
 (0)