
解决:订单编码自动生成【上节遗留问题一】

- 文档的查看

1. 【商城订单表】添加一个填值规则——修改页面属性


${shop_order_num}
2. 填值规则的定义

- 规则实现类先默认写
3. 填值规则(编码生成)
1、 在rule包下创建一个OrderNumberRule类
2、将文档中的代码拷贝进去
/**
* 填值规则Demo:生成订单号
* 【测试示例】
*/
public class OrderNumberRule implements IFillRuleHandler {
@Override
public Object execute(JSONObject params, JSONObject formData) {
String prefix = "CN";
//订单前缀默认为CN 如果规则参数不为空,则取自定义前缀
if (params != null) {
Object obj = params.get("prefix");
if (obj != null) prefix = obj.toString();
}
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
int random = RandomUtils.nextInt(90) + 10;
String value = prefix + format.format(new Date()) + random;
// 根据formData的值的不同,生成不同的订单号
String name = formData.getString("name");
if (!StringUtils.isEmpty(name)) {
value += name;
}
return value;
}
}
3、将创建好的实现类路径填入到规则实现类框中

4、系统编码规则——功能测试

5、【商城订单表】订单编码自动生成——功能演示

4. 实现,订单编码不能修改功能
1、【商城订单表】中的页面属性,将订单编号改为【只读】即可。


2、【商城订单表】订单编码不能修改功能——功能演示

本文介绍如何在商城订单表中实现订单编号自动生成规则,并确保生成的编码不可修改。通过OrderNumberRule类实现规则,包括前缀定制、时间戳加随机数生成,以及姓名个性化。同时,通过设置页面属性锁定订单编号,完成功能演示与测试。





