package com.tievd.cube.modules.system.extra.fillrules; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import lombok.SneakyThrows; import com.tievd.cube.commons.intf.IFillRuleHandler; import java.util.Date; /** * 填值规则Demo:生成订单号 */ public class OrderNumberRule implements IFillRuleHandler { @SneakyThrows @Override public Object execute(JSONObject params, String formData) { String prefix = "No."; //订单前缀默认为CN 如果规则参数不为空,则取自定义前缀 if (params != null) { prefix = params.getStr("prefix"); } int random = RandomUtil.randomInt(0, 90) + 10; String value = prefix + DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN) + random; String name = JSONUtil.parseObj(formData).getStr("name"); if (StrUtil.isNotEmpty(name)) { value += name; } return value; } }