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

📄 cmsstat.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
📖 第 1 页 / 共 2 页
字号:
/******************************************************* **   源码文件名称 : cmsstat.SQC **   所属子系统   : 卡管理 **   功能描述     : 对卡状态检查的处理 **   当前文件版本 : 4.0.0.0 **   作        者 : Feng  **   版本创建日期 : 2004/09/15 **   修改记录     : **   修改人       修改日期     修改位置*******************************************************/#include "sysdefine.h"#include "code.h"#include "attrdef.h"#include "pubcom.h"#include "cmscode.h"#include "errlog.h"#include "revglob.h"#include "cmscardinfo.h"EXEC SQL	INCLUDE SQLCA;EXEC SQL	BEGIN	DECLARE SECTION;	long		lNum;							/* 帐户数目			*/	char		acCardNo[ CARDNO_LEN + 1 ];		/* 卡号				*/	char		acMASeqNo[ ACCTSEQNO_LEN + 1 ];	/* 主帐户序号		*/	char		acStatus[ FLAG_LEN + 1 ];		/* 帐户状态			*/EXEC SQL	END		DECLARE SECTION;/******************************************************* **	  函数名称:cmsApiChkCardStatIsNormal **   中文名称:检查卡状态是否为正常 **   功能描述:已知某卡片的卡片信息,判断卡状态是否为交易允许状态 **   输入参数: **   			pstCmsCardInfo	----	卡片信息表 **   			pcCheckFlag		----	检查卡状态标志 **   输出参数:无 **   返回结果:int **   			0				----	成功 **   			-1				----	失败*******************************************************/int	cmsApiChkCardStatIsNormal( pstCmsCardInfo, pcCheckFlag )struct	cmscardinfo		*	pstCmsCardInfo;		/* 卡片信息表		*/char					**	pcCheckFlag;		/* 检查状态标志		*/{	/* 定义 局部变量 */	int			iRtn;							/* 函数返回值		*/	int			iNumx;							/* 计数器一维长		*/	int			iNumy;							/* 计数器二维长		*/	int			iSame;							/* 比较结果			*/	char		acCardStat[BIT21_LEN][BIT11_LEN]; /* 卡状态体现		*/	char		acCheckFlag[BIT21_LEN][BIT11_LEN]; /* 卡状态体现	*/	sprintf( g_acTrcMsg, "cmsApiChkCardStatIsNormal begin " );	TRCLOG2	memset( acCheckFlag ,0,sizeof( acCheckFlag ) );	memcpy( acCheckFlag, pcCheckFlag, sizeof( acCheckFlag ) );	/* 初始化卡状态的体现二维数组 */	for ( iNumx = 0; iNumx < BIT21_LEN; iNumx ++ )	{		for ( iNumy = 0; iNumy < BIT11_LEN; iNumy ++ )			acCardStat[iNumx][iNumy] = CHECK_NO;	}	/* 生成卡状态的体现二维数组 */	for ( iNumx = 0; iNumx < BIT21_LEN; iNumx ++ )	{		if ( pstCmsCardInfo->cardstat[iNumx] == ' ' )			pstCmsCardInfo->cardstat[iNumx] = '0';		if ( iNumx > BIT14_LEN )			pstCmsCardInfo->cardstat[iNumx] = '0';		 acCardStat[iNumx][pstCmsCardInfo->cardstat[iNumx]-'0']=CHECK_YES;	}	/* 循环处理一维数组 */	for ( iNumx = 0; iNumx < BIT21_LEN; iNumx ++ )	{		for( iNumy =0, iSame=0; iNumy< BIT11_LEN; iNumy ++ )		{			if ( acCheckFlag[iNumx][iNumy] == CHECK_YES )			{				if ( acCardStat[iNumx][iNumy] == acCheckFlag[iNumx][iNumy] )				{					/* 检查通过 */					iSame = 1;					break;				}				else				{					/* 检查失败 */					iSame = 2;					sprintf( g_acTrcMsg, "横纵坐标[%d][%d]", iNumx, iNumy );					TRCLOG2					sprintf( g_acTrcMsg, "不同的值[%c][%c]", \							acCardStat[iNumx][iNumy], \							acCheckFlag[iNumx][iNumy] );					TRCLOG2					switch ( iNumx )					{						case BIT1_LEN:							switch (pstCmsCardInfo->cardstat[BIT1_LEN])							{								case BIT1_CARDOK:									switch ( iNumy )									{										case BIT2_LEN:											/* 卡没有正常销卡 */											strcpy( g_acRspCode, "CMS142" );											break;										case BIT3_LEN:											/* 卡没有挂失销卡 */											strcpy( g_acRspCode, "CMS143" );											break;										case BIT4_LEN:											/* 卡没有作废 */											strcpy( g_acRspCode, "CMS144" );											break;									}									break;								case BIT1_CARDCANCEL:									switch ( iNumy )									{										case BIT1_LEN:											/* 卡已经正常销卡 */											strcpy( g_acRspCode, "CMS139" );											break;										case BIT3_LEN:											/* 卡没有挂失销卡 */											strcpy( g_acRspCode, "CMS143" );											break;										case BIT4_LEN:											/* 卡没有作废 */											strcpy( g_acRspCode, "CMS144" );											break;									}									break;								case BIT1_CARDLOSTCAN:									switch ( iNumy )									{										case BIT1_LEN:											/* 卡已经挂失销卡 */											strcpy( g_acRspCode, "CMS140" );											break;										case BIT2_LEN:											/* 卡没有正常销卡 */											strcpy( g_acRspCode, "CMS142" );											break;										case BIT4_LEN:											/* 卡没有作废 */											strcpy( g_acRspCode, "CMS144" );											break;									}									break;								case BIT1_CARDBLANKOUT:									switch ( iNumy )									{										case BIT1_LEN:											/* 卡已经作废 */											strcpy( g_acRspCode, "CMS141" );											break;										case BIT2_LEN:											/* 卡没有正常销卡 */											strcpy( g_acRspCode, "CMS142" );											break;										case BIT3_LEN:											/* 卡没有挂失销卡 */											strcpy( g_acRspCode, "CMS143" );											break;									}									break;							}							break;						case BIT2_LEN:							switch ( pstCmsCardInfo->cardstat[BIT2_LEN] )							{								case BIT2_CARDOK:									switch ( iNumy )									{										case BIT2_LEN:											/* 卡没有口头挂失 */											strcpy( g_acRspCode, "CMS156" );											break;										case BIT3_LEN:											/* 卡没有书面挂失 */											strcpy( g_acRspCode, "CMS155" );											break;									}									break;								case BIT2_TELLLOST:									switch ( iNumy )									{										case BIT1_LEN:											/* 卡已经口头挂失 */											strcpy( g_acRspCode, "CMS154" );											break;										case BIT3_LEN:											/* 卡没有书面挂失 */											strcpy( g_acRspCode, "CMS155" );											break;									}									break;								case BIT2_PAPERLOST:									switch ( iNumy )									{										case BIT1_LEN:											/* 卡已经书面挂失 */											strcpy( g_acRspCode, "CMS153" );											break;										case BIT2_LEN:											/* 卡没有口头挂失 */											strcpy( g_acRspCode, "CMS156" );											break;									}									break;							}							break;						case BIT3_LEN:							switch ( pstCmsCardInfo->cardstat[BIT3_LEN] )							{								case BIT3_CARDOK:									switch ( iNumy )									{										case BIT2_LEN:											/* 卡没有密码口头挂失 */											strcpy( g_acRspCode, "CMS150" );											break;										case BIT3_LEN:											/* 卡没有密码书面挂失 */											strcpy( g_acRspCode, "CMS149" );											break;									}									break;								case BIT3_PWTELLLOST:									switch ( iNumy )									{										case BIT1_LEN:											/* 卡已经密码口头挂失 */											strcpy( g_acRspCode, "CMS148" );											break;										case BIT3_LEN:											/* 卡没有密码书面挂失 */											strcpy( g_acRspCode, "CMS149" );											break;									}									break;								case BIT3_PWPAPERLOST:									switch ( iNumy )									{										case BIT1_LEN:											/* 卡已经密码书面挂失 */											strcpy( g_acRspCode, "CMS147" );											break;										case BIT2_LEN:											/* 卡没有密码口头挂失 */											strcpy( g_acRspCode, "CMS150" );											break;									}									break;							}							break;						case BIT4_LEN:							if( pstCmsCardInfo->cardstat[BIT4_LEN] \												==BIT4_CARDOK )								/* 卡没有冻结 */								strcpy( g_acRspCode, "CMS157" );							if( pstCmsCardInfo->cardstat[BIT4_LEN] \												== BIT4_CARDFREZ )								/* 卡已经冻结 */								strcpy( g_acRspCode, "CMS158" );

⌨️ 快捷键说明

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