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

📄 u_innerdealpack.pas

📁 软件功能:下载一个网站上所有的彩铃! 铃声下载完后
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    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 + -