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.fanli.dao.MongodbBaseDao;
|
import com.yeshi.fanli.entity.admin.count.CountUserInfo;
|
import com.yeshi.fanli.entity.admin.count.CountUserInfo.CountUserEnum;
|
import com.yeshi.fanli.util.StringUtil;
|
|
@Repository
|
public class CountUserInfoDao extends MongodbBaseDao<CountUserInfo> {
|
|
/**
|
* 查询统计最大的一天
|
*
|
* @return
|
*/
|
public CountUserInfo getMaxDate(CountUserEnum userEnum) {
|
Query query = new Query();
|
query.addCriteria(Criteria.where("type").is(userEnum.name()));
|
query.with(new Sort(Sort.Direction.DESC, "day")).limit(1);
|
return mongoTemplate.findOne(query, CountUserInfo.class);
|
}
|
|
/**
|
* 查询视图
|
*
|
* @param dateType
|
* @param year
|
* @param startTime
|
* @param endTime
|
* @return
|
*/
|
public List<CountUserInfo> query(CountUserEnum userEnum, Date startTime, Date endTime) {
|
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);
|
return mongoTemplate.find(query, CountUserInfo.class);
|
}
|
|
/**
|
* 查询视图
|
*
|
* @param dateType
|
* @param year
|
* @param startTime
|
* @param endTime
|
* @return
|
*/
|
public List<CountUserInfo> query(CountUserEnum 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)) {
|
Criteria c2 = Criteria.where("channel").is(channel);
|
query.addCriteria(c2);
|
}
|
return mongoTemplate.find(query, CountUserInfo.class);
|
}
|
|
|
/**
|
* 查询视图
|
*
|
* @param dateType
|
* @param year
|
* @param startTime
|
* @param endTime
|
* @return
|
*/
|
public List<CountUserInfo> query(CountUserEnum userEnum, Date startTime, Date endTime, Integer state) {
|
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 (state != null) {
|
Criteria c2 = Criteria.where("state").is(state);
|
query.addCriteria(c2);
|
}
|
return mongoTemplate.find(query, CountUserInfo.class);
|
}
|
|
}
|