Subversion Repositories SmartDukaan

Rev

Rev 36336 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
34300 ranu 1
package com.spice.profitmandi.dao.entity.fofo;
2
 
3
import javax.persistence.*;
4
import java.time.LocalDateTime;
5
import java.util.Objects;
6
 
7
@Entity
8
@Table(name = "fofo.rbm_rating")
9
@NamedQueries({
10
        @NamedQuery(name = "RbMRatingByMonth", query = "" +
11
                "SELECT r FROM RbmRating r WHERE r.fofoId = :fofoId AND r.rbmId = :rbmId AND r.createTimeStamp BETWEEN :startOfMonth AND :endOfMonth"
12
        ),
36336 ranu 13
        @NamedQuery(name = "RbMRatingByFofoIdAndWeek", query = "" +
14
                "SELECT r FROM RbmRating r WHERE r.fofoId = :fofoId AND r.createTimeStamp BETWEEN :startOfMonth AND :endOfMonth"
15
        ),
34300 ranu 16
        @NamedQuery(
17
                name = "Visit.FindAverageRatingByRbmIds",
18
                query = "SELECT new com.spice.profitmandi.dao.model.RbMRatingModel(v.rbmId, AVG(v.rating)) " +
19
                        "FROM RbmRating v WHERE v.rbmId IN :rbmIds GROUP BY v.rbmId"
34322 ranu 20
        ),
21
        @NamedQuery(
36101 ranu 22
                name = "Visit.FindAverageRatingByRbmIdsAndDateRange",
23
                query = "SELECT new com.spice.profitmandi.dao.model.RbMRatingModel(v.rbmId, AVG(v.rating), COUNT(v.id)) " +
24
                        "FROM RbmRating v WHERE v.rbmId IN :rbmIds " +
25
                        "AND v.createTimeStamp BETWEEN :startDate AND :endDate " +
26
                        "GROUP BY v.rbmId"
27
        ),
28
        @NamedQuery(
36356 ranu 29
                name = "Visit.FindUniquePartnerRatingByRbmIdsAndDateRange",
30
                query = "SELECT new com.spice.profitmandi.dao.model.RbMRatingModel(v.rbmId, AVG(v.rating), COUNT(DISTINCT v.fofoId)) " +
31
                        "FROM RbmRating v WHERE v.rbmId IN :rbmIds " +
32
                        "AND v.createTimeStamp BETWEEN :startDate AND :endDate " +
33
                        "GROUP BY v.rbmId"
34
        ),
35
        @NamedQuery(
34322 ranu 36
                name = "Visit.FindRbmFeedback",
37
                query = "SELECT r FROM RbmRating r" +
38
                        " WHERE r.rbmId IN :rbmIds" +
39
                        " AND r.createTimeStamp BETWEEN :startDate AND :endDate"
34300 ranu 40
        )
41
})
42
public class RbmRating {
43
    @Id
44
    @Column(name = "id", unique = true, updatable = false)
45
    private int id;
46
 
47
    @Column(name = "rating")
48
    private int rating;
49
 
50
    @Column(name = "comment")
51
    private String comment;
52
 
53
    @Column(name = "fofo_id")
54
    private int fofoId;
55
 
56
    @Column(name = "rbm_id")
57
    private int rbmId;
58
 
59
    @Column(name = "create_timestamp")
60
    private LocalDateTime createTimeStamp;
61
 
62
    public int getId() {
63
        return id;
64
    }
65
 
66
    public void setId(int id) {
67
        this.id = id;
68
    }
69
 
70
    public int getRating() {
71
        return rating;
72
    }
73
 
74
    public void setRating(int rating) {
75
        this.rating = rating;
76
    }
77
 
78
    public String getComment() {
79
        return comment;
80
    }
81
 
82
    public void setComment(String comment) {
83
        this.comment = comment;
84
    }
85
 
86
    public int getFofoId() {
87
        return fofoId;
88
    }
89
 
90
    public void setFofoId(int fofoId) {
91
        this.fofoId = fofoId;
92
    }
93
 
94
    public int getRbmId() {
95
        return rbmId;
96
    }
97
 
98
    public void setRbmId(int rbmId) {
99
        this.rbmId = rbmId;
100
    }
101
 
102
    public LocalDateTime getCreateTimeStamp() {
103
        return createTimeStamp;
104
    }
105
 
106
    public void setCreateTimeStamp(LocalDateTime createTimeStamp) {
107
        this.createTimeStamp = createTimeStamp;
108
    }
109
 
110
    @Override
111
    public String toString() {
112
        return "RbmRating{" +
113
                "id=" + id +
114
                ", rating=" + rating +
115
                ", comment='" + comment + '\'' +
116
                ", fofoId=" + fofoId +
117
                ", rbmId=" + rbmId +
118
                ", createTimeStamp=" + createTimeStamp +
119
                '}';
120
    }
121
 
122
    @Override
123
    public boolean equals(Object o) {
124
        if (this == o) return true;
125
        if (o == null || getClass() != o.getClass()) return false;
126
        RbmRating rbmRating = (RbmRating) o;
127
        return id == rbmRating.id && rating == rbmRating.rating && fofoId == rbmRating.fofoId && rbmId == rbmRating.rbmId && Objects.equals(comment, rbmRating.comment) && Objects.equals(createTimeStamp, rbmRating.createTimeStamp);
128
    }
129
 
130
    @Override
131
    public int hashCode() {
132
        return Objects.hash(id, rating, comment, fofoId, rbmId, createTimeStamp);
133
    }
134
}