diff --git a/pom.xml b/pom.xml index 4474b9a..fe0f531 100644 --- a/pom.xml +++ b/pom.xml @@ -152,6 +152,12 @@ org.springframework.boot spring-boot-starter-mail + + + io.minio + minio + 8.4.5 + diff --git a/src/main/java/com/example/catchTheLetters/config/MinioConfig.java b/src/main/java/com/example/catchTheLetters/config/MinioConfig.java new file mode 100644 index 0000000..e042761 --- /dev/null +++ b/src/main/java/com/example/catchTheLetters/config/MinioConfig.java @@ -0,0 +1,26 @@ +package com.example.catchTheLetters.config; + +import io.minio.MinioClient; +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +//@Data +//@Configuration +//@ConfigurationProperties(prefix = "minio") +//public class MinioConfig { +// private String endpoint; +// private String bucket; +// private String accessKey; +// private String secretKey; +// +// @Bean +// public MinioClient minioClient(){ +// return MinioClient.builder() +// .endpoint(endpoint) +// .credentials(accessKey, secretKey) +// .build(); +// } +// +//} diff --git a/src/main/java/com/example/catchTheLetters/controller/LevelController.java b/src/main/java/com/example/catchTheLetters/controller/LevelController.java index ef9e905..7eeeee7 100644 --- a/src/main/java/com/example/catchTheLetters/controller/LevelController.java +++ b/src/main/java/com/example/catchTheLetters/controller/LevelController.java @@ -1,10 +1,7 @@ package com.example.catchTheLetters.controller; -import com.example.catchTheLetters.entity.Level; -import com.example.catchTheLetters.entity.Page; -import com.example.catchTheLetters.entity.ScoreInfoPage; +import com.example.catchTheLetters.entity.*; import com.example.catchTheLetters.model.vo.RankVo; -import com.example.catchTheLetters.entity.ScoreInfo; import com.example.catchTheLetters.service.LevelService; import com.example.catchTheLetters.service.VersionService; import com.example.catchTheLetters.utils.R; @@ -107,4 +104,8 @@ public class LevelController { public R getScores(@RequestBody Page page) { return R.ok(levelService.getScoreInfo( page.getLevelId(),page.getPage(), page.getSize())); } + + public R> getNewVersion(){ + return versionService.getNewDownloads(); + } } diff --git a/src/main/java/com/example/catchTheLetters/entity/VersionDownload.java b/src/main/java/com/example/catchTheLetters/entity/VersionDownload.java new file mode 100644 index 0000000..d584dd7 --- /dev/null +++ b/src/main/java/com/example/catchTheLetters/entity/VersionDownload.java @@ -0,0 +1,17 @@ +package com.example.catchTheLetters.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VersionDownload implements Serializable { + private String id; + private Long time; + private String version; + private String url; +} diff --git a/src/main/java/com/example/catchTheLetters/service/VersionService.java b/src/main/java/com/example/catchTheLetters/service/VersionService.java index 0c0c6b1..8ae9fa8 100644 --- a/src/main/java/com/example/catchTheLetters/service/VersionService.java +++ b/src/main/java/com/example/catchTheLetters/service/VersionService.java @@ -1,5 +1,10 @@ package com.example.catchTheLetters.service; +import com.example.catchTheLetters.entity.VersionDownload; +import com.example.catchTheLetters.utils.R; + +import java.util.List; + /** * 版本服务接口 * @@ -21,4 +26,18 @@ public interface VersionService { * @param version 版本号 */ void setVersion(String tableName, Long version); + + /** + * 添加下载文件版本 + * @param time 时间 + * @param version 版本号 + * @param url 地址 + */ + R addVersionDownload(Long time, String version, String url); + + /** + * 获取最新的5个版本 + * @return 版本集合 + */ + R> getNewDownloads(); } diff --git a/src/main/java/com/example/catchTheLetters/service/impl/VersionServiceImpl.java b/src/main/java/com/example/catchTheLetters/service/impl/VersionServiceImpl.java index 0eb1864..a287f9c 100644 --- a/src/main/java/com/example/catchTheLetters/service/impl/VersionServiceImpl.java +++ b/src/main/java/com/example/catchTheLetters/service/impl/VersionServiceImpl.java @@ -1,13 +1,18 @@ package com.example.catchTheLetters.service.impl; import com.example.catchTheLetters.entity.Version; +import com.example.catchTheLetters.entity.VersionDownload; import com.example.catchTheLetters.service.VersionService; +import com.example.catchTheLetters.utils.R; import jakarta.annotation.Resource; +import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; +import java.util.List; + @Service public class VersionServiceImpl implements VersionService { @@ -30,4 +35,27 @@ public class VersionServiceImpl implements VersionService { mongoTemplate.save(res); } } + + @Override + public R addVersionDownload(Long time, String version, String url) { + VersionDownload versionDownload = new VersionDownload(); + versionDownload.setUrl(url); + versionDownload.setTime(time); + versionDownload.setVersion(version); + VersionDownload insert = mongoTemplate.insert(versionDownload); + if (insert.getId() == null){ + return R.fail("添加数据库失败"); + } + //TODO + return R.ok(insert.getId()); + } + + @Override + public R> getNewDownloads() { + Query query = new Query() + .with(Sort.by(Sort.Direction.DESC,"time")) + .limit(5); + List list = mongoTemplate.find(query, VersionDownload.class); + return R.ok(list); + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0c116ec..fa9a1bd 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -21,5 +21,11 @@ spring: host: 1.14.105.160 port: 6379 password: spynsql + server: port: 3536 +#minio: +# endpoint: http://1.14.105.160:9000 +# bucketName: +# accessKey: +# secretKey: diff --git a/src/test/java/com/example/catchTheLetters/TestInsertLevel.java b/src/test/java/com/example/catchTheLetters/TestInsertLevel.java index 796b357..88cd511 100644 --- a/src/test/java/com/example/catchTheLetters/TestInsertLevel.java +++ b/src/test/java/com/example/catchTheLetters/TestInsertLevel.java @@ -3,12 +3,15 @@ package com.example.catchTheLetters; import com.example.catchTheLetters.controller.LevelController; import com.example.catchTheLetters.entity.Level; import com.example.catchTheLetters.entity.ScoreInfo; +import com.example.catchTheLetters.entity.VersionDownload; +import com.example.catchTheLetters.utils.R; import jakarta.annotation.Resource; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; @@ -101,4 +104,14 @@ class TestInsertLevel { List scores = mongoTemplate.find(new Query(Criteria.where("levelId").is("0")).with(pageable), ScoreInfo.class); System.out.println(scores); } + + @Test + @Disabled + void newTest(){ + Query query = new Query() + .with(Sort.by(Sort.Direction.DESC,"time")) + .limit(5); + var list = mongoTemplate.find(query, VersionDownload.class); + System.out.println(list); + } }