⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usercustoms.cpp

📁 关于联通的一个统一定制程序
💻 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 + -