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"}

 

posted @ 2019-05-05 16:31  !O0O!  阅读(577)  评论(0)    收藏  举报