📄 u_innerdealpack.pas
字号:
1:Begin//定制包月的发送信息
If CustomStatus In [0,1,3] Then InfoTitle:=CustomInfoTitle[1] Else InfoTitle:=CustomInfoTitle[2];
If (ProviderChargeType=1) And (CustomStatus In [0,1]) Then
To_Out(Indeal,DialCodeInfoRec,GetDialCodeInfoRec(ChargeDialCode,GateID),SearchMsg(InfoTitle,GateID))
Else
To_Out(Indeal,DialCodeInfoRec,SearchMsg(InfoTitle,GateID));
End;
2:Begin//取消包月的发送信息
If CustomStatus In [0,1] Then InfoTitle:=CustomInfoTitle[3]
Else If CustomStatus In [2] Then InfoTitle:=CustomInfoTitle[4]
Else InfoTitle:=CustomInfoTitle[5];
To_Out(Indeal,DialCodeInfoRec,SearchMsg(InfoTitle,GateID));
End;
3:Begin
//如果是新用户则加发一条包月定制信息
If CustomStatus In [0,1] Then
Begin
InfoTitle:=CustomInfoTitle[1];
If ProviderChargeType=1 Then
To_Out(Indeal,DialCodeInfoRec,GetDialCodeInfoRec(ChargeDialCode,GateID),SearchMsg(InfoTitle,GateID))
Else
To_Out(Indeal,DialCodeInfoRec,SearchMsg(InfoTitle,GateID));
End;
End;
End;
End;
//队列初始化
Procedure MakeNull(Var Q:Rec_IndealQueue);
Begin
New(Q.Front);
Q.Front.Next:=nil;
Q.Rear:=Q.Front;
End;
//判断队列是否为空
Function Empty(Q:Rec_IndealQueue):Boolean;
Begin
If Q.Front=Q.Rear Then
Result:=True
Else
Result:=False;
End;
//获取队列头信息
Function Front(Q:Rec_IndealQueue):TSmgDeliverReq;
Begin
If Not Empty(Q) Then
Result:=Q.Front.Next.Indeal;
End;
//数据入队
Procedure EnQueue(Indeal:TSmgDeliverReq;Var Q:Rec_IndealQueue);
Begin
Try
New(Q.Rear.Next);
Q.Rear:=Q.Rear.Next;
Q.Rear.Indeal:=Indeal;
Q.Rear.Next:=nil;
Inc(QueueAmount);
Except
AddErrMsg('队列溢出');
End;
End;
//数据出队
Procedure DeQueue(Var Q:Rec_IndealQueue);
Begin
If Not Empty(Q) Then
Begin
Q.Front:=Q.Front.Next;
Dec(QueueAmount);
End;
End;
//数据出队
Function DeQueue(Var Q:Rec_IndealQueue;Var DealQueueDataFlag:Boolean):TSmgDeliverReq;
Begin
DealQueueDataFlag:=False;
If Not Empty(Q) Then
Begin
DealQueueDataFlag:=True;
Result:=Q.Front.Next.Indeal;
Q.Front:=Q.Front.Next;
Dec(QueueAmount);
End;
End;
//获取业务包月信息
Function GetServiceOpenBYFlag(ServiceBYInfoTableName,DBConnectionString,ProviderID,ServiceCode:String;GateID:Integer):Integer;
Var
ADOQuery:TADOQuery;
SqlStr:String;
OpenBYFlag:Integer;
Begin
Try
OpenBYFlag:=0;
ADOQuery:=TADOQuery.Create(nil);
With ADOQuery Do
Begin
ConnectionString:=DBConnectionString;
SqlStr:='Select * From '+ServiceBYInfoTableName;
SqlStr:=SqlStr+' Where ProviderID=:ProviderID';
SqlStr:=SqlStr+' And GateID=:GateID';
SqlStr:=SqlStr+' And ServiceCode=:ServiceCode';
Close;Sql.Clear;Sql.Add(SqlStr);
Parameters.ParamByName('ProviderID').Value:=StrToInt(ProviderID);
Parameters.ParamByName('GateID').Value:=GateID;
Parameters.ParamByName('ServiceCode').Value:=ServiceCode;
Open;
If Not Eof Then
OpenBYFlag:=FieldByName('OpenBYFlag').AsInteger;
End;
Except
On E:EOleException Do
Begin
E.ErrorCode:=0;
DBError(E);
End;
End;
Result:=OpenBYFlag;
ADOQuery.Free;
End;
//获取业务连接信息
Function GetNoticeInfo(NoticeInfoTableName,DBConnectionString,ProviderID,ServiceCode:String;GateID:Integer):TStrings;
Var
ADOQuery:TADOQuery;
SqlStr,Info:String;
List:TStrings;
Begin
List:=TStringList.Create;List.Clear;
Try
ADOQuery:=TADOQuery.Create(nil);
With ADOQuery Do
Begin
ConnectionString:=DBConnectionString;
SqlStr:='Select * From '+NoticeInfoTableName;
SqlStr:=SqlStr+' Where ProviderID=:ProviderID';
SqlStr:=SqlStr+' And GateID=:GateID';
SqlStr:=SqlStr+' And ServiceCode=:ServiceCode';
SqlStr:=SqlStr+' And MsgType=:MsgType';
SqlStr:=SqlStr+' Order By OrderID';
Close;Sql.Clear;Sql.Add(SqlStr);
Parameters.ParamByName('ProviderID').Value:=StrToInt(ProviderID);
Parameters.ParamByName('GateID').Value:=GateID;
Parameters.ParamByName('ServiceCode').Value:=ServiceCode;
Parameters.ParamByName('MsgType').Value:=1;
Open;
While Not Eof Do
Begin
Info:=FieldByName('MsgContent').AsString;
If Info<>'' Then
List.Add(Info);
Next;
End;
End;
Except
On E:EOleException Do
Begin
E.ErrorCode:=0;
DBError(E);
End;
End;
Result:=List;
ADOQuery.Free;
End;
//获取业务追加连接信息
Function GetAppendNoticeInfo(NoticeInfoTableName,DBConnectionString,ProviderID,ServiceCode:String;GateID:Integer):String;
Var
ADOQuery:TADOQuery;
SqlStr,Info:String;
Begin
Try
ADOQuery:=TADOQuery.Create(nil);
With ADOQuery Do
Begin
ConnectionString:=DBConnectionString;
SqlStr:='Select * From '+NoticeInfoTableName;
SqlStr:=SqlStr+' Where ProviderID=:ProviderID';
SqlStr:=SqlStr+' And GateID=:GateID';
SqlStr:=SqlStr+' And ServiceCode=:ServiceCode';
SqlStr:=SqlStr+' And MsgType=:MsgType';
SqlStr:=SqlStr+' Order By OrderID';
Close;Sql.Clear;Sql.Add(SqlStr);
Parameters.ParamByName('ProviderID').Value:=StrToInt(ProviderID);
Parameters.ParamByName('GateID').Value:=GateID;
Parameters.ParamByName('ServiceCode').Value:=ServiceCode;
Parameters.ParamByName('MsgType').Value:=0;
Open;
If Not Eof Then
Info:=FieldByName('MsgContent').AsString;
End;
Except
On E:EOleException Do
Begin
E.ErrorCode:=0;
DBError(E);
End;
End;
Result:=Info;
ADOQuery.Free;
End;
//获取点播号段的前缀
Function GetDialCodePre(DialCode:String):String;
Var
RegisterNumberIndex:Integer;
DialCodePre:String;
Begin
Try
DialCodePre:='';
For RegisterNumberIndex:=0 To RegisterNumberAmount-1 Do
Begin
DialCodePre:=ProviderName+RegisterNumber[RegisterNumberIndex];
If Pos(DialCodePre,DialCode)=1 Then
Break;
End;
Result:=DialCodePre;
Except
End;
End;
//通过用户的手机号码获取运营商ID
Function GetProviderIDOfPhone(Phone:String):Integer;
Var
ProviderID,PhoneCode:Integer;
Begin
Try
ProviderID:=-1;
PhoneCode:=StrToInt(Copy(Phone,1,3));
If PhoneCode=130 Then ProviderID:=1;
If PhoneCode=131 Then ProviderID:=1;
If PhoneCode=133 Then ProviderID:=1;
If PhoneCode=135 Then ProviderID:=0;
If PhoneCode=136 Then ProviderID:=0;
If PhoneCode=137 Then ProviderID:=0;
If PhoneCode=138 Then ProviderID:=0;
If PhoneCode=139 Then ProviderID:=0;
Except
ProviderID:=-1;
End;
Result:=ProviderID;
End;
//通过用户的手机号码获取运营商ID
Function ProviderIDIsSameType(CurrProviderID,DestProviderID:Integer):Boolean;
Var
SameTypeFlag:Boolean;
Begin
SameTypeFlag:=False;
If (CurrProviderID In [1,2]) And (DestProviderID In [1,2]) Then SameTypeFlag:=True
Else If (CurrProviderID In [0]) And (DestProviderID In [0]) Then SameTypeFlag:=True
Else If (CurrProviderID In [3]) And (DestProviderID In [3]) Then SameTypeFlag:=True;
Result:=SameTypeFlag;
End;
//判断手机号码是否正确
Function IsPhone(Phone:String):Boolean;
Var
IsPhoneFlag:Boolean;
PhoneCode:Integer;
Begin
Try
IsPhoneFlag:=False;
PhoneCode:=StrToInt(Copy(Phone,1,3));
If PhoneCode=130 Then IsPhoneFlag:=True;
If PhoneCode=131 Then IsPhoneFlag:=True;
If PhoneCode=133 Then IsPhoneFlag:=True;
If PhoneCode=135 Then IsPhoneFlag:=True;
If PhoneCode=136 Then IsPhoneFlag:=True;
If PhoneCode=137 Then IsPhoneFlag:=True;
If PhoneCode=138 Then IsPhoneFlag:=True;
If PhoneCode=139 Then IsPhoneFlag:=True;
If Length(Phone)<PhoneLen Then IsPhoneFlag:=False;
Except
End;
Result:=IsPhoneFlag;
End;
//初始化短信转发信息记录
Function InitSmsMtSendInfoRec:Rec_Sms_Mt_Send_Info;
Var
Sms_Mt_Send_Info_Rec:Rec_Sms_Mt_Send_Info;
Begin
With Sms_Mt_Send_Info_Rec Do
Begin
Mt_Send_Seq:=0;//自动流水号
Dest_Addr:='';//用户手机号码
Src_Addr:='';//SP地址
Service_ID:='';//计费代码
Fee_Type:='0';//0资费类型
Fee_User_Type:=2;//3用户类型
Fee_Code:='0';//0资费代码
Fee_Addr:='';//用户手机号码
Msg_Fmt:=15;//消息格式
Msg_Len:=0;//消息长度
Msg_Context:='';//消息内容
Msg_Sender:=0;//消息发送者
Submit_Time:=Now;//发送时间
End;
Result:=Sms_Mt_Send_Info_Rec;
End;
//群发信息处理
Function DealSmsMtSendInfo(DBConnectionString,Phone,SrcAddress,MsgContent:String;ProviderID:Integer;DialCodeInfoRec:Rec_DialCodeInfo):String;
Var
ADOQuery:TADOQuery;
SqlStr:String;
Begin
Try
ADOQuery:=TADOQuery.Create(nil);
With ADOQuery,DialCodeInfoRec Do
Begin
ConnectionString:=DBConnectionString; //Sms_Mt_Send_Info
SqlStr:='Insert Into '+SmsMtSendInfoTableName[ProviderID]+'(MT_SEND_SEQ,Dest_Addr,Src_Addr,Service_ID,Fee_Type,Fee_User_Type,Fee_Code,Fee_Addr,Msg_Fmt,Msg_Len,Msg_Context,Msg_S
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -