|
@@ -7,6 +7,9 @@ import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
+import java.nio.file.Files;
|
|
|
|
|
+import java.nio.file.Path;
|
|
|
|
|
+import java.nio.file.Paths;
|
|
|
import java.sql.*;
|
|
import java.sql.*;
|
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -20,12 +23,15 @@ public class ApkService {
|
|
|
|
|
|
|
|
private final static String APP_DOWNLOAD_COUNT_RANK = "app_download_count_rank";
|
|
private final static String APP_DOWNLOAD_COUNT_RANK = "app_download_count_rank";
|
|
|
|
|
|
|
|
- @Value("$(spring.datasource.url)")
|
|
|
|
|
- private static String JDBC_URL;
|
|
|
|
|
- @Value("$(spring.datasource.username)")
|
|
|
|
|
- private static String JDBC_USER;
|
|
|
|
|
- @Value("$(spring.datasource.password)")
|
|
|
|
|
- private static String JDBC_PASSWORD;
|
|
|
|
|
|
|
+ @Value("${spring.datasource.url}")
|
|
|
|
|
+ private String JDBC_URL;
|
|
|
|
|
+ @Value("${spring.datasource.username}")
|
|
|
|
|
+ private String JDBC_USER;
|
|
|
|
|
+ @Value("${spring.datasource.password}")
|
|
|
|
|
+ private String JDBC_PASSWORD;
|
|
|
|
|
+
|
|
|
|
|
+ @Value("${fdroid.app.path}")
|
|
|
|
|
+ private String APP_ABSOLUTE_PATH;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private RedisTemplate redisTemplate;
|
|
private RedisTemplate redisTemplate;
|
|
|
|
|
|
|
@@ -73,7 +79,7 @@ public class ApkService {
|
|
|
Map<Integer,Double> res =new HashMap<>();
|
|
Map<Integer,Double> res =new HashMap<>();
|
|
|
try (Connection connection = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);
|
|
try (Connection connection = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);
|
|
|
Statement statement = connection.createStatement();
|
|
Statement statement = connection.createStatement();
|
|
|
- ResultSet resultSet = statement.executeQuery("SELECT app_id, AVG(score) as average_score FROM app_score")) {
|
|
|
|
|
|
|
+ ResultSet resultSet = statement.executeQuery("SELECT app_id, AVG(score) as average_score FROM app_score GROUP BY app_id")) {
|
|
|
while (resultSet.next()) {
|
|
while (resultSet.next()) {
|
|
|
int appId = resultSet.getInt("app_id");
|
|
int appId = resultSet.getInt("app_id");
|
|
|
double averageScore = resultSet.getDouble("average_score");
|
|
double averageScore = resultSet.getDouble("average_score");
|
|
@@ -196,5 +202,15 @@ public class ApkService {
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public String isExistsApk(String apkName){
|
|
|
|
|
+ String path = APP_ABSOLUTE_PATH;
|
|
|
|
|
+ Path directoryPath = Paths.get(path);
|
|
|
|
|
+ Path filePath = directoryPath.resolve(apkName);
|
|
|
|
|
+
|
|
|
|
|
+ if(Files.exists(filePath)){
|
|
|
|
|
+ return String.valueOf(filePath);
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
}
|
|
}
|