Administrator
2020-02-18 c460c9d4f116be480ab5b6604b77be3bbc76a128
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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);
    }
 
}