📄 usercustoms.cpp
字号:
// UserCustoms.cpp: implementation of the CUserCustoms class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "UserCustoms.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CUserCustoms::CUserCustoms()
{}
CUserCustoms::~CUserCustoms()
{}
int CUserCustoms::AddOneInfo(LPCTSTR pszMobile, vector<SUBSCRIBEITEM> vval)
{
int iRet=0;
SUBSCRIBEINFO i;
info_filter_by_phone ifbp(pszMobile);
_tcscpy(i.pszMobile,pszMobile);
i.lUpdateTime=CTime::GetCurrentTime().GetTime();
i.vItems=vval;
_lock.Lock();
vector<SUBSCRIBEINFO>::iterator it;
it=find_if(_infos.begin(),_infos.end(),ifbp);
if(it!=_infos.end())
_infos.erase(it);
_infos.push_back(i);
iRet= _infos.size();
_lock.Unlock();
return iRet;
}
int CUserCustoms::GetMyCustomItemByIndex(LPCTSTR pszMobile, ULONG lIndex, SUBSCRIBEITEM &item)
{
int iRet=0;
item_filter_by_index ifbi(lIndex);
info_filter_by_phone ifbp(pszMobile);
_lock.Lock();
vector<SUBSCRIBEINFO>::iterator it;
vector<SUBSCRIBEITEM>::iterator iit;
it=find_if(_infos.begin(),_infos.end(),ifbp);
if(it!=_infos.end())
{
iit=find_if((*it).vItems.begin(),(*it).vItems.end(),ifbi);
if(iit!=(*it).vItems.end())
{
item=(*iit);
iRet=item.lIndex;
}
else
iRet=-2;
}
else
// 没有该用户的定制信息
iRet=-1;
_lock.Unlock();
return iRet;
}
int CUserCustoms::CleanTimeoutInfo()
{
int iRet=0;
CString strLog;
CTimeSpan ts(2,0,0,0);
CTime t=CTime::GetCurrentTime()-ts;
ULONG lTime=t.GetTime();
info_filter_by_time ifbt(lTime);
vector<SUBSCRIBEINFO>::iterator start,end,it,last;
_lock.Lock();
start=_infos.begin();
end=_infos.end();
last=remove_if(start,end,ifbt);
for(it=last;it!=end;it++)
{
iRet++;
strLog.Format("用户%s定制信息%d条。因保存时间过长,从系统缓存中清除。",(*it).pszMobile,(*it).vItems.size());
theData.WriteLog(strLog,"SYS");
}
_infos.erase(last,end);
_lock.Unlock();
return iRet;
}
int CUserCustoms::RemoveOneItem(LPCTSTR pszMobile, ULONG lIndex)
{
int iRet=0;
CString strLog;
info_filter_by_phone ifbp(pszMobile);
item_filter_by_index ifbi(lIndex);
vector<SUBSCRIBEINFO>::iterator it;
vector<SUBSCRIBEITEM>::iterator iit;
SUBSCRIBEINFO info;
_lock.Lock();
it=find_if(_infos.begin(),_infos.end(),ifbp);
if(it!=_infos.end())
{
info=(*it);
_infos.erase(it);
iit=find_if(info.vItems.begin(),info.vItems.end(),ifbi);
if(iit!=info.vItems.end())
info.vItems.erase(iit);
else
iRet=-1;
_infos.push_back(info);
}
else
{
iRet=-2;
}
iRet=lIndex;
_lock.Unlock();
return iRet;
}
int CUserCustoms::RemoveOneInfo(LPCTSTR pszMobile)
{
int iRet=0;
CString strLog;
info_filter_by_phone ifbp(pszMobile);
vector<SUBSCRIBEINFO>::iterator it;
_lock.Lock();
it=find_if(_infos.begin(),_infos.end(),ifbp);
if(it!=_infos.end())
_infos.erase(it);
else
iRet=-2;
_lock.Unlock();
return iRet;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -