一个批量处理数组的方法
#regionSendMobileMessageByuserList
///<summary>
///SendMobileMessageByuserList
///Tony2007-05-31
///<paramname="site">Site</param>
///<paramname="lng">lng</param>
///<paramname="UserList">userList</param>
///<paramname="SendContent">SendContent</param>
///<paramname="MobileSource">1为PassPort,1为Message</param>
publicstaticvoidSendToMobileByUserList(stringsite,stringlng,string[]UserList,stringSendContent,shortMobileSource)
{
if(UserList==null||UserList.Length==0)
{return;}
else
{
if(IsLoginWithSite(site.Trim()))
{
try
{
#region定义变量
SendHistorys;
StringBuildersb=newStringBuilder();
//组内计数
intLevelCount=0;
//数组长度
intuserLen=UserList.Length;
stringtemp1=string.Empty;
//当前组序号
intCurrentLevel=0;
//总的组数(取整)suchas8/3=2
//MaxBatchMobileNumber为外部publicVars,每批处理的数量
intMaxLevel=userLen/MaxBatchMobileNumber;
PassPort.User2007.Framework.Components.User2007ur;
PassPortWebServicepws=newPassPortWebService();
MobileMessageSetm;
stringm1;
#endregion
foreach(stringuinUserList)
{
if(u==null||u.Trim().Length==0)
{
//组内计数加一
LevelCount++;
continue;
}
#region获取一串手机号码
switch(MobileSource)
{
case1:
#region从Passport获取号码
ur=pws.GetUser2007(u,lng);
if(ur!=null&&ur.Mobile!=null)
{
m1=string.Empty;
m1=GetMobileStartWith13(ur.Mobile.Trim());
if(m1.Length>10)
{sb.Append(m1+",");}
}
ur=null;
#endregion
break;
case2:
#region从短信提醒设置获取号码
m=SMS.MobileMessageSet.Framework.Data.DataDTOProvider.MobileMessageSetSelectByLoginID(0,u,lng);
if(m!=null&&m.ToMobile!=null)
{
m1=string.Empty;
m1=GetMobileStartWith13(m.ToMobile);
if(m1.Length>10)
{sb.Append(m1+",");}
}
m=null;
#endregion
break;
default:
#region从Passport获取号码
ur=pws.GetUser2007(u,lng);
if(ur!=null&&ur.Mobile!=null)
{
m1=string.Empty;
m1=GetMobileStartWith13(ur.Mobile.Trim());
if(m1.Length>10)
{sb.Append(m1+",");}
}
ur=null;
#endregion
break;
}
//组内计数加一
LevelCount++;
#endregion
#region发送一批号码
if(LevelCount==userLen&&LevelCount<MaxBatchMobileNumber)
{
#region用户数量小于批数量
temp1=sb.ToString();
if(temp1.EndsWith(","))
{
temp1=temp1.Remove(temp1.Length-1,1);
}
intbRtn=newJL().SendMsg(pHandle,strMobileCode,temp1,SendContent,"");
#region发送成功后写入数据库
if(bRtn==0)
{
s=newSendHistory();
s.MessageID=-100;
s.Status=0;
lng=(lng==null||lng.Trim().Length==0)?"cn":lng;
stringstr="来自于{0},语言为{1},发送给{2}的手机({3})的短信内容:{4}";
s.Topic=string.Format(str,site,lng,u,temp1,SendContent);;
s.CreatTime=DateTime.Now;
s.F1=0;
s.F2=0;
s.F3=site+"-"+lng;
s.F4="";
s.UpdateTime=DateTime.Now;
SMS.SendHistory.Framework.Data.DataDTOProvider.SendHistoryInsert(s);
s=null;
}
#endregion
#region完成后清零
sb=newStringBuilder();
temp1=string.Empty;
LevelCount=0;
#endregion
#endregion
}
elseif(LevelCount==MaxBatchMobileNumber)
{
#region刚好一批
temp1=sb.ToString();
if(temp1.EndsWith(","))
{
temp1=temp1.Remove(temp1.Length-1,1);
}
intbRtn=newJL().SendMsg(pHandle,strMobileCode,temp1,SendContent,"");
#region发送成功后写入数据库
if(bRtn==0)
{
s=newSendHistory();
s.MessageID=-100;
s.Status=0;
lng=(lng==null||lng.Trim().Length==0)?"cn":lng;
stringstr="来自于{0},语言为{1},发送给{2}的手机({3})的短信内容:{4}";
s.Topic=string.Format(str,site,lng,u,temp1,SendContent);;
s.CreatTime=DateTime.Now;
s.F1=0;
s.F2=0;
s.F3=site+"-"+lng;
s.F4="";
s.UpdateTime=DateTime.Now;
SMS.SendHistory.Framework.Data.DataDTOProvider.SendHistoryInsert(s);
s=null;
}
#endregion
#region完成后清零
sb=newStringBuilder();
temp1=string.Empty;
LevelCount=0;
//当前组数加一
CurrentLevel++;
#endregion
#endregion
}
elseif(LevelCount<MaxBatchMobileNumber&&(userLen%MaxBatchMobileNumber)==LevelCount&&MaxLevel==CurrentLevel)
{
#region最后一批
temp1=sb.ToString();
if(temp1.EndsWith(","))
{
temp1=temp1.Remove(temp1.Length-1,1);
}
intbRtn=newJL().SendMsg(pHandle,strMobileCode,temp1,SendContent,"");
#region发送成功后写入数据库
if(bRtn==0)
{
s=newSendHistory();
s.MessageID=-100;
s.Status=0;
lng=(lng==null||lng.Trim().Length==0)?"cn":lng;
stringstr="来自于{0},语言为{1},发送给{2}的手机({3})的短信内容:{4}";
s.Topic=string.Format(str,site,lng,u,temp1,SendContent);;
s.CreatTime=DateTime.Now;
s.F1=0;
s.F2=0;
s.F3=site+"-"+lng;
s.F4="";
s.UpdateTime=DateTime.Now;
SMS.SendHistory.Framework.Data.DataDTOProvider.SendHistoryInsert(s);
s=null;
}
#endregion
#region完成后清零
sb=newStringBuilder();
temp1=string.Empty;
LevelCount=0;
#endregion
#endregion
}
#endregion
}
}
catch//(Exceptionex)
{
return;
}
}
}
}
#endregion
///<summary>
///SendMobileMessageByuserList
///Tony2007-05-31
///<paramname="site">Site</param>
///<paramname="lng">lng</param>
///<paramname="UserList">userList</param>
///<paramname="SendContent">SendContent</param>
///<paramname="MobileSource">1为PassPort,1为Message</param>
publicstaticvoidSendToMobileByUserList(stringsite,stringlng,string[]UserList,stringSendContent,shortMobileSource)
{
if(UserList==null||UserList.Length==0)
{return;}
else
{
if(IsLoginWithSite(site.Trim()))
{
try
{
#region定义变量
SendHistorys;
StringBuildersb=newStringBuilder();
//组内计数
intLevelCount=0;
//数组长度
intuserLen=UserList.Length;
stringtemp1=string.Empty;
//当前组序号
intCurrentLevel=0;
//总的组数(取整)suchas8/3=2
//MaxBatchMobileNumber为外部publicVars,每批处理的数量
intMaxLevel=userLen/MaxBatchMobileNumber;
PassPort.User2007.Framework.Components.User2007ur;
PassPortWebServicepws=newPassPortWebService();
MobileMessageSetm;
stringm1;
#endregion
foreach(stringuinUserList)
{
if(u==null||u.Trim().Length==0)
{
//组内计数加一
LevelCount++;
continue;
}
#region获取一串手机号码
switch(MobileSource)
{
case1:
#region从Passport获取号码
ur=pws.GetUser2007(u,lng);
if(ur!=null&&ur.Mobile!=null)
{
m1=string.Empty;
m1=GetMobileStartWith13(ur.Mobile.Trim());
if(m1.Length>10)
{sb.Append(m1+",");}
}
ur=null;
#endregion
break;
case2:
#region从短信提醒设置获取号码
m=SMS.MobileMessageSet.Framework.Data.DataDTOProvider.MobileMessageSetSelectByLoginID(0,u,lng);
if(m!=null&&m.ToMobile!=null)
{
m1=string.Empty;
m1=GetMobileStartWith13(m.ToMobile);
if(m1.Length>10)
{sb.Append(m1+",");}
}
m=null;
#endregion
break;
default:
#region从Passport获取号码
ur=pws.GetUser2007(u,lng);
if(ur!=null&&ur.Mobile!=null)
{
m1=string.Empty;
m1=GetMobileStartWith13(ur.Mobile.Trim());
if(m1.Length>10)
{sb.Append(m1+",");}
}
ur=null;
#endregion
break;
}
//组内计数加一
LevelCount++;
#endregion
#region发送一批号码
if(LevelCount==userLen&&LevelCount<MaxBatchMobileNumber)
{
#region用户数量小于批数量
temp1=sb.ToString();
if(temp1.EndsWith(","))
{
temp1=temp1.Remove(temp1.Length-1,1);
}
intbRtn=newJL().SendMsg(pHandle,strMobileCode,temp1,SendContent,"");
#region发送成功后写入数据库
if(bRtn==0)
{
s=newSendHistory();
s.MessageID=-100;
s.Status=0;
lng=(lng==null||lng.Trim().Length==0)?"cn":lng;
stringstr="来自于{0},语言为{1},发送给{2}的手机({3})的短信内容:{4}";
s.Topic=string.Format(str,site,lng,u,temp1,SendContent);;
s.CreatTime=DateTime.Now;
s.F1=0;
s.F2=0;
s.F3=site+"-"+lng;
s.F4="";
s.UpdateTime=DateTime.Now;
SMS.SendHistory.Framework.Data.DataDTOProvider.SendHistoryInsert(s);
s=null;
}
#endregion
#region完成后清零
sb=newStringBuilder();
temp1=string.Empty;
LevelCount=0;
#endregion
#endregion
}
elseif(LevelCount==MaxBatchMobileNumber)
{
#region刚好一批
temp1=sb.ToString();
if(temp1.EndsWith(","))
{
temp1=temp1.Remove(temp1.Length-1,1);
}
intbRtn=newJL().SendMsg(pHandle,strMobileCode,temp1,SendContent,"");
#region发送成功后写入数据库
if(bRtn==0)
{
s=newSendHistory();
s.MessageID=-100;
s.Status=0;
lng=(lng==null||lng.Trim().Length==0)?"cn":lng;
stringstr="来自于{0},语言为{1},发送给{2}的手机({3})的短信内容:{4}";
s.Topic=string.Format(str,site,lng,u,temp1,SendContent);;
s.CreatTime=DateTime.Now;
s.F1=0;
s.F2=0;
s.F3=site+"-"+lng;
s.F4="";
s.UpdateTime=DateTime.Now;
SMS.SendHistory.Framework.Data.DataDTOProvider.SendHistoryInsert(s);
s=null;
}
#endregion
#region完成后清零
sb=newStringBuilder();
temp1=string.Empty;
LevelCount=0;
//当前组数加一
CurrentLevel++;
#endregion
#endregion
}
elseif(LevelCount<MaxBatchMobileNumber&&(userLen%MaxBatchMobileNumber)==LevelCount&&MaxLevel==CurrentLevel)
{
#region最后一批
temp1=sb.ToString();
if(temp1.EndsWith(","))
{
temp1=temp1.Remove(temp1.Length-1,1);
}
intbRtn=newJL().SendMsg(pHandle,strMobileCode,temp1,SendContent,"");
#region发送成功后写入数据库
if(bRtn==0)
{
s=newSendHistory();
s.MessageID=-100;
s.Status=0;
lng=(lng==null||lng.Trim().Length==0)?"cn":lng;
stringstr="来自于{0},语言为{1},发送给{2}的手机({3})的短信内容:{4}";
s.Topic=string.Format(str,site,lng,u,temp1,SendContent);;
s.CreatTime=DateTime.Now;
s.F1=0;
s.F2=0;
s.F3=site+"-"+lng;
s.F4="";
s.UpdateTime=DateTime.Now;
SMS.SendHistory.Framework.Data.DataDTOProvider.SendHistoryInsert(s);
s=null;
}
#endregion
#region完成后清零
sb=newStringBuilder();
temp1=string.Empty;
LevelCount=0;
#endregion
#endregion
}
#endregion
}
}
catch//(Exceptionex)
{
return;
}
}
}
}
#endregion