/**
* New old customer statistic method
*
* @param startHour start hour
* @param threshold {@link QueryThreshold} of query
* sum value of threshold hours
* @param statRange range <em>THRESHOLD</em> number of statistic(NOT hour number)
* @param probeId id of probe device
* @return list of {@link NewOldVo} with size equals to statRange
*/
@Override
public List<NewOldVo> getNewOldStat(int startHour, QueryThreshold threshold, int statRange, String probeId) {
String isProbeSelected = probeId==null || probeId.isEmpty()? "": "AND wifiProb = :probeId ";
String sqlQuery = "SELECT wifiProb,DATE_FORMAT(hour,:dateFormat),sum(newCustomer),sum(oldCustomer)" +
"FROM new_old " +
"WHERE UNIX_TIMESTAMP(hour) >= (:startHour*3600) " + isProbeSelected+
" GROUP BY wifiProb,DATE_FORMAT(hour,:dateFormat) " +
"LIMIT 0,:statRange";
Query query = entityManager.createNativeQuery(sqlQuery);
query.setParameter("dateFormat", ThresholdUtil.convertToString(threshold));
query.setParameter("startHour",startHour);
if (!isProbeSelected.isEmpty()) query.setParameter("probeId",probeId);
query.setParameter("statRange",statRange>=1? statRange: 10);
List resultList = query.getResultList();
List<NewOldVo> newOldVos = new LinkedList<>();
for (Object object: resultList) {
newOldVos.add((NewOldVo) ObjectMapper.arrayToObject(NewOldVo.class,object));
}
return newOldVos;
}
NewOldDaoImpl.java 文件源码
java
阅读 58
收藏 0
点赞 0
评论 0
项目:WIFIProbe
作者:
评论列表
文章目录