package com.yeshi.fanli.dao.user.count;
|
|
import java.util.Date;
|
import java.util.List;
|
|
import org.springframework.data.domain.Sort;
|
import org.springframework.data.mongodb.core.query.Criteria;
|
import org.springframework.data.mongodb.core.query.Query;
|
import org.springframework.stereotype.Repository;
|
|
import com.yeshi.common.MongodbBaseDao;
|
import com.yeshi.fanli.entity.admin.count.DailyCountOrder;
|
import com.yeshi.fanli.entity.admin.count.DailyCountOrder.DailyCountOrderEnum;
|
import com.yeshi.fanli.util.StringUtil;
|
|
@Repository
|
public class DailyCountOrderDao extends MongodbBaseDao<DailyCountOrder> {
|
|
/**
|
* 查询统计最大的一天
|
*
|
* @return
|
*/
|
public DailyCountOrder getMaxDate(DailyCountOrderEnum couponEnum) {
|
Query query = new Query();
|
query.addCriteria(Criteria.where("type").is(couponEnum.name()));
|
query.with(new Sort(Sort.Direction.DESC, "day")).limit(1);
|
return mongoTemplate.findOne(query, DailyCountOrder.class);
|
}
|
|
/**
|
* 查询视图
|
*
|
* @param userEnum
|
* @param startTime
|
* @param endTime
|
* @return
|
*/
|
public List<DailyCountOrder> query(DailyCountOrderEnum userEnum, Date startTime, Date endTime, String channel) {
|
Query query = new Query();
|
Criteria ca = new Criteria();
|
ca.andOperator(Criteria.where("type").is(userEnum.name()),Criteria.where("day").gte(startTime), Criteria.where("day").lte(endTime));
|
query.addCriteria(ca);
|
if (!StringUtil.isNullOrEmpty(channel)) {
|
query.addCriteria(Criteria.where("channel").is(channel));
|
}
|
return mongoTemplate.find(query, DailyCountOrder.class);
|
}
|
|
}
|