StarringV6接入点+数据库——创建订单
1. JFDesign透视图,系统架构设计,新建接入点,名称为:pay_input;描述为:支付系统接入点。选择HttpJSON通讯协议。用连接线连接此接入点及中间业务。保存。

2. JFDesign透视图,资源树DEMO环境->中间业务->模块关系设计,编辑中间业务模块关系,把支付系统接入点与起步阶段的第一个ALA用连接线连起来。

3. JFDesign透视图->中间业务->起步阶段的第一个ALA->服务定义,新增一条服务定义,服务名为:orderCrt;描述为:创建支付订单。确定保存。

4. JFDesign透视图->数据字典,新增多个数据字典,内容如下:
名称 描述 中文名称 数据类型 长度 精度
id_32 通用id字段 通用id字段 String 32 0
datetime_20 时间日期字段 时间日期字段 String 20 0
org_code_12 组织结构代码 组织结构代码 String 12 0
flag_2 标志位2 标志位2 String 2 0
flag_1 标志位1 标志位1 String 1 0
amount 金额字段 金额字段 Double 15 2
int11 整数字段 整数字段 Int 11 0
code_8 代码字段 代码字段 String 8 0
rmrk_256 信息描述字段 信息描述字段 String 256 0
5. JFDesign透视图->中间业务->数据模型设计->数据库表,新增数据库表。表属性tab页,表名:T_ORDER;描述:支付订单表。表字段内容如下:
中文名 字段名 类型 长度 空值 主键
订单编号 ORDER_ID varchar 32 NO YES
创建时间 CREATE_DATE varchar 20 YES NO
用户编号 USER_ID varchar 32 YES NO
机构号码 ORG_CODE varchar 12 YES NO
订单状态 ORDER_STATE varchar 2 YES NO
更新日期 UPDATE_DATE varchar 20 YES NO
渠道编号 CHANNEL_ID varchar 2 YES NO
订单金额 ORDER_AMOUNT decimal 15,2 YES NO
产品编号 PRODUCT_ID varchar 32 YES NO
产品数量 PRODUCT_NUM int YES NO
是否删除状态 IS_DELETE varchar 1 YES NO

数据对象tab页,名称:T_ORDER;描述:订单数据对象。选择表字段对应的数据字典如下:

6. JFBuilder透视图->中间业务->起步阶段的第一个ALA->数据对象,新增服务逻辑输入输出数据对象,内容如下:
输入数据对象名称:CRTORDER_IN;描述:创建订单输入对象;XML标签:CRTORDER_IN。
添加子项:
类别:数据字典;类别名称:flag_2;属性名称:CHANNEL_ID;描述:渠道类型;其余默认。
类别:数据字典;类别名称:id_32;属性名称:MOBILE_PHONE;描述:充值手机号码;其余默认。
类别:数据字典;类别名称:id_32;属性名称:PRODUCT_ID;描述:产品号;其余默认。
类别:数据字典;类别名称:int11;属性名称:SALE_NUM;描述:购买数量;其余默认。
类别:数据字典;类别名称:amount;属性名称:SUM_PRICE;描述:总售价;其余默认。
类别:数据字典;类别名称:id_32;属性名称:ACCOUNT_ID;描述:付款账户编号;其余默认。
类别:数据字典;类别名称:org_code_12;属性名称:ORG_CODE;描述:机构号;其余默认。
类别:数据字典;类别名称:id_32;属性名称:USER_ID;描述:用户ID;其余默认。

输出数据对象名称:CRTORDER_OUT;描述:创建订单输出对象;XML标签:CRTORDER_OUT。
添加子项:
类别:数据字典;类别名称:code_8;属性名称:RESPONSE_CODE;描述:响应码;其余默认。
类别:数据字典;类别名称:rmrk_256;属性名称:RESPONSE_DESC;描述:响应信息;其余默认。
类别:数据字典;类别名称:id_32;属性名称:ORDER_ID;描述:订单编号;其余默认。
7. 菜单工具->选项,配置项目工作路径:C:\TEMP。打开java透视图,

第一次建立java的maven项目,可能项目会报错,全选项目右键菜单->Maven->Update Project,更新Maven。

