package policy.rule.action;
|
|
import foundation.dao.DataWriter;
|
import policy.OrderEvent;
|
import policy.rule.CheckLevel;
|
import policy.rule.CheckResult;
|
import policy.rule.OnsiteRecord;
|
import policy.rule.OnsiteRecords;
|
import policy.rule.OrderCalculator;
|
import policy.rule.RuleAction;
|
|
public class OnsiteCountSameTimeCheck extends RuleAction {
|
|
public static String remark = "优惠政策只能选择一个的限制";
|
|
public OnsiteCountSameTimeCheck() {
|
super();
|
}
|
|
@Override
|
public void createBoard(OrderCalculator calculator, CheckResult result) {
|
OnsiteRecords onsiteRecords = calculator.getOnsiteRecords();
|
int cnt = onsiteRecords.size();
|
|
//1. 计算结果
|
boolean success = cnt <= 1;
|
result.setSuccess(success);
|
|
if (!success) {
|
for (OnsiteRecord record: onsiteRecords) {
|
result.writeOneRemark("使用多个优惠政策:[" + record.getNo() + "]" + record.getName());
|
}
|
}
|
}
|
|
@Override
|
public boolean check(OrderCalculator calculator, OrderEvent event, DataWriter dataWriter) {
|
OnsiteRecords onsiteRecords = calculator.getOnsiteRecords();
|
int cnt = onsiteRecords.size();
|
|
boolean success = cnt <= 1;
|
|
if (!success) {
|
for (OnsiteRecord record: onsiteRecords) {
|
dataWriter.reportOneError("OnsiteCountSameTimeCheck", "使用多个优惠政策:[" + record.getNo() + "]" + record.getName());
|
}
|
}
|
|
if (CheckLevel.Info.equals(meta.getLevel())) {
|
success = true;
|
}
|
|
return success;
|
}
|
|
}
|