更新时间:2021年08月25日17时58分 来源:传智教育 浏览次数:
订单数据模型通常由订单编号、订单时间、商品编号、商品价格等数十个字段组成,模型中的指标越多,提供给分析人员可分析的维度就越多,如针对平台运维角度统计指标可、以计算订单数据统计平台总销售额度、平台今日下单人数;针对商品销售角度统计指标可以计算每个商品的总销售额、每个商品的销售数量。在本项目模块开发中,需要计算每个商品总销售额,相应的维度数据在数据库中可以表示为bussiness::order::total字段,字段的名称设计可根据业务需求名称自定义设置。
首先在cn.itcast.createorder包下创建PaymentInfo.java文件,用于定义订单字段以及生成订单数据,具体代码如文件9-1所示。
文件9-1 PaymentInfo.java
import com.alibaba.fastison.JSONObject; import java.Util.Random; import java.util.UUID; public class PaymentInfo private static finallong serialVersionuid =1L; //序列化ID private String orderId; //订单编号 private String productId; //商品编号 private long productPrice; //商品价格 //无参构造方法 public PaymentInfo() { } public static long getSerialVersionUID() { return serialVersionUID; } public String getOrderId(){ return orderId; public void setOrder (String OrderId){ this.orderId =ordertdi } public string getProductId() ( return productId; public void setPrroductId(String productId) this.productId=productId; } public long getProductPricel() return productPrice; } public void setProductPrice (long poductPrice) { this.productPrice =productPrice; } QOverride public String toString(){ return "PaymentInfo{" + "orderId="+orderId + '\ ''+ ",productId="+productId + '\ ''+ ,productPrice="+productPrice+ ( //模拟订单数据 public String random(){ Random r =new Random(); this.orderId=UUID.randomUUID().toString().replaceAll("-"'”") this.productPrice=r.nextInt (1000); this.productId=r.nextInt(10)+""; JSONObject obj=new JSONObject(); string jsonString = obj.toJsoNString(this); return jsonString; } }
模拟订单数据模块开发中,第6~8行代码设置了3个字段,分别是订单编号、商品编号、商品价格。第42~49行代码是模拟订单数据的核心方法,采用UUID模拟生成订单编号,UUID是由一组32位数的十六进制数字随机构成的字符串数据,商品编号是由0~9这10个数字组成,代表特定商品。在数据传输过程中,需要将对象转换成Json格式的字符串,这里采用了Fastjson 数据转换工具,调用JSONObject类的toJSONString()方法将PaymentInfo订单对象转换为Json格式的字符串,编写成功后,就可以在test目录中创建测试用例,最终随机生成的订单数据格式如下。
{"orderId":"b030e0dfb3b04cd18c3b32beac01ab25","productId" :"6","productPrice":834}