diff --git a/src/main/java/io/github/yubincloud/fairywiki/controller/EbookSnapshotController.java b/src/main/java/io/github/yubincloud/fairywiki/controller/EbookSnapshotController.java new file mode 100644 index 0000000000000000000000000000000000000000..eff2db0a9cff477712cef65e84a5395400cedd2f --- /dev/null +++ b/src/main/java/io/github/yubincloud/fairywiki/controller/EbookSnapshotController.java @@ -0,0 +1,31 @@ +package io.github.yubincloud.fairywiki.controller; + + +import io.github.yubincloud.fairywiki.dto.resp.ErrorCode; +import io.github.yubincloud.fairywiki.dto.resp.RestfulModel; +import io.github.yubincloud.fairywiki.dto.resp.StatisticRespDto; +import io.github.yubincloud.fairywiki.service.EbookSnapshotService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +@RestController +@RequestMapping("/ebook-snapshot") +@Api("电子书快照管理") +public class EbookSnapshotController { + + @Resource + private EbookSnapshotService ebookSnapshotService; + + @GetMapping("/get-statistic") + @ApiOperation(value = "从电子书快照中获取统计数据") + public RestfulModel> getStatistic() { + List statisticRespDtoList = ebookSnapshotService.getStatistic(); + return new RestfulModel<>(ErrorCode.SUCCESS, "", statisticRespDtoList); + } +} diff --git a/src/main/java/io/github/yubincloud/fairywiki/dto/resp/StatisticRespDto.java b/src/main/java/io/github/yubincloud/fairywiki/dto/resp/StatisticRespDto.java new file mode 100644 index 0000000000000000000000000000000000000000..5facb20b6c4915e0585abe3ea06cc7bdbc2889e8 --- /dev/null +++ b/src/main/java/io/github/yubincloud/fairywiki/dto/resp/StatisticRespDto.java @@ -0,0 +1,18 @@ +package io.github.yubincloud.fairywiki.dto.resp; + +import lombok.Data; + +import java.util.Date; + +@Data +public class StatisticRespDto { + private Date date; + + private int viewCount; + + private int voteCount; + + private int viewIncrease; + + private int voteIncrease; +} diff --git a/src/main/java/io/github/yubincloud/fairywiki/mapper/EbookSnapshotMapperCustom.java b/src/main/java/io/github/yubincloud/fairywiki/mapper/EbookSnapshotMapperCustom.java index 6a50b0aebe0c706628d41db1bf973c7eb9453e64..8efbcab8e32caeac8bca4f3eda272f4addadd9a6 100644 --- a/src/main/java/io/github/yubincloud/fairywiki/mapper/EbookSnapshotMapperCustom.java +++ b/src/main/java/io/github/yubincloud/fairywiki/mapper/EbookSnapshotMapperCustom.java @@ -1,5 +1,11 @@ package io.github.yubincloud.fairywiki.mapper; +import io.github.yubincloud.fairywiki.dto.resp.StatisticRespDto; + +import java.util.List; + public interface EbookSnapshotMapperCustom { void genSnapshot(); + + List getStatistic(); } diff --git a/src/main/java/io/github/yubincloud/fairywiki/service/EbookSnapshotService.java b/src/main/java/io/github/yubincloud/fairywiki/service/EbookSnapshotService.java index 65aa96c633178271a6dce9f5c36db7692d6de81b..06a6478da7b7682ddd2653910806cdb0c5b40cc8 100644 --- a/src/main/java/io/github/yubincloud/fairywiki/service/EbookSnapshotService.java +++ b/src/main/java/io/github/yubincloud/fairywiki/service/EbookSnapshotService.java @@ -1,9 +1,11 @@ package io.github.yubincloud.fairywiki.service; +import io.github.yubincloud.fairywiki.dto.resp.StatisticRespDto; import io.github.yubincloud.fairywiki.mapper.EbookSnapshotMapperCustom; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.List; @Service public class EbookSnapshotService { @@ -14,4 +16,11 @@ public class EbookSnapshotService { public void genSnapshots() { ebookSnapshotMapperCustom.genSnapshot(); } + + /** + * 获取首页数值数据:总阅读数、总点赞数、今日阅读数、今日点赞数、今日预计阅读数、今日预计阅读增长 + */ + public List getStatistic() { + return ebookSnapshotMapperCustom.getStatistic(); + } } diff --git a/src/main/resources/mapper/EbookSnapshotMapperCustom.xml b/src/main/resources/mapper/EbookSnapshotMapperCustom.xml index 58563406efd4cdad45e89a88bcae33444e31a62f..70d432f1925632fa197d18097d46e6be3ac70014 100644 --- a/src/main/resources/mapper/EbookSnapshotMapperCustom.xml +++ b/src/main/resources/mapper/EbookSnapshotMapperCustom.xml @@ -37,4 +37,21 @@ WHERE t1.`date` = curdate(); + + \ No newline at end of file