static int Read847232(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { /* EXEC SQL BEGIN DECLARE SECTION; sqlint32 ho_sysid; char ho_sysname[61] = ""; char ho_ sqlint16 ho_indr = 1; char sqlcmd[1024] = ""; EXEC SQL END DECLARE SECTION; char sqltmp[128]; */ int rows; int ret; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); T_t_subsyspara subsyspara; T_t_subsystem subsystem; ret = DB_t_subsyspara_open_select_by_c1(); if(ret) { if(DB_NOTFOUND == ret) return E_DB_SUBSYSPARAMS_N; return E_DB_SUBSYSPARAMS_R; } ResetNormalCPack(&aPack,0,1); SetCol(handle,0); SetCol(handle,F_LCERT_CODE,F_LVOL0,F_LVOL1,F_LVOL2,F_LVOL3,F_LVOL4,F_LVOL5,F_LVOL6 ,F_LVOL7,F_LVOL8,F_LVOL9,F_SDATE0,F_SEMAIL,F_SSTATUS1,F_SNAME2,F_LVOL10,F_LVOL12,F_SCUST_AUTH,F_LSAFE_LEVEL,F_LSAFE_LEVEL2,0); rows = 0; while(1) { memset(&subsyspara,0,sizeof subsyspara); ret = DB_t_subsyspara_fetch_select_by_c1(&subsyspara); if(ret) { DB_t_subsyspara_close_select_by_c1(); if(ret == DB_NOTFOUND) { if(rows > 0) return 0; return E_DB_SUBSYSPARAMS_N; } return E_DB_SUBSYSPARAMS_R; } memset(&subsystem,0,sizeof subsystem); ret = DB_t_subsystem_read_by_sysid(subsyspara.sysid,&subsystem); if(ret) { if(DB_NOTFOUND == ret) continue; DB_t_subsyspara_close_select_by_c1(); return E_DB_SUBSYSTEM_R; } if(subsystem.status[0]!=STATUS_NORMAL) continue; rows++; des2src(out_pack->semail,subsystem.sysname); out_pack->lcert_code = subsystem.sysid; out_pack->lvol0 = subsyspara.beatinterval; // 10s out_pack->lvol1 = subsyspara.beatcntlimit; out_pack->lvol2 = subsyspara.reqbeatfuncno; // 保留 out_pack->lvol3 = subsyspara.reqtaskfuncno; out_pack->lvol4 = subsyspara.exectimeout; // 1s // des2src(out_pack->sdate0,subsyspara.devtype); // 测试设备 // out_pack->sstatus1[0] = subsyspara.workmode[0]; // 设备联机模式 out_pack->lvol5 = subsyspara.colinterval; // 流水采集频率 5s out_pack->lvol6 = subsyspara.reqdevfuncno; out_pack->lvol7 = subsyspara.taskmaxlimit; out_pack->lvol8 = subsyspara.qryinterval; out_pack->lvol9 = subsyspara.respfuncno; out_pack->lvol10 = subsyspara.bccdrtpno; des2src(out_pack->scust_auth,subsyspara.bccdrtpip); out_pack->lvol12=subsyspara.bccdrtpport; out_pack->lsafe_level=subsyspara.bccmainfuncno; out_pack->lsafe_level2=subsyspara.bccinterval; PutRow(handle,out_pack,pRetCode,szMsg); if(rows%10 == 0) AnswerDataPart(handle,*pRetCode,szMsg); } AnswerData(handle,*pRetCode,szMsg); return 0; }
int F820134(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { T_t_pif_cardstrut acardstru; int v_id=0; int nrows=0; int r=0; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); SetCol(handle,F_LVOL3,F_LVOL4,F_LVOL5,F_LVOL6,F_LVOL7,F_LVOL8,F_LVOL9,F_USSET0,F_USSET1,0); memset(&acardstru,0,sizeof(acardstru)); v_id = in_pack->lvol3; if(0 == v_id) { DB_t_pif_cardstrut_open_select_by_c1(); while(1){ memset(&acardstru,0,sizeof(acardstru)); r=DB_t_pif_cardstrut_fetch_select_by_c1(&acardstru); if(0 != r) { if(SC_NOTFOUND==r) { if(0 == nrows) { *pRetCode=E_DB_CARDSTRUT_N; sprintf(szMsg,"查询卡物理结构信息表无记录,SQLCODE=%d\n",r); db_chk_err(__FILE__,__LINE__,&sqlca); writelog(LOG_WARNING,szMsg); goto L_Ret_if; } } else { *pRetCode=E_DB_CARDSTRUT_R; sprintf(szMsg,"读取卡物理结构信息表出错,SQLCODE=%d\n",r); db_chk_err(__FILE__,__LINE__,&sqlca); writelog(LOG_WARNING,szMsg); goto L_Ret_if; } break; } out_pack->lvol3 = acardstru.id; out_pack->lvol4 = acardstru.phytype; out_pack->lvol5 = acardstru.sectorno; out_pack->lvol6 = acardstru.blockno; out_pack->lvol7 = acardstru.begin_addr; out_pack->lvol8 = acardstru.end_addr; out_pack->lvol9 = acardstru.bytenum; Strncpy_t(out_pack->usset0,acardstru.define,sizeof(out_pack->usset0)); Strncpy_t(out_pack->usset1,acardstru.comments,sizeof(out_pack->usset1)); PutRow(handle,out_pack,pRetCode,szMsg); nrows++; if (15 == nrows) { // 这里调用AnswerDataPart是为了不让前端等待太长时间,在有15条记录的时候就给返回,至于后续数据就不用管了,BCC与前端自动会将后续数据采集回去 AnswerDataPart(handle,*pRetCode,szMsg); } }; DB_t_pif_cardstrut_close_select_by_c1(); return 0; L_Ret_if: DB_t_pif_cardstrut_close_select_by_c1(); return r; } else{ r=DB_t_pif_cardstrut_read_by_id(v_id,&acardstru); if(SC_NOTFOUND==r) { *pRetCode=E_DB_CARDSTRUT_N; sprintf(szMsg,"卡物理结构信息表不存在相应记录,SQLCODE=%d\n",r); db_chk_err(__FILE__,__LINE__,&sqlca); writelog(LOG_ERR,szMsg); goto L_Ret_else; } else if(0!=r) { *pRetCode=E_DB_CARDSTRUT_R; sprintf(szMsg,"卡物理信息表读取错误,SQLCODE=%d\n",r); db_chk_err(__FILE__,__LINE__,&sqlca); writelog(LOG_ERR,szMsg); goto L_Ret_else; } out_pack->lvol3 = acardstru.id; out_pack->lvol4 = acardstru.phytype; out_pack->lvol5 = acardstru.sectorno; out_pack->lvol6 = acardstru.blockno; out_pack->lvol7 = acardstru.begin_addr; out_pack->lvol8 = acardstru.end_addr; out_pack->lvol9 = acardstru.bytenum; Strncpy_t(out_pack->usset0,acardstru.define,sizeof(out_pack->usset0)); Strncpy_t(out_pack->usset1,acardstru.comments,sizeof(out_pack->usset1)); PutRow(handle,out_pack,pRetCode,szMsg); return 0; L_Ret_else: return r; } }
int F820124(TRUSERID *handle,int iRequest,ST_PACK *in_pack,int *pRetCode,char *szMsg) { T_t_phydevice aphydev; //int scode=0; int v_phytype=0; int nrows=0; int r=0; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); SetCol(handle,F_LVOL6,F_SPHONE,F_SPAGER,F_SCERT_NO,F_USSET1,0); memset(&aphydev,0,sizeof(aphydev)); v_phytype = in_pack->lvol6; if(0==v_phytype) { DB_t_phydevice_open_select_by_c1(); while(1){ memset(&aphydev,0,sizeof(aphydev)); r=DB_t_phydevice_fetch_select_by_c1(&aphydev); if(0 != r) { if(SC_NOTFOUND == r) { if(0 == nrows) { *pRetCode=E_DB_PHYDEVICE_N; sprintf(szMsg,"查询设备结构信息表无记录,SQLCODE=%d\n",SQLCODE); writelog(LOG_WARNING,szMsg); db_chk_err(__FILE__,__LINE__,&sqlca); goto L_Ret_if; } } else { *pRetCode=E_DB_PHYDEVICE_R; sprintf(szMsg,"读取设备结构信息表出错,SQLCODE=%d\n",SQLCODE); writelog(LOG_WARNING,szMsg); db_chk_err(__FILE__,__LINE__,&sqlca); goto L_Ret_if; } break; } out_pack->lvol6 = aphydev.phytype; Strncpy_t(out_pack->sphone,aphydev.dname,sizeof(out_pack->sphone)); Strncpy_t(out_pack->spager,aphydev.dtype,sizeof(out_pack->spager)); Strncpy_t(out_pack->scert_no,aphydev.factory,sizeof(out_pack->scert_no)); Strncpy_t((char*)out_pack->usset1,aphydev.comments,sizeof(out_pack->usset1)); PutRow(handle,out_pack,pRetCode,szMsg); nrows++; if (15==nrows) { // 这里调用AnswerDataPart是为了不让前端等待太长时间,在有15条记录的时候就给返回,至于后续数据就不用管了,BCC与前端自动会将后续数据采集回去 AnswerDataPart(handle,*pRetCode,szMsg); } }; DB_t_phydevice_close_select_by_c1(); return 0; L_Ret_if: DB_t_phydevice_close_select_by_c1(); return r; } else{ r=DB_t_phydevice_read_by_phytype(v_phytype,&aphydev); if(SC_NOTFOUND==r) { *pRetCode=E_DB_PHYDEVICE_N; sprintf(szMsg,"设备物理信息表不存在相应记录,SQLCODE=%d\n",SQLCODE); writelog(LOG_ERR,szMsg); db_chk_err(__FILE__,__LINE__,&sqlca); goto L_Ret_else; } else if(r!=0) { *pRetCode=E_DB_PHYDEVICE_R; sprintf(szMsg,"设备物理信息表读取错误,SQLCODE=%d\n",SQLCODE); writelog(LOG_ERR,szMsg); db_chk_err(__FILE__,__LINE__,&sqlca); goto L_Ret_else; } out_pack->lvol6 = aphydev.phytype; Strncpy_t(out_pack->sphone,aphydev.dname,sizeof(out_pack->sphone)); Strncpy_t(out_pack->spager,aphydev.dtype,sizeof(out_pack->spager)); Strncpy_t(out_pack->scert_no,aphydev.factory,sizeof(out_pack->scert_no)); Strncpy_t((char*)out_pack->usset1,aphydev.comments,sizeof(out_pack->usset1)); PutRow(handle,out_pack,pRetCode,szMsg); return 0; L_Ret_else: return r; } }
int F930037(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret=0; int row=0; int dev_id=0; char devphy999_id[9]=""; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); T_t_pif_device p; T_t_pif_device parent; #ifdef DEBUG writelog(LOG_DEBUG,"subsystem_id[%d]",rPack->lcert_code); writelog(LOG_DEBUG,"dyn_key[%s]",rPack->scust_limit2); #endif ResetNormalCPack(&aPack,0,1); SetCol(handle,0); SetCol(handle,F_SDATE2,F_SDATE1,F_LVOL4,F_SEMP,F_SDATE3,F_SHOLDER_TYPE,F_SNOTE2,F_LVOL1,F_LVOL5,F_STIME0,F_LVOL6,F_LVOL7,F_LVOL8,F_SSTATION0,F_SBANK_CODE,F_LVOL9,F_LVOL10,F_SSERIAL0,F_SSERIAL1,F_LVOL11,F_SCUST_AUTH,F_LVOL12,F_SCUST_AUTH2,F_LVOL0,0); writelog(LOG_DEBUG,"前置机%d下载设备档案",rPack->lcert_code); ret=chk_dyn_key(rPack->lcert_code,rPack->scust_limit2); if(ret) { *pRetCode = ret; goto L_RETU; } strncpy(devphy999_id,rPack->sdate1,sizeof(devphy999_id)-1); trim(devphy999_id); if(strlen(devphy999_id)&&strncmp(devphy999_id,"00000000",8)!=0) { memset(&p,0,sizeof(p)); ret = GetDevIdByDevPhyId(&dev_id,devphy999_id); if(ret) { *pRetCode=ret; goto L_RETU; } ret=DB_t_pif_device_read_by_devphy999_id(devphy999_id, &p); if(ret) { writelog(LOG_ERR,"devphy999_id[%s]",devphy999_id); if(DB_NOTFOUND==ret) *pRetCode=E_DB_DEVICE_N; else *pRetCode=E_DB_DEVICE_R; goto L_RETU; } if(p.state_id==DEVISTAT_LOGOUT) { *pRetCode=E_DB_DEVICE_N; goto L_RETU; } p.state_id=DEVISTAT_REGIST; if((strncmp(p.dev999_id,"FFFFFFFF",8)==0)||(strlen(p.dev999_id)==0)) { *pRetCode=E_DB_DEVICE_N; goto L_RETU; } if(ROOT_DEVICE_ID == p.fdev_id) memset(out_pack->stime0,0,sizeof(out_pack->stime0)); else { out_pack->lvol0 = p.device_id; memset(&parent,0,sizeof parent); ret = DB_t_pif_device_read_by_device_id(p.fdev_id,&parent); if(ret) { des2src(out_pack->stime0,"FFFFFFFF"); } else { des2src(out_pack->stime0,parent.devphy999_id); } } strncpy(out_pack->sdate2,p.dev999_id,sizeof(out_pack->sdate2)-1); strncpy(out_pack->sdate1,p.devphy999_id,sizeof(out_pack->sdate1)-1); out_pack->lvol4=p.dev999_no; strncpy(out_pack->semp,p.devtype,sizeof(out_pack->semp)-1); strncpy(out_pack->sdate3,p.devversion,sizeof(out_pack->sdate3)-1); strncpy(out_pack->sholder_type,p.cardstr,sizeof(out_pack->sholder_type)-1); strncpy(out_pack->snote2,p.cardtype,sizeof(out_pack->snote2)-1); out_pack->lvol5=p.portcount; out_pack->lvol6=p.portno; out_pack->lvol7=p.state_id; out_pack->lvol8=p.joinmode; strncpy(out_pack->sstation0,p.comadd,sizeof(out_pack->sstation0)-1); strncpy(out_pack->sbank_code,p.port,sizeof(out_pack->sbank_code)-1); out_pack->lvol9=p.baudrate; out_pack->lvol10=p.comtype; strncpy(out_pack->sserial0,p.bsheetvdate,sizeof(out_pack->sserial0)-1); strncpy(out_pack->sserial1,p.bsheetver,sizeof(out_pack->sserial1)-1); out_pack->lvol11=p.lasttraserno; strncpy(out_pack->scust_auth,p.lasttradate,sizeof(out_pack->scust_auth)-1); out_pack->lvol12=p.lastshutserno; strncpy(out_pack->scust_auth2,p.lastshutdate,sizeof(out_pack->scust_auth2)-1); PutRow(handle,out_pack,pRetCode,szMsg); return 0; } ret=DB_t_pif_device_open_select_by_c1_and_subsystem_id(rPack->lcert_code); writelog(LOG_DEBUG,"subsystem [%d]",rPack->lcert_code); if(ret) { writelog(LOG_ERR,"sub_system_id[%d]",rPack->lcert_code); *pRetCode=E_DB_DEVICE_R; goto L_RETU; } while(1) { memset(&p,0,sizeof(p)); ret=DB_t_pif_device_fetch_select_by_c1(&p); if(ret) { if(DB_NOTFOUND==ret) { if(row) break; else *pRetCode=E_DB_DEVICE_N; } else *pRetCode=E_DB_DEVICE_R; goto L_RETU; } if(p.state_id==DEVISTAT_LOGOUT || PHYTYPE_999_DEV != p.phytype) continue; p.state_id=DEVISTAT_REGIST; if((strncmp(p.dev999_id,"FFFFFFFF",8)==0)||(strlen(p.dev999_id)==0)) continue; if(ROOT_DEVICE_ID == p.fdev_id) { memset(out_pack->stime0,0,sizeof(out_pack->stime0)); out_pack->lvol1 = -1; } else { out_pack->lvol1 = p.fdev_id; memset(&parent,0,sizeof parent); ret = DB_t_pif_device_read_by_device_id(p.fdev_id,&parent); if(ret) { des2src(out_pack->stime0,"FFFFFFFF"); } else { des2src(out_pack->stime0,parent.dev999_id); } } out_pack->lvol0 = p.device_id; out_pack->lvol7=p.state_id; strncpy(out_pack->sdate2,p.dev999_id,sizeof(out_pack->sdate2)-1); strncpy(out_pack->sdate1,p.devphy999_id,sizeof(out_pack->sdate1)-1); out_pack->lvol4=p.dev999_no; strncpy(out_pack->semp,p.devtype,sizeof(out_pack->semp)-1); strncpy(out_pack->sdate3,p.devversion,sizeof(out_pack->sdate3)-1); strncpy(out_pack->sholder_type,p.cardstr,sizeof(out_pack->sholder_type)-1); strncpy(out_pack->snote2,p.cardtype,sizeof(out_pack->snote2)-1); out_pack->lvol5=p.portcount; out_pack->lvol6=p.portno; out_pack->lvol8=p.joinmode; strncpy(out_pack->sstation0,p.comadd,sizeof(out_pack->sstation0)-1); strncpy(out_pack->sbank_code,p.port,sizeof(out_pack->sbank_code)-1); out_pack->lvol9=p.baudrate; out_pack->lvol10=p.comtype; strncpy(out_pack->sserial0,p.bsheetvdate,sizeof(out_pack->sserial0)-1); strncpy(out_pack->sserial1,p.bsheetver,sizeof(out_pack->sserial1)-1); out_pack->lvol11=p.lasttraserno; strncpy(out_pack->scust_auth,p.lasttradate,sizeof(out_pack->scust_auth)-1); out_pack->lvol12=p.lastshutserno; strncpy(out_pack->scust_auth2,p.lastshutdate,sizeof(out_pack->scust_auth2)-1); row++; PutRow(handle,out_pack,pRetCode,szMsg); if(row%10==0) AnswerDataPart(handle,*pRetCode,szMsg); } AnswerData(handle,*pRetCode,szMsg); return 0; L_RETU: return -1; }
int F250003(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret=0; char ftpserver_ip[31]=""; //移动服务器的ip char ftpserver_filepath[256]=""; //移动服务端对账文件路径 char chkacc_date[11]=""; //对帐日期 char autoftpcmd[1024]=""; char localfile[256]=""; char remotefile[256]=""; char sFileName[256], sCommand[256], sBuffer[1024]; FILE *fp; char tx_date[9]=""; char phone[31]=""; char sSerialNo[20]=""; char sCardId[20]=""; int serial_no=0; int card_id=0; int amount=0; char sAmount[20]=""; char *phead; char *ptail; int rows=0; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); ResetNormalCPack(&aPack,0,1); SetCol(handle,0); SetCol(handle,F_SDATE0,F_SPHONE,F_LSERIAL0,F_LVOL0,F_LVOL1,0); des2src(ftpserver_ip,rPack->saddr); des2src(ftpserver_filepath,rPack->vsvarstr0); des2src(chkacc_date,rPack->sorder0); //ftp取对账文件 sprintf(remotefile,"%s/YKT_GZ.%s" ,ftpserver_filepath,chkacc_date); sprintf(localfile,"/tmp/YKT_GZ.%s",chkacc_date); /* 得到文件 */ sprintf(sCommand,"autoftp.sh %s %s %s",ftpserver_ip,remotefile,localfile); if(system(sCommand) != 0) { writelog(LOG_ERR,"ftp error[%s]", sCommand); *pRetCode = E_TRANS_UNKNOW_ERROR; goto l_ret; } if((fp = fopen(localfile, "r")) == NULL) { writelog(LOG_ERR, "open filename[%s] error", localfile); *pRetCode = E_TRANS_UNKNOW_ERROR; goto l_ret; } while(1) { if(fgets(sBuffer, sizeof(sBuffer), fp) == NULL) break; serial_no=0; card_id=0; amount=0; memset(tx_date,0,sizeof(tx_date)); memset(phone,0,sizeof(phone)); memset(sSerialNo,0,sizeof(sSerialNo)); memset(sAmount,0,sizeof(sAmount)); memset(sCardId,0,sizeof(sCardId)); if(strncmp(sBuffer,"TAIL",4)==0) break; phead=sBuffer; memcpy(tx_date,phead,8); phead+=8; ptail=strchr(phead,'&'); if(NULL==ptail) { fclose(fp); goto l_ret; } memcpy(sSerialNo,phead,ptail-phead); serial_no=atol(sSerialNo); phead=ptail+1; ptail=strchr(phead,'&'); if(NULL==ptail) { fclose(fp); goto l_ret; } memcpy(phone,phead,ptail-phead); phead=ptail+1; ptail=strchr(phead,'&'); if(NULL==ptail) { fclose(fp); goto l_ret; } memcpy(sAmount,phead,ptail-phead); amount=atol(sAmount); phead=ptail+1; strcpy(sCardId,phead); trim(sCardId); card_id=atol(sCardId); des2src(out_pack->sdate0,tx_date); des2src(out_pack->sphone,phone); out_pack->lserial0=serial_no; out_pack->lvol0=card_id; out_pack->lvol1=amount; writelog(LOG_DEBUG,"对账日期 [%s][%s]",tx_date,out_pack->sphone); PutRow(handle,out_pack,pRetCode,szMsg); rows++; if(rows%10==0) AnswerDataPart(handle,*pRetCode,szMsg); } AnswerData(handle,*pRetCode,szMsg); fclose(fp); return 0; l_ret: return -1; }