添加分页获取排行榜数据
This commit is contained in:
parent
db7ffa2f78
commit
157894a8a6
5
pom.xml
5
pom.xml
|
@ -147,6 +147,11 @@
|
||||||
<artifactId>poi-ooxml</artifactId>
|
<artifactId>poi-ooxml</artifactId>
|
||||||
<version>5.0.0</version>
|
<version>5.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-mail</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.example.catchTheLetters.controller;
|
package com.example.catchTheLetters.controller;
|
||||||
|
|
||||||
import com.example.catchTheLetters.entity.Level;
|
import com.example.catchTheLetters.entity.Level;
|
||||||
|
import com.example.catchTheLetters.entity.Page;
|
||||||
|
import com.example.catchTheLetters.entity.ScoreInfoPage;
|
||||||
import com.example.catchTheLetters.model.vo.RankVo;
|
import com.example.catchTheLetters.model.vo.RankVo;
|
||||||
import com.example.catchTheLetters.entity.ScoreInfo;
|
import com.example.catchTheLetters.entity.ScoreInfo;
|
||||||
import com.example.catchTheLetters.service.LevelService;
|
import com.example.catchTheLetters.service.LevelService;
|
||||||
|
@ -100,4 +102,9 @@ public class LevelController {
|
||||||
return R.ok(versionService.getVersion("level"));
|
return R.ok(versionService.getVersion("level"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "分页获取某个排行榜排名")
|
||||||
|
@GetMapping("/rank-page")
|
||||||
|
public R<ScoreInfoPage> getScores(@RequestBody Page page) {
|
||||||
|
return R.ok(levelService.getScoreInfo( page.getLevelId(),page.getPage(), page.getSize()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.example.catchTheLetters.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Page {
|
||||||
|
private Integer page;
|
||||||
|
private Integer size;
|
||||||
|
private String levelId;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.example.catchTheLetters.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ScoreInfoPage {
|
||||||
|
private List<ScoreInfo> scores;
|
||||||
|
private Long total;
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ package com.example.catchTheLetters.service;
|
||||||
|
|
||||||
import com.example.catchTheLetters.entity.Level;
|
import com.example.catchTheLetters.entity.Level;
|
||||||
import com.example.catchTheLetters.entity.ScoreInfo;
|
import com.example.catchTheLetters.entity.ScoreInfo;
|
||||||
|
import com.example.catchTheLetters.entity.ScoreInfoPage;
|
||||||
import com.example.catchTheLetters.model.vo.RankVo;
|
import com.example.catchTheLetters.model.vo.RankVo;
|
||||||
import com.example.catchTheLetters.utils.R;
|
import com.example.catchTheLetters.utils.R;
|
||||||
|
|
||||||
|
@ -70,6 +71,14 @@ public interface LevelService {
|
||||||
*/
|
*/
|
||||||
boolean update(Level level);
|
boolean update(Level level);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页获取某个关卡的排行榜
|
||||||
|
* @param levelId 关卡id
|
||||||
|
* @param page 页数
|
||||||
|
* @param size 大小
|
||||||
|
* @return 集合
|
||||||
|
*/
|
||||||
|
ScoreInfoPage getScoreInfo(String levelId, Integer page, Integer size);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,12 +2,15 @@ package com.example.catchTheLetters.service.impl;
|
||||||
|
|
||||||
import com.example.catchTheLetters.entity.Level;
|
import com.example.catchTheLetters.entity.Level;
|
||||||
import com.example.catchTheLetters.entity.ScoreInfo;
|
import com.example.catchTheLetters.entity.ScoreInfo;
|
||||||
|
import com.example.catchTheLetters.entity.ScoreInfoPage;
|
||||||
import com.example.catchTheLetters.model.vo.RankVo;
|
import com.example.catchTheLetters.model.vo.RankVo;
|
||||||
import com.example.catchTheLetters.service.AuthService;
|
import com.example.catchTheLetters.service.AuthService;
|
||||||
import com.example.catchTheLetters.service.LevelService;
|
import com.example.catchTheLetters.service.LevelService;
|
||||||
import com.example.catchTheLetters.utils.JwtUtil;
|
import com.example.catchTheLetters.utils.JwtUtil;
|
||||||
import com.example.catchTheLetters.utils.R;
|
import com.example.catchTheLetters.utils.R;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.data.domain.PageRequest;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||||
import org.springframework.data.mongodb.core.query.Criteria;
|
import org.springframework.data.mongodb.core.query.Criteria;
|
||||||
import org.springframework.data.mongodb.core.query.Query;
|
import org.springframework.data.mongodb.core.query.Query;
|
||||||
|
@ -128,4 +131,12 @@ public class LevelServiceImpl implements LevelService {
|
||||||
var save = mongoTemplate.save(level);
|
var save = mongoTemplate.save(level);
|
||||||
return save.getId() != null;
|
return save.getId() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ScoreInfoPage getScoreInfo(String levelId, Integer page, Integer size) {
|
||||||
|
long total = mongoTemplate.count(new Query(),ScoreInfo.class)/size;
|
||||||
|
Pageable pageable = PageRequest.of(page - 1, size);
|
||||||
|
List<ScoreInfo> scores = mongoTemplate.find(new Query(Criteria.where("levelId").is(levelId)).with(pageable), ScoreInfo.class);
|
||||||
|
return new ScoreInfoPage(scores,total);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,10 +2,16 @@ package com.example.catchTheLetters;
|
||||||
|
|
||||||
import com.example.catchTheLetters.controller.LevelController;
|
import com.example.catchTheLetters.controller.LevelController;
|
||||||
import com.example.catchTheLetters.entity.Level;
|
import com.example.catchTheLetters.entity.Level;
|
||||||
|
import com.example.catchTheLetters.entity.ScoreInfo;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.junit.jupiter.api.Disabled;
|
import org.junit.jupiter.api.Disabled;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.data.domain.PageRequest;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||||
|
import org.springframework.data.mongodb.core.query.Criteria;
|
||||||
|
import org.springframework.data.mongodb.core.query.Query;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -17,6 +23,9 @@ class TestInsertLevel {
|
||||||
@Resource
|
@Resource
|
||||||
private LevelController levelController;
|
private LevelController levelController;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MongoTemplate mongoTemplate;
|
||||||
|
|
||||||
private final List<String> words = new ArrayList<>() {
|
private final List<String> words = new ArrayList<>() {
|
||||||
{
|
{
|
||||||
add("apple");
|
add("apple");
|
||||||
|
@ -84,4 +93,12 @@ class TestInsertLevel {
|
||||||
|
|
||||||
levelController.create(level);
|
levelController.create(level);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled
|
||||||
|
void pageTest(){
|
||||||
|
Pageable pageable = PageRequest.of(0, 1);
|
||||||
|
List<ScoreInfo> scores = mongoTemplate.find(new Query(Criteria.where("levelId").is("0")).with(pageable), ScoreInfo.class);
|
||||||
|
System.out.println(scores);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue