int F820352(TRUSERID * handle, int iRequest, ST_PACK * in_pack, int *pRetCode, char *szMsg) { int ret=0; T_t_operator tOperator; memset(&tOperator,0,sizeof(tOperator)); ret=DB_t_operator_read_by_opercode(in_pack->scust_no,&tOperator); if(ret) { if(DB_NOTFOUND==ret) return E_OPER_NOT_EXIST; else return E_DB_OPERATOR_R; } tOperator.loginflag[0]='0'; getfmtsysdatetime(tOperator.logouttime); ret=DB_t_operator_update_by_opercode(tOperator.opercode,&tOperator); if(ret) { if(DB_NOTFOUND==ret) { return E_OPER_NOT_EXIST; } else { return E_DB_OPERATOR_U; } } return 0; }
int F847230(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret=0; CAccTrans *pAccTrans=CAccTrans::getInstance(); des2src(pAccTrans->trans.opercode,rPack->semp); pAccTrans->trans.transcode=TC_AUTHCARDUNLOSS; ret=pAccTrans->InitTrans(); if(ret) return ret; TRANS& trans=pAccTrans->trans; ST_CPACK aPack; ST_PACK *outPack = &(aPack.pack); memset(&aPack,0,sizeof(aPack)); ResetNormalCPack(&aPack,0,1); SetCol(handle,0); SetCol(handle,F_LVOL0,F_SSERIAL0,0); trans.cardno= rPack->lvol0; if(trans.cardno<= 0) { return E_INPUT_CARDNO; } if(strlen(rPack->scust_limit) == 0) { return E_INPUT_OPER_NULL; } T_t_authcard tAuthCard; memset(&tAuthCard,0,sizeof(tAuthCard)); ret = DB_t_authcard_read_by_cardno(trans.cardno,&tAuthCard); if(ret) { if(DB_NOTFOUND == ret) return E_NOTEXIST_AUTHCARD; else return E_DB_AUTHCARD_R; } if(tAuthCard.status[0]==STATUS_DELETE) { writelog(LOG_ERR,"auth card has been cancel ,card id[%d]",tAuthCard.cardno); return E_AUTHCARD_LOGOUT; } if(tAuthCard.lossflag[0]=='0') { return E_AUTHCARD_NOLOST; } T_t_operator tOper; memset(&tOper,0,sizeof tOper); ret = DB_t_operator_read_by_opercode(tAuthCard.opercode,&tOper); if(ret) { if(DB_NOTFOUND == ret) { writelog(LOG_ERR,"operator does not exists, oper [%s]",tAuthCard.opercode); return E_DB_OPERATOR_N; } else return E_DB_OPERATOR_R; } sprintf(trans.remark,"操作员[%s]授权卡卡号[%d]解挂",tAuthCard.opercode,tAuthCard.cardno); if(tOper.status[0]==STATUS_DELETE) { writelog(LOG_ERR,"operator [%s] has been logout ",tAuthCard.opercode); return E_OPERLOGON_UNREG; } ret=chk_oper_pwd(tAuthCard.opercode,rPack->semp_pwd); if(ret) { writelog(LOG_ERR,"operator password error, operator [%s]",tAuthCard.opercode); if(E_NOTEXIST_OPER==ret) return E_NOTEXIST_AUTHOPER; else if(E_OPERPWD==ret) return E_AUTH_OPER_PWD; else return ret; } tAuthCard.lossflag[0]='0'; strcpy(tAuthCard.lossdate,""); ret = DB_t_authcard_update_by_cardno(tAuthCard.cardno,&tAuthCard); if(ret) { writelog(LOG_ERR,"update operator auth card information error, card id[%d]",tAuthCard.cardno); return E_DB_AUTHCARD_U; } // 插入黑名单表 T_t_cardver cardver; memset(&cardver,0,sizeof(cardver)); cardver.cardno=tAuthCard.cardno; des2src(cardver.accdate,pAccTrans->trans.accdate); cardver.termid=pAccTrans->trans.termid; cardver.termseqno=pAccTrans->trans.termseqno; cardver.cardno=tAuthCard.cardno; des2src(cardver.cardphyid,tAuthCard.cardphyid); cardver.cardvertype=CARDVERTYPE_CARDUNLOSS; cardver.adddelflag[0]=ADDDELFLAG_DEL; cardver.status[0]=STATUS_NORMAL; ret=getCardVerNo(cardver.cardverno); if(ret) return ret; ret=DB_t_cardver_add(&cardver); if(ret) { if(DB_REPEAT==ret) return E_DB_CARDVER_E; else return E_DB_CARDVER_I; } outPack->lvol0=tAuthCard.cardno; des2src(outPack->sserial0,cardver.cardverno); PutRow(handle,outPack,pRetCode,szMsg); return 0; }
int F847228(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret; char sysdate[9] = ""; char systime[7] = ""; int auth_cardno = 0; T_t_authcard tAuthCard; T_t_operator tOper; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); double uni_no = 0.0; CAccTrans *pAccTrans=CAccTrans::getInstance(); TRANS& trans=pAccTrans->trans; ret=pAccTrans->checkCfgUpdate(); if(ret) return ret; pAccTrans->clear(); GetCpackDataString(rPack,pAccTrans->cpackdata); pAccTrans->trans.transcode=TC_AUTHCARDUPD; ret=pAccTrans->addOperDtl(rPack->semp); if(ret) return ret; memset(&tAuthCard,0,sizeof tAuthCard); memset(&aPack,0,sizeof aPack); ResetNormalCPack(&aPack,0,1); auth_cardno = rPack->lvol0; if(auth_cardno <= 0) { *pRetCode = E_INPUT_CARDNO; goto L_RETU; } if(strlen(rPack->scust_limit) == 0) { *pRetCode = E_INPUT_OPER_NULL; goto L_RETU; } if(IsInvalidDateTime(rPack->sdate0,"YYYYMMDD")) { *pRetCode = E_INPUT_DATE; goto L_RETU; } ret = DB_t_authcard_read_by_cardno(auth_cardno,&tAuthCard); if(ret) { if(DB_NOTFOUND == ret) *pRetCode = E_AUTHCARD_NOT_EXISTS; else *pRetCode = E_DB_OPER_AUTHCARD_R; goto L_RETU; } if(tAuthCard.status[0] == STATUS_LOGOUT) { writelog(LOG_ERR,"auth card has been cancel ,card id[%d]",tAuthCard.cardno); *pRetCode = E_AUTHCARD_HAS_CANCEL; goto L_RETU; } if(tAuthCard.cardstatus[CARDSTAT_TYPE_LOST]== '1') { writelog(LOG_ERR,"auth card is loss , card id [%d]",tAuthCard.cardno); *pRetCode = E_AUTHCARD_IS_LOSS; goto L_RETU; } memset(&tOper,0,sizeof tOper); ret = DB_t_operator_read_by_opercode(tAuthCard.opercode,&tOper); if(ret) { if(DB_NOTFOUND == ret) { writelog(LOG_ERR,"operator does not exists, oper [%s]",tAuthCard.opercode); *pRetCode = E_DB_OPERATOR_N; } else *pRetCode = E_DB_OPERATOR_R; goto L_RETU; } if(tOper.status[0]==STATUS_LOGOUT) { writelog(LOG_ERR,"operator [%s] has been logout ",tAuthCard.opercode); *pRetCode = E_OPERLOGON_UNREG; goto L_RETU; } des2src(tAuthCard.expiredate,rPack->sdate0); tAuthCard.privilege = rPack->lvol1; ret = DB_t_authcard_update_by_cardno(tAuthCard.cardno,&tAuthCard); if(ret) { writelog(LOG_ERR,"update operator auth card information error, card id[%d]",tAuthCard.cardno); *pRetCode = E_DB_OPER_AUTHCARD_U; goto L_RETU; } SetCol(handle,0); SetCol(handle,F_LVOL0,F_LVOL1,F_SDATE0,F_SCUST_LIMIT,0); out_pack->lvol0 = tAuthCard.cardno; des2src(out_pack->sdate0,tAuthCard.expiredate); out_pack->lvol1 = tAuthCard.privilege; des2src(out_pack->scust_limit,tAuthCard.opercode); PutRow(handle,out_pack,pRetCode,szMsg); return 0; L_RETU: return -1; }
int F847226(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret=0; CAccTrans *pAccTrans=CAccTrans::getInstance(); des2src(pAccTrans->trans.opercode,rPack->semp); pAccTrans->trans.transcode=TC_AUTHCARDOPEN; ret=pAccTrans->InitTrans(); if(ret) return ret; TRANS& trans=pAccTrans->trans; char opercode[11] = ""; char work_key[51] = ""; T_t_operator tOper; T_t_authcard tAuthCard; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); memset(&tOper,0,sizeof tOper); memset(&tAuthCard,0,sizeof tAuthCard); memset(&aPack,0,sizeof aPack); ResetNormalCPack(&aPack,0,1); SetCol(handle,0); SetCol(handle,F_LVOL0,F_LVOL1,F_SCUST_LIMIT,F_SCUST_LIMIT2,F_SDATE2,F_SBANK_ACC,0); des2src(opercode,rPack->sname2); des2src(trans.cardphyid,rPack->sname); des2src(trans.showcardno,rPack->sorder0); if(strlen(opercode) == 0) { return E_NOTEXIST_OPER; } if(strlen(rPack->scust_limit) == 0) { return E_INPUT_OPER_NULL; } ret = IsInvalidDateTime(rPack->sdate2,"YYYYMMDD"); if(ret) { return ret; } ret = DB_t_operator_read_by_opercode(opercode,&tOper); if(ret) { if(DB_NOTFOUND == ret) return E_NOTEXIST_OPER; else return E_DB_OPERATOR_R; } if(tOper.status[0]=='0') { DB_t_operator_free_lock_by_c0(); return E_OPER_LOCK; } if(tOper.status[0]==STATUS_DELETE) { DB_t_operator_free_lock_by_c0(); return E_OPERLOGON_UNREG; } //todo:判断如果该操作员持有该卡已经发行过,那么系统允许重复发行,但是不计流水 //todo:用于解决操作员发行卡失败后,必须回收卡才能继续处理的问题 ret=DB_t_authcard_read_by_opercode_and_status(opercode,"1",&tAuthCard); if(ret!=DB_NOTFOUND) { if(0==ret) { if(strcmp(trans.cardphyid,tAuthCard.cardphyid)==0) { out_pack->lvol0 = tAuthCard.cardno; out_pack->lvol1 = tAuthCard.privilege; des2src(out_pack->sdate2,tAuthCard.expiredate); des2src(out_pack->scust_limit,tAuthCard.opercode); des2src(out_pack->sbank_acc,work_key); des2src(out_pack->scust_limit2,tOper.opername); PutRow(handle,out_pack,pRetCode,szMsg); return 0; } else return E_AUTHCARD_EXIST; } else return E_DB_AUTHCARD_R; } // //记录存在 // if(tAuthCard.cardstatus[CARDSTAT_TYPE_LOST]=='1') // { // //修改原来卡为注销状态 // tAuthCard.status[0]==STATUS_DELETE; // des2src(tAuthCard.closedate,pAccTrans->trans.transdate); // ret=DB_t_authcard_update_by_cardno(tAuthCard.cardno,&tAuthCard); // if(ret) // { // return E_DB_AUTHCARD_U; // } // } //return E_OPER_ALREADY_HAS_AUTHCARD; // } ret=GetSysParaVal(GLOBE_999_DEVAUTHKEY,work_key); if( ret) { return ret; } ret = getNewUniqNo(KEYTYPE_CARDNO,&(trans.cardno)); if(ret) { return ret; } tAuthCard.cardno = trans.cardno; des2src(tAuthCard.opendate,pAccTrans->trans.transdate); des2src(tAuthCard.opercode,opercode); des2src(tAuthCard.cardphyid,trans.cardphyid); des2src(tAuthCard.showcardno,trans.showcardno); des2src(tAuthCard.expiredate,rPack->sdate2); tAuthCard.privilege = rPack->lvol0; tAuthCard.status[0]=STATUS_NORMAL; tAuthCard.lossflag[0]='0'; // TODO : 检查物理卡号是否已经存在 ret = DB_t_authcard_add(&tAuthCard); if(ret) { if(DB_REPEAT == ret) return E_DB_AUTHCARD_E; else return E_DB_AUTHCARD_I; } out_pack->lvol0 = tAuthCard.cardno; out_pack->lvol1 = tAuthCard.privilege; des2src(out_pack->sdate2,tAuthCard.expiredate); des2src(out_pack->scust_limit,tAuthCard.opercode); des2src(out_pack->sbank_acc,work_key); des2src(out_pack->scust_limit2,tOper.opername); PutRow(handle,out_pack,pRetCode,szMsg); ret = DB_t_operator_read_lock_by_c0_and_opercode(opercode,&tOper); if(ret) { if(DB_NOTFOUND == ret) return E_NOTEXIST_OPER; else return E_DB_OPERATOR_R; } tOper.cardno=tAuthCard.cardno; ret=DB_t_operator_update_lock_by_c0(&tOper); if(ret) { return E_DB_OPERATOR_U; } /* int cardtype=0; ret=UseShowCardNo(trans.opercode,tAuthCard.showcardno,cardtype); if(ret) { return ret; } if(cardtype!=CARDTYPE_AUTH) { return E_CARDTYPE_NOT_AUTHCARD; } T_t_carddtl carddtl; memset(&carddtl,0,sizeof(carddtl)); des2src(carddtl.accdate,pAccTrans->sysPara.sSettleDate); des2src(carddtl.acctime,trans.acctime); carddtl.termid=trans.termid; carddtl.termseqno=trans.termseqno; des2src(carddtl.opercode,trans.opercode); carddtl.cardtype=CARDTYPE_AUTH; carddtl.usetype=CARDUSETYPE_USE; carddtl.inoutflag=INOUTFLAG_OUT; carddtl.transcnt=1; strcpy(carddtl.summary,"发行授权卡"); des2src(carddtl.cardphyid,tAuthCard.cardphyid); des2src(carddtl.showcardno,tAuthCard.showcardno); ret=DB_t_carddtl_add(&carddtl); if(ret) { if(DB_REPEAT==ret) return E_DB_CARDDTL_E; else return E_DB_CARDDTL_I; } T_t_transdtl transdtl; memset(&transdtl,0,sizeof(transdtl)); transdtl.status[0]=DTLSTATUS_SUCCESS; transdtl.revflag[0]='0'; transdtl.errcode=0; transdtl.custid=trans.custid; strcpy(transdtl.custname,trans.custname); strcpy(transdtl.transdate,trans.transdate); strcpy(transdtl.transtime,trans.transtime); strcpy(transdtl.accdate,pAccTrans->sysPara.sSettleDate); strcpy(transdtl.acctime,trans.acctime); transdtl.termid=trans.termid; transdtl.termseqno=trans.termseqno; transdtl.transcode=trans.transcode; des2src(transdtl.opercode,trans.opercode); transdtl.cardno=trans.cardno; des2src(transdtl.custname,tOper.opername); ret=DB_t_transdtl_add(&transdtl); if(ret) { if(DB_REPEAT==ret) return E_DB_TRANSDTL_E; else return E_DB_TRANSDTL_I; } */ return 0; }
int F847229(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret=0; CAccTrans *pAccTrans=CAccTrans::getInstance(); des2src(pAccTrans->trans.opercode,rPack->semp); pAccTrans->trans.transcode=TC_AUTHCARDLOSS; ret=pAccTrans->InitTrans(); if(ret) return ret; TRANS& trans=pAccTrans->trans; int auth_cardno = 0; T_t_authcard tAuthCard; memset(&tAuthCard,0,sizeof tAuthCard); auth_cardno = rPack->lvol0; if(auth_cardno <= 0) { return E_INPUT_CARDNO; } if(strlen(rPack->scust_limit) == 0) { return E_INPUT_OPER_NULL; } ret = DB_t_authcard_read_by_cardno(auth_cardno,&tAuthCard); if(ret) { if(DB_NOTFOUND == ret) return E_NOTEXIST_AUTHCARD; else return E_DB_AUTHCARD_R; } sprintf(trans.remark,"操作员[%s]授权卡卡号[%d]挂失",tAuthCard.opercode,tAuthCard.cardno); if(tAuthCard.status[0]==STATUS_DELETE) { writelog(LOG_ERR,"auth card has been cancel ,card id[%d]",tAuthCard.cardno); return E_AUTHCARD_LOGOUT; } if(tAuthCard.lossflag[0]=='1') { return E_AUTHCARD_IS_LOSS; } T_t_operator tOper; memset(&tOper,0,sizeof tOper); ret = DB_t_operator_read_by_opercode(tAuthCard.opercode,&tOper); if(ret) { if(DB_NOTFOUND == ret) { writelog(LOG_ERR,"operator does not exists, oper [%s]",tAuthCard.opercode); return E_DB_OPERATOR_N; } else return E_DB_OPERATOR_R; } if(tOper.status[0]==STATUS_DELETE) { writelog(LOG_ERR,"operator [%s] has been logout ",tAuthCard.opercode); return E_OPERLOGON_UNREG; } tAuthCard.lossflag[0]='1'; getsysdate(tAuthCard.lossdate); ret = DB_t_authcard_update_by_cardno(tAuthCard.cardno,&tAuthCard); if(ret) { writelog(LOG_ERR,"update operator auth card information error, card id[%d]",tAuthCard.cardno); return E_DB_AUTHCARD_U; } // 插入黑名单表 T_t_cardver cardver; memset(&cardver,0,sizeof(cardver)); cardver.cardno=tAuthCard.cardno; des2src(cardver.accdate,pAccTrans->trans.accdate); cardver.termid=pAccTrans->trans.termid; cardver.termseqno=pAccTrans->trans.termseqno; cardver.cardno=tAuthCard.cardno; des2src(cardver.cardphyid,tAuthCard.cardphyid); cardver.cardvertype=CARDVERTYPE_CARDLOSS; cardver.adddelflag=ADDDELFLAG_ADD; cardver.status[0]=STATUS_NORMAL; ret=getCardVerNo(cardver.cardverno); if(ret) return ret; ret=DB_t_cardver_add(&cardver); if(ret) { if(DB_REPEAT==ret) return E_DB_CARDVER_E; else return E_DB_CARDVER_I; } return 0; }
int F847228(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret=0; CAccTrans *pAccTrans=CAccTrans::getInstance(); des2src(pAccTrans->trans.opercode,rPack->semp); pAccTrans->trans.transcode=TC_AUTHCARDUPD; ret=pAccTrans->InitTrans(); if(ret) return ret; TRANS& trans=pAccTrans->trans; int auth_cardno = 0; T_t_authcard tAuthCard; T_t_operator tOper; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); double uni_no = 0.0; memset(&tAuthCard,0,sizeof tAuthCard); memset(&aPack,0,sizeof aPack); ResetNormalCPack(&aPack,0,1); auth_cardno = rPack->lvol0; if(auth_cardno <= 0) { return E_INPUT_CARDNO; } if(strlen(rPack->scust_limit) == 0) { return E_INPUT_OPER_NULL; } if(IsInvalidDateTime(rPack->sdate0,"YYYYMMDD")) { return E_INPUT_DATE; } ret = DB_t_authcard_read_by_cardno(auth_cardno,&tAuthCard); if(ret) { if(DB_NOTFOUND == ret) return E_NOTEXIST_AUTHCARD; else return E_DB_AUTHCARD_R; } if(tAuthCard.status[0] == STATUS_DELETE) { writelog(LOG_ERR,"auth card has been cancel ,card id[%d]",tAuthCard.cardno); return E_AUTHCARD_LOGOUT; } if(tAuthCard.lossflag[0]== '1') { writelog(LOG_ERR,"auth card is loss , card id [%d]",tAuthCard.cardno); return E_AUTHCARD_IS_LOSS; } memset(&tOper,0,sizeof tOper); ret = DB_t_operator_read_by_opercode(tAuthCard.opercode,&tOper); if(ret) { if(DB_NOTFOUND == ret) { writelog(LOG_ERR,"operator does not exists, oper [%s]",tAuthCard.opercode); return E_DB_OPERATOR_N; } else return E_DB_OPERATOR_R; } if(tOper.status[0]==STATUS_DELETE) { writelog(LOG_ERR,"operator [%s] has been logout ",tAuthCard.opercode); return E_OPERLOGON_UNREG; } des2src(tAuthCard.expiredate,rPack->sdate0); tAuthCard.privilege = rPack->lvol1; ret = DB_t_authcard_update_by_cardno(tAuthCard.cardno,&tAuthCard); if(ret) { writelog(LOG_ERR,"update operator auth card information error, card id[%d]",tAuthCard.cardno); return E_DB_AUTHCARD_U; } SetCol(handle,0); SetCol(handle,F_LVOL0,F_LVOL1,F_SDATE0,F_SCUST_LIMIT,0); out_pack->lvol0 = tAuthCard.cardno; des2src(out_pack->sdate0,tAuthCard.expiredate); out_pack->lvol1 = tAuthCard.privilege; des2src(out_pack->scust_limit,tAuthCard.opercode); sprintf(trans.remark,"操作员[%s]授权卡卡号[%d]更新",tAuthCard.opercode,tAuthCard.cardno); PutRow(handle,out_pack,pRetCode,szMsg); return 0; }
int F847229(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret; char sysdate[9] = ""; char systime[7] = ""; int auth_cardno = 0; T_t_authcard tAuthCard; T_t_operator tOper; CAccTrans *pAccTrans=CAccTrans::getInstance(); TRANS& trans=pAccTrans->trans; ret=pAccTrans->checkCfgUpdate(); if(ret) return ret; pAccTrans->clear(); GetCpackDataString(rPack,pAccTrans->cpackdata); pAccTrans->trans.transcode=TC_AUTHCARDLOSS; ret=pAccTrans->addOperDtl(rPack->semp); if(ret) return ret; memset(&tAuthCard,0,sizeof tAuthCard); auth_cardno = rPack->lvol0; if(auth_cardno <= 0) { *pRetCode = E_INPUT_CARDNO; goto L_RETU; } if(strlen(rPack->scust_limit) == 0) { *pRetCode = E_INPUT_OPER_NULL; goto L_RETU; } ret = DB_t_authcard_read_by_cardno(auth_cardno,&tAuthCard); if(ret) { if(DB_NOTFOUND == ret) *pRetCode = E_AUTHCARD_NOT_EXISTS; else *pRetCode = E_DB_OPER_AUTHCARD_R; goto L_RETU; } if(tAuthCard.status[0]==STATUS_LOGOUT) { writelog(LOG_ERR,"auth card has been cancel ,card id[%d]",tAuthCard.cardno); *pRetCode = E_AUTHCARD_HAS_CANCEL; goto L_RETU; } memset(&tOper,0,sizeof tOper); ret = DB_t_operator_read_by_opercode(tAuthCard.opercode,&tOper); if(ret) { if(DB_NOTFOUND == ret) { writelog(LOG_ERR,"operator does not exists, oper [%s]",tAuthCard.opercode); *pRetCode = E_DB_OPERATOR_N; } else *pRetCode = E_DB_OPERATOR_R; goto L_RETU; } if(tOper.status[0]==STATUS_LOGOUT) { writelog(LOG_ERR,"operator [%s] has been logout ",tAuthCard.opercode); *pRetCode = E_OPERLOGON_UNREG; goto L_RETU; } tAuthCard.cardstatus[CARDSTAT_TYPE_LOST]='1'; getsysdate(tAuthCard.lossdate); ret = DB_t_authcard_update_by_cardno(tAuthCard.cardno,&tAuthCard); if(ret) { writelog(LOG_ERR,"update operator auth card information error, card id[%d]",tAuthCard.cardno); *pRetCode = E_DB_OPER_AUTHCARD_U; goto L_RETU; } // 插入黑名单表 ret = InsertToBlkList(auth_cardno,ADD_BLACKLIST); if(ret) { writelog(LOG_ERR,"insert into black list error, card id[%d]",auth_cardno); *pRetCode = ret; goto L_RETU; } // 生成流水 return 0; L_RETU: return -1; }
int F849005(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret; int device_id=0; char sDevPhyid[31]=""; char current_date[9] = ""; CAccTrans& ats=CAccTrans::GetInst(); TRANS& trans=ats.trans; ret=ats.CheckCfgUpdate(); if(ret) return ret; T_t_authcard auth_card; memset(&auth_card,0,sizeof auth_card); writelog(LOG_INFO,"充值操作员签到,操作员卡号%d,设备%s",rPack->lvol5,rPack->sphone3); ret = DB_t_authcard_read_by_cardno(rPack->lvol5,&auth_card); if(ret) { if(DB_NOTFOUND == ret) return E_DB_AUTHCARD_N; else return E_DB_AUTHCARD_R; } if(auth_card.status[0]!=STATUS_NORMAL) return E_AUTHCARD_LOGOUT; if(auth_card.lossflag[0] == '1') { return E_AUTHCARD_IS_LOSS; } // 判断授权卡权限 // if((auth_card.privilege & AUTHCARD_PRV_ADDPOS) == 0) // { // *pRetCode = E_AUTHCARD_IS_LOSS; // goto L_RETU; // } // 判断有效期 if(strcmp(auth_card.expiredate,trans.accdate) < 0) { return E_CARD_EXPIRED; } T_t_operator oper; memset(&oper,0,sizeof oper); ret = DB_t_operator_read_by_opercode(auth_card.opercode,&oper); if(ret) { if(DB_NOTFOUND==ret) return E_NOTEXIST_OPER; else return E_DB_OPERATOR_R; } T_t_dpsoper tDepositOper; memset(&tDepositOper,0,sizeof tDepositOper); ret=DB_t_dpsoper_read_by_opercode(auth_card.opercode,&tDepositOper); if(ret) { if(DB_NOTFOUND==ret) return E_DB_DEPOSITOPER_R; else return E_DB_DEPOSITOPER_N; } if(tDepositOper.status[0]!=STATUS_NORMAL) { return E_DEPOSITOPER_STOP; } ret=GetDevIdByDevPhyId(&device_id,rPack->sphone3); if (ret) { writelog(LOG_ERR,"GetDevIdByDevPhyId err[%d] device_id[%d]devphyid[%s]",ret,device_id,rPack->sphone3); return ret; } T_t_dpsshoppos tDepositShoppos; if('1'==tDepositOper.shopoperflag[0]) { memset(&tDepositShoppos,0,sizeof(tDepositShoppos)); ret=DB_t_dpsshoppos_read_by_deviceid(device_id, &tDepositShoppos); if(ret) { if(DB_NOTFOUND==ret) { writelog(LOG_INFO,"PosDeposit device_id[%d] ",device_id); return E_DB_DEPOSITSHOPPOS_N; } else { return E_DB_DEPOSITSHOPPOS_R; } } T_t_shop tShop; memset(&tShop,0,sizeof(tShop)); ret=DB_t_shop_read_by_shopid(tDepositShoppos.shopid, &tShop); if(ret) { if(DB_NOTFOUND==ret) return ERRINFO(E_NOTEXIST_SHOPID,tDepositShoppos.shopid); else return E_DB_SHOP_R; } if(tShop.status[0]!=STATUS_NORMAL) { return ERRINFO(E_SHOP_LOGOUT,tDepositShoppos.shopid); } } else { memset(&tDepositShoppos,0,sizeof(tDepositShoppos)); ret=DB_t_dpsshoppos_read_by_deviceid(device_id, &tDepositShoppos); if(ret) { if(DB_NOTFOUND!=ret) { writelog(LOG_ERR,"PosDeposit termid[%d] ",device_id); return E_DB_DEPOSITSHOPPOS_R; } } else { ERRTIP("设备号[%d]属于属于充值商户,非充值商户操作员不能使用该设备"); return E_COMMON_ERR; } } if(tDepositOper.devlimitflag[0]=='1') { T_t_dpsoperpos tDepositOperpos; memset(&tDepositOperpos,0,sizeof tDepositOperpos); ret=DB_t_dpsoperpos_read_by_opercode_and_deviceid(tDepositOper.opercode, device_id,&tDepositOperpos); if(ret) { writelog(LOG_ERR,"DB_t_dpsoperpos_read_by_opercode_and_deviceid ret[%d]oper_code[%s] device_id[%d]devphy999_id[%s]",ret,tDepositOper.opercode, device_id,sDevPhyid); if(DB_NOTFOUND==ret) return E_OPER_NO_RIGHT_FOR_DEVICE; else return E_DB_DEPOSITOPERPOS_R; } } return 0;