You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1413 lines
27 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "nowjavadll.h"
#include "ParamManager.h"
#include "WriteLog.h"
#include "Global.h"
static CParamMan * pParaManPtr = NULL;
extern "C" NOWJAVADLL_EXPORT int OpenParam(const int model,const char * pInfo,const char * dllpath,const char * libPath,char * TempPath)
{
bool bret;
int iret;
//QString qsid;
QString qinfo;
QString qbPath;
QString qtPath;
QString qname;
char buf[384];
// char libbuf[384];
if( ! dllpath)
{
WRITE_LOG("OpenParam,psiD 为空");
return -1;
}
if( ! pInfo)
{
WRITE_LOG("OpenParam,pInfo 为空");
return -2;
}
if(!libPath)
{
WRITE_LOG("OpenParam,basePath 为空");
return -3;
}
if(!TempPath)
{
WRITE_LOG("OpenParam,TempPath为空");
return -4;
}
memset(buf,0,sizeof(buf));
iret =strlen(dllpath);
if( (iret >=300) || (0 ==iret) )
{
WRITE_LOG("OpenParam,dllpath 长度错误");
return -5;
}
iret =strlen(libPath);
if( (iret >=300) || (0 ==iret) )
{
WRITE_LOG("OpenParam,libPath 长度错误");
return -5;
}
strcpy(buf,libPath);
changechar(buf,'/','\\');
checkPathEnd(buf);
iret = SetLogPath(buf);
if(iret <0)
{
WRITE_LOG("设置log 路径失败 , %s",buf);
return -6;
}
qbPath =buf;
strcpy(buf,dllpath);
changechar(buf,'/','\\');
checkPathEnd(buf);
iret =SetDllPath(buf);
if(iret <0)
{
WRITE_LOG("SetDllPath错误");
return -6;
}
memset(buf,0,sizeof(buf));
iret =strlen(TempPath);
if( (iret >=300) || (0 ==iret) )
{
WRITE_LOG("OpenParam,libPath 长度错误");
return -7;
}
strcpy(buf,TempPath);
changechar(buf,'/','\\');
checkPathEnd(buf);
qtPath =buf;
if(! pParaManPtr)
{
CParamMan * ptr;
ptr = new CParamMan();
if(! ptr)
{
WRITE_LOG("OpenParam, new CParamMan 失败");
return -8;
}
pParaManPtr = ptr;
}
// qsid = psiD;
qinfo = pInfo;
qname = "";
bret =pParaManPtr->OpenParam(NULL,qname,15,0,0,pInfo,qbPath,qtPath);
if(! bret)
{
WRITE_LOG("OpenParam, 调用失败");
delete pParaManPtr;
pParaManPtr =NULL;
return -9;
}
return 0;
}
//卸载参数
extern "C" NOWJAVADLL_EXPORT void CloseParam()
{
if(! pParaManPtr)
{
return ;
}
pParaManPtr->CloseParam();
delete pParaManPtr;
pParaManPtr =NULL;
}
extern "C" NOWJAVADLL_EXPORT int GetVersion(const int PFileId,const int InfoType,char * version,int & versionLen)
{
//char buf[256];
QString qstr;
int iret;
if(! pParaManPtr)
{
return -1;
}
if( ! version )
{
return -2;
}
qstr = pParaManPtr->GetVersion(PFileId,InfoType);
iret = QStr2Utf8(qstr,version,versionLen-1);
if(iret <0)
{
versionLen =0;
return -3;
}
versionLen = iret;
return 0;
}
//获取参数文件时间
extern "C" NOWJAVADLL_EXPORT long long GetGenTime(const int pFileId)
{
if(! pParaManPtr)
{
return -1;
}
QDateTime dTime;
long long lTemp;
dTime = pParaManPtr->GetGenTime(pFileId);
lTemp = dTime.toMSecsSinceEpoch();
return lTemp;
}
//获取参数中文名称
extern "C" NOWJAVADLL_EXPORT int GetParamCName(const int PFileId,char * name,int &nameLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->GetParamCName(PFileId);
iret = QStr2Utf8(qstr,name,nameLen);
if(iret <0)
{
nameLen =0;
return -3;
}
nameLen = iret;
return 0;
}
//获取参数文件名称
extern "C" NOWJAVADLL_EXPORT int GetParamPFName(const int PFileId,char * name,int &nameLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->GetParamPFName(PFileId);
iret = QStr2Utf8(qstr,name,nameLen);
if(iret <0)
{
nameLen =0;
return -3;
}
nameLen = iret;
return 0;
}
extern "C" NOWJAVADLL_EXPORT int GetParamsStatus(char * status,int &statusLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->GetParamsStatus();
iret = QStr2Utf8(qstr,status,statusLen);
if(iret <0)
{
statusLen =0;
return -3;
}
statusLen = iret;
return 0;
}
extern "C" NOWJAVADLL_EXPORT int GetVerInfo(char * result,int &retsultLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->GetVerInfo();
iret = QStr2Utf8(qstr,result,retsultLen);
if(iret <0)
{
retsultLen =0;
return -3;
}
retsultLen = iret;
return 0;
}
//是否节假日
extern "C" NOWJAVADLL_EXPORT bool IsHoliday()
{
if(! pParaManPtr)
{
return false;
}
return pParaManPtr->IsHoliday();
// return true;
}
//获取收费站信息
// iGantryId,iGantryHex,oGantryId,oGantryHex,roadName,stationName
extern "C" NOWJAVADLL_EXPORT int GetStaInfo(const int RoadNo,const int StaNo, int &SubAreaNo, char * result,int &retsultLen) //小片区编号
{
if(! pParaManPtr)
{
return -1;
}
char buf[512];
char tmpbuf[8192];
int iret;
QString iGantryId;
QString iGantryHex;
QString OGantryId;
QString OGantryHex;
QString RoadName;
QString StationName;
memset(tmpbuf,0,sizeof(tmpbuf));
strcpy(tmpbuf,"{\"iGantryId\":\"");
iret = pParaManPtr->GetStaInfo(RoadNo,StaNo, SubAreaNo, iGantryId, iGantryHex, OGantryId, OGantryHex, RoadName, StationName);
if(iret <0)
{
return -2;
}
memset(buf,0,sizeof(buf));
iret = QStr2Utf8(iGantryId,buf,500);
if(iret <0)
{
return -3;
}
strcat(tmpbuf,buf);
strcat(tmpbuf,"\",\"iGantryHex\":\"");
memset(buf,0,sizeof(buf));
iret = QStr2Utf8(iGantryHex,buf,500);
if(iret <0)
{
return -4;
}
strcat(tmpbuf,buf);
strcat(tmpbuf,"\",\"oGantryId\":\"");
memset(buf,0,sizeof(buf));
iret = QStr2Utf8(OGantryId,buf,500);
if(iret <0)
{
return -5;
}
strcat(tmpbuf,buf);
strcat(tmpbuf,"\",\"oGantryHex\":\"");
memset(buf,0,sizeof(buf));
iret = QStr2Utf8(OGantryHex,buf,500);
if(iret <0)
{
return -6;
}
strcat(tmpbuf,buf);
strcat(tmpbuf,"\",\"roadName\":\"");
iret = QStr2Utf8(RoadName,buf,500);
if(iret <0)
{
return -7;
}
strcat(tmpbuf,buf);
strcat(tmpbuf,"\",\"stationName\":\"");
iret = QStr2Utf8(StationName,buf,500);
if(iret <0)
{
return -8;
}
strcat(tmpbuf,buf);
strcat(tmpbuf,"\"}");
iret =strlen(tmpbuf);
if(iret >=retsultLen)
{
return -9;
}
strcpy(result,tmpbuf);
retsultLen = iret;
//WRITE_LOG("stainfo %s ,len is %d",tmpbuf, iRet);
return 0;
}
//获取收费站名称bIncludeRoadName为true包括路段名false不包括
extern "C" NOWJAVADLL_EXPORT int GetStaName(const int RoadNo,const int StaNo,const bool bIncludeRoadName,char * name,int &nameLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->GetStaName(RoadNo,StaNo,bIncludeRoadName);
iret = QStr2Utf8(qstr,name,nameLen);
if(iret <0)
{
nameLen =0;
return -3;
}
nameLen = iret;
return 0;
}
//获取路段名称
extern "C" NOWJAVADLL_EXPORT int GetRoadName(const int RoadNo,char * name,int &nameLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->GetRoadName(RoadNo);
iret = QStr2Utf8(qstr,name,nameLen);
if(iret <0)
{
nameLen =0;
return -3;
}
nameLen = iret;
return 0;
}
extern "C" NOWJAVADLL_EXPORT bool BasicInfoIdFind(const char *keyValue,char * Hex, int & HexLen,
char * Name,int & NameLen)
{
if(! pParaManPtr)
{
return false;
}
QString sKey;
QString sHex;
QString qstr;
bool bret;
int iret;
sKey = keyValue;
// sField = QString::fromLocal8Bit(ResultFieldName);
bret = pParaManPtr->BasicInfoIdFind(sKey,sHex,qstr);
if(! bret)
{
return false;
}
iret = QStr2Utf8(qstr,Hex,HexLen);
if(iret <0)
{
HexLen =0;
return false;
}
HexLen = iret;
iret = QStr2Utf8(qstr,Name,NameLen);
if(iret <0)
{
HexLen =0;
return false;
}
NameLen = iret;
return true;
}
//.获取基本信息
extern "C" NOWJAVADLL_EXPORT bool BasicInfoHexFind(const char * hex,char * Id, int & IdLen,
char * Name,int & NameLen)
{
if(! pParaManPtr)
{
return false;
}
QString sKey;
QString sId;
QString qstr;
bool bret;
int iret;
sKey = QString::fromLocal8Bit(hex);
// sField = QString::fromLocal8Bit(ResultFieldName);
bret = pParaManPtr->BasicInfoHexFind(sKey,sId,qstr);
if(! bret)
{
return false;
}
iret = QStr2Utf8(sId,Id,IdLen);
if(iret <0)
{
IdLen =0;
return false;
}
IdLen = iret;
iret = QStr2Utf8(qstr,Name,NameLen);
if(iret <0)
{
NameLen =0;
return false;
}
NameLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT int LaneIdFind(const char * enStationId, const int AreaNo, const int RoadNo,
const int StaNo,const int LaneNo,char * result,int &retsultLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->LaneIdFind(enStationId,AreaNo,RoadNo,StaNo,LaneNo);
iret = QStr2Utf8(qstr,result,retsultLen);
if(iret <0)
{
retsultLen =0;
return -2;
}
retsultLen = iret;
return 0;
}
extern "C" NOWJAVADLL_EXPORT bool IssuerCheck(const char * Issuer,const char * IssuerCode4)
{
if(! pParaManPtr)
{
return false;
}
QString qisur,qcode;
bool bret;
qisur = Issuer;
qcode = IssuerCode4;
bret = pParaManPtr->IssuerCheck(qisur,qcode);
return bret;
}
extern "C" NOWJAVADLL_EXPORT bool CardValid(const char * cardIssuer,const char * cardIssuerCode4,
const char * startTime, const char * endTime,
const int cardType, const int cardVehType,
int &ErrorCode, char * ErrorInf,
int & ErrorInfLen)
{
if(! pParaManPtr)
{
return false;
}
QString qcardIssuer;
QString qnetNo;
QString qstartTime;
QString qendTime;
QString qErrorInf;
bool bret;
int iret;
qcardIssuer = cardIssuer;
qnetNo = cardIssuerCode4;
qstartTime = startTime;
qendTime = endTime;
bret = pParaManPtr->CardValid(qcardIssuer,qnetNo,qstartTime,qendTime,cardType,cardVehType,ErrorCode,qErrorInf);
if(! bret)
{
return false;
}
iret = QStr2Utf8(qErrorInf,ErrorInf,ErrorInfLen);
if(iret <0)
{
ErrorInfLen =0;
return false;
}
ErrorInfLen = iret;
return true;
}
//黑名单查询
extern "C" NOWJAVADLL_EXPORT bool DoFindBlack(const int PFileId, const char * SearchStr,char * result,int &resultLen)
{
if(! pParaManPtr)
{
return false;
}
QString sKey;
QString qstr;
bool bret;
int iret;
sKey = SearchStr;
bret = pParaManPtr->doFindBlack(PFileId,sKey,qstr);
if(! bret)
{
return false;
}
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return false;
}
resultLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT int GetOBUReasonText(const int iStatus,char * result,
int &resultLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->GetOBUReasonText(iStatus);
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return -2;
}
resultLen = iret;
return 0;
}
extern "C" NOWJAVADLL_EXPORT int GetCardReasonText(const int iStatus,char * result,
int &resultLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->GetCardReasonText(iStatus);
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return -2;
}
resultLen = iret;
return 0;
}
extern "C" NOWJAVADLL_EXPORT int GetVehBlackReasonText(const int iStatus,char * result,
int &resultLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->GetVehBlackReasonText(iStatus);
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return -2;
}
resultLen = iret;
return 0;
}
extern "C" NOWJAVADLL_EXPORT int GetVehGrayReasonText(const int iStatus,char * result,
int &resultLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->GetVehGrayReasonText(iStatus);
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return -2;
}
resultLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT int GetSNReasonText(const char * states,char * result,int &resultLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstates;
QString qstr;
int iret;
qstates = states;
qstr = pParaManPtr->GetSNReasonText(states);
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return -2;
}
resultLen = iret;
return 0;
}
extern "C" NOWJAVADLL_EXPORT bool IsOBUBlack(const char * OBUContractSerialNumber,char * result,
int &resultLen)
{
if(! pParaManPtr)
{
return false;
}
QString sKey;
QString qstr;
bool bret;
int iret;
sKey = OBUContractSerialNumber;
bret = pParaManPtr->IsOBUBlack(sKey,qstr);
if(! bret)
{
return false;
}
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return false;
}
resultLen = iret;
return true;
}
//CPU卡黑名单
extern "C" NOWJAVADLL_EXPORT bool IsCardBlack(const char * CardNo,char * result,int &resultLen)
{
if(! pParaManPtr)
{
return false;
}
QString sKey;
QString qstr;
bool bret;
int iret;
sKey = CardNo;
bret = pParaManPtr->IsCardBlack(sKey,qstr);
if(! bret)
{
return false;
}
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return false;
}
resultLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT bool IsVehicleInProvBlack(const char *VehPlate,char * result,
int &resultLen)
{
if(! pParaManPtr)
{
return false;
}
QString sKey;
QString qstr;
bool bret;
int iret;
sKey = VehPlate;
bret = pParaManPtr->IsVehicleInProvBlack(sKey,qstr);
if(! bret)
{
return false;
}
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return false;
}
resultLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT bool IsVehicleBlack(const char *VehPlateAll,
char * result,int &resultLen)
{
if(! pParaManPtr)
{
return false;
}
QString sKey;
QString qstr;
bool bret;
int iret;
sKey = VehPlateAll;
bret = pParaManPtr->IsVehicleBlack(sKey,qstr);
if(! bret)
{
return false;
}
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return false;
}
resultLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT bool IsBigBlack(const char *VehPlate,char * result,
int &resultLen)
{
if(! pParaManPtr)
{
return false;
}
QString sKey;
QString qstr;
bool bret;
int iret;
sKey = VehPlate;
bret = pParaManPtr->IsBigBlack(sKey,qstr);
if(! bret)
{
return false;
}
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return false;
}
resultLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT bool IsSNBlack(const char *VehPlateAll,char * result,int &resultLen)
{
if(! pParaManPtr)
{
return false;
}
QString sKey;
QString qstr;
bool bret;
int iret;
sKey = VehPlateAll;
bret = pParaManPtr->IsSNBlack(sKey,qstr);
if(! bret)
{
return false;
}
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return false;
}
resultLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT bool IsBigAppoint(const char * VehPlateAll, char * result,
int &retsultLen)
{
if(! pParaManPtr)
{
return false;
}
char buf[512];
char tmpbuf[6144];
int iret;
QString CertNo;
QString Roads;
QString Goods;
QString StartDate;
QString EndDate;
QString sKey;
bool bret;
sKey = VehPlateAll;
// strcpy(buf,"{\"certNo\":\"certNo\",\"roads\":\"roads\",\"goods\":\"goods\",\"startDate\":\"2022-3-14\",\"endDate\":\"2022-5-9\"}");
memset(tmpbuf,0,sizeof(tmpbuf));
strcpy(tmpbuf,"{\"certNo\":\"");
bret = pParaManPtr->IsBigAppoint(sKey,CertNo, Roads, Goods, StartDate, EndDate);
if( ! bret)
{
return false;
}
memset(buf,0,sizeof(buf));
iret = QStr2Utf8(CertNo,buf,500);
if(iret <0)
{
return false;
}
strcat(tmpbuf,buf);
strcat(tmpbuf,"\",\"roads\":\"");
memset(buf,0,sizeof(buf));
iret = QStr2Utf8(Roads,buf,500);
if(iret <0)
{
return false;
}
strcat(tmpbuf,buf);
strcat(tmpbuf,"\",\"goods\":\"");
memset(buf,0,sizeof(buf));
iret = QStr2Utf8(Goods,buf,500);
if(iret <0)
{
return false;
}
strcat(tmpbuf,buf);
strcat(tmpbuf,"\",\"startDate\":\"");
memset(buf,0,sizeof(buf));
iret = QStr2Utf8(StartDate,buf,500);
if(iret <0)
{
return false;
}
strcat(tmpbuf,buf);
strcat(tmpbuf,"\",\"endDate\":\"");
memset(buf,0,sizeof(buf));
iret = QStr2Utf8(EndDate,buf,500);
if(iret <0)
{
return false;
}
strcat(tmpbuf,buf);
strcat(tmpbuf,"\"}");
iret =strlen(tmpbuf);
if(iret >=retsultLen)
{
return false;
}
strcpy(result,tmpbuf);
retsultLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT bool IsEmerCar(const char * VehPlateAll, char * Id, char * VehSign,
char * DiscountInfo,char * StartDate,char * EndDate)
{
QString qVehPlateAll;
QString qId;
QString qDiscountInfo;
QString qStartDate;
QString qEndDate;
return true;
}
extern "C" NOWJAVADLL_EXPORT bool IsGreenCar(const char * VehPlateAll, char * Id, char * StartDate,
char * AppTime)
{
return true;
}
//班次表
extern "C" NOWJAVADLL_EXPORT int GetAutoClassInfo(long long &LastClassDate, int &LastClassNo)
{
if(! pParaManPtr)
{
return -1;
}
QDateTime qtmptime;
int iRet;
// qtmptime = QDateTime::fromSecsSinceEpoch(LastClassDate);
iRet = pParaManPtr->GetAutoClassInfo(qtmptime, LastClassNo);
if(iRet <0)
{
return -2;
}
LastClassDate = qtmptime.toMSecsSinceEpoch();
return 0;
}
//获取新的班次号
extern "C" NOWJAVADLL_EXPORT int GetOptionalClassInfo(const int roadNo,const int staNo,const int portNo,const long long dt,char * result,int &resultLen)
{
//QString qstr;
int iRet;
QDateTime mydtime;
char buf[512];
char tmpbuf[2048];
QDateTime AClassDate[4];
int AClassNo[4];
QString AClassName[4];
int OptCount = 0;
int iFind =0;
if(! pParaManPtr)
{
return -1;
}
// AClassDate[0] = QDateTime::currentDateTime();
// dt = AClassDate[0].toMSecsSinceEpoch();
mydtime.setMSecsSinceEpoch(dt);
// dtime.setMSecsSinceEpoch(dTime);
OptCount = pParaManPtr->GetOptionalClassInfo(mydtime,AClassDate, AClassNo, AClassName);
if( OptCount <=0)
{
return -2;
}
memset(tmpbuf,0,sizeof(tmpbuf));
strcpy(tmpbuf,"[");
for(int i=0; i<OptCount; i++)
{
if(1 ==iFind )
{
strcat(tmpbuf,",");
}
memset(buf,0,sizeof(buf));
iRet = CreateJsonData(AClassDate[i],AClassNo[i],AClassName[i],buf,500);
if(iRet <0)
{
return -3;
}
strcat(tmpbuf,buf);
iFind =1;
}
strcat(tmpbuf,"]");
iRet = strlen(tmpbuf);
if(iRet >= (resultLen -1))
{
return -4;
}
strcpy(result,tmpbuf);
resultLen = iRet;
return 0;
}
//
extern "C" NOWJAVADLL_EXPORT int GetClassCName(const int ClassNo,char * result,int &resultLen)
{
if(! pParaManPtr)
{
return -1;
}
QString qstr;
int iret;
qstr = pParaManPtr->GetClassCName(ClassNo);
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return -3;
}
resultLen = iret;
return 0;
}
//
extern "C" NOWJAVADLL_EXPORT bool GetMinFee(const char *enID, const char *exID,const int roadNo, const int staNo,const int CardType,const int VehType, char * result,int &resultLen)
{
QString qenID = enID;
QString qexID = exID;
int RoadNo = roadNo;
int StaNo = staNo;
int cardtype = CardType;
int Vegtype =VehType;
int MinFee;
int MinFee95;
int MinFeeMileAge;
QString MinFeeVer;
QString provFeeInfo;
int ProvCount;
int OutProvCashTotal;
int OutProvInCashTotal;
int InProvCashTotal;
int InProvInCashTotal;
int InProvMileAge;
QString qstr;
int iret;
bool bret =pParaManPtr->GetMinFee(enID, exID, RoadNo, StaNo,cardtype,Vegtype,MinFee, MinFee95, MinFeeMileAge, MinFeeVer, provFeeInfo,
ProvCount,OutProvCashTotal,OutProvInCashTotal,InProvCashTotal,InProvInCashTotal,InProvMileAge);
if(! bret)
{
return false;
}
qstr ="{\"fee\":";
qstr += QString::number(MinFee);
qstr +=",\"fee95\":";
qstr +=QString::number(MinFee95);
qstr +=",\"mileage\":";
qstr +=QString::number(MinFeeMileAge);
qstr +=",\"version\":\"";
qstr +=MinFeeVer;
qstr +="\",\"provCount\":";
qstr +=QString::number(ProvCount);
qstr +=",\"outProvCashTotal\":";
qstr +=QString::number(OutProvCashTotal);
qstr +=",\"outProvInCashTotal\":";
qstr +=QString::number(OutProvInCashTotal);
qstr +=",\"inProvCashTotal\":";
qstr +=QString::number(InProvCashTotal);
qstr +=",\"inProvInCashTotal\":";
qstr +=QString::number(InProvInCashTotal);
qstr +=",\"inProvMileage\":";
qstr +=QString::number(InProvMileAge);
qstr += ",\"feeInfo\":";
qstr += provFeeInfo;
qstr += "}";
iret = QStr2Utf8(qstr,result,resultLen);
if(iret <0)
{
resultLen =0;
return false;
}
resultLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT bool CheckMinFee(const int Cash,const int MinFee,const int ExitFeeType,const int VehType, const int CardType,int &ErrorCode, char *ErrorInfo)
{
QString qstr;
bool bret;
int iret;
if(! pParaManPtr)
{
return false;
}
if(! ErrorInfo)
{
return false;
}
bret =pParaManPtr->CheckMinFee(Cash,MinFee,ExitFeeType,VehType,CardType, ErrorCode,qstr);
iret = QStr2Utf8(qstr,ErrorInfo,qstr.length()+1);
return bret;
}
extern "C" NOWJAVADLL_EXPORT int GetDiscount(const char * CardIssuer,const int CardUType,const int CardType)
{
if(! pParaManPtr)
{
return -1;
}
// bool CheckUser(const QString &UserNo,const QString &Password,const int ManId1,int &ManId2, QString &UserName, int &GroupNo); //用工号密码验证
QString qKey;
qKey = CardIssuer;
return pParaManPtr->GetDiscount(qKey,CardUType,CardType);
}
extern "C" NOWJAVADLL_EXPORT bool CheckPassword(const char * Password,const char * EncPassword)
{
if(! pParaManPtr)
{
return false;
}
QString qPassword;
QString qEncPassword;
bool bret;
qPassword = Password;
qEncPassword = EncPassword;
bret = pParaManPtr->CheckPassword(qPassword,qEncPassword);
return bret;
}
extern "C" NOWJAVADLL_EXPORT bool CheckUserPassword(const int roadNo,const int staNo,const char *UserNo,
const char * Password,const int ManId1,int &ManId2,
char * name,int &nameLen, int &GroupNo)
{
if(! pParaManPtr)
{
return false;
}
// bool CheckUser(const QString &UserNo,const QString &Password,const int ManId1,int &ManId2, QString &UserName, int &GroupNo); //用工号密码验证
QString qUserNo;
QString qPassword;
QString qUserName;
bool bret;
int iret;
qUserNo = UserNo;
qPassword = Password;
//qUserNo
bret = pParaManPtr->CheckUser(qUserNo,qPassword,ManId1,ManId2,qUserName,GroupNo,roadNo,staNo);
if( ! bret)
{
return false;
}
iret = QStr2Utf8(qUserName,name,nameLen);
if(iret <0)
{
return false;
}
nameLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT bool CheckUserCard(const int roadNo,const int staNo, const char *UserNo,
const int CardId, const int ManId1, int &ManId2,char * name,
int &nameLen, int &GroupNo)
{
if(! pParaManPtr)
{
return false;
}
//bool CheckUser(const QString &UserNo,const uint CardId, const int ManId1, int &ManId2, QString &UserName, int &GroupNo); //用卡验证
QString qUserNo;
QString qUserName;
bool bret;
int iret;
char buf[64];
unsigned int iId;
iId = (unsigned int)CardId;
memset(buf,0,sizeof(buf));
sprintf(buf,"CardId is %u",iId);
printf(buf);
qUserNo = UserNo;
bret = pParaManPtr->CheckUser(qUserNo,CardId, ManId1, ManId2,qUserName,GroupNo,roadNo,staNo);
if( ! bret)
{
return false;
}
iret = QStr2Utf8(qUserName,name,nameLen);
if(iret <0)
{
return false;
}
nameLen = iret;
return true;
}
extern "C" NOWJAVADLL_EXPORT int UpdateParaFile(const char * name)
{
int iret;
bool bret;
QString qFileName;
if(! pParaManPtr)
{
return -1;
}
if(! name)
{
return -2;
}
iret = strlen(name);
if(iret <=0)
{
return -3;
}
qFileName =name;
bret =pParaManPtr->OnParamDownLoadComplete(0,qFileName, 1, true);
if(! bret)
{
WRITE_LOG("OnParamDownLoadComplete %s fail ",name);
return -4;
}
// return pParaManPtr->UpdateParaFile(name);
return 0;
}