Project

General

Profile

1
/**
2
 * Created by Glykeria Katsari on 2/20/2016.
3
 */
4
package eu.dnetlib.usagestats.repos;
5

    
6

    
7
import eu.dnetlib.usagestats.domain.UsageStats;
8
import org.apache.log4j.Logger;
9
import org.springframework.beans.factory.annotation.Autowired;
10
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
11
import org.springframework.stereotype.Repository;
12

    
13
import javax.sql.DataSource;
14
import java.sql.*;
15
import java.util.ArrayList;
16
import java.util.List;
17

    
18
@Repository
19
public class ResultRepo extends BaseRepository {
20
    private Logger log = Logger.getLogger(this.getClass());
21

    
22
    public UsageStats getClicks(String id) {
23

    
24
        String query = "select r.id, r.title , sum (rs.numberofviews) from result r, usagestats.resultsstats rs " +
25
                "where rs.resultid=r.id and r.id=? group by r.id, r. title;";
26

    
27
        List<String> values = new ArrayList<String>();
28
        values.add(id);
29

    
30
        List<UsageStats> results = executePreparedQuery(query, values);
31

    
32
        if (!results.isEmpty()) return results.get(0);
33
        return new UsageStats();
34

    
35
    }
36

    
37
    public List<UsageStats> getMostPopular(String limit) {
38

    
39
        String query = "select r.id, r.title , sum (rs.numberofviews) from result r, usagestats.resultsstats rs where " +
40
                "rs.resultid=r.id group by r.id, r. title order by  sum (rs.numberofviews)  desc limit " + limit + " ;";
41

    
42
        return executeQuery(query);
43

    
44
    }
45

    
46
    public List<UsageStats> getPopularityOverTime(String resultId) {
47

    
48
        String query = "select rs.resultid, rs.timestamp_month , rs.numberofviews from  usagestats.resultsstats rs " +
49
                " where rs.resultid=?  order by to_date(rs.timestamp_month,'MM/YYYY') ;";
50
        List<String> values = new ArrayList<String>();
51
        values.add(resultId);
52
        return executePreparedQuery(query, values);
53

    
54
    }
55

    
56
}
57

    
58

    
(5-5/5)