package biz.target;
|
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import foundation.data.entity.Entity;
|
import foundation.util.MapList;
|
|
public class TargetModel {
|
|
private String id;
|
private String name;
|
private String unit;
|
private BigDecimal exRate;
|
private MapList<String, TargetModelDetail> levels;
|
|
public void load(Entity entity) throws Exception {
|
id = entity.getString("id");
|
name = entity.getString("name");
|
unit = entity.getString("unit");
|
|
if ("k".equals(unit)) {
|
exRate = new BigDecimal(1000);
|
}
|
else if ("w".equals(unit)) {
|
exRate = new BigDecimal(10000);
|
}
|
else if ("%".equals(unit)) {
|
exRate = new BigDecimal(0.01);
|
}
|
else {
|
exRate = BigDecimal.ONE;
|
}
|
|
levels = new MapList<String, TargetModelDetail>();
|
}
|
|
public TargetModelDetail calculateLevel(BigDecimal value) {
|
for (TargetModelDetail level : levels) {
|
if (level.isValid(value)) {
|
return level;
|
}
|
}
|
|
return null;
|
|
}
|
|
public TargetModelDetail getLevelById(String detailId) {
|
return levels.get(detailId);
|
}
|
|
public void loadOneLevel(Entity entity) throws Exception {
|
TargetModelDetail level = new TargetModelDetail(this);
|
level.load(entity);
|
levels.add(level.getId(), level);
|
}
|
|
public String getId() {
|
return id;
|
}
|
|
public BigDecimal getExRate() {
|
return exRate;
|
}
|
}
|