package com.example.expense.plan.dao;
import org.springframework.stereotype.Repository;
import com.example.expense.entity.Plan;
import com.norteksoft.acs.base.enumeration.LogicOperator;
import com.norteksoft.product.api.ApiFactory;
import com.norteksoft.product.orm.Page;
import com.norteksoft.product.orm.hibernate.HibernateDao;
import com.norteksoft.product.util.ContextUtils;
import com.norteksoft.product.util.PropUtils;
@Repository
public class PlanDao extends HibernateDao<Plan, Long> {
public Page<Plan> list(Page<Plan> page){
StringBuilder hql = new StringBuilder("select distinct plan from Plan plan inner join plan.planItems planItems ");
LogicOperator authlink = LogicOperator.OR;
LogicOperator dataRulelink = LogicOperator.OR;
if("AND".equals(PropUtils.getProp("plan.data.auth.link")))authlink=LogicOperator.AND;
if("AND".equals(PropUtils.getProp("product.data.rule.link")))dataRulelink = LogicOperator.AND;
ApiFactory.getDataPermissionService().addPermissionCondition(hql.toString(),authlink,dataRulelink);
return searchPageByHql(page,hql.toString());
}
public Page<Plan> listWidgets(Page<Plan> page){
return searchPageByHql(page,"from Plan plan where plan.creator=?",ContextUtils.getLoginName());
}
}