📄 cmsstat.sqc
字号:
/******************************************************* ** 源码文件名称 : 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 + -