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.WidgetParameter;
import com.norteksoft.portal.entity.WidgetParameterValue;
import com.norteksoft.product.orm.hibernate.HibernateDao;
import com.norteksoft.product.util.ContextUtils;
@Repository
public class WidgetParameterValueDao extends HibernateDao<WidgetParameterValue, Long>{
@Autowired
private WidgetParameterDao widgetParameterDao;
public List<WidgetParameterValue> getWidgetParameterValues(Long widgetParameterId){
StringBuilder hql = new StringBuilder("FROM WidgetParameterValue wpv WHERE wpv.widgetParameter.id=? AND wpv.userId=0");
return this.find(hql.toString(),widgetParameterId);
}
public List<WidgetParameterValue> getWidgetParameterValuesByUser(Long widgetParameterId,Long userId){
StringBuilder hql = new StringBuilder("FROM WidgetParameterValue wpv WHERE wpv.widgetParameter.id=? AND wpv.userId=?");
return this.find(hql.toString(),widgetParameterId,userId);
}
public WidgetParameterValue getWidgetParameterValue(Long widgetParameterId){
StringBuilder vhql = new StringBuilder("FROM WidgetParameterValue wpv WHERE wpv.widgetParameter.id=?");
return this.findUnique(vhql.toString(),widgetParameterId);
}
public List<WidgetParameterValue> getWidgetParameterValuesByUserId(Long widgetParameterId, Long webpageId){
String hql = "FROM WidgetParameterValue wpv WHERE wpv.widgetParameter.id=? AND wpv.userId=? and wpv.webPageId=?";
return this.find(hql,widgetParameterId,ContextUtils.getUserId(), webpageId);
}
public List<WidgetParameterValue> getWidgetParameterValuesByUserIdAndWebpageId(Long widgetParameterId,Long webPageId){
String hql = "FROM WidgetParameterValue wpv WHERE wpv.widgetParameter.id=? AND wpv.userId=? AND wpv.webPageId=?";
return this.find(hql,widgetParameterId,ContextUtils.getUserId(),webPageId);
}
/**
* 获得底层平台小窗体参数值设置
* @return
*/
public List<WidgetParameterValue> getAllDefaultParameterValues(Long companyId){
List<WidgetParameter> widgets=widgetParameterDao.getAllDefaultWidgetParameters(companyId);
StringBuilder hql = new StringBuilder("from WidgetParameterValue wpv where wpv.companyId=? and wpv.userId=0 ");
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(" wpv.widgetParameter.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);
}
/**
* 根据系统获得底层平台小窗体参数值设置
* @return
*/
public List<WidgetParameterValue> getWidgetParameterValueBySystem(String systemIds,Long companyId){
List<WidgetParameter> widgets=widgetParameterDao.getWidgetParameterBySystem(systemIds,companyId);
StringBuilder hql=new StringBuilder("from WidgetParameterValue wpv where wpv.companyId=? and wpv.userId=0 ");
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(" wpv.widgetParameter.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 WidgetParameterValue getWidgetParameterValueByValue(String paramValue,Long parameterId){
StringBuilder vhql = new StringBuilder("FROM WidgetParameterValue wpv WHERE wpv.widgetParameter.id=? and wpv.value=? and wpv.userId=0 ");
List<WidgetParameterValue> paramValues=this.find(vhql.toString(),parameterId,paramValue);
if(paramValues.size()>0){
return paramValues.get(0);
}
return null;
}
}