一个批量处理数组的方法(downmoon原创)

本文介绍了一种批量处理数组的方法,用于向用户列表中的成员发送短信。该方法通过循环遍历用户列表,根据指定的来源获取手机号码,并按批次发送短信,同时记录发送历史。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个批量处理数组的方法

#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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值