package com.norteksoft.portal.dao;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.norteksoft.portal.entity.Widget;
import com.norteksoft.portal.entity.WidgetParameter;
import com.norteksoft.product.orm.hibernate.HibernateDao;
@Repository
public class WidgetParameterDao extends HibernateDao<WidgetParameter, Long>{
@Autowired
private WidgetDao widgetDao;
public List<WidgetParameter> getWidgetParameters(Long widgetId){
StringBuilder hql = new StringBuilder("FROM WidgetParameter wp WHERE wp.widget.id=? ");
return this.find(hql.toString(),widgetId);
}
public List<WidgetParameter> getAllWidgetParameters(){
StringBuilder hql = new StringBuilder("FROM WidgetParameter wp");
return this.find(hql.toString());
}
public List<WidgetParameter> getWidgetParameterBySystem(String systemIds,Long companyId){
List<Widget> widgets=widgetDao.getWidgetsBySystem(systemIds,companyId);
StringBuilder hql=new StringBuilder("from WidgetParameter wp where wp.companyId=?");
Object[] values=new Object[1];
if(widgets.size()>0){
hql.append(" and ");
values=new Object[1+widgets.size()];
}
values[0]=companyId;
for(int i=0;i<widgets.size();i++){
if(i==0)hql.append("(");
hql.append(" wp.widget.id=? ");
if(i<widgets.size()-1){
hql.append(" or ");
}
if(i==widgets.size()-1)hql.append(")");
values[1+i]=widgets.get(i).getId();
}
return this.find(hql.toString(), values);
}
public WidgetParameter getWidgetParameterByCode(String code,Long widgetId){
List<WidgetParameter> params=this.find("from WidgetParameter wp where wp.code=? and wp.widget.id=?", code,widgetId);
if(params.size()>0)return params.get(0);
return null;
}
/**
* 获得底层平台小窗体参数
* @return
*/
public List<WidgetParameter> getAllDefaultWidgetParameters(Long companyId){
List<Widget> widgets=widgetDao.getDefaultWidgets(companyId);
StringBuilder hql = new StringBuilder("from WidgetParameter wp where wp.companyId=? ");
Object[] values=new Object[1];
if(widgets.size()>0){
hql.append(" and ");
values=new Object[1+widgets.size()];
}
values[0]=companyId;
for(int i=0;i<widgets.size();i++){
if(i==0)hql.append("(");
hql.append(" wp.widget.id=? ");
if(i<widgets.size()-1){
hql.append(" or ");
}
if(i==widgets.size()-1)hql.append(")");
values[1+i]=widgets.get(i).getId();
}
return this.find(hql.toString(), values);
}
}