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

📄 pkgtrxsbase.hpp

📁 液晶电视完整代码可实现人机界面
💻 HPP
字号:
//------------------------------------------------------------------- // 系统名:小额批量支付系统MBFE// 文件名:PKGTrxsBase.hpp// 描  述:MBFE后台服务基础类// 版  本:v1.0// Copyright (c) 2005  YLINK//------------------------------------------------------------------- #ifndef __PKGTRXSBASE__#define __PKGTRXSBASE__//公共头文件#include "SvrDef.hpp"#include "BepsMbfePub.hpp"#include <math.h>// 系统错#define E_ReadBigDataFail     			21753001			// CB0S5001 查询大文本数据存储表失败#define E_UpdateBigDataFail  			21753002			// CB0S5003 更新大文本数据存储表失败#define E_SaveBigDataFail     			21753003			// CB0S5002 保存大文本数据存储表失败#define E_GetCmtAttrFail     			21753004			// CB0S5001 查询报文属性表失败#define E_SaveRunInfoFail         		21753005			// CB0S5002 保存运行信息通知表失败	#define E_GetQueueNoFail      			21753006			// CB0S5013 产生队列序号失败 #define E_SaveAPIMBRQFail     			21753007			// CB0S5002 保存接口数据来帐队列失败#define E_DelBigDataFail      			21753008			// CB0S5004 删除大文本数据存储表失败#define E_DelAPIMBSQFail      			21753009			// CB0S5004 删除接口数据往帐队列失败#define E_DelAPIMBRQFail     			21753010			// CB0S5004 删除接口数据来帐队列失败#define E_SaveCOMMBFESQFail  			21753011			// CB0S5002 保存通讯数据往帐队列失败#define E_DelCOMMBFERQFail   			21753012			// CB0S5004 删除通讯数据来帐队列失败#define E_MdyCOMMBFERQFail   			21753013			// CB0S5003 修改通讯数据来帐队列失败#define E_BuildMsgHeaderFail 			21753014			// CB0S2004 组报文头失败#define E_UnknownAppCode     			21753015			// CB0S9999 错误的系统编码#define E_Pack911HeaderFail   			21753016			// CB0S2004 组911报文头失败#define E_Pack911BusinessFail 			21753017			// CB0S2004 组911正文失败#define E_MdyAPIMBSQFail                21753019            // CB0S5003 更新接口数据往帐表失败#define E_MsgHeaderError                21753020            // CB0S2003 报文头错#define E_GetSysWorkDateFail            21753021            // CB0S5001 取系统工作日期失败#define E_MdyRecordStateError           21753022            // CB0S5003 修改状态失败// 业务错#define E_CheckRecvNodeLegFail          21753501            // CB0O1407 接收节点关系合法性检查失败#define E_CheckSendNodeLegFail          21753502            // CB0O1406 发起节点关系合法性检查失败#define E_CheckRdfiCodeStatusFail 		21753503           	// CB0O2004 接收行状态合法性检查失败#define E_CheckOdfiCodeStatusFail 		21753504           	// CB0O2003 发起行状态合法性检查失败#define E_CheckPubRecvFail        		21753505           	// CB0O1999 来帐检查失败#define E_CheckOdfiCodeRecvGrantFail 	21753506       		// CB0O5002 接收清算行接收业务权限合法性检查失败#define E_CheckSdfiCodeSendGrantFail 	21753507			// CB0O5001 发起清算行发起业务权限合法性检查失败#define E_CheckOsdfiCodeFail        	21753508			// CB0O2004 接收清算行状态合法性检查失败#define E_CheckIsdfiCodeFail 			21753509			// CB0O2003 发起清算行状态合法性检查失败#define E_CheckOdfiCenterFail 			21753510			// CB0O1101 发报中心状态合法性检查失败#define E_CheckDateFail 				21753511			// CB0O1005 日期合法性检查失败#define E_CheckSdfiCenterFail 			21753512			// CB0O1102 收报中心状态合法性检查失败#define E_CheckNpcLegFail 				21753513			// CB0O3001 NPC状态合法性检查#define E_SendIsdfiCodeNotEq 			21753514			// CB0O1103 报文头发起清算行和正文发起清算行是否一致#define E_SendRdfiCodeNotEq 			21753515			// CB0O1102 报文头收报中心和正文收报中心是否一致#define E_SendOsdfiCodeNotEq 			21753516			// CB0O1104 报文头中接收清算行和正文接收清算行是否一致#define E_GetCcpcCenterFail 			21753517			// CB0O1309 取CCPC号码失败#define E_MsgHeaderReceiverLengthErr 	21753518 			// CB0O1999 报文头中接收方长度错误#define E_CheckMacError                 21753519            // CB0O4001 核地方押失败#define E_MakeMacError   	            21753520            // CB0O4002 加地方押失败#define E_CallMacError     	            21753521            // CB0O4999 密押卡工作异常 #define AMOUNT_ZERO (0.001)         // 金额0extern  MainCtlToSo * strMainCtlToSo;class PKGTrxsBase {public: 	PKGTrxsBase();    virtual ~PKGTrxsBase(){};    void    PkgHdle();		 protected:	// 勾对函数的输入结构	struct ChkPkg	{	    char m_schkdate[9];                 // 对账日期	    char m_spkgsender[13];              // 包发起清算行	    char m_spkgpredate[9];              // 委托日期	    int  m_ipkgserno;                   // 业务包号	    char m_chpkgstate;                  // 包处理状态	}; 			// MBFEBPDT2602小额业务汇总对账表结构(对账函数需要)	struct strMBFEBPDT2602	{	    int    nROW_ID;           // 记录标识	    char   sChkdate[9];       // 对账日期	    char   sPkgtype[4];       // 包类型号	    char   sPkgstate[2];      // 包处理状态	    int    nSendpkgcnt;       // 往账包总数	    double dSendpkgamt;       // 往账包金额合计	    int    nRecvpkgcnt;       // 来账包总数	    double dRecvpkgamt;       // 来账包金额合计	    char   sRollnet[2];       // 轧差节点	    char   sRolldate[9];      // 轧差日期	    int    nRollno;           // 轧差场次	    char   sChkstate[2];      // 对账状态	};      	  	protected:/*    功能    :解析包头,放入数据到包头结构m_strPkgBatHeader           入口参数:sPkgBatHeader:包头报文    出口参数:无 */	virtual void ParsePkgBatHeader(char *sPkgBatHeader) = 0;	/*    功能    :往帐检查(重帐检查,回执期限检查,重复回执检查,原支付信息包检查等)             入口参数:无	出口参数:无*/                            	virtual void SendPrvCheckGrant() = 0; 	/*    功能    :往帐保存数据             入口参数:无	出口参数:无*/     virtual void SaveSendData() = 0;    /*    功能:来帐检查(重帐检查等)             入口参数:无	出口参数:无*/                            	virtual void RecvPrvCheckGrant() = 0; 		/*    功能    :来帐保存数据              入口参数:cSrcFlag:'1' 补发  	出口参数:无*/                      virtual void SaveRecvData() = 0;		    /*    功能    :判断业务是来帐还是往帐    入口参数:无	出口参数:无	返回    :true:往帐 false:来帐*/  	BOOL IsSendTrans();	/*    功能    :判断业务是否要转发    入口参数:无	出口参数:无	返回    :true:转发 false:不转发 */             BOOL IsRouteTrans();/*    功能    :对账函数    入口参数:无	出口参数:无	返回    :true:转发 false:不转发 */        int  Dend01CompareAccount(const char *sCompareDate, int *nSapsedCnt, CString & csSapsed, int *nOthCnt, CString & csOth);     /*    功能    :勾对函数        入口参数:无	出口参数:无	返回    :true:转发 false:不转发 */  		int  PkgWriteOff(const ChkPkg &chkpkg); 	/*    功能    :日终处理(SP)      入口参数:无	出口参数:无	返回    :true:转发 false:不转发 */  	BOOL Dend01DayEndOk(char *sResDesc);/*    功能    :解析行内单笔报文         入口参数:无     出口参数:无     add by lihai 2005-9-1*/	virtual void ParseMBMsg();/*    功能    :发送报文至行内         入口参数:无     出口参数:无     add by lihai 2005-9-8*/	void SendMsgToMb();	void  	Save001();	void  	Save002();	void	Save008();	//void	Save012();		private:        	void ReadBigData();                        	void SendPubCheckGrant(); 	                 	void RecvPubCheckGrant(); 		    void BuilderHeader(const char *sCmtNo, const char *sSender, const char *sReceiver, char *sMsgId,char *strMsgHeader);                       void ProcSendBusiness();                        void ProcRecvBusiness(char *sMsgHeader);                 void SendPkgHdle();	void RecvPkgHdle();    void Build912BusinessData(char *sAppCode, char *strBusinessData);    void BuildMb920BusinessData(char *sAppCode, char *strBusinessData);		void BuildCcpc920BusinessData(char *sAppCode, char *strBusinessData);		void SendPackFailProc();	void SendRspMb(char *sAppCode);		void SendRspCcpc(char *sAppCode);                  	void CheckMacContent();	void GetListSeal();	void ParseMBMsgHeader();	protected:	SybServer          *m_clsSybServer;                  // 数据库对象	QueueData   	   *m_strQueueData;                  // 数据队列结构	BepsInit		   *m_strBepsInit;		             // 系统配置参数	SysCtlPar   	   *m_strSysCtlPar;                  // 系统控制参数		BepsPub  		m_clsMbfePub;                    // 数据库执行类	CheckGrant   		m_strCheckGrant;                 // 公共权限检		MsgHeader		    m_strMBMsgHeader;				//MB报文头结构	MsgDetail			m_strDetail;					//MB报文明细结构	MbfeToMbHeader		m_clsMbfeMsgHeader;				//MBFE发来的报文头	CMTMsgHeader        m_strMsgHeader;         		 //小额报文头	PkgBatHeader		m_strPkgBatHeader;		    	 // 包头结构	BigData             m_strBigData;                    // 大文本数据	SybCommand          m_clsSybCommand;                //	CMTPkgMsg      	    m_clsCmtPkgMsg;	int                 m_nModuleNo;	char                m_sModuleNo[21];	CString             m_clsListSeal;                   // 明细数据指纹	CString             m_clsPkgHeaderMac;               // 包头明细数据指纹	CString             m_clsPkgSeal;                    // 密押字符串	CString				m_clsExpData;					 //附加数据	CString				m_clsMBMsgHeader;				 //行内报文头	CString				m_clsMBMsgBody;						//行内报文体													};inline BOOL PKGTrxsBase::IsSendTrans(){	return strcmp(m_strQueueData->m_sQueueName, T_APIMBSQ) == 0;}//*************Declare PkgReal********************class PkgReal: public PKGTrxsBase{public:	                                                			// 功能描述:构造函数,初始化类成员变量                                      			 PkgReal();                                        			// 功能描述:析构函数,释放资源                                             			virtual	~PkgReal()			{						}protected:            				//组包			void CreatPkg();     				//设置包头			virtual	void MapPKG(CMTOperator * cmtOperator);		 			//设置正文体                  			virtual void MapBody(CMTOperator * cmtOperator,CString *ExtDatatmp,BOOL bPack);		  			//解包			void 	UnpackPkg();			//组行内报文			void BuildMBMsg();						//将处理过的明细改为已打包			void PkgUpdateDetail();	  			//组行内报文体			virtual void BuildMBMsgBody(char *sMsgBody);		  			CMTPkgMsg      	m_clsCmtPkgMsg;    //pkg报文结构类			int m_nPkgLength;               //包长度			int m_nPkgSerno;				//生成的包号			char m_sProcState[3];			//处理状态  			char m_sDealDesc[61];			//处理描述private:			//组批量包头			void CreatPkgHeader(CMTOperator &clsCmtOperator); 			//组正文体			void CreateDetail();				//更新包头			void UpdatePkgHeader();			//发送包			void SendPkg(int &iDataIndex);						//插入包头汇总表			void  InsertPkg(int iDataIndex);};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -