package policy.rule;
|
|
import java.math.BigDecimal;
|
import java.text.DecimalFormat;
|
|
import foundation.dao.DataWriter;
|
import foundation.json.IJSONProvider;
|
import foundation.json.IJSONWriter;
|
import policy.OrderEvent;
|
|
public abstract class RuleAction implements IJSONProvider{
|
|
protected RuleMeta meta;
|
|
|
public RuleAction() {
|
|
}
|
|
public void setMeta(RuleMeta meta) {
|
this.meta = meta;
|
}
|
|
public RuleMeta getMeta() {
|
return meta;
|
}
|
|
public abstract void createBoard(OrderCalculator calculator, CheckResult result);
|
|
public abstract boolean check(OrderCalculator calculator, OrderEvent event, DataWriter dataWriter);
|
|
public static String formatRate(BigDecimal value) {
|
if (value == null) {
|
return "0%";
|
}
|
|
value = value.multiply(BigDecimal.valueOf(100));
|
DecimalFormat decimalFormat = new DecimalFormat("00.00");
|
String result = decimalFormat.format(value);
|
return result + "%";
|
}
|
|
public static String formatMoney(BigDecimal value) {
|
if (value == null) {
|
return "¥0.00";
|
}
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");
|
String result = decimalFormat.format(value);
|
return "¥" + result;
|
}
|
|
public static void main(String[] args) {
|
BigDecimal value = BigDecimal.valueOf(1234.56789);
|
System.out.println(formatMoney(value));
|
}
|
|
public void writeJSON(IJSONWriter writer) {
|
writer.beginObject();
|
|
writer.write("id", meta.getId());
|
writer.write("name", meta.getName());
|
writer.write("title", meta.getTitle());
|
writer.write("value", meta.getValue());
|
writer.write("unit", meta.getUnit());
|
writer.write("className", meta.getClassName());
|
writer.write("level", meta.getLevel().name());
|
|
writer.endObject();
|
|
}
|
}
|