在com.adtec.demov6.busi.agent项目下新建包:com.adtec.demov6.busi.agent,新建java类:PubBean,内容如下:
package com.adtec.demov6.busi.agent; import java.text.SimpleDateFormat; import java.util.Date; import com.adtec.starring.respool.StarringSeq; import com.adtec.starring.struct.dta.DtaInfo; public class PubBean { /** * 获取通用流水号的方法,根据传入参数查询不同的编号 * @param id 流水号序号 * @return */ public int getSeqNo(String id) { /*取序号发生器生成的值*/ int seq = StarringSeq.getCustomSeq(id); DtaInfo dtaInfo = DtaInfo.getInstance(); String nodeName = dtaInfo.getNodeName(); //取机器节点号 int nodeNo = Integer.parseInt(nodeName); //转化为整型的节点号 /*根据节点号、序号发生器产生的值生成最终的平台流水号*/ seq = nodeNo*100000000 + seq; return seq; } /** * 获取机器日期 * @return */ public String getNowDate(){ Date date= new Date();//创建一个时间对象,获取到当前的时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String str = sdf.format(date);//将当前时间格式化为需要的类型 return str; } }
其中包含生成流水号方法及获取机器日期方法。
JFBuilder透视图->中间业务->Bean对象,新增Bean对象,BeanID为:PubBean;类名为:com.adtec.demov6.busi.agent.PubBean;描述为:平台通用方法,确定保存。

8. JFBuilder透视图->中间业务->起步阶段的第一个ALA->逻辑处理,打开orderCrt服务逻辑,在输入输出tab页,选择输入输出数据对象:

在数据库tab页,增加T_ORDER支付订单表,在SQL页勾选insertT_ORDER语句:


选择下方的流程模板tab页,拖拽一个数据库部件,名称描述为:插入订单信息,Sql名字选择,insertT_ORDER。


在前处理事件中填入:
$T_ORDER.ORDER_ID=@PubBean.getNowDate()+@PubBean.getSeqNo("1");
$T_ORDER.CREATE_DATE=@PubBean.getNowDate();
$T_ORDER.USER_ID=$CRTORDER_IN.USER_ID;
$T_ORDER.ORDER_AMOUNT=$CRTORDER_IN.SUM_PRICE;
$T_ORDER.ORDER_STATE="00";
$T_ORDER.IS_DELETE="0";
在失败后处理事件中填入:
$CRTORDER_OUT.RESPONSE_CODE="00001";
$CRTORDER_OUT.RESPONSE_DESC="fail";
$CRTORDER_OUT.ORDER_ID="";
在成功后处理事件中填入:
$CRTORDER_OUT.RESPONSE_CODE="00000";
$CRTORDER_OUT.RESPONSE_DESC="success";
$CRTORDER_OUT.ORDER_ID=$TBL_ORDER.ORDER_ID;
确定保存。
9. JFConfig透视图->流水号配置,增加订单流水号,最小值:1;最大值:99999999;步长:1(必须用英文输入法输入数字,流水号标识自动生成)

10. JFConfig透视图->运行菜单->导出全部,勾选自动上传和上传class,导出。

11.使用数据库工具,连接运行机器数据库,新建订单表:
CREATE TABLE T_ORDER(
ORDER_ID VARCHAR (32) NOT NULL,
CREATE_DATE VARCHAR (20) NULL,
USER_ID VARCHAR (32) NULL,
ORG_CODE VARCHAR (12) NULL,
ORDER_STATE VARCHAR (2) NULL,
UPDATE_DATE VARCHAR (20) NULL,
CHANNEL_ID VARCHAR (2) NULL,
ORDER_AMOUNT DECIMAL (15,2) NULL,
PRODUCT_ID VARCHAR (32) NULL,
PRODUCT_NUM INT NULL,
IS_DELETE VARCHAR (1) NULL,
PRIMARY KEY (ORDER_ID)
)DEFAULT CHARSET=utf8 ENGINE = INNODB;
修改:1.JFConfig视图-》运行系统参数配置-》接入点-》双击pay_input,选择机器参数,配置日志信息
2.JFBuilder视图-》接入点-》双击pay_input-》事件管理-》服务吗获取事件:com.adtec.starring.handler.GetServiceCode.getServiceCode("aa")
aa可以为任意值但需与下方对应
3.执行时Body为:{"CHANNEL_ID":"","USER_ID":"10000045","ORDER_STATE":"","START_DATE":"","END_DATE":"","ORG_CODE":"","PAGE":"0","NUM":"10","aa":"orderCrt"}
执行结果
使用窗口->视图->其他->HTTP打开HTTP4e Client测试工具,发送POST请求,url为:http://192.168.190.222:8080/JavaFrame-web/HttpServer/pay_input/orderCrt;
Headers:Content-Type=text/json;Body为:{"CHANNEL_ID":"","USER_ID":"10000045","ORDER_STATE":"","START_DATE":"","END_DATE":"","ORG_CODE":"","PAGE":"0","NUM":"10"}


浙公网安备 33010602011771号