Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
220
Server/AdminTool/AdminToolClient/UserBillingLogDlg.cpp
Normal file
220
Server/AdminTool/AdminToolClient/UserBillingLogDlg.cpp
Normal file
@@ -0,0 +1,220 @@
|
||||
// UserBillingLogDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AdminToolClient.h"
|
||||
#include "UserBillingLogDlg.h"
|
||||
|
||||
#include "PacketManager.h"
|
||||
#include "WindowMgr.h"
|
||||
#include "ListCtrlSortClass.h"
|
||||
#include "GlobalFunctions.h"
|
||||
|
||||
|
||||
// CUserBillingLogDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CUserBillingLogDlg, CDialog)
|
||||
CUserBillingLogDlg::CUserBillingLogDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CUserBillingLogDlg::IDD, pParent)
|
||||
, m_strSearchValue(_T(""))
|
||||
, m_bSortListAsc(false)
|
||||
, m_dwSearchCount(0)
|
||||
, m_bIsPushCtrl(false)
|
||||
{
|
||||
}
|
||||
|
||||
CUserBillingLogDlg::~CUserBillingLogDlg()
|
||||
{
|
||||
ERASE_WINDOW(IDD_USERBILLINGLOGDLG);
|
||||
}
|
||||
|
||||
void CUserBillingLogDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_BILLINGLOG_STARTTIME_TP, m_ctrlStartTime);
|
||||
DDX_Control(pDX, IDC_BILLINGLOG_ENDTIME_TP, m_ctrlEndTime);
|
||||
DDX_Control(pDX, IDC_BILLINGLOG_SEARCHCONDITION_CB, m_ctrlSearchConditionCb);
|
||||
DDX_Text(pDX, IDC_BILLINGLOG_SEARCHVALUE_EDIT, m_strSearchValue);
|
||||
DDX_Control(pDX, IDC_BILLINGLOG_USELOG_LIST, m_ctrlUserBillingLogList);
|
||||
DDX_Text(pDX, IDC_BILLINGLOG_SEARCHNUM_EDIT, m_dwSearchCount);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CUserBillingLogDlg, CDialog)
|
||||
ON_BN_CLICKED(IDC_BILLINGLOG_SEARCH_BTN, OnBnClickedSearchBtn)
|
||||
ON_NOTIFY(LVN_ITEMCHANGED, IDC_BILLINGLOG_USELOG_LIST, OnLvnItemchangedBillinglogUselogList)
|
||||
ON_NOTIFY(LVN_COLUMNCLICK, IDC_BILLINGLOG_USELOG_LIST, OnLvnColumnclickBillinglogUselogList)
|
||||
ON_BN_CLICKED(IDC_BILLLOG_TO_CLIP_BTN, OnBnClickedBilllogToClipBtn)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CUserBillingLogDlg <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
BOOL CUserBillingLogDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
INSERT_WINDOW(IDD_USERBILLINGLOGDLG, static_cast<CWnd*>(this));
|
||||
|
||||
m_ctrlSearchConditionCb.InsertString(0, _T("ACCOUNT"));
|
||||
m_ctrlSearchConditionCb.InsertString(1, _T("UID"));
|
||||
|
||||
m_ctrlSearchConditionCb.SetCurSel(0);
|
||||
|
||||
m_ctrlUserBillingLogList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
|
||||
|
||||
m_ctrlUserBillingLogList.InsertColumn(0, GetLocalString("ACCOUNT"), LVCFMT_LEFT, 100);
|
||||
m_ctrlUserBillingLogList.InsertColumn(1, _T("UID"), LVCFMT_LEFT, 90);
|
||||
m_ctrlUserBillingLogList.InsertColumn(2, _T("IP"), LVCFMT_LEFT, 120);
|
||||
m_ctrlUserBillingLogList.InsertColumn(3, GetLocalString("SERVER_GROUP"), LVCFMT_LEFT, 90);
|
||||
m_ctrlUserBillingLogList.InsertColumn(4, GetLocalString("LOGIN_TIME"), LVCFMT_LEFT, 140);
|
||||
m_ctrlUserBillingLogList.InsertColumn(5, GetLocalString("LOGOUT_TIME"), LVCFMT_LEFT, 140);
|
||||
|
||||
// <20>˻<EFBFBD> <20><><EFBFBD>۽ð<DBBD><C3B0><EFBFBD> <20>Ѵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SYSTEMTIME tSystemTime;
|
||||
GetLocalTime(&tSystemTime);
|
||||
--tSystemTime.wMonth;
|
||||
m_ctrlStartTime.SetTime(&tSystemTime);
|
||||
|
||||
SetWindowText(GetLocalString("IDD_USERBILLINGLOGDLG"));
|
||||
|
||||
SetUIString(this->m_hWnd, IDC_USERBILLING_01, "IDC_USERBILLING_01");
|
||||
SetUIString(this->m_hWnd, IDC_USERBILLING_02, "IDC_USERBILLING_02");
|
||||
SetUIString(this->m_hWnd, IDC_USERBILLING_03, "IDC_USERBILLING_03");
|
||||
SetUIString(this->m_hWnd, IDC_USERBILLING_04, "IDC_USERBILLING_04");
|
||||
SetUIString(this->m_hWnd, IDC_BILLINGLOG_SEARCH_BTN, "IDC_BILLINGLOG_SEARCH_BTN");
|
||||
SetUIString(this->m_hWnd, IDC_BILLLOG_TO_CLIP_BTN, "IDC_BILLLOG_TO_CLIP_BTN");
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CUserBillingLogDlg::OnBnClickedSearchBtn()
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
if(0 != m_strSearchValue.Compare(_T("")))
|
||||
{
|
||||
m_ctrlUserBillingLogList.DeleteAllItems();
|
||||
|
||||
COleDateTime tStartTime;
|
||||
COleDateTime tEndTime;
|
||||
|
||||
m_ctrlStartTime.GetTime(tStartTime);
|
||||
m_ctrlEndTime.GetTime(tEndTime);
|
||||
|
||||
switch(m_ctrlSearchConditionCb.GetCurSel())
|
||||
{
|
||||
case 0:
|
||||
CPacketMgr::GetInstance()->SendUserBillingLogRequest(
|
||||
PktAdminMgr::PktUserBillingLog::ACCOUNT, m_strSearchValue, tStartTime, tEndTime);
|
||||
break;
|
||||
case 1:
|
||||
CPacketMgr::GetInstance()->SendUserBillingLogRequest(
|
||||
PktAdminMgr::PktUserBillingLog::UID, m_strSearchValue, tStartTime, tEndTime);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOL CUserBillingLogDlg::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
// CtrlŰ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> üũ
|
||||
if ((WM_KEYDOWN == pMsg->message) && (VK_CONTROL == pMsg->wParam)) m_bIsPushCtrl = true;
|
||||
else if((WM_KEYUP == pMsg->message) && (VK_CONTROL == pMsg->wParam)) m_bIsPushCtrl = false;
|
||||
|
||||
if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam))
|
||||
{
|
||||
if(pMsg->hwnd == GetDlgItem(IDC_BILLINGLOG_SEARCHVALUE_EDIT)->m_hWnd)
|
||||
OnBnClickedSearchBtn();
|
||||
}
|
||||
|
||||
if(m_bIsPushCtrl)
|
||||
{
|
||||
if(pMsg->hwnd == GetDlgItem(IDC_BILLINGLOG_USELOG_LIST)->m_hWnd)
|
||||
{
|
||||
if(WM_KEYDOWN == pMsg->message)
|
||||
{
|
||||
if('C' == pMsg->wParam)
|
||||
{
|
||||
ClippingListCtrl(m_ctrlUserBillingLogList, 6);
|
||||
}
|
||||
else if('A' == pMsg->wParam)
|
||||
{
|
||||
for(int nIndex = 0; nIndex < m_ctrlUserBillingLogList.GetItemCount(); ++nIndex)
|
||||
{
|
||||
m_ctrlUserBillingLogList.SetItemState(nIndex, LVIS_SELECTED, LVIS_SELECTED);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return CDialog::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
void CUserBillingLogDlg::OnOK()
|
||||
{
|
||||
//CDialog::OnOK();
|
||||
}
|
||||
|
||||
void CUserBillingLogDlg::SortListWndItem(CListCtrl* pListCtrl, const int iCol)
|
||||
{
|
||||
CListCtrlSortClass SortClass(pListCtrl,iCol);
|
||||
|
||||
switch(m_iSortListItem)
|
||||
{
|
||||
case SORT_TYPE::ACCOUNT:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
|
||||
break;
|
||||
case SORT_TYPE::UID:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
|
||||
break;
|
||||
case SORT_TYPE::IP:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
|
||||
break;
|
||||
case SORT_TYPE::SERVER_GROUP:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
|
||||
break;
|
||||
case SORT_TYPE::LOGIN_TIME:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
|
||||
break;
|
||||
case SORT_TYPE::LOGOUT_TIME:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CUserBillingLogDlg::OnLvnColumnclickBillinglogUselogList(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
||||
|
||||
if(pNMLV->iSubItem == m_iSortListItem)
|
||||
{
|
||||
m_bSortListAsc = !m_bSortListAsc;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_iSortListItem = pNMLV->iSubItem;
|
||||
m_bSortListAsc = true;
|
||||
}
|
||||
|
||||
SortListWndItem(&m_ctrlUserBillingLogList, m_iSortListItem);
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CUserBillingLogDlg::OnLvnItemchangedBillinglogUselogList(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CUserBillingLogDlg::OnBnClickedBilllogToClipBtn()
|
||||
{
|
||||
ClippingListCtrl(m_ctrlUserBillingLogList, 6, true);
|
||||
}
|
||||
Reference in New Issue
Block a user