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

📄 cms003.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cms003.SQC **   所属子系统   : CMS  **   当前文件版本 : 4.0.0.0 **   作者         : Feng **   版本创建日期 : 2004/09/21 **   功能描述     : 根据卡号和账户序号获取账户客户信息子交易 **   修改记录     : **   修改人       修改日期     修改说明 **   Feng         2006-01-03   增加刷卡控制*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "cmscode.h"#include "pubinq.h"#include "cmscardinfo.h"#include "cmscardkind.h"#include "cmsacctm.h"#include "ciscustomerinfo.h"#include "errlog.h"EXEC SQL INCLUDE SQLCA;int cmsGetAcctCustInfPro( PUBCOM *pstPubcom ){	/*定义局部变量*/	struct	cmscardinfo			stCmsCardInfo;	/* 卡片信息表		*/	struct	cmsacctm			stCmsAcctM;		/* 卡账户对照表		*/    struct  cmscardkind         stCmsCardKind;  /* 卡片种类表 		*/	struct	ciscustomerinfo		stCisCustInfo;	/* 客户基本信息表	*/	BASESUBACCTINFO 		   	stBaseSubAcctInfo;	int		iRtn;								/* 函数返回值		*/	int		iNum;								/* 计数器			*/	double	dBal;								/* 余额				*/	double	dUseBal;							/* 可用余额			*/	char	acAcctFlag[ FLAG_LEN + 1 ];			/* 账户类型			*/    char    acCardStat[MEMO60_LEN + 1];         /* 卡状态中文信息 */    char    acCardKind[CARDKIND_LEN + 1];       /* 卡片种类 */	/* Feng Add in 2006-01-03 Begin */    char   acDataSrcFlag[FLAG_LEN+1];  /*卡号或帐号数据来源,刷磁/人工输入*/	char   acChkMagFlag[FLAG_LEN+1];   /*卡号是否刷卡输入标志*/    char   acCardSrcFlag[FLAG_LEN+1] ; /*卡号来源标志*/	/* Feng Add in 2006-01-03 End */	char	acKey[5];	strcpy( g_acRspCode,  RSP_OK );	strcpy( g_acTrcMsg, "子交易: 获取账户客户信息处理开始.." );	TRCLOG4	/* 初始化 */	memset( &stCmsCardInfo,	0x00, sizeof( struct cmscardinfo ) );	memset( &stCmsAcctM,	0x00, sizeof( struct cmsacctm ) );	memset( &stCisCustInfo,	0x00, sizeof( struct ciscustomerinfo ) );    memset( &stCmsCardKind, 0x00, sizeof( struct cmscardkind ) );    memset( &stBaseSubAcctInfo, 0x00, sizeof( BASESUBACCTINFO ) );    memset( acCardStat,         0x00,   sizeof( acCardStat ) );	memset( acChkMagFlag,		0x00 , sizeof( acChkMagFlag ) ) ;	memset( acCardSrcFlag,		0x00 , sizeof( acCardSrcFlag ) ) ;	memset( acDataSrcFlag,		0x00 , sizeof( acDataSrcFlag ) ) ;	/* 取数据字典值 */	getstring( "CardNo",	stCmsCardInfo.cardno	);	getstring( "AcctSeqNo",	stCmsAcctM.acctseqno	);	sprintf( g_acTrcMsg,"cardno[%s]acctseqno[%s]",stCmsCardInfo.cardno,stCmsAcctM.acctseqno);	TRCLOG3	/* Feng Add in 2006-01-03 Begin */    /*卡号或帐号数据来源,刷磁/人工输入*/    getstring("DataSrcFlag", acDataSrcFlag) ;    /*检查卡号是否刷卡输入标志*/    if( pubGetBaseInfo( "CHKCARDSRCFLAG" , acCardSrcFlag ) )    {		ERRLOG		return FAILED;	}    if( acCardSrcFlag[0] == NO )        acChkMagFlag[0] = NO ;    else    {        /*检查卡号是否刷卡输入标志*/        getstring("ChkMagFlag", acChkMagFlag) ;        /*如果前台未付值,付检查标志*/        if( !strlen( acChkMagFlag ) )            acChkMagFlag[0]= NO ;    }    if(!strlen( acChkMagFlag ) )      strcpy( acChkMagFlag,STR_NO );    if(!strlen( acDataSrcFlag ) )      strcpy( acDataSrcFlag , "0") ; /*手工输入*/	/* Feng Add in 2006-01-03 Edn */	/* 获取卡片信息 */	iRtn = pubReadCmscardinfo( &stCmsCardInfo );	if ( iRtn )	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "卡号[%s]不存在", stCmsCardInfo.cardno );		ERRLOG		goto Exit;	}	sprintf( g_acTrcMsg,"Amt3[%lf]Amt4[%lf]",stCmsCardInfo.yfee,stCmsCardInfo.yfeebal);	TRCLOG3	/* 获取卡账户对照表 */	strcpy( stCmsAcctM.cardno,	stCmsCardInfo.cardno	);	iRtn = pubReadCmsacctm( &stCmsAcctM );	if ( iRtn )	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "卡号[%s]帐户序号[%s]不存在", stCmsCardInfo.cardno, stCmsAcctM.acctseqno  );		ERRLOG		goto Exit;	}	/* 按客户账号和款项代码获取账户信息 DPS API */    sprintf( g_acTrcMsg,"stCmsAcctM.acctno[%s]stCmsAcctM.subacct[%s]stCmsAcctM.ccy[%s]",stCmsAcctM.acctno,stCmsAcctM.subacct,stCmsAcctM.ccy);    TRCLOG3    iRtn = InqBaseSubAcct(  pstPubcom, stCmsAcctM.acctno,					stCmsAcctM.subacct, stCmsAcctM.ccy,					"1100000000000000", acChkMagFlag,acDataSrcFlag,					&stBaseSubAcctInfo);    if (iRtn)    {		ERRLOG		goto Exit;    }	ErrLog( 2000, "Feng TEST", RPT_TO_LOG, &stBaseSubAcctInfo, sizeof( stBaseSubAcctInfo ));	sprintf( g_acTrcMsg,"Amt3[%lf]Amt4[%lf]",stCmsCardInfo.yfee,stCmsCardInfo.yfeebal);	TRCLOG3	/* 按客户号获取客户信息 CIS API */	strcpy( stCisCustInfo.customid, stCmsCardInfo.custno );	iRtn = pubReadCiscustomerinfo( &stCisCustInfo );	if ( iRtn )	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "客户号[%s]不存在", stCmsCardInfo.custno );		ERRLOG		goto Exit;	}	sprintf( g_acTrcMsg,"Amt3[%lf]Amt4[%lf]",stCmsCardInfo.yfee,stCmsCardInfo.yfeebal);	TRCLOG3    /* 转换卡状态  */    strcpy( acCardStat, cmsConvertCardStat( stCmsCardInfo.cardstat ) );    strcpy( g_acTrcMsg, acCardStat );    TRCLOG3;	sprintf( g_acTrcMsg,"Amt3[%lf]Amt4[%lf]",stCmsCardInfo.yfee,stCmsCardInfo.yfeebal);	TRCLOG3    /*取卡片种类表*/    strcpy( acCardKind, stCmsCardInfo.cardkind );    if( cmsApiGetCmsCardKind( acCardKind, &stCmsCardKind ) )    {        strcpy( g_acRspMsg, "取卡片种类表失败..." );        TRCLOG3;        sprintf(g_acRspCode,"999996");        pubCrtRspInfo( "cmscardkind", SQLCODE );        ERRLOG		goto Exit;    }	sprintf( g_acTrcMsg,"Amt3[%lf]Amt4[%lf]",stCmsCardInfo.yfee,stCmsCardInfo.yfeebal);	TRCLOG3	/* 子交易出口 */ 	setstring( "CustomId",	stCmsCardInfo.custno );			/* 客户号		*/	setstring( "IdType1",	stCisCustInfo.idtype );			/* 证件类型		*/	setstring( "IdNo1",		stCisCustInfo.idno );			/* 证件号码		*/	setstring( "CustomName",stCisCustInfo.customname );		/* 客户姓名	*/	setstring( "CustomType",	stCisCustInfo.customtype );	/* 客户类型		*/	setstring( "AcctNo",	stCmsAcctM.acctno );			/* 客户账号		*/	setstring( "SubAcct",	stCmsAcctM.subacct );			/* 款项代码		*/	setstring( "Ccy1",		stCmsAcctM.ccy );				/* 币种			*/	setstring( "PrdCode",	stCmsAcctM.prdcod );			/* 产品代码		*/	setstring( "VouNo",		stCmsCardInfo.vouno );			/* 凭证号码		*/	setstring( "VouKind",	stCmsCardInfo.voukind );		/* 凭证种类		*/	setdouble( "Bal",		&stBaseSubAcctInfo.dBal );		/* 余额			*/	setdouble( "UseBal",	&stBaseSubAcctInfo.dAvailBal );	/* 可用余额		*/    setstring( "YFeeFlag",  stCmsCardInfo.yfeeflag);    	/* 是否要缴年费*/    setstring( "FeeYear",   stCmsCardInfo.yfeeyear);    	/* 已收取年费的年份*/    setdouble( "Amt3",      &stCmsCardInfo.yfee);       	/* 指定年费金额*/    setdouble( "Amt2",      &stCmsCardInfo.acdlmt);       	/* 附卡交易限额*/    setdouble( "Amt1",      &stCmsCardInfo.acduseamt);     	/* 附卡已用金额*/    setdouble( "Amt4",      &stCmsCardInfo.yfeebal);    	/* 未交年费总计*/    setstring( "BillWay",    stCmsCardInfo.billway);     	/* 对帐单处理方式*/    setstring( "AddressType",stCmsCardInfo.billaddtype); 	/*对帐单邮寄地址类型*/    setstring( "CardIdKind",stCmsCardKind.cardidkind );	/*  卡片识别种类*/    setstring( "CardIdKindComm",stCmsCardKind.cardidkindcomm );	/*  卡片识别种类说明*/    setstring( "CardKindComm",stCmsCardKind.cardkindcomm );	/* 卡片种类说明*/    setstring( "CardKind",   stCmsCardInfo.cardkind );   	/* 卡片种类*/    setstring( "CardObject", stCmsCardInfo.cardobject ); 	/* 发卡对象*/    setstring( "CardFlg",    stCmsCardInfo.cardflg );    	/* 卡标志*/    setstring( "CardAttr",   stCmsCardInfo.cardattr );   	/* 卡片属性代码*/    setstring( "CrdSts",     stCmsCardInfo.crdsts);      	/* 卡片状态*/    setstring( "CardStat",   acCardStat);                	/* 卡状态*/    setstring( "YFeeRank",   stCmsCardInfo.yearfeerank);    /* 年费级别 */    setstring( "Brc1",       stCmsCardInfo.issuebrc );   	/* 发卡机构码*/Exit:	strcpy( g_acTrcMsg, "子交易: 获取账户客户信息结束.." );	TRCLOG4	if( !strcmp( g_acRspCode, RSP_OK ) )		return SUCCESS;	else		return FAILED ;}

⌨️ 快捷键说明

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