CorpSms/FGAddress.cpp

2238 lines
68 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// FGAddress.cpp : implementation file
//
#include "stdafx.h"
#include "CorpSms.h"
#include "FGAddress.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFGAddress dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_User_Modify.h"
#include "DLG_User_Modify2.h"
#include "DLG_Group_Modify.h"
#include "FuncView.h"
#include "DLG_User_Inport2.h"
#include "DLG_User_ModifyP.h"
#include "DLG_User_Log.h"
#include "DLG_User_InportP2.h"
#include "..\public\StringSort\StringSort.h"
CFGAddress::CFGAddress(CWnd* pParent /*=NULL*/)
: CDialog(CFGAddress::IDD, pParent)
{
//{{AFX_DATA_INIT(CFGAddress)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
m_pInUser = NULL;
m_bInUser = false; //不是在插入用户
m_lUserID = 0;
m_bFind2 = false;
memset(m_szGroupID,0,sizeof(m_szGroupID));
memset(m_szLocal,0,sizeof(m_szLocal));
//复制,粘贴所用到的变量
m_Copy_UserID = 0;
memset(m_Copy_GroupID,0,sizeof(m_Copy_GroupID));
m_Copy_Count = 0;
m_Copy_Type = 0;
m_Copy_Data = NULL;
m_FindPro.m_bName = TRUE;
m_FindPro.m_bNickName = TRUE;
m_FindPro.m_bJob = TRUE;
m_FindPro.m_bTel = TRUE;
m_FindPro.m_bMobile = TRUE;
m_FindPro.m_bEmail = TRUE;
m_FindPro.m_bSex = TRUE;
m_FindPro.m_bBZ = TRUE;
m_FindPro.m_bLTD = TRUE;
}
void CFGAddress::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFGAddress)
DDX_Control(pDX, IDC_GADDRESS_LIST, m_wndList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFGAddress, CDialog)
//{{AFX_MSG_MAP(CFGAddress)
ON_WM_SIZE()
ON_NOTIFY(NM_DBLCLK, IDC_GADDRESS_LIST, OnDblclkGaddressList)
ON_NOTIFY(NM_RCLICK, IDC_GADDRESS_LIST, OnRclickGaddressList)
ON_WM_TIMER()
ON_NOTIFY(LVN_KEYDOWN, IDC_GADDRESS_LIST, OnKeydownGaddressList)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
ON_MESSAGE( LIST_DROP_BEGIN , On_List_DropBegin )
ON_COMMAND( MENU_GADDRESS_ADD , On_User_Add)
ON_COMMAND( MENU_GADDRESS_ADDADDR, On_User_AddAddr)
ON_COMMAND( MENU_GADDRESS_ADDGROUP , On_User_AddGroup)
ON_COMMAND( MENU_GADDRESS_MODIFY , On_User_Modify)
ON_COMMAND( MENU_GADDRESS_DEL , On_User_Del)
ON_COMMAND( MENU_GADDRESS_FIND , On_User_Find)
ON_COMMAND( MENU_GADDRESS_ADDTOLIST , On_User_AddToList)
ON_COMMAND( MENU_GADDRESS_ADDTOLIST_FAX , On_User_AddToList_Fax)
ON_COMMAND( MENU_GADDRESS_ADDTOLIST_MMS , On_User_AddToList_Mms)
ON_COMMAND( MENU_GADDRESS_INPORT , On_User_Inport)
ON_COMMAND( MENU_GADDRESS_EXPORT , On_User_Export)
ON_COMMAND( MENU_GADDRESS_REFRESH, On_User_Refresh)
ON_COMMAND( MENU_GADDRESS_LOG , On_User_Log)
ON_COMMAND( MENU_GADDRESS_CUT , On_User_Cut)
ON_COMMAND( MENU_GADDRESS_PASTE , On_User_Paste)
ON_COMMAND(MENU_GADDRESS_MODIFYUSED, On_User_ModifyUsed)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFGAddress message handlers
BOOL CFGAddress::OnInitDialog()
{
CDialog::OnInitDialog();
//取得共用参数
//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
this->GetParent()->GetParentFrame();
m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
m_pSocket = &m_pMainFrame->m_Socket;
m_AdoRS.SetAdoConnection( &m_pMainFrame->m_adoConnection );
SetTimer( 1 , 200 , NULL ); //为了取得m_pFuncView;
//初始化List
m_Image.Create(16,16,ILC_COLOR32|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_USERM) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_USERW) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_USERN) ); //分不清性别的,不给图标
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
m_wndList.SubClassWindow2();
#ifdef SUPPER_FUNC_MMS
#ifdef SHOWBZ_VER
m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;可用彩信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;备注,120;"));
#else
m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;可用彩信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;"));
#endif
#else
#ifdef SHOWBZ_VER
m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;备注,120;"));
#else
m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;"));
#endif
#endif
m_wndList.SetGridLines(true);
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
//m_wndList.SetBkColor( RGB(237,191,175) );
//m_wndList.SetTextBkColor( RGB(237,191,175) );
m_bInit = true;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CFGAddress::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CFGAddress::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CFGAddress::RefreshInfo()
{
return true;
}
void CFGAddress::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if ( m_bInit )
{
m_wndList.MoveWindow( 0 , 0 , cx,cy);
}
}
long CFGAddress::ShowUser(long lUserID)
{
m_bFind2 = false;
m_wndList.ShowWindow( SW_HIDE ); //为了加快显示速度
m_wndList.DeleteAllItems();
TCHAR szSelect[128]={0};
CString str;
m_lUserID = lUserID;
memset( m_szGroupID , 0 , sizeof(m_szGroupID) );
if ( lUserID != -1 ) //等于-1是代表根
{
_stprintf( szSelect , _T("select GroupID from users where UserID=%d AND UserType='0' ") , lUserID ); //查询用户ID并且只能为组
BOOL b = m_AdoRS.Open( szSelect );
long lCount = m_AdoRS.GetRecordCount();
if ( b && lCount )
{
m_AdoRS.MoveFirst();
m_AdoRS.GetCollect( _T("GroupID") , m_szGroupID );
}
else
{
m_wndList.ShowWindow( SW_SHOW ); //为了加快显示速度
return 0;
}
}
GetLocal( m_szLocal , m_szGroupID ); //取用户路径
if ( lUserID == -1 ) //如果是根用户组为NULL
_tcscpy( szSelect , _T("select * from users where GroupID is null or len(GroupID)=0 and UserType='1' order by UserID") ); //查找此组下的用户
else
_stprintf( szSelect , _T("Select * from users where GroupID='%s' AND UserType='1' order by UserID") , m_szGroupID ); //查找此组下的用户
BOOL b = m_AdoRS.Open( szSelect );
long lCount = m_AdoRS.GetRecordCount();
if ( b && lCount )
{
COleDateTime t;
CString str;
m_AdoRS.MoveFirst();
for ( int i = 0 ; i< lCount ; i++ )
{
ANS_GAddress_SeeData user={0};
m_AdoRS.GetCollect( _T("UserID") , user.lUserID);
m_AdoRS.GetCollect( _T("UserType") , user.szUserType);
m_AdoRS.GetCollect( _T("GroupID") , user.szGroupID);
m_AdoRS.GetCollect( _T("Name") , user.szName);
m_AdoRS.GetCollect( _T("NickName") , user.szNickName);
m_AdoRS.GetCollect( _T("Sex") , user.szSex);
m_AdoRS.GetCollect( _T("Birthday"), t); t.GetAsSystemTime(user.tBirthday);
m_AdoRS.GetCollect( _T("Job") , user.szJob);
m_AdoRS.GetCollect( _T("Tel") , user.szTel);
m_AdoRS.GetCollect( _T("Fax") , user.szFax);
m_AdoRS.GetCollect( _T("Email") , user.szEmail);
m_AdoRS.GetCollect( _T("Mobile") , user.szMobile);
m_AdoRS.GetCollect( _T("QQ") , user.szQQ);
m_AdoRS.GetCollect( _T("Email") , user.szEmail);
m_AdoRS.GetCollect( _T("LoginName") , user.szLoginName);
m_AdoRS.GetCollect( _T("PurviewType"), user.ulPurviewType);
m_AdoRS.GetCollect( _T("Purview") , user.ulPurview);
m_AdoRS.GetCollect( _T("LoginCount") , user.lLoginCount);
m_AdoRS.GetCollect( _T("SMSNum") , user.szSMSNum);
m_AdoRS.GetCollect( _T("LoginTime") , t); t.GetAsSystemTime(user.tLoginTime);
m_AdoRS.GetCollect( _T("SMSUsed") , user.lSMSUsed);
m_AdoRS.GetCollect( _T("SMSSendAll") , user.lSMSSendAll);
m_AdoRS.GetCollect( _T("MmsUsed") , user.lMmsUsed);
m_AdoRS.GetCollect( _T("MmsSendAll") , user.lMmsSendAll);
//m_AdoRS.GetCollect( _T("OvrTime"), t); t.GetAsSystemTime(user.tOvrTime);
m_AdoRS.GetCollect( _T("CreateUser") , user.szCreateUser);
m_AdoRS.GetCollect( _T("CreateTime") , t);t.GetAsSystemTime(user.tCreateTime);
m_AdoRS.GetCollect( _T("BZ") , user.szBZ);
m_AdoRS.GetCollect( _T("AccessGroup") , user.lAccessGroupID);
m_AdoRS.MoveNext();
//m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;已发短信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;"));
m_wndList.InsertItem( i , _itot(i+1,szSelect,10)); //序号
long lIcon = 2;
if ( _tcscmp(user.szSex,_T(""))==0 )
lIcon = 0;
if ( _tcscmp(user.szSex,_T(""))==0 )
lIcon = 1;
m_wndList.SetIconIndex(i,lIcon);
m_wndList.SetItemData( i , user.lUserID );
long lTemp=1;
m_wndList.SetItemText(i,lTemp++, user.szLoginName );
m_wndList.SetItemText(i,lTemp++, user.szSMSNum );
if ( user.lSMSUsed == -100 )
str = _T(" 无限制");
else
str.Format( _T("%8d"),user.lSMSUsed );
m_wndList.SetItemText(i,lTemp++, str );
#ifdef SUPPER_FUNC_MMS
if ( user.lMmsUsed == -100 )
str = _T(" 无限制");
else
str.Format( _T("%8d"),user.lMmsUsed );
m_wndList.SetItemText(i,lTemp++, str );
#endif
switch(user.ulPurviewType)
{
case PURVIEWTYPE_ADMIN:
str = _T("系统管理员");
break;
case PURVIEWTYPE_KF:
str = _T("客户服务员");
break;
case PURVIEWTYPE_USERS:
str = _T("一般员工");
break;
case PURVIEWTYPE_INPUT:
str = _T("资料录入员");
break;
case PURVIEWTYPE_ADDRESS:
default:
str = _T("纯通讯录");
break;
}
m_wndList.SetItemText(i,lTemp++, str );
str.Format( _T("%8d"),user.lLoginCount );
m_wndList.SetItemText(i,lTemp++, str );
m_wndList.SetItemText(i,lTemp++, user.szName );
m_wndList.SetItemText(i,lTemp++, user.szNickName );
m_wndList.SetItemText(i,lTemp++, user.szMobile );
m_wndList.SetItemText(i,lTemp++, user.szTel );
COleDateTime t(user.tBirthday);
if ( t.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
m_wndList.SetItemText(i,lTemp++, str );
}
else
{
m_wndList.SetItemText(i,lTemp++, _T("") );
}
m_wndList.SetItemText(i,lTemp++, user.szJob );
m_wndList.SetItemText(i,lTemp++, user.szEmail );
#ifdef SHOWBZ_VER
m_wndList.SetItemText(i,lTemp++, user.szBZ );
#endif
}
//return lCount;
}
m_wndList.ShowWindow( SW_SHOW ); //为了加快显示速度
return 0;
}
void CFGAddress::On_User_Add()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER) )
{
return ;
}
if ( m_bFind2 ) //属于查询出来的用户,此操作无效
return ;
if ( isAddressFull() ) //通讯录已满
return ;
// if ( m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFY,false ) && //要有修改权限与修改权限的权限才能打开专业的用户修改栏
// m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFYPURVIEW,false ) )
// {
ANS_GAddress_SeeData Address={0};
_tcscpy(Address.szGroupID,m_szGroupID);
Address.lCorpID = m_pMainFrame->m_lCorpID;
//Address.ulPurviewType = m_pMainFrame->m_ulPurviewType;
//Address.ulPurview = m_pMainFrame->m_ulPurview; //权限与自己的相同
//Address.ulPurviewType = PURVIEWTYPE_ADDRESS; //资料录入员仅能添加纯电话本的地址
//Address.ulPurview = 0; //没有任何权限
Address.ulPurviewType = PURVIEWTYPE_KF;
Address.ulPurview=PURVIEW_LOGIN|PURVIEW_SENDG|PURVIEW_SENDP|PURVIEW_RECVP|PURVIEW_GADDRESS_SEE|PURVIEW_PADDRESS|PURVIEW_SMSEMAIL|PURVIEW_CALENDAR|PURVIEW_SMSSP;
Address.szUserType[0]='1'; //用户类型
DLG_User_Modify dlg(this);
dlg.SetParam( Address,m_pMainFrame->m_ulPurviewType,m_pMainFrame->m_ulPurview,Address.lCorpID,m_pMainFrame->m_lUserID,m_pMainFrame->m_strLoginIP,m_szLocal,true);
dlg.DoModal();
/*
}
else
{
ANS_GAddress_SeeData Address={0};
_tcscpy(Address.szGroupID,m_szGroupID);
Address.lCorpID = m_pMainFrame->m_lCorpID;
Address.ulPurviewType = PURVIEWTYPE_ADDRESS; //资料录入员仅能添加纯电话本的地址
Address.ulPurview = 0; //没有任何权限
Address.szUserType[0]='1'; //用户类型
DLG_User_Modify2 dlg(this);
dlg.SetParam( Address,m_pMainFrame->m_ulPurview,m_szLocal,true);
dlg.DoModal();
}
*/
}
void CFGAddress::On_User_AddAddr()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER) )
{
return ;
}
/*
if ( m_bFind2 ) //属于查询出来的用户,此操作无效
return ;
if ( isAddressFull() ) //通讯录已满
return ;
ANS_GAddress_SeeData Address={0};
_tcscpy(Address.szGroupID,m_szGroupID);
Address.lCorpID = m_pMainFrame->m_lCorpID;
Address.ulPurviewType = PURVIEWTYPE_ADDRESS; //资料录入员仅能添加纯电话本的地址
Address.ulPurview = 0; //没有任何权限
Address.szUserType[0]='1'; //用户类型
DLG_User_Modify2 dlg(this);
dlg.SetParam( Address,m_pMainFrame->m_ulPurview,m_szLocal,true);
dlg.DoModal();
*/
}
void CFGAddress::On_User_AddGroup()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER) )
{
return ;
}
if ( m_bFind2 ) //属于查询出来的用户,此操作无效
return ;
if ( isAddressFull() ) //通讯录已满
return ;
//最多仅能建12层的组
if ( _tcslen(m_szGroupID) >12 )
{
MessageBox( _T("对不起,组的数量已满,此目录下已不能新建用户组!") , _T("错误") , MB_ICONWARNING );
return ;
}
ANS_GAddress_Group_AddData GAdd={0};
//查找空闲的组ID
long lGroupLen = _tcslen( m_szGroupID );
TCHAR szSelect[128]={0};
_stprintf( szSelect , _T("select GroupID from users where GroupID like '%s_' AND UserType='0' ") , m_szGroupID); //查找当前组下的第一层
BOOL b = m_AdoRS.Open( szSelect );
CStringSort sort;
CString strTemp;
while(!m_AdoRS.IsEOF() )
{
m_AdoRS.GetCollect( _T("GroupID") , strTemp );
sort.Add(strTemp);
m_AdoRS.MoveNext();
}
long lCount = sort.GetCount();
long lAllCount=GROUPID_END-GROUPID_BEGIN;
if ( lCount >= GROUPID_END-GROUPID_BEGIN )
{
MessageBox( _T("对不起,组的数量已满,此目录下已不能新建用户组!") , _T("错误") , MB_ICONWARNING );
return ;
}
TCHAR szGroupID[16]={0};
_tcscpy( szGroupID , m_szGroupID );
//记住所有的组ID
TCHAR szAllID[200][24]={0};
for ( int i = 0 ; i< lCount ;i++ )
{
_tcscpy(szAllID[i],sort.GetAt(i));
}
//查找组ID
for ( i=0 ; i< lCount ; i++ )
{
BOOL bFound = false;
for ( int j= 0 ; j<lCount ; j++ )
{
if ( szAllID[j][lGroupLen] == GROUPID_BEGIN+i )
{
bFound = true;
}
}
if ( !bFound )
break;
}
szGroupID[lGroupLen] = GROUPID_BEGIN+i; //新的组ID
//新的组ID应由服务器生成送过去的是母ID,返回的是新组ID
//_tcscpy( GAdd.szGroupID , szGroupID );
_tcscpy( GAdd.szGroupID , m_szGroupID );
_tcscpy( GAdd.szCreateUser , m_pMainFrame->m_pCurUser->szUser );
::GetLocalTime( &GAdd.tCreateTime );
DLG_Group_Modify dlg(this);
dlg.SetParam( GAdd,m_szLocal,_T("users") );
if ( dlg.DoModal() == IDOK )
{
long lSize = sizeof(REQ_GAddress_Group_Add)+sizeof(ANS_GAddress_Group_AddData);
BYTE * pAddData = new BYTE[lSize];memset(pAddData,0,lSize);
REQ_GAddress_Group_Add * pAdd = (REQ_GAddress_Group_Add *)pAddData; //头
ANS_GAddress_Group_AddData * pGAdd = (ANS_GAddress_Group_AddData *)(pAddData+sizeof(REQ_GAddress_Group_Add));
*pGAdd = dlg.GetParam();
pAdd->lCorpID= m_pMainFrame->m_lCorpID;
pAdd->lCount = 1;
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS_GROUP_ADD , pAddData , lSize );
}
}
void CFGAddress::On_User_Modify()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER) )
{
return ;
}
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
if (isLockItem(lItem))
{
return ;
}
long lUserID = m_wndList.GetItemData( lItem );
ANS_GAddress_SeeData Address = GetUserData(lUserID);
if ( _tcslen(Address.szLoginName)>0 && Address.ulPurviewType == PURVIEWTYPE_ADMIN ) //要删除管理员
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MODIFY,false) ) //没有删除管理员的权限
{
MessageBox(_T("对不起,你没有权限修改管理员帐号!") , _T("警告") , MB_ICONWARNING );
return ;
}
}
// if (_tcslen(Address.szName) >0 || _tcslen(Address.szLoginName))
// {
// if ( m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFY,false ) && //要有修改权限与修改权限的权限才能打开专业的用户修改栏
// m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFYPURVIEW,false ) )
// {
DLG_User_Modify dlg(this);
TCHAR szLocal[128]={0};
GetLocal(szLocal,Address.szGroupID); //取用户所在组位置
dlg.SetParam(Address,m_pMainFrame->m_ulPurviewType,m_pMainFrame->m_ulPurview,m_pMainFrame->m_lCorpID,m_pMainFrame->m_lUserID,m_pMainFrame->m_strLoginIP,szLocal,false);
if ( dlg.DoModal() == IDOK )
{
SetLockItem( lItem ,true);
long lSize = sizeof(REQ_GAddress_Modify)+sizeof(ANS_GAddress_SeeData);
BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize);
REQ_GAddress_Modify * pModify = (REQ_GAddress_Modify *)pModifyData; //头
ANS_GAddress_SeeData * pAddress = (ANS_GAddress_SeeData *)(pModifyData+sizeof(REQ_GAddress_Modify));
*pAddress = dlg.GetParam();
pModify->lCorpID= m_pMainFrame->m_lCorpID;
pModify->lItem = lItem;
pModify->lCount = 1;
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS_MODIFY , pModifyData , lSize );
}
/*
}
else
{
//只能打开一般的修改窗口
DLG_User_Modify2 dlg(this);
dlg.SetParam(Address,m_pMainFrame->m_ulPurview,m_szLocal,false);
if ( dlg.DoModal() == IDOK )
{
SetLockItem( lItem ,true);
long lSize = sizeof(REQ_GAddress_Modify)+sizeof(ANS_GAddress_SeeData);
BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize);
REQ_GAddress_Modify * pModify = (REQ_GAddress_Modify *)pModifyData; //头
ANS_GAddress_SeeData * pAddress = (ANS_GAddress_SeeData *)(pModifyData+sizeof(REQ_GAddress_Modify));
*pAddress = dlg.GetParam();
pModify->lCorpID= m_pMainFrame->m_lCorpID;
pModify->lItem = lItem;
pModify->lCount = 1;
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS_MODIFY , pModifyData , lSize );
}
}
}
*/
}
void CFGAddress::On_User_Del()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER) )
{
return ;
}
long lRet = MessageBox( _T("确实要删除选中的用户吗?"),_T("提问"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lCount = m_wndList.GetSelectedCount();
long lSize = sizeof(REQ_GAddress_Del)+sizeof(ANS_GAddress_DelData)*lCount;
BYTE * pDelSend = new BYTE[lSize];memset(pDelSend,0,lSize);
REQ_GAddress_Del * pDel = (REQ_GAddress_Del *)pDelSend; //头
ANS_GAddress_DelData * pDelData = (ANS_GAddress_DelData *)(pDelSend+sizeof(REQ_GAddress_Del));
pDel->lCount = lCount;
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
while(pos)
{
long lItem = m_wndList.GetNextSelectedItem(pos);
long lUserID = m_wndList.GetItemData(lItem);
ANS_GAddress_SeeData Address = GetUserData(lUserID);
CString strLogin = m_wndList.GetItemText(lItem,1);
if ( lUserID == m_pMainFrame->m_lUserID )
{
long lRet = MessageBox( _T("要删除的用户中包含当前登录用户,删除后你将不能通过本帐号登录!\r\n是否真的删除本帐号?"),_T("提问"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
continue;
}
if ( _tcslen(Address.szLoginName)>0 && Address.ulPurviewType == PURVIEWTYPE_ADMIN ) //要删除管理员
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MODIFY,false) ) //没有删除管理员的权限
{
CString str;
str.Format( _T("要删除的用户中包含管理员帐号:%s无法删除"),Address.szLoginName);
MessageBox(str,_T("提示"),MB_ICONINFORMATION);
continue;
}
else
{
CString str;
str.Format( _T("要删除的用户中包含管理员帐号:%s是否真的删除此帐号"),Address.szLoginName);
long lRet = MessageBox(str,_T("提问"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
continue;
}
/*
if ( strLogin == _T("Admin") )
{
MessageBox( _T("要删除的用户中包含管理员帐号,此帐号不可删除!"),_T("提示"),MB_ICONINFORMATION);
continue;
}
*/
}
pDelData->lItem = lItem;
pDelData->lUserID = lUserID;
this->SetLockItem( lItem,true); //加锁
pDelData ++;
}
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS_DEL , pDelSend , lSize );
}
void CFGAddress::On_User_Find()
{
DLG_FindUser dlg(this);
dlg.SetParam(m_FindPro);
if ( dlg.DoModal()==IDOK )
{
m_FindPro = dlg.m_FindPro;
On_User_Find2(&dlg);
}
return ;
/*
m_wndList.UnSelectAllItems();
DLG_FindUser dlg(this);
if ( dlg.DoModal()==IDOK )
{
if ( dlg.m_bFindAll )
{
On_User_Find2(&dlg);
return ;
}
long lFindItem = -1;
BOOL bFind;
char szFind[32]={0};
_tcscpy(szFind , dlg.m_strMsg );
long lCount = m_wndList.GetItemCount();
char szMsg[64];
for ( int i =0 ; i< lCount ; i++ )
{
bFind = false;
if ( dlg.m_bName ) //name
{
memset( szMsg , 0 , sizeof(szMsg) );
m_wndList.GetItemText( i , 3 , szMsg,sizeof(szMsg) );
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
}
if ( !bFind && dlg.m_bNickName )//nickname
{
memset( szMsg , 0 , sizeof(szMsg) );
m_wndList.GetItemText( i , 4 , szMsg,sizeof(szMsg) );
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
}
if ( !bFind && dlg.m_bSex )//sex
{
memset( szMsg , 0 , sizeof(szMsg) );
m_wndList.GetItemText( i , 4 , szMsg,sizeof(szMsg) );
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
}
if ( !bFind && dlg.m_bJob ) //job
{
memset( szMsg , 0 , sizeof(szMsg) );
m_wndList.GetItemText( i , 8 , szMsg,sizeof(szMsg) );
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
}
if ( !bFind && dlg.m_bTel ) //Tel
{
memset( szMsg , 0 , sizeof(szMsg) );
m_wndList.GetItemText( i , 6 , szMsg,sizeof(szMsg) );
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
}
if ( !bFind && dlg.m_bMobile ) //Mobile
{
memset( szMsg , 0 , sizeof(szMsg) );
m_wndList.GetItemText( i , 5 , szMsg,sizeof(szMsg) );
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
}
if ( !bFind && dlg.m_bEmail ) //Email
{
memset( szMsg , 0 , sizeof(szMsg) );
m_wndList.GetItemText( i , 9 , szMsg,sizeof(szMsg) );
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
}
if ( bFind )
{
if (lFindItem==-1)
lFindItem = i; //记录第一条找到的记录
m_wndList.SelectItem( i );
}
}
if ( lFindItem != -1 ) //显示第一条找到的
{
m_wndList.EnsureVisible( lFindItem , false );
m_wndList.SetFocus();
}
else
{
MessageBox( "对不起,没有找到相应的记录,请重新查询!","信息",MB_ICONINFORMATION);
}
}
*/
}
void CFGAddress::On_User_AddToList()
{
On_User_AddToList_Public(0);
}
void CFGAddress::On_User_AddToList_Fax()
{
On_User_AddToList_Public(1);
}
void CFGAddress::On_User_AddToList_Mms()
{
On_User_AddToList_Public(2);
}
void CFGAddress::On_User_AddToList_Public(long lSendType)
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_SENDG) )
{
return ;
}
long lCount = m_wndList.GetSelectedCount();
if ( lCount <= 0 )
return ;
//分配数据
long lSize = sizeof(Send_User)*lCount;
BYTE *pS = new BYTE[lSize];
memset( pS , 0 , lSize );
Send_User * pUser = (Send_User * )pS;
TCHAR szSelect[128]={0};
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
while ( pos )
{
long lItem = m_wndList.GetNextSelectedItem( pos );
long lUserID = m_wndList.GetItemData( lItem );
if ( lUserID > 0 )
{
_stprintf( szSelect , _T("select * from users where UserID=%d"), lUserID );
BOOL b = m_AdoRS.Open( szSelect );
if ( b && m_AdoRS.GetRecordCount() )
{
m_AdoRS.MoveFirst();
m_AdoRS.GetCollect( _T("Name") , pUser->szName);
m_AdoRS.GetCollect( _T("NickName") , pUser->szNickName);
if ( lSendType == 1 ) //传真
m_AdoRS.GetCollect( _T("Fax") , pUser->szMobile);
else
m_AdoRS.GetCollect( _T("Mobile") , pUser->szMobile);
m_AdoRS.GetCollect( _T("BZ") , pUser->szBZ);
}
}
pUser ++;
}
switch(lSendType)
{
case 0:
m_pFuncView->On_User_List_AddUser(lCount,(Send_User*)pS);
break;
case 1:
m_pFuncView->On_User_List_AddUser_Fax(lCount,(Send_User*)pS);
break;
case 2:
m_pFuncView->On_User_List_AddUser_Mms(lCount,(Send_User*)pS);
break;
}
delete pS;
}
void CFGAddress::On_User_Inport()
{
/*
if ( m_bFind2 ) //属于查询出来的用户,此操作无效
return ;
Inport_Field Field[] =
{
{_T("姓名"),0,0,-1},
{_T("昵称"),0,1,-1},
{_T("性别"),0,2,-1},
{_T("生日"),0,3,-1},
//{_T("公司"),0,4,-1},
{_T("职务"),0,5,-1},
//{_T("地址"),0,6,-1},
{_T("手机号码"),0,7,-1},
{_T("电话号码"),0,8,-1},
{_T("传真号码"),0,9,-1},
{_T("Email"),0,10,-1},
{_T("QQ号码"),0,11,-1},
{_T("备注"),0,12,-1},
};
DLG_User_InportP2 dlg(this);
dlg.SetParam(&Field[0],sizeof(Field)/sizeof(Inport_Field),1);
//DLG_User_Inport dlg(this);
//dlg.SetInport(NULL,&m_wndList,true,false);
if ( dlg.DoModal() == IDOK )
{
if ( m_pInUser )
{delete m_pInUser;m_pInUser=NULL;};
m_lInUserCount = dlg.m_User.GetCount();
m_lInUserIndex = 0;
if ( m_lInUserCount > 0 )
{
//取信息
m_pInUser =new ANS_GAddress_SeeData[m_lInUserCount];
memset(m_pInUser,0,sizeof(ANS_GAddress_SeeData)*m_lInUserCount);
POSITION pos = dlg.m_User.GetHeadPosition();
long i = 0;
while (pos)
{
PAddress pAddress = *dlg.m_User.GetNext( pos );
m_pInUser[i].ulPurviewType = PURVIEWTYPE_ADDRESS;
_tcscpy(m_pInUser[i].szName , pAddress.szName);
_tcscpy(m_pInUser[i].szSex , pAddress.szSex);
_tcscpy(m_pInUser[i].szNickName , pAddress.szNickName);
_tcscpy(m_pInUser[i].szMobile , pAddress.szMobile);
_tcscpy(m_pInUser[i].szTel , pAddress.szTel);
_tcscpy(m_pInUser[i].szFax , pAddress.szFax);
m_pInUser[i].tBirthday = pAddress.tBirthday;
_tcscpy(m_pInUser[i].szJob , pAddress.szJob);
_tcscpy(m_pInUser[i].szEmail , pAddress.szEmail);
_tcscpy(m_pInUser[i].szQQ , pAddress.szQQ);
_tcscpy(m_pInUser[i].szBZ , pAddress.szBZ);
i++;
}
m_bInUser = true; //正在导入地址本
m_DLGGetUser.SetProcessTitle( _T("正在导入地址本,请稍候...") );
//发送添加地址本信息
Inport_Next();
//启动进度条
m_DLGGetUser.DoModal();
delete m_pInUser;
m_pInUser = NULL;
m_bInUser = false; //不正在导入地址本
}
TCHAR Buf[64]={0};
_stprintf( Buf , _T("导入地址本成功,共导入%d个有效用户!") , m_lInUserIndex );
MessageBox( Buf , _T("信息") , MB_ICONASTERISK );
}
dlg.Close(); //关闭链表
*/
}
void CFGAddress::On_User_Export()
{
DLG_User_Inport2 dlg(this);
dlg.SetInport(&m_AdoRS,m_szGroupID,false,false);
dlg.SetOutportName(m_strGroupName);
dlg.DoModal();
}
void CFGAddress::On_User_Refresh()
{
ShowUser( m_lUserID ); //刷新
}
void CFGAddress::On_User_Copy()
{
if ( m_bFind2 ) //属于查询出来的用户,此操作无效
return ;
long lCount = m_wndList.GetSelectedCount();
if ( lCount<=0 )
return ;
m_Copy_UserID = m_lUserID;
_tcscpy(m_Copy_GroupID,m_szGroupID);
m_Copy_Count = lCount;
if ( m_Copy_Data )
{
delete m_Copy_Data;
m_Copy_Data = NULL;
}
m_Copy_Data = new ANS_GAddress_SeeData[lCount];
memset(m_Copy_Data,0,sizeof(ANS_GAddress_SeeData)*lCount);
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
long i = 0;
long lItem=0;
long lUserID=0;
while(pos)
{
lItem = m_wndList.GetNextSelectedItem(pos);
lUserID = m_wndList.GetItemData(lItem);
m_Copy_Data[i] = GetUserData(lUserID);
i ++;
}
m_Copy_Count = i;
m_Copy_Type = GADDRESS_COPYTYPE_COPY;
}
void CFGAddress::On_User_Cut()
{
On_User_Copy();
m_Copy_Type = GADDRESS_COPYTYPE_CUT;
}
void CFGAddress::On_User_Paste()
{
//if (m_bFind2 || m_lUserID==m_Copy_UserID || m_Copy_Count<=0) //不符合条件
// return ;
if (m_bFind2 || m_Copy_Count<=0 || (m_lUserID==m_Copy_UserID && m_Copy_Type==GADDRESS_COPYTYPE_CUT) ) //不符合条件
return ;
CString str;
if ( m_Copy_Type == GADDRESS_COPYTYPE_CUT ) //剪切,直接更改组ID即可
{
for ( int i=0 ; i<m_Copy_Count;i++ )
{
str.Format( _T("Update users set GroupID='%s' where UserID=%d"),m_szGroupID,m_Copy_Data[i].lUserID );
m_AdoRS.Open(str);
m_AdoRS.Close();
}
//向服务器发送请求,告知用户已移动
long lSize = sizeof(REQ_GAddress_User_Move)+sizeof(REQ_GAddress_User_Move_Data)*m_Copy_Count;
BYTE * pData = new BYTE[lSize];
memset(pData,0,lSize);
REQ_GAddress_User_Move * pMove = (REQ_GAddress_User_Move *)pData;
REQ_GAddress_User_Move_Data * pMoveData = (REQ_GAddress_User_Move_Data *)(pData+sizeof(REQ_GAddress_User_Move));
pMove->lCount = m_Copy_Count;
_tcscpy(pMove->szTagGroup , m_szGroupID);
for ( i=0 ; i<m_Copy_Count;i++ )
{
pMoveData->lUserID = m_Copy_Data[i].lUserID;
pMoveData ++;
}
this->m_pMainFrame->SendFrame(SMSFUNC_GADDRESS_USER_MOVE,pData,lSize);
}
/*
else
{
if ( m_AdoRS.Open("users",adCmdTable) )
{
for ( int i=0 ; i<m_Copy_Count;i++ )
{
m_AdoRS.AddNew();
m_AdoRS.PutCollect( "UserID" , m_Copy_Data[i].lUserID);
m_AdoRS.PutCollect( "CorpID" , m_Copy_Data[i].lCorpID);
m_AdoRS.PutCollect( "UserType" , m_Copy_Data[i].szUserType);
m_AdoRS.PutCollect( "GroupID" , m_Copy_Data[i].szGroupID);
m_AdoRS.PutCollect( "Name" , m_Copy_Data[i].szName);
m_AdoRS.PutCollect( "NickName" , m_Copy_Data[i].szNickName);
m_AdoRS.PutCollect( "Sex" , m_Copy_Data[i].szSex);
m_AdoRS.PutCollect( "Birthday" , m_Copy_Data[i].tBirthday);
m_AdoRS.PutCollect( "Job" , m_Copy_Data[i].szJob);
m_AdoRS.PutCollect( "Tel" , m_Copy_Data[i].szTel);
m_AdoRS.PutCollect( "Fax" , m_Copy_Data[i].szFax);
m_AdoRS.PutCollect( "Email" , m_Copy_Data[i].szEmail);
m_AdoRS.PutCollect( "Mobile" , m_Copy_Data[i].szMobile);
m_AdoRS.PutCollect( "QQ" , m_Copy_Data[i].szQQ);
//m_AdoRS.PutCollect( "LoginName" , m_Copy_Data[i].szLoginName);
//m_AdoRS.PutCollect( "Passwd" , m_Copy_Data[i].szPasswd);
//m_AdoRS.PutCollect( "PurviewType", m_Copy_Data[i].ulPurviewType);
//m_AdoRS.PutCollect( "Purview" , m_Copy_Data[i].ulPurview);
//m_AdoRS.PutCollect( "LoginCount" , m_Copy_Data[i].lLoginCount);
//m_AdoRS.PutCollect( "LoginTime" , m_Copy_Data[i].tLoginTime);
//m_AdoRS.PutCollect( "SMSNum" , m_Copy_Data[i].szSMSNum);
//m_AdoRS.PutCollect( "SMSUsed" , m_Copy_Data[i].lSMSUsed);
//m_AdoRS.PutCollect( "SMSSendAll" , m_Copy_Data[i].lSMSSendAll);
//m_AdoRS.PutCollect( "OvrTime" , m_Copy_Data[i].tOvrTime);
m_AdoRS.PutCollect( "CreateUser" , m_Copy_Data[i].szCreateUser);
m_AdoRS.PutCollect( "CreateTime" , m_Copy_Data[i].tCreateTime);
m_AdoRS.PutCollect( "BZ" , m_Copy_Data[i].szBZ);
m_AdoRS.Update();
m_AdoRS.GetCollect("UserID" ,m_Copy_Data[i].lUserID ); //取得新添加的UserID
}
m_AdoRS.Close();
}
}
*/
//显示出来
for ( int i=0 ; i<m_Copy_Count;i++ )
{
TCHAR szBuf[32]={0};
long lCount = m_wndList.GetItemCount();
m_wndList.InsertItem( lCount , _itot(lCount+1,szBuf,10)); //序号
long lIcon = 2;
if ( _tcscmp(m_Copy_Data[i].szSex,_T(""))==0 )
lIcon = 0;
if ( _tcscmp(m_Copy_Data[i].szSex,_T(""))==0 )
lIcon = 1;
m_wndList.SetIconIndex(lCount,lIcon);
m_wndList.SetItemData( lCount , m_Copy_Data[i].lUserID );
long lTemp=1;
m_wndList.SetItemText(lCount,lTemp++, m_Copy_Data[i].szLoginName );
m_wndList.SetItemText(lCount,lTemp++, m_Copy_Data[i].szSMSNum );
if ( m_Copy_Data[i].lSMSUsed == -100 )
str = _T(" 无限制");
else
str.Format( _T("%8d"),m_Copy_Data[i].lSMSUsed );
m_wndList.SetItemText(lCount,lTemp++, str );
#ifdef SUPPER_FUNC_MMS
if ( m_Copy_Data[i].lMmsUsed == -100 )
str = _T(" 无限制");
else
str.Format( _T("%8d"),m_Copy_Data[i].lMmsUsed );
m_wndList.SetItemText(lCount,lTemp++, str );
#endif
#ifdef YQ_VER_JL
str.Format( _T("%8d"),m_Copy_Data[i].lSMSSendAll );
m_wndList.SetItemText(lCount,lTemp++, str );
#endif
switch(m_Copy_Data[i].ulPurviewType)
{
case PURVIEWTYPE_ADMIN:
str = _T("系统管理员");
break;
case PURVIEWTYPE_KF:
str = _T("客户服务员");
break;
case PURVIEWTYPE_USERS:
str = _T("一般员工");
break;
case PURVIEWTYPE_INPUT:
str = _T("资料录入员");
break;
case PURVIEWTYPE_ADDRESS:
default:
str = _T("纯通讯录");
break;
}
m_wndList.SetItemText(lCount,lTemp++, str );
str.Format( _T("%8d"),m_Copy_Data[i].lLoginCount );
m_wndList.SetItemText(lCount,lTemp++, str );
m_wndList.SetItemText(lCount,lTemp++, m_Copy_Data[i].szName );
m_wndList.SetItemText(lCount,lTemp++, m_Copy_Data[i].szNickName );
m_wndList.SetItemText(lCount,lTemp++, m_Copy_Data[i].szMobile );
m_wndList.SetItemText(lCount,lTemp++, m_Copy_Data[i].szTel );
COleDateTime t(m_Copy_Data[i].tBirthday);
if ( t.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
m_wndList.SetItemText(lCount,lTemp++, str );
}
else
{
m_wndList.SetItemText(lCount,lTemp++, _T("") );
}
m_wndList.SetItemText(lCount,lTemp++, m_Copy_Data[i].szJob );
m_wndList.SetItemText(lCount,lTemp++, m_Copy_Data[i].szEmail );
#ifdef SHOWBZ_VER
m_wndList.SetItemText(lCount,lTemp++, m_Copy_Data[i].szBZ );
#endif
m_wndList.SetItemData(lCount,m_Copy_Data[i].lUserID);
}
if ( m_Copy_Type == GADDRESS_COPYTYPE_CUT )
{
//每次只允许一次操作
m_Copy_UserID = 0;
memset(m_Copy_GroupID,0,sizeof(m_Copy_GroupID));
m_Copy_Count = 0;
m_Copy_Type = 0;
m_Copy_Data = NULL;
}
}
void CFGAddress::On_User_Log()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER) )
{
return ;
}
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
CString strMobile = m_wndList.GetItemText(lItem,8);
DLG_User_Log dlg(this);
dlg.SetParam(&m_AdoRS,strMobile);
dlg.DoModal();
}
long CFGAddress::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
BOOL CFGAddress::isLockItem(long lItem, BOOL bShowWarning)
{
BOOL b = (m_wndList.GetIconIndex(lItem) == 3);
if ( b && bShowWarning )
{
MessageBox( _T("正录被锁定,请等待服务器返回后再操作!") , _T("锁定中") , MB_ICONINFORMATION );
}
return b;
}
void CFGAddress::SetLockItem(long lItem, BOOL bLock)
{
if ( bLock )
m_wndList.SetIconIndex( lItem , 3 );
else
{
m_wndList.SetIconIndex( lItem , 2 ); //这里无法分出男女,用中性的表示
}
}
void CFGAddress::ShowRMenu()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER,false)) //没有查看权限
return ;
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
long lItem = this->GetCurrentSelected();
if ( lItem >= 0 )
bLock = isLockItem( lItem , false ); //取得是否正在锁定
/*
//添加
if ( m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_ADD,false) && !m_bFind2 )
{
if ( m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFY,false ) && //要有修改权限与修改权限的权限才能打开专业的用户修改栏
m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFYPURVIEW,false ) )
{
*/
menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADD , _T(" 添加登录帐号 ") );
/*
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADD , _T(" 添加登录帐号 ") );
}
//menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADDADDR, _T(" 添加通讯录 ") );
menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADDGROUP, _T(" 添加用户组 ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADD , _T(" 添加登录帐号 ") );
//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADDADDR, _T(" 添加通讯录 ") );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADDGROUP , _T(" 添加用户组 ") );
}
*/
menu.AppendMenu(MF_SEPARATOR );
//修改
if ( m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER,false) && lItem >=0 && !bLock)
{
menu.AppendMenu(MF_STRING , MENU_GADDRESS_MODIFY, _T(" 修 改 ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_MODIFY , _T(" 修 改 ") );
}
//删除
if ( m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER,false) && lItem >=0 && !bLock )
{
menu.AppendMenu(MF_STRING , MENU_GADDRESS_DEL, _T(" 删 除 ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_DEL , _T(" 删 除 ") );
}
menu.AppendMenu(MF_SEPARATOR );
//发送短信
if ( m_pMainFrame->GetUserPurview(PURVIEW_SENDG,false) && lItem >=0 && !bLock )
{
menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADDTOLIST, _T(" 发送短信 ") );
#ifdef SUPPER_FUNC_FAX
menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADDTOLIST_FAX, _T(" 发送传真 ") );
#endif
#ifdef SUPPER_FUNC_MMS
menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADDTOLIST_MMS, _T(" 发送彩信 ") );
#endif
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADDTOLIST , _T(" 发送短信 ") );
#ifdef SUPPER_FUNC_FAX
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADDTOLIST_FAX, _T(" 发送传真 ") );
#endif
#ifdef SUPPER_FUNC_MMS
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADDTOLIST_MMS, _T(" 发送彩信 ") );
#endif
}
menu.AppendMenu(MF_SEPARATOR );
//if ( !m_bFind2 )
menu.AppendMenu(MF_STRING , MENU_GADDRESS_FIND, _T(" 查找... ") );
//else
// menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_FIND, _T(" 查找... ") );
if ( lItem >=0 )
menu.AppendMenu(MF_STRING , MENU_GADDRESS_LOG, _T(" 收发日志... ") );
else
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_LOG, _T(" 收发日志... ") );
menu.AppendMenu(MF_SEPARATOR );
if ( lItem >=0 && !m_bFind2 )
{
menu.AppendMenu(MF_STRING , MENU_GADDRESS_CUT , _T(" 剪 切 ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_CUT , _T(" 剪 切 ") );
}
//if (!m_bFind2 && m_lUserID!=m_Copy_UserID&&m_Copy_Count>0)
if (!m_bFind2 && m_Copy_Count>0 && !(m_lUserID==m_Copy_UserID && m_Copy_Type==GADDRESS_COPYTYPE_CUT))
menu.AppendMenu(MF_STRING , MENU_GADDRESS_PASTE , _T(" 粘 贴 ") );
else
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_PASTE , _T(" 粘 贴 ") );
menu.AppendMenu(MF_SEPARATOR );
/*
//导入用户
if ( m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_ADD,false) && !m_bFind2 )
{
menu.AppendMenu(MF_STRING , MENU_GADDRESS_INPORT, _T(" 导入用户 ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_INPORT , _T(" 导入用户 ") );
}
*/
//导出用户
if ( m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_MODIFY,false) )
{
menu.AppendMenu(MF_STRING , MENU_GADDRESS_EXPORT, _T(" 导出用户 ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_EXPORT , _T(" 导出用户 ") );
}
menu.AppendMenu(MF_SEPARATOR );
//刷新
menu.AppendMenu(MF_STRING , MENU_GADDRESS_REFRESH, _T(" 刷 新 ") );
//显示菜单
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
ANS_GAddress_SeeData CFGAddress::GetUserData(long lUserID)
{
ANS_GAddress_SeeData Address={0};
TCHAR szSelect[128]={0};
_stprintf( szSelect , _T("Select * from users where UserID=%d AND UserType='1' ") , lUserID );
BOOL b = m_AdoRS.Open( szSelect );
if ( b && m_AdoRS.GetRecordCount() )
{
COleDateTime t;
m_AdoRS.MoveFirst();
m_AdoRS.GetCollect( _T("UserID") , Address.lUserID);
m_AdoRS.GetCollect( _T("CorpID") , Address.lCorpID);
m_AdoRS.GetCollect( _T("UserType") , Address.szUserType);
m_AdoRS.GetCollect( _T("GroupID") , Address.szGroupID);
m_AdoRS.GetCollect( _T("Name") , Address.szName);
m_AdoRS.GetCollect( _T("NickName") , Address.szNickName);
m_AdoRS.GetCollect( _T("Sex") , Address.szSex);
m_AdoRS.GetCollect( _T("Birthday"), t); t.GetAsSystemTime(Address.tBirthday);
m_AdoRS.GetCollect( _T("Job") , Address.szJob);
m_AdoRS.GetCollect( _T("Tel") , Address.szTel);
m_AdoRS.GetCollect( _T("Fax") , Address.szFax);
m_AdoRS.GetCollect( _T("Email") , Address.szEmail);
m_AdoRS.GetCollect( _T("Mobile") , Address.szMobile);
m_AdoRS.GetCollect( _T("QQ") , Address.szQQ);
m_AdoRS.GetCollect( _T("LoginName") , Address.szLoginName);
m_AdoRS.GetCollect( _T("Passwd") , Address.szPasswd);
m_AdoRS.GetCollect( _T("PurviewType"), Address.ulPurviewType);
m_AdoRS.GetCollect( _T("Purview") , Address.ulPurview);
m_AdoRS.GetCollect( _T("LoginCount") , Address.lLoginCount);
m_AdoRS.GetCollect( _T("LoginTime") , t); t.GetAsSystemTime(Address.tLoginTime);
m_AdoRS.GetCollect( _T("SMSNum") , Address.szSMSNum);
m_AdoRS.GetCollect( _T("SMSUsed") , Address.lSMSUsed);
m_AdoRS.GetCollect( _T("SMSSendAll") , Address.lSMSSendAll);
m_AdoRS.GetCollect( _T("MmsUsed") , Address.lMmsUsed);
m_AdoRS.GetCollect( _T("MmsSendAll") , Address.lMmsSendAll);
//m_AdoRS.GetCollect( _T("OvrTime"), t); t.GetAsSystemTime(Address.tOvrTime);
m_AdoRS.GetCollect( _T("CreateUser") , Address.szCreateUser);
m_AdoRS.GetCollect( _T("CreateTime") , t); t.GetAsSystemTime(Address.tCreateTime);
m_AdoRS.GetCollect( _T("BZ") , Address.szBZ);
m_AdoRS.GetCollect( _T("AccessGroup") , Address.lAccessGroupID);
}
return Address;
}
void CFGAddress::OnDblclkGaddressList(NMHDR* pNMHDR, LRESULT* pResult)
{
On_User_Modify();
*pResult = 0;
}
BOOL CFGAddress::ProcessSocket(Socket_Head *pHead)
{
CString str;
//修改公用地址本
if (pHead->lFuncType == SMSFUNC_GADDRESS_MODIFY)
{
ANS_GAddress_Modify * pModify = (ANS_GAddress_Modify *)pHead->pFrame;
ANS_GAddress_SeeData * pData = (ANS_GAddress_SeeData *)(pHead->pFrame+sizeof(ANS_GAddress_Modify));
SetLockItem( pModify->lItem , false ); //解锁
if ( pModify->lCount == 1 ) //等于1时表示修改成功
{
long lUserID = m_wndList.GetItemData(pModify->lItem);
if ( lUserID == pData->lUserID )
{
//m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;已发短信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;"));
long lIcon = 2;
if ( _tcscmp(pData->szSex,_T(""))==0 )
lIcon = 0;
if ( _tcscmp(pData->szSex,_T(""))==0 )
lIcon = 1;
m_wndList.SetIconIndex(pModify->lItem,lIcon);
long lTemp=1;
m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szLoginName );
m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szSMSNum );
if ( pData->lSMSUsed == -100 )
str = _T(" 无限制");
else
str.Format( _T("%8d"),pData->lSMSUsed );
m_wndList.SetItemText(pModify->lItem,lTemp++, str );
#ifdef SUPPER_FUNC_MMS
if ( pData->lMmsUsed == -100 )
str = _T(" 无限制");
else
str.Format( _T("%8d"),pData->lMmsUsed );
m_wndList.SetItemText(pModify->lItem,lTemp++, str );
#endif
switch(pData->ulPurviewType)
{
case PURVIEWTYPE_ADMIN:
str = _T("系统管理员");
break;
case PURVIEWTYPE_KF:
str = _T("客户服务员");
break;
case PURVIEWTYPE_USERS:
str = _T("一般员工");
break;
case PURVIEWTYPE_INPUT:
str = _T("资料录入员");
break;
case PURVIEWTYPE_ADDRESS:
default:
str = _T("纯通讯录");
break;
}
m_wndList.SetItemText(pModify->lItem,lTemp++, str );
str.Format( _T("%8d"),pData->lLoginCount );
m_wndList.SetItemText(pModify->lItem,lTemp++, str );
m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szName );
m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szNickName );
m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szMobile );
m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szTel );
COleDateTime t(pData->tBirthday);
if ( t.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
m_wndList.SetItemText(pModify->lItem,lTemp++, str );
}
else
{
m_wndList.SetItemText(pModify->lItem,lTemp++, _T("") );
}
m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szJob );
m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szEmail );
#ifdef SHOWBZ_VER
m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szBZ );
#endif
}
//将新的数据写入本地数据库
TCHAR szSelect[128]={0};
_stprintf( szSelect , _T("select * from users where UserID=%d ") , pData->lUserID );
BOOL b = m_AdoRS.Open( szSelect );
if ( b && m_AdoRS.GetRecordCount() )
{
m_AdoRS.MoveFirst();
m_AdoRS.PutCollect(_T("GroupID") ,pData->szGroupID);
m_AdoRS.PutCollect(_T("Name") ,pData->szName );
m_AdoRS.PutCollect(_T("NickName") ,pData->szNickName );
m_AdoRS.PutCollect(_T("Sex") ,pData->szSex );
m_AdoRS.PutCollect(_T("Birthday") ,pData->tBirthday );
m_AdoRS.PutCollect(_T("Job") ,pData->szJob );
m_AdoRS.PutCollect(_T("Tel") ,pData->szTel );
m_AdoRS.PutCollect(_T("Fax") ,pData->szFax );
m_AdoRS.PutCollect(_T("Mobile") ,pData->szMobile );
m_AdoRS.PutCollect(_T("Email") ,pData->szEmail );
m_AdoRS.PutCollect(_T("QQ") ,pData->szQQ );
m_AdoRS.PutCollect(_T("LoginName") ,pData->szLoginName );
m_AdoRS.PutCollect(_T("Passwd") ,pData->szPasswd );
m_AdoRS.PutCollect(_T("PurviewType") ,pData->ulPurviewType );
m_AdoRS.PutCollect(_T("Purview") ,pData->ulPurview );
m_AdoRS.PutCollect(_T("SMSNum") ,pData->szSMSNum );
m_AdoRS.PutCollect(_T("SMSUsed") ,pData->lSMSUsed );
m_AdoRS.PutCollect( _T("MmsUsed") , pData->lMmsUsed);
m_AdoRS.PutCollect( _T("MmsSendAll") , pData->lMmsSendAll);
//m_AdoRS.PutCollect(_T("OvrTime") ,pData->tOvrTime);
m_AdoRS.PutCollect(_T("BZ") ,pData->szBZ);
m_AdoRS.PutCollect( _T("AccessGroup"), pData->lAccessGroupID);
m_AdoRS.Update();
m_AdoRS.Close();
}
}
return true;
}
//添加用户
if (pHead->lFuncType == SMSFUNC_GADDRESS_ADD)
{
ANS_GAddress_Add * pAdd = (ANS_GAddress_Add *)pHead->pFrame;
ANS_GAddress_SeeData * pData = (ANS_GAddress_SeeData *)(pHead->pFrame+sizeof(ANS_GAddress_Add));
if ( pAdd->lCount == 1 && pData->lUserID >0) //等于1时表示修改成功
{
long lCount = m_wndList.GetItemCount();
TCHAR Buf[32];
//设置新的数据
m_wndList.InsertItem( lCount , _itot(lCount+1,Buf,10)); //序号
long lIcon = 2;
if ( _tcscmp(pData->szSex,_T(""))==0 )
lIcon = 0;
if ( _tcscmp(pData->szSex,_T(""))==0 )
lIcon = 1;
m_wndList.SetIconIndex(lCount,lIcon);
m_wndList.SetItemData( lCount , pData->lUserID );
long lTemp=1;
m_wndList.SetItemText(lCount,lTemp++, pData->szLoginName );
m_wndList.SetItemText(lCount,lTemp++, pData->szSMSNum );
if ( pData->lSMSUsed == -100 )
str = _T(" 无限制");
else
str.Format( _T("%8d"),pData->lSMSUsed );
m_wndList.SetItemText(lCount,lTemp++, str );
#ifdef SUPPER_FUNC_MMS
if ( pData->lMmsUsed == -100 )
str = _T(" 无限制");
else
str.Format( _T("%8d"),pData->lMmsUsed );
m_wndList.SetItemText(lCount,lTemp++, str );
#endif
switch(pData->ulPurviewType)
{
case PURVIEWTYPE_ADMIN:
str = _T("系统管理员");
break;
case PURVIEWTYPE_KF:
str = _T("客户服务员");
break;
case PURVIEWTYPE_USERS:
str = _T("一般员工");
break;
case PURVIEWTYPE_INPUT:
str = _T("资料录入员");
break;
case PURVIEWTYPE_ADDRESS:
default:
str = _T("纯通讯录");
break;
}
m_wndList.SetItemText(lCount,lTemp++, str );
str.Format( _T("%8d"),pData->lLoginCount );
m_wndList.SetItemText(lCount,lTemp++, str );
m_wndList.SetItemText(lCount,lTemp++, pData->szName );
m_wndList.SetItemText(lCount,lTemp++, pData->szNickName );
m_wndList.SetItemText(lCount,lTemp++, pData->szMobile );
m_wndList.SetItemText(lCount,lTemp++, pData->szTel );
COleDateTime t(pData->tBirthday);
if ( t.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
m_wndList.SetItemText(lCount,lTemp++, str );
}
else
{
m_wndList.SetItemText(lCount,lTemp++, _T("") );
}
m_wndList.SetItemText(lCount,lTemp++, pData->szJob );
m_wndList.SetItemText(lCount,lTemp++, pData->szEmail );
#ifdef SHOWBZ_VER
m_wndList.SetItemText(lCount,lTemp++, pData->szBZ );
#endif
//添加到数据库里
BOOL b = m_AdoRS.Open( _T("users") , adCmdTable );
if ( b )
{
m_AdoRS.AddNew();
m_AdoRS.PutCollect(_T("UserID") ,pData->lUserID);
m_AdoRS.PutCollect(_T("CorpID") ,pData->lCorpID);
m_AdoRS.PutCollect(_T("UserType") ,pData->szUserType);
m_AdoRS.PutCollect(_T("GroupID") ,pData->szGroupID);
m_AdoRS.PutCollect(_T("Name") ,pData->szName );
m_AdoRS.PutCollect(_T("NickName") ,pData->szNickName );
m_AdoRS.PutCollect(_T("Sex") ,pData->szSex );
m_AdoRS.PutCollect(_T("Birthday") ,pData->tBirthday );
m_AdoRS.PutCollect(_T("Job") ,pData->szJob );
m_AdoRS.PutCollect(_T("Tel") ,pData->szTel );
m_AdoRS.PutCollect(_T("Fax") ,pData->szFax );
m_AdoRS.PutCollect(_T("Mobile") ,pData->szMobile );
m_AdoRS.PutCollect(_T("Email") ,pData->szEmail );
m_AdoRS.PutCollect(_T("QQ") ,pData->szQQ );
m_AdoRS.PutCollect(_T("LoginName") ,pData->szLoginName );
m_AdoRS.PutCollect(_T("Passwd") ,pData->szPasswd );
m_AdoRS.PutCollect(_T("PurviewType") ,pData->ulPurviewType );
m_AdoRS.PutCollect(_T("Purview") ,pData->ulPurview );
m_AdoRS.PutCollect(_T("SMSNum") ,pData->szSMSNum );
m_AdoRS.PutCollect(_T("SMSUsed") ,pData->lSMSUsed );
m_AdoRS.PutCollect(_T("SMSSendAll"),pData->lSMSSendAll);
m_AdoRS.PutCollect(_T("MmsUsed") ,pData->lMmsUsed );
m_AdoRS.PutCollect(_T("MmsSendAll"),pData->lMmsSendAll);
//m_AdoRS.PutCollect(_T("OvrTime") ,pData->tOvrTime);
m_AdoRS.PutCollect(_T("LoginCount") ,pData->lLoginCount);
m_AdoRS.PutCollect(_T("LoginTime") ,pData->tLoginTime);
m_AdoRS.PutCollect(_T("CreateUser") ,pData->szCreateUser);
m_AdoRS.PutCollect(_T("CreateTime") ,pData->tCreateTime);
m_AdoRS.PutCollect(_T("BZ") ,pData->szBZ);
m_AdoRS.PutCollect( _T("AccessGroup"), pData->lAccessGroupID);
m_AdoRS.Update();
}
m_AdoRS.Close();
}
if ( m_bInUser ) //是导入用户,需要显示进度条,并导入下一条
{
m_lInUserIndex ++;
m_DLGGetUser.SetProcess( m_lInUserCount , m_lInUserIndex );
Inport_Next();
}
return true;
}
//删除用户
if (pHead->lFuncType == SMSFUNC_GADDRESS_DEL)
{
ANS_GAddress_Del * pDel = (ANS_GAddress_Del *)pHead->pFrame;
ANS_GAddress_DelData * pDelData = (ANS_GAddress_DelData *)(pHead->pFrame+sizeof(ANS_GAddress_Del));
m_wndList.ShowWindow( SW_HIDE ); //为了加快显示速度
for ( int i = pDel->lCount-1 ; i>=0 ; i-- )
{
if ( pDelData[i].lItem >= 0 )
{
long lUserID = m_wndList.GetItemData(pDelData[i].lItem);
if ( pDelData[i].lUserID && lUserID == pDelData[i].lUserID) //删除成功
{
m_wndList.DeleteItem(pDelData[i].lItem); //从ListCtrl中删除
//从数据库中删除
TCHAR szSelect[128]={0};
_stprintf( szSelect , _T("delete from users where UserID=%d ") ,pDelData[i].lUserID );
m_AdoRS.Open( szSelect );
m_AdoRS.Close();
}
else
{
this->SetLockItem( pDelData[i].lItem , false ); //解锁
}
}
}
m_wndList.ShowWindow( SW_SHOW ); //为了加快显示速度
return true;
}
//添加用户组
if (pHead->lFuncType == SMSFUNC_GADDRESS_GROUP_ADD)
{
ANS_GAddress_Group_Add * pAdd = (ANS_GAddress_Group_Add *)pHead->pFrame;
ANS_GAddress_Group_AddData * pData = (ANS_GAddress_Group_AddData *)(pHead->pFrame+sizeof(ANS_GAddress_Group_Add));
if ( pAdd->lCount == 1 && pData->lUserID >0) //等于1时表示添加成功
{
//添加到树
m_pFuncView->AddGGroup( pData->szGroupName , m_lUserID , pData->lUserID );
//添加到数据库里
BOOL b = m_AdoRS.Open( _T("users") , adCmdTable );
if ( b )
{
m_AdoRS.AddNew();
m_AdoRS.PutCollect(_T("UserID") ,pData->lUserID);
m_AdoRS.PutCollect(_T("CorpID") ,m_pMainFrame->m_lCorpID);
m_AdoRS.PutCollect(_T("UserType") ,_T("0") ); //用户组
m_AdoRS.PutCollect(_T("GroupID") ,pData->szGroupID);
m_AdoRS.PutCollect(_T("Name") ,pData->szGroupName );
m_AdoRS.PutCollect(_T("CreateUser") ,pData->szCreateUser);
m_AdoRS.PutCollect(_T("CreateTime") ,pData->tCreateTime);
m_AdoRS.PutCollect(_T("BZ") ,pData->szBZ);
m_AdoRS.Update();
}
}
return true;
}
/*
//添加用户组
if (pHead->lFuncType == SMSFUNC_GADDRESS2_USER_MOVE)
{
ANS_GAddress2_User_Move * pMove = (ANS_GAddress2_User_Move *)pHead->pFrame;
REQ_GAddress2_User_Move_Data * pMoveData = (REQ_GAddress2_User_Move_Data *)(pHead->pFrame+sizeof(ANS_GAddress2_User_Move));
if ( pMove->lCount>0 && pMove->lCount==m_Copy_Count) //等于1时表示添加成功
{
if ( pMove->lMoveType == 0 ) //剪切,直接更改组ID即可
{
for ( int i=0 ; i<pMove->lCount;i++ )
{
str.Format( _T("Update gaddress set GroupID='%s' where UserID=%d"),pMove->szTagGroup,pMoveData[i].lUserID );
m_AdoRS.Open(str);
m_AdoRS.Close();
}
}
if ( pMove->lMoveType == 1 ) //复制,
{
//添加到数据库里
BOOL b = m_AdoRS.Open( _T("gaddress") , adCmdTable );
if ( b )
{
for ( int i=0 ; i<pMove->lCount;i++ )
{
m_AdoRS.AddNew();
m_AdoRS.PutCollect(_T("UserID") ,m_Copy_Data[i].lUserID);
m_AdoRS.PutCollect(_T("UserType") ,m_Copy_Data[i].szUserType);
m_AdoRS.PutCollect(_T("GroupID") ,pMove->szTagGroup);
m_AdoRS.PutCollect(_T("Name") ,m_Copy_Data[i].szName );
m_AdoRS.PutCollect(_T("NickName") ,m_Copy_Data[i].szNickName );
m_AdoRS.PutCollect(_T("Sex") ,m_Copy_Data[i].szSex );
m_AdoRS.PutCollect(_T("Birthday") ,m_Copy_Data[i].tBirthday );
m_AdoRS.PutCollect(_T("LTD") ,m_Copy_Data[i].szLTD );
m_AdoRS.PutCollect(_T("Job") ,m_Copy_Data[i].szJob );
m_AdoRS.PutCollect(_T("Addr") ,m_Copy_Data[i].szAddr );
m_AdoRS.PutCollect(_T("Tel") ,m_Copy_Data[i].szTel );
m_AdoRS.PutCollect(_T("Fax") ,m_Copy_Data[i].szFax );
m_AdoRS.PutCollect(_T("Mobile") ,m_Copy_Data[i].szMobile );
m_AdoRS.PutCollect(_T("Email") ,m_Copy_Data[i].szEmail );
m_AdoRS.PutCollect(_T("QQ") ,m_Copy_Data[i].szQQ );
m_AdoRS.PutCollect(_T("CreateTime") ,m_Copy_Data[i].tCreateTime);
m_AdoRS.PutCollect(_T("BZ") ,m_Copy_Data[i].szBZ);
m_AdoRS.Update();
m_AdoRS.GetCollect(_T("UserID") ,m_Copy_Data[i].lUserID ); //取得新添加的UserID
}
}
m_AdoRS.Close();
}
//显示出来
if (CString(pMove->szTagGroup) == CString(this->m_szGroupID) )
{
for ( int i=0 ; i<m_Copy_Count;i++ )
{
TCHAR szBuf[32]={0};
long lCount = m_wndList.GetItemCount();
m_wndList.InsertItem( lCount , _itot(lCount+1,szBuf,10)); //序号
long lIcon = 2;
if ( _tcscmp(m_Copy_Data[i].szSex,_T("男"))==0 )
lIcon = 0;
if ( _tcscmp(m_Copy_Data[i].szSex,_T("女"))==0 )
lIcon = 1;
m_wndList.SetIconIndex(lCount,lIcon);
m_wndList.SetItemData( lCount , m_Copy_Data[i].lUserID );
m_wndList.SetItemText(lCount,1, m_Copy_Data[i].szName );
m_wndList.SetItemText(lCount,2, m_Copy_Data[i].szNickName );
m_wndList.SetItemText(lCount,3, m_Copy_Data[i].szMobile );
m_wndList.SetItemText(lCount,4, m_Copy_Data[i].szTel );
COleDateTime t(m_Copy_Data[i].tBirthday);
if ( t.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
m_wndList.SetItemText(lCount,5, str );
}
else
{
m_wndList.SetItemText(lCount,5, _T("") );
}
m_wndList.SetItemText(lCount,6, m_Copy_Data[i].szLTD );
m_wndList.SetItemText(lCount,7, m_Copy_Data[i].szJob );
m_wndList.SetItemText(lCount,8, m_Copy_Data[i].szEmail );
#ifdef SHOWBZ_VER
m_wndList.SetItemText(lCount,9, m_Copy_Data[i].szBZ );
#endif
}
}
if ( m_Copy_Type == GADDRESS2_COPYTYPE_CUT )
{
//每次只允许一次操作
m_Copy_UserID = 0;
memset(m_Copy_GroupID,0,sizeof(m_Copy_GroupID));
m_Copy_Count = 0;
m_Copy_Type = 0;
if ( m_Copy_Data )
{
delete m_Copy_Data;
m_Copy_Data = NULL;
}
}
}
return true;
}
*/
return false;
}
void CFGAddress::OnRclickGaddressList(NMHDR* pNMHDR, LRESULT* pResult)
{
ShowRMenu();
*pResult = 0;
}
void CFGAddress::OnTimer(UINT_PTR nIDEvent)
{
CDialog::OnTimer(nIDEvent);
if ( nIDEvent == 1 )
{
KillTimer( 1 );
m_pFuncView = m_pMainFrame->m_pFuncView;
return ;
}
}
LRESULT CFGAddress::On_List_DropBegin( WPARAM wParam , LPARAM lParam )
{
//看有没有发送公用地址本的权限
if ( !m_pMainFrame->GetUserPurview( PURVIEW_SENDG , false ) )
return false;
long lCount = m_wndList.GetSelectedCount();
if ( lCount <= 0 )
return false;
//分配数据
long lSize = sizeof(Send_User)*lCount+sizeof(long);
HGLOBAL hData = GlobalAlloc(GHND|GMEM_SHARE, lSize );
BYTE *pS = (BYTE *)GlobalLock( hData );
memset( pS , 0 , lSize );
long * plCount = (long *)pS;
Send_User * pUser = (Send_User * )(pS+sizeof(long));
*plCount = lCount; //数据总量
TCHAR szSelect[128]={0};
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
while ( pos )
{
long lItem = m_wndList.GetNextSelectedItem( pos );
long lUserID = m_wndList.GetItemData( lItem );
if ( lUserID > 0 )
{
_stprintf( szSelect , _T("select * from users where UserID=%d"), lUserID );
BOOL b = m_AdoRS.Open( szSelect );
if ( b && m_AdoRS.GetRecordCount() )
{
m_AdoRS.MoveFirst();
m_AdoRS.GetCollect( _T("Name") , pUser->szName);
m_AdoRS.GetCollect( _T("NickName") , pUser->szNickName);
m_AdoRS.GetCollect( _T("Mobile") , pUser->szMobile);
m_AdoRS.GetCollect( _T("BZ") , pUser->szBZ);
}
}
pUser ++;
}
GlobalUnlock( hData );
//设置数据
COleDataSource data ;
UINT iCF = ::RegisterClipboardFormat( _T("CORPSMS_USER") );
data.CacheGlobalData( iCF , hData );
CUserDropTarget::m_shWndTreeCtrl = NULL;
CUserDropTarget::m_lAddressType = -1;
// Begin Drag operation
DROPEFFECT dropeffect = data.DoDragDrop();
GlobalFree( hData );
return true;
}
void CFGAddress::Inport_Next()
{
USES_CONVERSION;
if ( m_lInUserIndex >= m_lInUserCount ) //添加已完成
return ;
if ( isAddressFull() ) //通讯录已满
{
m_DLGGetUser.SetProcess( 1 , 1 ); //停止进度显示
return ;
}
long lSize = sizeof(REQ_GAddress_Add)+sizeof(ANS_GAddress_SeeData);
BYTE * pAddSent = new BYTE[lSize];memset(pAddSent,0,lSize);
REQ_GAddress_Add * pAdd = (REQ_GAddress_Add *)pAddSent; //头
ANS_GAddress_SeeData * pAddData = (ANS_GAddress_SeeData *)(pAddSent+sizeof(REQ_GAddress_Add));
*pAddData = m_pInUser[m_lInUserIndex]; //取得数据
_tcscpy(pAddData->szGroupID,m_szGroupID);
pAddData->lCorpID = m_pMainFrame->m_lCorpID;
pAddData->szUserType[0]='1'; //用户类型
/*
//一汽定制的,导入用户
_tcscpy( pAddData->szLoginName , pAddData->szNickName );
memset( pAddData->szNickName , 0 , sizeof(pAddData->szNickName));
//_tcscpy( pAddData->szBZ , pAddData->szEmail );
//memset( pAddData->szEmail , 0 , sizeof(pAddData->szEmail));
_stprintf( pAddData->szSMSNum , "%03d" , m_lInUserIndex+1 );
pAddData->lSMSSendAll = 0;
pAddData->lSMSUsed = 100;
pAddData->ulPurviewType = PURVIEWTYPE_KF;
pAddData->ulPurview = PURVIEW_LOGIN|PURVIEW_SENDP|PURVIEW_RECVP|PURVIEW_PADDRESS;
*/
//生成密码
CDes des;
#ifdef UNICODE
char szPasswd[64]={0};
char szPasswd2[64]={0};
char szUser[64]={0};
strcpy( szPasswd , "888888" );
strcpy( szUser , W2A(pAddData->szLoginName) );
long lLen=sizeof(szPasswd2);
des.Encrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lLen , szUser , 8 );
_tcscpy(pAddData->szPasswd,A2W(szPasswd2));
#else
char szPasswd[32]={0};
_tcscpy(szPasswd,"888888");
long lOut = sizeof(pAddData->szPasswd);
des.Encrypt( szPasswd , _tcslen(szPasswd) , pAddData->szPasswd , lOut,pAddData->szLoginName,8);
#endif
pAdd->lCount = 1;
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS_ADD , pAddSent , lSize );
}
void CFGAddress::GetLocal(TCHAR *pLocal, TCHAR *pGroupID)
{
long lLen = _tcslen( pGroupID );
TCHAR szGroup[16]={0};
TCHAR szTemp[16]={0};
TCHAR szSelect[128]={0};
_stprintf( pLocal , _T("帐号管理") );
m_strGroupName = pLocal;
for ( int i = 1 ; i<= lLen ; i++ )
{
_tcsncpy( szGroup , pGroupID , i );
_stprintf( szSelect , _T("select Name from users where GroupID='%s' AND UserType='0' ") , szGroup );
BOOL b = m_AdoRS.Open( szSelect );
if (b && !m_AdoRS.IsEOF())
{
m_AdoRS.GetCollect( _T("Name") , szTemp );
_tcscat( pLocal , _T("\\") );
_tcscat( pLocal , szTemp );
m_strGroupName = szTemp;
}
}
}
BOOL CFGAddress::AddUser(ANS_GAddress_SeeData user)
{
if ( isAddressFull() ) //通讯录已满
return false;
long lSize = sizeof(REQ_GAddress_Add)+sizeof(ANS_GAddress_SeeData);
BYTE * pAddSent = new BYTE[lSize];memset(pAddSent,0,lSize);
REQ_GAddress_Add * pAdd = (REQ_GAddress_Add *)pAddSent; //头
ANS_GAddress_SeeData * pAddData = (ANS_GAddress_SeeData *)(pAddSent+sizeof(REQ_GAddress_Add));
*pAddData = user;
pAdd->lCount = 1;
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS_ADD , pAddSent , lSize );
return true;
}
void CFGAddress::OnKeydownGaddressList(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
*pResult = 0;
if ( pLVKeyDow->wVKey == VK_DELETE )
{
On_User_Del();
}
if ( pLVKeyDow->wVKey == VK_INSERT)
{
On_User_Add();
}
if ( pLVKeyDow->wVKey == VK_SPACE)
{
On_User_Modify();
}
if ( pLVKeyDow->wVKey == 'S' || pLVKeyDow->wVKey == 's')
{
On_User_AddToList();
}
if ( pLVKeyDow->wVKey == 'G' || pLVKeyDow->wVKey == 'g')
{
On_User_AddGroup();
}
if ( pLVKeyDow->wVKey == 'F' || pLVKeyDow->wVKey == 'f')
{
On_User_Find();
}
if ( pLVKeyDow->wVKey == 'R' || pLVKeyDow->wVKey == 'r')
{
On_User_Refresh();
}
if ( pLVKeyDow->wVKey == 'L' || pLVKeyDow->wVKey == 'l')
{
On_User_Log();
}
if ( pLVKeyDow->wVKey == 'A' || pLVKeyDow->wVKey == 'a')
{
m_wndList.SelectAllItems();
}
//if ( pLVKeyDow->wVKey == 'C' || pLVKeyDow->wVKey == 'c')
//{
// On_User_Copy();
//}
if ( pLVKeyDow->wVKey == 'X' || pLVKeyDow->wVKey == 'x')
{
On_User_Cut();
}
if ( pLVKeyDow->wVKey == 'V' || pLVKeyDow->wVKey == 'v')
{
On_User_Paste();
}
}
void CFGAddress::OnOK()
{
//CDialog::OnOK();
}
void CFGAddress::OnCancel()
{
//CDialog::OnCancel();
}
void CFGAddress::On_User_Find2(DLG_FindUser * pDlg)
{
CString str;
CString strFind;
if ( pDlg->m_bFindAll ) //查询所有组
{
m_bFind2 = true; //属于查询出来的用户,有些操作不能进行
memset(m_szGroupID,0,sizeof(m_szGroupID));
strFind = _T("select * from users where 1<>1 ");
}
else
{
//查询本组
if ( _tcslen(m_szGroupID)>0 )
strFind.Format(_T("select * from users where GroupID='%s' and ( 1<>1 "),m_szGroupID);
else
strFind.Format(_T("select * from users where (GroupID='' or GroupID is null) and ( 1<>1 "),m_szGroupID);
}
if ( pDlg->m_bName ) //name
{
str.Format(_T(" or name like '%%%s%%' "),pDlg->m_strMsg);
strFind += str;
}
if ( pDlg->m_bNickName )//nickname
{
str.Format(_T(" or nickname like '%%%s%%' "),pDlg->m_strMsg);
strFind += str;
}
if ( pDlg->m_bSex )//sex
{
str.Format(_T(" or sex like '%%%s%%' "),pDlg->m_strMsg);
strFind += str;
}
// if ( pDlg->m_bLTD ) //LTD
// {
/// str.Format(_T(" or LTD like '%%%s%%' "),pDlg->m_strMsg);
// strFind += str;
// }
if ( pDlg->m_bJob ) //job
{
str.Format(_T(" or job like '%%%s%%' "),pDlg->m_strMsg);
strFind += str;
}
if ( pDlg->m_bTel ) //Tel
{
str.Format(_T(" or tel like '%%%s%%' "),pDlg->m_strMsg);
strFind += str;
}
if ( pDlg->m_bMobile ) //Mobile
{
str.Format(_T(" or mobile like '%%%s%%' "),pDlg->m_strMsg);
strFind += str;
}
if ( pDlg->m_bEmail ) //Email
{
str.Format(_T(" or email like '%%%s%%' "),pDlg->m_strMsg);
strFind += str;
}
if ( pDlg->m_bBZ ) //BZ
{
str.Format(_T(" or BZ like '%%%s%%' "),pDlg->m_strMsg);
strFind += str;
}
if ( !pDlg->m_bFindAll )
{
strFind += _T(" )");
}
m_wndList.ShowWindow ( SW_HIDE ); //加快显示速度
m_wndList.DeleteAllItems();
TCHAR szBuf[32]={0};
BOOL b = m_AdoRS.Open( strFind );
long lCount = m_AdoRS.GetRecordCount();
if ( b && lCount )
{
COleDateTime t;
m_AdoRS.MoveFirst();
for ( int i = 0 ; i< lCount ; i++ )
{
ANS_GAddress_SeeData user={0};
m_AdoRS.GetCollect( _T("UserID") , user.lUserID);
m_AdoRS.GetCollect( _T("UserType") , user.szUserType);
m_AdoRS.GetCollect( _T("GroupID") , user.szGroupID);
m_AdoRS.GetCollect( _T("Name") , user.szName);
m_AdoRS.GetCollect( _T("NickName") , user.szNickName);
m_AdoRS.GetCollect( _T("Sex") , user.szSex);
m_AdoRS.GetCollect( _T("Birthday"), t); t.GetAsSystemTime(user.tBirthday);
m_AdoRS.GetCollect( _T("Job") , user.szJob);
m_AdoRS.GetCollect( _T("Tel") , user.szTel);
m_AdoRS.GetCollect( _T("Fax") , user.szFax);
m_AdoRS.GetCollect( _T("Email") , user.szEmail);
m_AdoRS.GetCollect( _T("Mobile") , user.szMobile);
m_AdoRS.GetCollect( _T("QQ") , user.szQQ);
m_AdoRS.GetCollect( _T("LoginName") , user.szLoginName);
m_AdoRS.GetCollect( _T("PurviewType"), user.ulPurviewType);
m_AdoRS.GetCollect( _T("Purview") , user.ulPurview);
m_AdoRS.GetCollect( _T("LoginCount") , user.lLoginCount);
m_AdoRS.GetCollect( _T("LoginTime") , t); t.GetAsSystemTime(user.tLoginTime);
m_AdoRS.GetCollect( _T("SMSUsed") , user.lSMSUsed);
m_AdoRS.GetCollect( _T("SMSSendAll") , user.lSMSSendAll);
m_AdoRS.GetCollect( _T("MmsUsed") , user.lMmsUsed);
m_AdoRS.GetCollect( _T("MmsSendAll") , user.lMmsSendAll);
//m_AdoRS.GetCollect( _T("OvrTime"), t); t.GetAsSystemTime(user.tOvrTime);
m_AdoRS.GetCollect( _T("CreateUser") , user.szCreateUser);
m_AdoRS.GetCollect( _T("CreateTime") , t);t.GetAsSystemTime(user.tCreateTime);
m_AdoRS.GetCollect( _T("BZ") , user.szBZ);
m_AdoRS.GetCollect( _T("AccessGroup") , user.lAccessGroupID);
m_AdoRS.MoveNext();
//m_wndList.SetHeadings(_T("序号,50;登录名,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;"));
m_wndList.InsertItem( i , _itot(i+1,szBuf,10)); //序号
long lIcon = 2;
if ( _tcscmp(user.szSex,_T(""))==0 )
lIcon = 0;
if ( _tcscmp(user.szSex,_T(""))==0 )
lIcon = 1;
m_wndList.SetIconIndex(i,lIcon);
m_wndList.SetItemData( i , user.lUserID );
long lTemp=1;
m_wndList.SetItemText(i,lTemp++, user.szLoginName );
m_wndList.SetItemText(i,lTemp++, user.szSMSNum );
if ( user.lSMSUsed == -100 )
str = _T(" 无限制");
else
str.Format( _T("%8d"),user.lSMSUsed );
m_wndList.SetItemText(i,lTemp++, str );
#ifdef SUPPER_FUNC_MMS
if ( user.lMmsUsed == -100 )
str = _T(" 无限制");
else
str.Format( _T("%8d"),user.lMmsUsed );
m_wndList.SetItemText(i,lTemp++, str );
#endif
switch(user.ulPurviewType)
{
case PURVIEWTYPE_ADMIN:
str = _T("系统管理员");
break;
case PURVIEWTYPE_KF:
str = _T("客户服务员");
break;
case PURVIEWTYPE_USERS:
str = _T("一般员工");
break;
case PURVIEWTYPE_INPUT:
str = _T("资料录入员");
break;
case PURVIEWTYPE_ADDRESS:
default:
str = _T("纯通讯录");
break;
}
m_wndList.SetItemText(i,lTemp++, str );
str.Format( _T("%8d"),user.lLoginCount );
m_wndList.SetItemText(i,lTemp++, str );
m_wndList.SetItemText(i,lTemp++, user.szName );
m_wndList.SetItemText(i,lTemp++, user.szNickName );
m_wndList.SetItemText(i,lTemp++, user.szMobile );
m_wndList.SetItemText(i,lTemp++, user.szTel );
COleDateTime t(user.tBirthday);
if ( t.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
m_wndList.SetItemText(i,lTemp++, str );
}
else
{
m_wndList.SetItemText(i,lTemp++, _T("") );
}
m_wndList.SetItemText(i,lTemp++, user.szJob );
m_wndList.SetItemText(i,lTemp++, user.szEmail );
#ifdef SHOWBZ_VER
m_wndList.SetItemText(i,lTemp++, user.szBZ );
#endif
}
}
else
{
MessageBox( _T("对不起,没有找到相应的记录,请重新查询!"),_T("信息"),MB_ICONINFORMATION);
}
m_wndList.ShowWindow( SW_SHOW ); //为了加快显示速度
}
void CFGAddress::OnDestroy()
{
CDialog::OnDestroy();
if ( m_pInUser )
{delete m_pInUser;m_pInUser=NULL;};
}
BOOL CFGAddress::isAddressFull(BOOL bTip)
{
long lCount=0;
CString str=_T("select count(*) as abc from users");
if ( m_AdoRS.Open( str ) && m_AdoRS.GetRecordCount()>0 )
{
m_AdoRS.MoveFirst();
m_AdoRS.GetCollect(_T("abc"), lCount );
m_AdoRS.Close();
}
if ( lCount<m_pMainFrame->GetMaxUsersCount() )
return false;
if ( bTip )
{
MessageBox( _T("你的帐号容量已达上限,不能继续添加,请联系服务提供商!") , _T("错误") , MB_ICONWARNING );
}
return true;
}
void CFGAddress::On_User_ModifyUsed()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER))
{
return;
}
long lItem = GetCurrentSelected();
if (lItem < 0)
return;
if (isLockItem(lItem))
{
return;
}
long lUserID = m_wndList.GetItemData(lItem);
ANS_GAddress_SeeData Address = GetUserData(lUserID);
}