int F930110(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; T_t_tif_meslist tMesList; T_t_pif_device tDevice; memset(&tDevice,0,sizeof tDevice); memset(&tMesList,0,sizeof(tMesList)); if(strlen(in_pack->sdate0)==0) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } if((ret = get_devinfo_by_phyid(in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMesList.devid = tDevice.device_id; tMesList.funid = iRequest; tMesList.level =1; ret=AddMsgLst(&tMesList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } return 0; L_RETU: return -1; }
int F930014(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; T_t_msglist tMsgList; T_t_device tDevice; memset(&tMsgList,0,sizeof(tMsgList)); memset(&tDevice,0,sizeof tDevice); if(strlen(in_pack->sdate0)==0) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } AddXmlItemInt(tMsgList.reqdata, XML_KEY_FTFLAG, in_pack->lvol4); if((ret = get_devinfo_by_phyid(in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMsgList.deviceid = tDevice.deviceid; tMsgList.funcno = 930014; tMsgList.msglevel = 1; ret=AddMsgLst(&tMsgList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } return 0; L_RETU: return -1; }
int F930109(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; T_t_tif_meslist tMesList; T_t_pif_device tDevice; memset(&tDevice,0,sizeof tDevice); memset(&tMesList,0,sizeof(tMesList)); if(strlen(in_pack->sdate0)==0) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } AddXmlItemInt(tMesList.incontent,XML_KEY_OUTNUM,in_pack->lvol5); //条数 AddXmlItemStr(tMesList.incontent,XML_KEY_HOLIDAY,in_pack->vsvarstr0); //节假日 //FIXME //需要查询节假日表下传 //FIXME if((ret = get_devinfo_by_phyid(in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMesList.devid = tDevice.device_id; tMesList.funid = 930109; tMesList.level =1; tMesList.max_send_cnt = 10; ret = DB_t_tif_meslist_del_by_devid_and_funid(tMesList.devid,tMesList.funid); if(ret) { if(DB_NOTFOUND != ret) { return E_DB_MESLIST_D; } } ret=AddMsgLst(&tMesList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } return 0; L_RETU: return -1; }
int F930201(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret; T_t_tif_meslist tMeslist; T_t_device tDevice; memset(&tDevice,0,sizeof tDevice); memset(&tMeslist,0,sizeof tMeslist); if(strlen(in_pack->sdate0) != 8) { return E_DEVPHYID_NULL; } tMeslist.funid = 930201; tMeslist.level = 2; tMeslist.max_send_cnt = 10; tMeslist.del_flag[0] = '0'; AddXmlItemStr(tMeslist.incontent,XML_KEY_DEVPHY999_NO,in_pack->sdate0); if((ret = get_devinfo_by_phyid(in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMeslist.devid = tDevice.deviceid; ret = DB_t_tif_meslist_del_by_devid_and_funid(tMeslist.devid,tMeslist.funid); if(ret) { if(ret != DB_NOTFOUND) { *pRetCode = E_DB_MESLIST_D; goto L_RETU; } } ret = AddMsgLst(&tMeslist); if(ret) { writelog(LOG_ERR,"add message list 930201 error!"); *pRetCode = E_DB_MESLIST_I; goto L_RETU; } return 0; L_RETU: return -1; }
static int check_device(char* device_id,T_t_pif_device* tDevice) { int ret=0; if(strlen(device_id)<8) { return E_DEVICE_NOT_EXIST; } ret=get_devinfo_by_phyid(device_id,tDevice); if(ret) { writelog(LOG_ERR,"device_id[%s]ret[%d]",device_id,ret); return ret; } if(strcmp(tDevice->devtype,DEVITYPE_JSB) && strcmp(tDevice->devtype,DEVITYPE_MOBILE_JSB)) { return E_DEVTYPE_NOT_JSP; } return 0; }
int F930011(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; T_t_tif_meslist tMesList; T_t_pif_device tDevice; memset(&tMesList,0,sizeof(tMesList)); memset(&tDevice,0,sizeof(tDevice)); if(strlen(in_pack->sdate0) == 0 ) { *pRetCode = E_DEVPHYID_NULL; goto L_RETU; } AddXmlItemStr(tMesList.incontent, XML_KEY_CONCODEVER, in_pack->sserial2); AddXmlItemInt(tMesList.incontent, XML_KEY_CONCODE, in_pack->lvol4); if((ret = get_devinfo_by_phyid(in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMesList.devid = tDevice.device_id; tMesList.funid = 930011; tMesList.level = 2; ret=AddMsgLst(&tMesList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } return 0; L_RETU: return -1; }
static int check_device(char* deviceid) { int ret=0; T_t_device tDevice; memset(&tDevice,0,sizeof(tDevice)); if(strlen(deviceid)<8) { return E_DEVICE_NOT_EXIST; } ret=get_devinfo_by_phyid(deviceid,&tDevice); if(ret) { writelog(LOG_ERR,"deviceid[%s]ret[%d]",deviceid,ret); return ret; } if(strcmp(tDevice.devtype,DEVITYPE_JSB)) { return E_DEVTYPE_NOT_JSP; } return 0; }
int F930106(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; T_t_tif_meslist tMesList; T_t_device tDevice; memset(&tDevice,0,sizeof tDevice); memset(&tMesList,0,sizeof(tMesList)); if(strlen(in_pack->sdate0)==0) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } AddXmlItemInt(tMesList.incontent,XML_KEY_WEEKNO,in_pack->lvol3); //星期 if((ret = get_devinfo_by_phyid(in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMesList.devid = tDevice.deviceid; tMesList.funid = 930106; tMesList.pfunid = 930105; tMesList.level = MESLIST_PRIORITY_REALTIME; ret=AddMsgLst(&tMesList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } return 0; L_RETU: return -1; }
int F930101(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret= 0; int dev_usage = 0; //T_t_attend_txdtl tTxdtl; T_t_door_txdtl tTxdtl; T_t_pif_device tDevice; T_t_pif_card tCard; if(strlen(rPack->sdate0) != 8) { *pRetCode = E_DEVPHYID_NULL; goto L_RETU; } /* ret=chk_dyn_key(rPack->lcert_code,rPack->scust_limit2); if(ret) { writelog(LOG_ERR,"subsys_id[%d]dyn_key[%s]",rPack->lcert_code,rPack->scust_limit2); *pRetCode = ret; goto L_RETU; } */ memset(&tTxdtl,0,sizeof(tTxdtl)); memset(&tDevice,0,sizeof tDevice); /* tTxdtl.serial_no= rPack->lvol3; //上传端流水号 tTxdtl.sys_id = rPack->lcert_code; //上传工作站标识(前置机注册号) // tTxdtl.mode_code=rPack->lvol6; //模式代码 tTxdtl.card_no= rPack->lvol7; //交易卡号 // tTxdtl.use_type= rPack->lvol8; //考勤类型 // tTxdtl.inductor_no= rPack->lvol9; //感应头标记 // tTxdtl.work_mark=rPack->lvol10; //上下班标志 tTxdtl.tx_mark=rPack->lvol11; //999交易标志 des2src(tTxdtl.device_id, rPack->sdate0); //物理设备ID des2src(tTxdtl.tx_date,rPack->sdate1); //发生日期(格式化输入的日期) des2src(tTxdtl.crc,rPack->sbank_code2); //CRC校验 des2src(tTxdtl.tx_time,rPack->spost_code2); //发生时间(格式化输入的时间) getsysdate(tTxdtl.col_date); getsystime(tTxdtl.col_time); // ret=check(&tTxdtl); // if(ret) // { // tTxdtl.status[0]='5'; //无效交易 // //tTxdtl.err_code=ret; // writelog(LOG_DEBUG,"无效流水device_id[%d]serial_no[%d]",tTxdtl.device_id,tTxdtl.serial_no); // return ret; // } // else // tTxdtl.status[0]='1'; ret = SaveDoorJSBSerial(&tTxdtl); */ tTxdtl.serial_no= rPack->lvol3; //上传端流水号 tTxdtl.sys_id = rPack->lcert_code; //上传工作站标识(前置机注册号) // tTxdtl.mode_code=rPack->lvol6; //模式代码 tTxdtl.card_no= rPack->lvol7; //交易卡号 memset(&tCard,0,sizeof tCard); ret = DB_t_pif_card_read_by_card_id(tTxdtl.card_no,&tCard); if(ret) { if(DB_NOTFOUND == ret) { // 卡号不存在 writelog(LOG_ERR,"上传的交易卡号deviceid[%s],cardno[%d],不存在", rPack->sdate0,tTxdtl.card_no); return 0; } else { writelog(LOG_ERR,"上传的交易卡号读取表失败cardno[%d]",tTxdtl.card_no); *pRetCode = E_DB_CARD_R; goto L_RETU; } } // tTxdtl.use_type= rPack->lvol8; //考勤类型 // tTxdtl.inductor_no= rPack->lvol9; //感应头标记 // tTxdtl.work_mark=rPack->lvol10; //上下班标志 des2src(tTxdtl.phycard_no,tCard.physical_no); tTxdtl.cust_id = tCard.cosumer_id; //客户号 tTxdtl.tx_mark=rPack->lvol11; //999交易标志 //des2src(tTxdtl.device_id, rPack->sdate0); //物理设备ID ret = get_devinfo_by_phyid(rPack->sdate0,&tDevice); if(ret) { if(DB_NOTFOUND == ret) { // 设备不存在 writelog(LOG_ERR,"采集计时宝流水,设备不存在或已注销[%s]" ,rPack->sdate0); return 0; } else { *pRetCode = ret; goto L_RETU; } } tTxdtl.device_id = tDevice.device_id; //if(strlen(rPack->sdate1)==0) // getsysdate(tTxdtl.tx_date); //else if(strlen(rPack->sdate1)==6) { sprintf(tTxdtl.tx_date,"20%s",rPack->sdate1); } else des2src(tTxdtl.tx_date,rPack->sdate1); //发生日期(格式化输入的日期) des2src(tTxdtl.crc,rPack->sbank_code2); //CRC校验 des2src(tTxdtl.tx_time,rPack->spost_code2); //发生时间(格式化输入的时间) getsysdate(tTxdtl.col_date); getsystime(tTxdtl.col_time); check(&tTxdtl); g_dbchkerr=0; ret = DB_t_door_txdtl_add(&tTxdtl); g_dbchkerr=1; if(ret) { if(DB_REPEAT == ret) return 0; writelog(LOG_ERR,"插入门禁流水表失败,errcode[%d]",ret); writelog(LOG_ERR,"serial_no[%d]phycardid[%s]card_no[%d]device_id[%s]tx_date[%s]tx_time[%s]", tTxdtl.serial_no,tTxdtl.phycard_no,tTxdtl.card_no,tTxdtl.device_id,tTxdtl.tx_date,tTxdtl.tx_time); *pRetCode = ret; goto L_RETU; } ret = SaveKQSerial(&tTxdtl); if(ret) { writelog(LOG_ERR,"插入考勤流水表失败,errcode[%d]",ret); *pRetCode = ret; goto L_RETU; } return 0; L_RETU: return -1; }
int F930021(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; int cnt=0; int mesid=0; T_t_tif_meslist tMesList; T_t_pif_device tDevice; T_t_pif_device tPDev; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); ResetNormalCPack(&aPack,0,1); SetCol(handle,0); SetCol(handle,F_VSVARSTR0,0); memset(&tMesList,0,sizeof(tMesList)); memset(&tDevice,0,sizeof(tDevice)); memset(&tPDev,0,sizeof tPDev); if(strlen(in_pack->sdate0)==0) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } ret=get_devinfo_by_phyid(in_pack->sdate0,&tDevice); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"get_devinfo_by_phyid err[%d]",ret); goto L_RETU; } if((ret = get_devinfo_by_phyid(tDevice.fdev_id,&tPDev))) { *pRetCode = ret; goto L_RETU; } AddXmlItemStr(tMesList.incontent,XML_KEY_DEV999_ID, tDevice.dev999_id); AddXmlItemInt(tMesList.incontent,XML_KEY_DEV999_NO, tDevice.dev999_no); AddXmlItemStr(tMesList.incontent,XML_KEY_DEVTYPE,tDevice.devtype); AddXmlItemStr(tMesList.incontent,XML_KEY_DEVVERSION, tDevice.devversion); AddXmlItemStr(tMesList.incontent,XML_KEY_CARDSTR, tDevice.cardstr); AddXmlItemStr(tMesList.incontent,XML_KEY_VCARDSET, tDevice.cardtype); AddXmlItemInt(tMesList.incontent, XML_KEY_PORTCOUNT, tDevice.portcount); AddXmlItemStr(tMesList.incontent, XML_KEY_FDEVPHY_ID, tPDev.dev999_id); AddXmlItemInt(tMesList.incontent, XML_KEY_PORTNO,tDevice.portno); AddXmlItemInt(tMesList.incontent, XML_KEY_STATE_ID, tDevice.state_id); AddXmlItemInt(tMesList.incontent,XML_KEY_JOINMODE,tDevice.joinmode); AddXmlItemStr(tMesList.incontent, XML_KEY_COMADD, tDevice.comadd); AddXmlItemStr(tMesList.incontent, XML_KEY_PORT, tDevice.port); AddXmlItemInt(tMesList.incontent, XML_KEY_BAUDRATE, tDevice.baudrate); AddXmlItemInt(tMesList.incontent, XML_KEY_COMTYPE,tDevice.comtype); AddXmlItemStr(tMesList.incontent, XML_KEY_NOTVALIDITY, tDevice.bsheetvdate); AddXmlItemStr(tMesList.incontent, XML_KEY_VERNUM,tDevice.bsheetver); AddXmlItemInt(tMesList.incontent, XML_KEY_LASTTRASERNO, tDevice.lasttraserno); AddXmlItemStr(tMesList.incontent, XML_KEY_LASTTRADATE, tDevice.lasttradate); AddXmlItemInt(tMesList.incontent, XML_KEY_LASTSHUTSERNO, tDevice.lastshutserno); AddXmlItemStr(tMesList.incontent, XML_KEY_LASTSHUTDATE, tDevice.lastshutdate); tMesList.devid = tDevice.device_id; tMesList.funid = 930021; tMesList.level = 3; ret=AddMsgLst(&tMesList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } if(iRequest!=tMesList.funid) return 0; ret=db_commit(); if(ret) { writelog(LOG_ERR,"db_commit ret[%d]",ret); *pRetCode=E_DB_COMMIT; goto L_RETU; } mesid=tMesList.mesid; des2src(out_pack->sdate0,in_pack->sdate0); for(cnt=0;(cnt<10)&&(tMesList.ecode!=0);cnt++) { sleep(1); memset(&tMesList,0,sizeof(tMesList)); ret=DB_t_tif_meslist_read_by_mesid(mesid, &tMesList); if(ret) { writelog(LOG_ERR,"DB_t_tif_meslist_read_by_mesid err[%d]",ret); *pRetCode=E_DB_MESLIST_R; goto L_RETU; } } switch(tMesList.ecode) { case 0: //成功 des2src(out_pack->vsvarstr0,"成功"); break; case 9999: //交易未处理 des2src(out_pack->vsvarstr0,"前置机无应答"); break; default: //交易已经处理,但结果是失败 des2src(out_pack->vsvarstr0,tMesList.emsg); break; } PutRow(handle,out_pack,pRetCode,szMsg); return 0; L_RETU: return -1; }
int F930008(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; int cnt=0; int msgid=0; T_t_msglist tMsgList; T_t_device tDevice; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); ResetNormalCPack(&aPack,0,1); SetCol(handle,0); SetCol(handle,F_VSVARSTR0,0); memset(&tMsgList,0,sizeof(tMsgList)); memset(&tDevice,0,sizeof tDevice); if(strlen(in_pack->sdate0)==0) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } if((ret = get_devinfo_by_phyid(in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMsgList.deviceid = tDevice.deviceid; tMsgList.funcno = 930008; tMsgList.msglevel = 2; ret=AddMsgLst(&tMsgList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } if(iRequest!=tMsgList.funcno) return 0; ret=db_commit(); if(ret) { writelog(LOG_ERR,"db_commit ret[%d]",ret); *pRetCode=E_DB_COMMIT; goto L_RETU; } msgid=tMsgList.msgid; des2src(out_pack->sdate0,in_pack->sdate0); for(cnt=0;(cnt<10)&&(tMsgList.errcode!=0);cnt++) { sleep(1); memset(&tMsgList,0,sizeof(tMsgList)); ret=DB_t_msglist_read_by_msgid(msgid, &tMsgList); if(ret) { writelog(LOG_ERR,"DB_t_msglist_read_by_msgid err[%d]",ret); *pRetCode=E_DB_MSGLIST_R; goto L_RETU; } } switch(tMsgList.errcode) { case 0: //成功 des2src(out_pack->vsvarstr0,"成功"); break; case 9999: //交易未处理 des2src(out_pack->vsvarstr0,"前置机无应答"); break; default: //交易已经处理,但结果是失败 des2src(out_pack->vsvarstr0,tMsgList.errmsg); break; } PutRow(handle,out_pack,pRetCode,szMsg); return 0; L_RETU: return -1; }
int F930006(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; double dMaxFeeRatio=0; int iMaxFeeRatio=0; int iRow=0; T_t_tif_meslist tMesList; T_t_pif_feetype tFeeType; T_t_pif_device tDevice; memset(&tMesList,0,sizeof(tMesList)); memset(&tFeeType,0,sizeof(tFeeType)); memset(&tDevice,0,sizeof tDevice); // memset(&tCuttypefee,0,sizeof(tCuttypefee)); if(strlen( in_pack->sdate0)==0) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } if((ret = get_devinfo_by_phyid( in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMesList.devid = tDevice.device_id; tMesList.funid = 930006; tMesList.level = 1; /////////////////////////////////////////////////// // 修改为读取 ret=GetMaxFeeRatioFromShop(&dMaxFeeRatio); if(ret) { *pRetCode=ret; goto L_RETU; } iMaxFeeRatio=dMaxFeeRatio*100; ret=DB_t_pif_feetype_open_select_by_cur1(); if(ret) { *pRetCode=E_DB_FEETYPE_R; goto L_RETU; } while(1) { memset(&tFeeType,0,sizeof(tFeeType)); memset(&tMesList.incontent,0,sizeof(tMesList.incontent)); ret=DB_t_pif_feetype_fetch_select_by_cur1(&tFeeType); if(ret) { if(DB_NOTFOUND==ret) { if(iRow) break; else { *pRetCode= E_DB_FEETYPE_N; goto L_RETU; } } else { *pRetCode= E_DB_FEETYPE_R; goto L_RETU; } } iRow++; AddXmlItemInt(tMesList.incontent, XML_KEY_CARDTYPE,tFeeType.fee_type); //卡类型 if(strncmp(tFeeType.is_outfee,TYPE_YES,1)==0) AddXmlItemInt(tMesList.incontent, XML_KEY_FEE, iMaxFeeRatio); else AddXmlItemInt(tMesList.incontent, XML_KEY_FEE, 0); ret=AddMsgLst(&tMesList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } } /////////////////////////////////////////////////////////////////// /* //AddXmlItemInt(tMesList.incontent, XML_KEY_CARDTYPE,in_pack->lvol5); //卡类型 //AddXmlItemInt(tMesList.incontent, XML_KEY_FEE, in_pack->lvol6); //费率 ret=AddMsgLst(&tMesList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } */ return 0; L_RETU: return -1; }
int F930007(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; int cnt=0; int mesid=0; T_t_tif_meslist tMesList; T_t_pif_device tDevice; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); ResetNormalCPack(&aPack,0,1); SetCol(handle,0); SetCol(handle,F_VSVARSTR0,0); memset(&tMesList,0,sizeof(tMesList)); memset(&tDevice,0,sizeof(tDevice)); des2src(tMesList.devphy999_id, in_pack->sdate0); trim(tMesList.devphy999_id); if(strlen(tMesList.devphy999_id)==0) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } ret=get_devinfo_by_phyid(tMesList.devphy999_id,&tDevice); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"get_devinfo_by_phyid err[%d]",ret); goto L_RETU; } AddXmlItemInt(tMesList.incontent, XML_KEY_DEV999_NO, tDevice.dev999_no); //机号 AddXmlItemStr(tMesList.incontent, XML_KEY_DEV999_ID, tDevice.dev999_id); //注册号 AddXmlItemInt(tMesList.incontent, XML_KEY_BAUDRATE, tDevice.baudrate); //波特率 AddXmlItemStr(tMesList.incontent, XML_KEY_SYSPWD, tDevice.syspwd); //系统员密码 AddXmlItemStr(tMesList.incontent, XML_KEY_ADMPWD,tDevice.admpwd); //管理员密码 AddXmlItemInt(tMesList.incontent, XML_KEY_PWDONOFF,tDevice.pwdonoff); //密码开关 AddXmlItemStr(tMesList.incontent, XML_KEY_CARDSTR, "100"); //卡片结构 AddXmlItemInt(tMesList.incontent, XML_KEY_CARDUSENUM,tDevice.cardusenum); //卡的最大使用次数\允许最大消费次数 AddXmlItemInt(tMesList.incontent, XML_KEY_MAXDEPOSIT, tDevice.maxdeposit); //钱包最高存款限额 AddXmlItemInt(tMesList.incontent, XML_KEY_MINDEPOSIT, tDevice.mindeposit); //钱包最低剩余款限额 AddXmlItemInt(tMesList.incontent, XML_KEY_RATION, tDevice.ration); //定值收费方式使用的定值额\定值金额 AddXmlItemStr(tMesList.incontent, XML_KEY_PUSERNO, tDevice.puserno); //钱包代码\钱包号 AddXmlItemInt(tMesList.incontent, XML_KEY_MAXTRADE, tDevice.maxtrade); //每次交易最高额\大额消费限额 AddXmlItemStr(tMesList.incontent, XML_KEY_VCARDSET, tDevice.cardtype); //终端机适用用户卡类别 AddXmlItemStr(tMesList.incontent, XML_KEY_FUNONOFF, tDevice.funonoff); //收费机增强功能开关 AddXmlItemInt(tMesList.incontent, XML_KEY_FEETYPE, tDevice.feetype); //收费方式 tMesList.funid = 930007; tMesList.level = 2; ret=AddMsgLst(&tMesList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } if(iRequest!=tMesList.funid) return 0; ret=db_commit(); if(ret) { writelog(LOG_ERR,"db_commit ret[%d]",ret); *pRetCode=E_DB_COMMIT; goto L_RETU; } mesid=tMesList.mesid; des2src(out_pack->sdate0,in_pack->sdate0); for(cnt=0;(cnt<10)&&(tMesList.ecode!=0);cnt++) { sleep(1); memset(&tMesList,0,sizeof(tMesList)); ret=DB_t_tif_meslist_read_by_mesid(mesid, &tMesList); if(ret) { writelog(LOG_ERR,"DB_t_tif_meslist_read_by_mesid err[%d]",ret); *pRetCode=E_DB_MESLIST_R; goto L_RETU; } } switch(tMesList.ecode) { case 0: //成功 des2src(out_pack->vsvarstr0,"成功"); break; case 9999: //交易未处理 des2src(out_pack->vsvarstr0,"前置机无应答"); break; default: //交易已经处理,但结果是失败 des2src(out_pack->vsvarstr0,tMesList.emsg); break; } PutRow(handle,out_pack,pRetCode,szMsg); return 0; L_RETU: return -1; }
int F930067(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; int cnt=0; int mesid=0; char sysdatetime[21]=""; T_t_tif_meslist tMesList; T_t_pif_device tDevice; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); ResetNormalCPack(&aPack,0,1); memset(&tMesList,0,sizeof(tMesList)); memset(&tDevice,0,sizeof tDevice); if(strlen(in_pack->sdate0)==0) { if(in_pack->lcert_code <= 0) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } tMesList.devid = in_pack->lcert_code; } else { if((ret = get_devinfo_by_phyid(in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMesList.devid = tDevice.device_id; } getsysdatetime(sysdatetime); AddXmlItemInt(tMesList.incontent,XML_KEY_FTFLAG,in_pack->lvol3); tMesList.funid = 930067; tMesList.level = 2; ret=AddMsgLst(&tMesList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } if(iRequest!=tMesList.funid) return 0; ret=db_commit(); if(ret) { writelog(LOG_ERR,"db_commit ret[%d]",ret); *pRetCode=E_DB_COMMIT; goto L_RETU; } mesid=tMesList.mesid; for(cnt=0;(cnt<10)&&(tMesList.ecode!=0);cnt++) { sleep(1); memset(&tMesList,0,sizeof(tMesList)); ret=DB_t_tif_meslist_read_by_mesid(mesid, &tMesList); if(ret) { writelog(LOG_ERR,"DB_t_tif_meslist_read_by_mesid err[%d]",ret); *pRetCode=E_DB_MESLIST_R; goto L_RETU; } } switch(tMesList.ecode) { case 0: //成功 des2src(out_pack->vsvarstr0,"成功"); break; case 9999: //交易未处理 des2src(out_pack->vsvarstr0,"前置机无应答"); break; default: //交易已经处理,但结果是失败 des2src(out_pack->vsvarstr0,tMesList.emsg); break; } SetCol(handle,0); SetCol(handle,F_VSVARSTR0,0); PutRow(handle,out_pack,pRetCode,szMsg); return 0; L_RETU: return -1; }
static int do_check_buffer(const char *status_buffer,const char *op_time) { int count,i; int buf_len; int ret; char dev_phyno[9]= ""; int dev_state = 0; T_t_pif_device tDevice; T_t_mif_devmonitor dev_monitor; char temp[3] = ""; static const int sect_len = 10; //writelog(LOG_DEBUG,"status buffer [%s]",status_buffer); buf_len = strlen(status_buffer); if(buf_len <= 0) { return 0; } for(i = 0;i < buf_len;i+=sect_len) { strncpy(dev_phyno,status_buffer+i,8); dev_phyno[8] = '\0'; strncpy(temp,status_buffer+i+8,2); dev_state = strtoul(temp,NULL,16); memset(&tDevice,0,sizeof tDevice); ret = get_devinfo_by_phyid(dev_phyno,&tDevice); if(ret) { if(E_DEVICE_NOT_EXIST== ret) { writelog(LOG_ERR,"前置机心跳,设备不存在[%s]",dev_phyno); continue; } continue; } memset(&dev_monitor,0,sizeof dev_monitor); ret = DB_t_mif_devmonitor_read_by_device_id(tDevice.device_id,&dev_monitor); des2src(dev_monitor.op_time,op_time); getsysdatetime(dev_monitor.collect_time); des2src(dev_monitor.devtime,op_time); dev_monitor.device_id = tDevice.device_id; dev_monitor.beatstate = dev_state; if(ret) { if(DB_NOTFOUND == ret) { dev_monitor.is_ws[0] = '1'; ret = DB_t_mif_devmonitor_add(&dev_monitor); if(ret) { writelog(LOG_ERR,"增加设备监控记录失败!dev[%d] phyno[%s]" ,dev_monitor.device_id,dev_phyno); return -1; } continue; } return -1; } else { ret = DB_t_mif_devmonitor_update_by_device_id(tDevice.device_id,&dev_monitor); if(ret) { writelog(LOG_ERR,"更新设备监控记录失败!"); if(DB_NOTFOUND == ret) continue; return -1; } } } if(buf_len < 250) { return 0; } return 1; }
int F930064(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; int cnt=0; int mesid=0; char dev999_no[20]=""; T_t_tif_meslist tMesList; T_t_pif_device tDevice; memset(&tDevice,0,sizeof tDevice); ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); ResetNormalCPack(&aPack,0,1); SetCol(handle,0); SetCol(handle,F_SDATE0,F_SDATE2,F_SDATE3,F_LVOL3,F_VSVARSTR0,0); memset(&tMesList,0,sizeof(tMesList)); if(strlen(in_pack->sdate0)==0) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } AddXmlItemInt(tMesList.incontent, XML_KEY_MAXTRADE, in_pack->lvol4); if((ret = get_devinfo_by_phyid(in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMesList.devid = tDevice.device_id; tMesList.funid = 930064; tMesList.level = 2; ret=AddMsgLst(&tMesList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } if(iRequest!=tMesList.funid) return 0; ret=db_commit(); if(ret) { writelog(LOG_ERR,"db_commit ret[%d]",ret); *pRetCode=E_DB_COMMIT; goto L_RETU; } mesid=tMesList.mesid; des2src(out_pack->sdate0,in_pack->sdate0); for(cnt=0;(cnt<10)&&(tMesList.ecode!=0);cnt++) { sleep(1); memset(&tMesList,0,sizeof(tMesList)); ret=DB_t_tif_meslist_read_by_mesid(mesid, &tMesList); if(ret) { writelog(LOG_ERR,"DB_t_tif_meslist_read_by_mesid err[%d]",ret); *pRetCode=E_DB_MESLIST_R; goto L_RETU; } } switch(tMesList.ecode) { case 0: //成功 des2src(out_pack->vsvarstr0,"成功"); ret=GetXmlValue(out_pack->sdate0,sizeof(out_pack->sdate0),XML_KEY_DEVPHY999_NO, tMesList.outcontent); if(ret) { *pRetCode=ret; goto L_RETU; } ret=GetXmlValue(dev999_no,sizeof(dev999_no),XML_KEY_DEV999_NO, tMesList.outcontent); if(ret) { *pRetCode=ret; goto L_RETU; } out_pack->lvol3=atoi(dev999_no); ret=GetXmlValue(out_pack->sdate2,sizeof(out_pack->sdate2),XML_KEY_DEV999_ID, tMesList.outcontent); if(ret) { *pRetCode=ret; goto L_RETU; } ret=GetXmlValue(out_pack->semp,sizeof(out_pack->semp),XML_KEY_DEVTYPE, tMesList.outcontent); if(ret) { *pRetCode=ret; goto L_RETU; } ret=GetXmlValue(out_pack->sdate3,sizeof(out_pack->sdate3),XML_KEY_DEVVERSION, tMesList.outcontent); if(ret) { *pRetCode=ret; goto L_RETU; } break; case 9999: //交易未处理 des2src(out_pack->vsvarstr0,"前置机无应答"); break; default: //交易已经处理,但结果是失败 des2src(out_pack->vsvarstr0,tMesList.emsg); break; } PutRow(handle,out_pack,pRetCode,szMsg); return 0; L_RETU: return -1; }
int F930002(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; int cnt=0; int mesid=0; T_t_tif_meslist tMesList; T_t_device tDevice; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); ResetNormalCPack(&aPack,0,1); SetCol(handle,0); SetCol(handle,F_LSERIAL1,F_SDATE0,F_SSERIAL0,F_VSVARSTR0,0); memset(&tMesList,0,sizeof(tMesList)); memset(&tDevice,0,sizeof tDevice); if(strlen(in_pack->sdate0)==0) { if(in_pack->lcert_code <=0 ) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } tMesList.devid = in_pack->lcert_code; } else { if((ret = get_devinfo_by_phyid(in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMesList.devid = tDevice.deviceid; } tMesList.funid = 930002; tMesList.level = MESLIST_PRIORITY_REALTIME; ret=AddMsgLst(&tMesList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } if(iRequest!=tMesList.funid) return 0; ret=db_commit(); if(ret) { writelog(LOG_ERR,"db_commit ret[%d]",ret); *pRetCode=E_DB_COMMIT; goto L_RETU; } mesid=tMesList.mesid; des2src(out_pack->sdate0,in_pack->sdate0); for(cnt=0;(cnt<10)&&(tMesList.ecode!=0);cnt++) { sleep(1); memset(&tMesList,0,sizeof(tMesList)); ret=DB_t_tif_meslist_read_by_mesid(mesid, &tMesList); if(ret) { writelog(LOG_ERR,"DB_t_tif_meslist_read_by_mesid err[%d]",ret); *pRetCode=E_DB_MESLIST_R; goto L_RETU; } } switch(tMesList.ecode) { case 0: //成功 ret=GetXmlValue(out_pack->sserial0,sizeof(out_pack->sserial0),XML_KEY_CLOCK, tMesList.outcontent); if(ret) { *pRetCode=ret; goto L_RETU; } des2src(out_pack->vsvarstr0,"成功"); break; case 9999: //交易未处理 des2src(out_pack->vsvarstr0,"前置机无应答"); break; default: //交易已经处理,但结果是失败 des2src(out_pack->vsvarstr0,tMesList.emsg); break; } PutRow(handle,out_pack,pRetCode,szMsg); return 0; L_RETU: return -1; }
int F930105(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { int ret = 0; T_t_device tDevice; memset(&tDevice,0,sizeof tDevice); T_t_msglist tMsgList; memset(&tMsgList,0,sizeof(tMsgList)); if(strlen(in_pack->sdate0)==0) { *pRetCode=E_DEVPHYID_NULL; goto L_RETU; } if(in_pack->lvol3<1||in_pack->lvol3>8) { *pRetCode=E_INPUT_DATA_INVAILD; goto L_RETU; } if((ret = get_devinfo_by_phyid(in_pack->sdate0,&tDevice))) { *pRetCode = ret; goto L_RETU; } tMsgList.deviceid = tDevice.deviceid; ret = process930105(tDevice.deviceid,in_pack->lvol3); if(ret) { *pRetCode = ret; goto L_RETU; } AddXmlItemInt(tMsgList.reqdata,XML_KEY_WEEKNO,in_pack->lvol3); //星期 AddXmlItemInt(tMsgList.reqdata,XML_KEY_OUTNUM,in_pack->lvol5); //记录数 AddXmlItemStr(tMsgList.reqdata,XML_KEY_DOORTIME1,in_pack->saddr); //时间段1 AddXmlItemStr(tMsgList.reqdata,XML_KEY_DOORTIME2,in_pack->saddr2); //时间段2 AddXmlItemStr(tMsgList.reqdata,XML_KEY_DOORTIME3,in_pack->sall_name); //时间段3 AddXmlItemStr(tMsgList.reqdata,XML_KEY_DOORTIME4,in_pack->snote); //时间段4 AddXmlItemStr(tMsgList.reqdata,XML_KEY_DOORTIME5,in_pack->snote2); //时间段5 AddXmlItemStr(tMsgList.reqdata,XML_KEY_DOORTIME6,in_pack->scert_addr); //时间段6 AddXmlItemStr(tMsgList.reqdata,XML_KEY_DOORTIME7,in_pack->sbankname); //时间段7 AddXmlItemStr(tMsgList.reqdata,XML_KEY_DOORTIME8,in_pack->sbankname2); //时间段8 //FIXME //需要查询时间段表下传 //FIXME //tMsgList.funcno = iRequest; tMsgList.funcno=930105; tMsgList.pfuncno = 930105; tMsgList.msglevel = MESLIST_PRIORITY_REALTIME; // 重试10次 tMsgList.maxsendcnt = 10; ret=AddMsgLst(&tMsgList); if(ret) { *pRetCode=ret; writelog(LOG_ERR,"AddMsgLst err[%d]",ret); goto L_RETU; } return 0; L_RETU: return -1; }