📄 jfserv.c
字号:
#include "gen_jfsrv.h"
#include <stdio.h>
#include <math.h>
#include <string.h>
#include "atmi.h"
#include "fml32.h"
#include "userlog.h"
#include "ynfld.h"
/* define the function for the server call.*/
void fun_CCGETUSERDETAILBILL(TPSVCINFO *rqst,FBFR32 *iFML);
void fun_CCGETUSERSIMPLEFEE(TPSVCINFO *rqst,FBFR32 *iFML);
void fun_CCGETSCORE(TPSVCINFO *rqst,FBFR32 *iFML);
void fun_CCGETFEESET(TPSVCINFO *rqst,FBFR32 *iFML);
void endFML(FBFR32 *iFML);
void toULog(const char * fmtstr,const char * msg){
char showmsg[1024];
sprintf(showmsg,fmtstr,msg);
userlog(showmsg);
}
#if defined(__STDC__) || defined(__cplusplus)
tpsvrinit(int argc, char *argv[])
#else
tpsvrinit(argc, argv)
int argc;
char **argv;
#endif
{
/* Some compilers warn if argc and argv aren't used. */
argc = argc;
argv = argv;
/* userlog writes to the central TUXEDO message log */
userlog("Welcome to the user fml server");
return(0);
}
#ifdef __cplusplus
extern "C"
#endif
void
#if defined(__STDC__) || defined(__cplusplus)
CORL_CC(TPSVCINFO *rqst)
#else
CORL_CC(rqst)
TPSVCINFO *rqst;
#endif
{
FBFR32 *iFML;
char strtmp[100];
char transcode[100];
long len=0;
short short1;
long long1;
int int1;
float f1;
toULog("-In jfserv.c %s\n","...");
iFML = (FBFR32 *)rqst->data;
// Fget32(iFML,INSTR1,0,strtmp,&len);
// toULog("instr1.len:%i\n",len);
// toULog("-Fget32.INSTR1=%s",strtmp);
// len=sizeof(transcode);
// Fget32(iFML,PROVINCECODE,0,strtmp,&len);
// toULog("-Fget32.PROVINCECODE=%s",strtmp);
len=sizeof(transcode);
Fget32(iFML,TRANSCODE,0,transcode,&len);
toULog("-Fget32.TRANSCODE=%s",transcode);
Fchg32(iFML,OUTSTR1,0,(char *)"outvalue",0);
/*
//=================输出必须的结果==================
Fchg32(iFML, RESULTERRINFO, 0, (char *)"TradeOk", 0);
short1 = 0;
int1 = 0;
Fchg32(iFML, RESULTERRCODE, 0, (char *)&short1, 0);
Fchg32(iFML, RESULTCODE, 0, (char *)&int1, 0);
int1 = 0;
Fchg32(iFML, RESULTRECORDS, 0, (char *)&int1, 0);
//====================================================
Fchg32(iFML, USRNAME, 0, (char *)"aspire", 0);
Fchg32(iFML, QUALITYTYPECODE, 0, (char *)"gotone", 0);
Fchg32(iFML, QUALITYTYPE, 0, (char *)"gotone desc", 0);
f1=123.34f;
Fchg32(iFML, RESULTFEE, 0, (char *)&f1, 0);
toULog("-Fget32.RESULTFEE=%s",f1);
Fchg32(iFML, ALLROWEFEE, 0, (char *)&f1, 0);
Fchg32(iFML, FEE1, 0, (char *)&f1, 0);
Fchg32(iFML, FEE2, 0, (char *)&f1, 0);
Fchg32(iFML, FEE3, 0, (char *)&f1, 0);
Fchg32(iFML, FEE4, 0, (char *)&f1, 0);
Fchg32(iFML, FEE5, 0, (char *)&f1, 0);
//=======================================================
//===========CCGETUSERSIMPLEFEE==============
//=========================
*/
endFML(iFML);
//
if( strcmp( transcode, "CCGETUSERDETAILBILL") == 0 ){
fun_CCGETUSERDETAILBILL(rqst,iFML);
}
//1005 余额查询 CCGETUSERSIMPLEFEE
if(strcmp(transcode,"CCGETUSERSIMPLEFEE")==0 ){
toULog("--->In tuxedo if:%s","实时结余查询");
fun_CCGETUSERSIMPLEFEE(rqst,iFML);
}
//1007
if(strcmp(transcode,"CCGETSCORE")==0 ){
toULog("--->In tuxedo if:%s","积分查询");
fun_CCGETSCORE(rqst,iFML);
}
//1009套餐查询
if(strcmp(transcode,"CCGETFEESET")==0 ){
toULog("--->In tuxedo if:%s","套餐查询");
fun_CCGETFEESET(rqst,iFML);
}
toULog("-before jfserv.c-tpreturn %s\n","...");
tpreturn(TPSUCCESS, 0,rqst->data , 0L, 0);
}
//=================输出必须的结果==================
void endFML(FBFR32 *iFML){
short short1;
int int1;
Fchg32(iFML, RESULTERRINFO, 0, (char *)"TradeOk", 0);
short1 = 0;
int1 = 0;
Fchg32(iFML, RESULTERRCODE, 0, (char *)&short1, 0);
Fchg32(iFML, RESULTCODE, 0, (char *)&int1, 0);
int1 = 0;
Fchg32(iFML, RESULTRECORDS, 0, (char *)&int1, 0);
}
//套餐查询
void fun_CCGETFEESET(TPSVCINFO *rqst,FBFR32 *iFML){
long long1 = 3;
int i;
char fname[100];
Fchg32(iFML, RESULTRECORDS, 0, (char *)&long1, 0);
/**
FEESET 套餐名称 String
FEESETCODE 套餐编码 String
FEESETTAG 套餐标志 String
STARTDATE 起始作用时间 String
ENDDATE 终止作用时间 String
*/
for(i=0;i<long1;i++){
sprintf(fname,"XX套餐%i",i);
Fchg32(iFML, FEESET, i, (char *)&fname, i);
Fchg32(iFML, FEESETCODE, i, (char *)"1", i);
Fchg32(iFML, FEESETTAG, i, (char *)"2", i);
Fchg32(iFML, STARTDATE, i, (char *)"2000/11/12 11:22:33", i);
Fchg32(iFML, ENDDATE, i, (char *)"2005/01/02 11:22:33", i);
}
}
//实时结余查询
void fun_CCGETUSERSIMPLEFEE(TPSVCINFO *rqst,FBFR32 *iFML){
short short1;
float f1;
int int1;
toULog("--->In tuxedo fun:%s","fun_CCGETUSERSIMPLEFEE");
Fchg32(iFML, RESULTERRINFO, 0, (char *)"TradeOk", 0);
short1 = 0;
int1 = 0;
Fchg32(iFML, RESULTERRCODE, 0, (char *)&short1, 0);
Fchg32(iFML, RESULTCODE, 0, (char *)&int1, 0);
int1 = 2;
Fchg32(iFML, RESULTRECORDS, 0, (char *)&int1, 0);
//USRNAME 用户名 String
//QUALITYTYPECODE 品牌类型 string
//QUALITYTYPE 品牌类型说明 string
//RESULTFEE 结果费用 Float
//ALLROWEFEE 用户实时话费 Float
//FEE1 实际可以使用存款 Float
//FEE2 特殊使用存款 Float
//FEE3 月租类 Float
//FEE4 数据类 Float
//FEE5 限额使用类 Float
Fchg32(iFML, USRNAME, 0, (char *)"aspire", 0);
Fchg32(iFML, QUALITYTYPECODE, 0, (char *)"12345", 0);
Fchg32(iFML, QUALITYTYPE, 0, (char *)"全球通", 0);
f1=123.34f;
Fchg32(iFML, RESULTFEE, 0, (char *)&f1, 0);
f1=45.85f;
Fchg32(iFML, ALLROWEFEE, 0, (char *)&f1, 0);
f1=12.50f;
Fchg32(iFML, FEE1, 0, (char *)&f1, 0);
Fchg32(iFML, FEE2, 0, (char *)&f1, 0);
Fchg32(iFML, FEE3, 0, (char *)&f1, 0);
Fchg32(iFML, FEE4, 0, (char *)&f1, 0);
Fchg32(iFML, FEE5, 0, (char *)&f1, 0);
}
//帐单费用查询
void fun_CCGETUSERDETAILBILL(TPSVCINFO *rqst,FBFR32 *iFML){
float float1 = 1.0f;
float float2 = 2.0f;
float float3 = 3.0f;
float float4 = 4.0f;
Fchg32(iFML, USRNAME, 0, (char *)"Aspire", 0);
Fchg32(iFML, ACYCDATEEXTENT, 0, (char *)"20050801-20050830", 0);
Fchg32(iFML, ACYCDATEALLFEE, 0, (char *)&float4, 0);
Fchg32(iFML, ADVANCEPAY, 0, (char *)&float2, 0);
Fchg32(iFML, BILLITEM, 0, (char *)"神洲行费用", 0);
Fchg32(iFML, BILLITEMCODE, 0, (char *)"0011", 0);
Fchg32(iFML, FEE, 0, (char *)&float1, 0);
Fchg32(iFML, BALANCE, 0, (char *)&float1, 0);
Fchg32(iFML, LATEFEE, 0, (char *)&float1, 0);
Fchg32(iFML, LATEBALANCE, 0, (char *)&float2, 0);
Fchg32(iFML, ADJUSTBEFORE, 0, (char *)&float2,0);
Fchg32(iFML, ADJUSTAFTER, 0, (char *)&float2, 0);
Fchg32(iFML, BDISCOUNT, 0, (char *)&float2, 0);
Fchg32(iFML, ADISCOUNT, 0, (char *)&float2, 0);
Fchg32(iFML, LATECALTIME, 0, (char *)"20050801-20050830", 0);
Fchg32(iFML, TR_PAYTAG, 0, (char *)"1", 0);
Fchg32(iFML, BILLITEM, 1, (char *)"动感地带费用", 0);
Fchg32(iFML, BILLITEMCODE, 1, (char *)"0011", 0);
Fchg32(iFML, FEE, 1, (char *)&float1, 0);
Fchg32(iFML, BALANCE, 1, (char *)&float1, 0);
Fchg32(iFML, LATEFEE, 1, (char *)&float1, 0);
Fchg32(iFML, LATEBALANCE, 1, (char *)&float2, 0);
Fchg32(iFML, ADJUSTBEFORE, 1, (char *)&float2,0);
Fchg32(iFML, ADJUSTAFTER, 1, (char *)&float2, 0);
Fchg32(iFML, BDISCOUNT, 1, (char *)&float2, 0);
Fchg32(iFML, ADISCOUNT, 1, (char *)&float2, 0);
Fchg32(iFML, LATECALTIME, 1, (char *)"20050801-20050830", 0);
Fchg32(iFML, TR_PAYTAG, 1, (char *)"1", 0);
/*返回return信息*/
Fchg32(iFML, RESULTERRINFO, 0, (char *)"TradeOk", 0);
}
//积分查询
void fun_CCGETSCORE(TPSVCINFO *rqst,FBFR32 *iFML){
/*
SCORE 当前总积分 float
YEARSCORE 年度积分 float
USEDSCORE 已使用积分 float
SUMFEE 指定帐期内总积分 float
USERCLUBSCORE 用户2002年年度累计积分 float
SCORES 最近一次奖励积分 Float
QUERYDATE 奖励时间 String
BASICSCORE 本年身份积分 float
ENDVALUE 本年年度积分 float
SUMSCORE 本年累计积分 float
CELLCODE 积分登记标志 long
*/
float f1;
long l1;
int i;
long recs=3;
f1=456.89;
l1=12345;
Fchg32(iFML, RESULTRECORDS, 0, (char *)&recs, 0);
//单行
Fchg32(iFML, SCORE, 0, (char *)&f1, 0);
Fchg32(iFML, YEARSCORE, 0, (char *)&f1, 0);
Fchg32(iFML, USEDSCORE, 0, (char *)&f1, 0);
Fchg32(iFML, SUMFEE, 0, (char *)&f1, 0);
Fchg32(iFML, USERCLUBSCORE, 0, (char *)&f1, 0);
Fchg32(iFML, SCORES, 0, (char *)&f1, 0);
Fchg32(iFML, QUERYDATE, 0, (char *)"20051012 11:23:45", 0);
Fchg32(iFML, BASICSCORE, 0, (char *)&f1, 0);
Fchg32(iFML, ENDVALUE, 0, (char *)&f1, 0);
Fchg32(iFML, SUMSCORE, 0, (char *)&f1, 0);
Fchg32(iFML, CELLCODE, 0, (char *)&l1, 0);
//多行
/*
INTEGRALTYPECODE 积分类型 String 1
INTEGRALTYPE 积分类型说明 String 20
FEE 积分 float
ACYCDATE 积分月份 String 20
STARTDATE 有效起始帐期 String 20
ENDDATE 有效终止帐期 String 20
Scores 奖励积分 Float
*/
f1=77.88;
//srand( (unsigned)time( NULL ) );
for(i=0;i<recs;i++){
Fchg32(iFML, INTEGRALTYPECODE, i, (char *)"1", 0);
Fchg32(iFML, INTEGRALTYPE, i, (char *)"积分类型说明", 0);
Fchg32(iFML, FEE, i, (char *)&f1, i);
Fchg32(iFML, ACYCDATE, i, (char *)"200510", 0);
Fchg32(iFML, STARTDATE, i, (char *)"200511", 0);
Fchg32(iFML, ENDDATE, i, (char *)"200512", 0);
// Fchg32(iFML, Scores, i, (char *)&f1, 0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -