⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jfserv.c

📁 一个weblogc连接tuxedo的连接部件的例子程序
💻 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 + -