提交 5a745200 编写于 作者: sq3536's avatar sq3536

modify

上级 9f9a5d40
......@@ -166,4 +166,9 @@ public class EntityObj extends DataObj<String,Object> {
});
}
}
public boolean isDelete()
{
return false;
}
}
......@@ -3,12 +3,15 @@ package cn.ibizlab.core.lite.extensions.domain;
import cn.ibizlab.core.lite.extensions.model.DataModel;
import cn.ibizlab.core.lite.extensions.model.Property;
import cn.ibizlab.util.helper.DataObject;
import cn.ibizlab.util.helper.RuleUtils;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
......@@ -269,4 +272,108 @@ public class ModelObj extends DataObj<String,Object> {
return this;
}
public boolean IF(String cond)
{
String[] arr=cond.split("\\s+");
String option="";
String members="";
String exp="";
if(arr.length>=2)
{
members=arr[0];
option=arr[1];
}
Object val=null;
String[] ms=members.split("[.]");
if(ms.length>=2&&(!StringUtils.isEmpty(ms[0])))
{
EntityObj sub=this.getEntity(ms[0]);
if(sub.isDelete())
return false;
if(sub!=null)
{
val=sub.get(ms[1]);
}
}
if(arr.length>=3)
{
exp=arr[2];
if(exp.startsWith("%"))
{
return RuleUtils.test(val, option, execFunc(exp));
}
}
return RuleUtils.test(val,option, exp);
}
private Object execFunc(String exp)
{
exp=exp.replace("%", "").trim();
if(exp.startsWith("DAY("))
{
Calendar calendar = Calendar.getInstance();
String quStr=exp.substring(exp.indexOf("(")+1,exp.indexOf(")"));
quStr=quStr.replace("+","").trim();
int day=0;
if(!StringUtils.isEmpty(quStr)){
day= Integer.parseInt(quStr);
}
calendar.add(Calendar.DATE, day);
return new Timestamp(calendar.getTime().getTime());
}
else if(exp.endsWith(")"))
{
String quStr=exp.substring(exp.indexOf("(")+1,exp.indexOf(")"));
exp = exp.substring(0,exp.indexOf("(")).trim();
quStr=quStr.replace("+","").trim();
Integer day=0;
if(!StringUtils.isEmpty(quStr)){
day= Integer.parseInt(quStr);
}
Object val = this.get(exp);
if(val!=null)
{
if(val instanceof Timestamp)
{
Calendar calendar = Calendar.getInstance();
calendar.setTime((Timestamp)val);
calendar.add(Calendar.DATE, day);
return new Timestamp(calendar.getTime().getTime());
}
else if(val instanceof Integer)
{
return (int)val+day;
}
else if(val instanceof BigDecimal)
{
return ((BigDecimal)val).intValue()+day;
}
}
return val;
}
return null;
}
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册