feat:增加统计接口
This commit is contained in:
23
src/main/java/com/cxx/food/config/WebMvcConfig.java
Normal file
23
src/main/java/com/cxx/food/config/WebMvcConfig.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package com.cxx.food.config;
|
||||
|
||||
import com.cxx.food.constant.FileConstant;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
@Configuration
|
||||
public class WebMvcConfig implements WebMvcConfigurer {
|
||||
@Value("${file.path}")
|
||||
private String filePath;
|
||||
|
||||
@Value("${file.log-path}")
|
||||
private String logFilePath;
|
||||
|
||||
@Override
|
||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||
registry.addResourceHandler("/" + FileConstant.FILE_URL_PREFIX + "/**")
|
||||
.addResourceLocations("file:" + filePath);
|
||||
}
|
||||
}
|
||||
|
||||
7
src/main/java/com/cxx/food/constant/FileConstant.java
Normal file
7
src/main/java/com/cxx/food/constant/FileConstant.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package com.cxx.food.constant;
|
||||
|
||||
public interface FileConstant {
|
||||
String FILE_NAME_SPLIT = "_";
|
||||
String FILE_URL_PREFIX = "files";
|
||||
String FILE_LOG_PREFIX = "logs";
|
||||
}
|
||||
@@ -39,12 +39,18 @@ public class FoodController {
|
||||
return foodService.deleteFoodRecipe(id);
|
||||
}
|
||||
|
||||
@Operation(summary = "查询美食菜谱")
|
||||
@GetMapping("/recipe")
|
||||
public List<FoodSummaryDto> queryFoodSummary(FoodQueryVo foodQueryVo) {
|
||||
return foodService.queryFoodSummary(foodQueryVo);
|
||||
}
|
||||
|
||||
@Operation(summary = "分页查询美食菜谱")
|
||||
@GetMapping("/recipe/page")
|
||||
public IPage<FoodSummaryDto> queryFoodSummary(@RequestParam("currentPage") Integer currentPage,
|
||||
@RequestParam("pageSize") Integer pageSize,
|
||||
FoodQueryVo foodQueryVo) {
|
||||
return foodService.queryFoodSummary(currentPage, pageSize, foodQueryVo);
|
||||
public IPage<FoodSummaryDto> queryFoodSummaryByPage(@RequestParam("currentPage") Integer currentPage,
|
||||
@RequestParam("pageSize") Integer pageSize,
|
||||
FoodQueryVo foodQueryVo) {
|
||||
return foodService.queryFoodSummaryByPage(currentPage, pageSize, foodQueryVo);
|
||||
}
|
||||
|
||||
@Operation(summary = "查询美食")
|
||||
@@ -96,5 +102,23 @@ public class FoodController {
|
||||
public FoodStatsDto queryFoodStats() {
|
||||
return foodService.queryFoodStats();
|
||||
}
|
||||
|
||||
@Operation(summary = "查询美食记录统计")
|
||||
@GetMapping("/stats/record")
|
||||
public List<StatsChartDto> queryFoodRecordStats() {
|
||||
return foodService.queryFoodRecordStats();
|
||||
}
|
||||
|
||||
@Operation(summary = "查询美食类别统计")
|
||||
@GetMapping("/stats/category")
|
||||
public List<StatsChartDto> queryFoodCategoryStats() {
|
||||
return foodService.queryFoodCategoryStats();
|
||||
}
|
||||
|
||||
@Operation(summary = "查询美食排行榜统计")
|
||||
@GetMapping("/stats/rank")
|
||||
public List<StatsChartDto> queryFoodRankStats() {
|
||||
return foodService.queryFoodRankStats();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,8 +12,10 @@ import java.util.List;
|
||||
public interface FoodDao {
|
||||
FoodRecipeDto queryFoodRecipe(@Param("id") Long id);
|
||||
|
||||
IPage<FoodSummaryDto> queryFoodSummary(IPage<FoodSummaryDto> page,
|
||||
@Param("query") FoodQueryVo foodQueryVo);
|
||||
IPage<FoodSummaryDto> queryFoodSummaryByPage(IPage<FoodSummaryDto> page,
|
||||
@Param("query") FoodQueryVo foodQueryVo);
|
||||
|
||||
List<FoodSummaryDto> queryFoodSummary(@Param("query") FoodQueryVo foodQueryVo);
|
||||
|
||||
List<FoodRecordDto> queryFoodRecordById(@Param("id") Long id);
|
||||
|
||||
@@ -22,6 +24,12 @@ public interface FoodDao {
|
||||
|
||||
FoodStatsDto queryFoodStats();
|
||||
|
||||
List<StatsChartDto> queryFoodRecordStats();
|
||||
|
||||
List<StatsChartDto> queryFoodCategoryStats();
|
||||
|
||||
List<StatsChartDto> queryFoodRankStats();
|
||||
|
||||
List<String> queryFoodCategory();
|
||||
|
||||
void insertFoodMaterial(@Param("foodId") Long foodId,
|
||||
|
||||
@@ -23,6 +23,10 @@ public class FoodRecordDto {
|
||||
@JsonView(ReadView.class)
|
||||
private String category;
|
||||
|
||||
@Schema(description = "完成人")
|
||||
@JsonView(ReadView.class)
|
||||
private Long person;
|
||||
|
||||
@Schema(description = "完成时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date date;
|
||||
|
||||
11
src/main/java/com/cxx/food/dto/StatsChartDto.java
Normal file
11
src/main/java/com/cxx/food/dto/StatsChartDto.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.cxx.food.dto;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class StatsChartDto {
|
||||
private String name;
|
||||
private Double value;
|
||||
}
|
||||
@@ -15,6 +15,9 @@ public class FoodRecord extends AbstractIdEntity {
|
||||
@TableField("food_id")
|
||||
private Long foodId;
|
||||
|
||||
@TableField("person")
|
||||
private Long person;
|
||||
|
||||
@TableField("date")
|
||||
private Date date;
|
||||
|
||||
|
||||
@@ -2,10 +2,7 @@ package com.cxx.food.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.cxx.food.dto.FoodRecipeDto;
|
||||
import com.cxx.food.dto.FoodRecordDto;
|
||||
import com.cxx.food.dto.FoodStatsDto;
|
||||
import com.cxx.food.dto.FoodSummaryDto;
|
||||
import com.cxx.food.dto.*;
|
||||
import com.cxx.food.vo.FoodQueryVo;
|
||||
|
||||
import java.util.List;
|
||||
@@ -25,7 +22,9 @@ public interface FoodService {
|
||||
|
||||
FoodRecipeDto queryFoodRecipe(Long id);
|
||||
|
||||
IPage<FoodSummaryDto> queryFoodSummary(Integer currentPage, Integer pageSize, FoodQueryVo foodQueryVo);
|
||||
List<FoodSummaryDto> queryFoodSummary(FoodQueryVo foodQueryVo);
|
||||
|
||||
IPage<FoodSummaryDto> queryFoodSummaryByPage(Integer currentPage, Integer pageSize, FoodQueryVo foodQueryVo);
|
||||
|
||||
List<FoodRecordDto> queryFoodRecord(String startDate, String endDate);
|
||||
|
||||
@@ -34,4 +33,10 @@ public interface FoodService {
|
||||
List<String> queryFoodCategory();
|
||||
|
||||
FoodStatsDto queryFoodStats();
|
||||
|
||||
List<StatsChartDto> queryFoodRecordStats();
|
||||
|
||||
List<StatsChartDto> queryFoodCategoryStats();
|
||||
|
||||
List<StatsChartDto> queryFoodRankStats();
|
||||
}
|
||||
|
||||
@@ -163,11 +163,16 @@ public class FoodServiceImpl implements FoodService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<FoodSummaryDto> queryFoodSummary(Integer currentPage, Integer pageSize, FoodQueryVo foodQueryVo) {
|
||||
public List<FoodSummaryDto> queryFoodSummary(FoodQueryVo foodQueryVo) {
|
||||
return foodDao.queryFoodSummary(foodQueryVo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<FoodSummaryDto> queryFoodSummaryByPage(Integer currentPage, Integer pageSize, FoodQueryVo foodQueryVo) {
|
||||
// 这里只能先对主表进行分页 然后在查询子表信息
|
||||
// 不能使用Left Join关联表查询,因为这里是一对多数据,关联查询会导致数据有重复
|
||||
// 从而导致page计算错误(会把重复的数据当成多条记录,实际上只有1条记录)
|
||||
IPage<FoodSummaryDto> foodSummaryPage = foodDao.queryFoodSummary(new Page<>(currentPage, pageSize), foodQueryVo);
|
||||
IPage<FoodSummaryDto> foodSummaryPage = foodDao.queryFoodSummaryByPage(new Page<>(currentPage, pageSize), foodQueryVo);
|
||||
List<FoodSummaryDto> foodSummaryList = foodSummaryPage.getRecords();
|
||||
for (FoodSummaryDto foodSummary : foodSummaryList) {
|
||||
foodSummary.setRecordList(foodDao.queryFoodRecordById(foodSummary.getId()));
|
||||
@@ -197,4 +202,19 @@ public class FoodServiceImpl implements FoodService {
|
||||
public FoodStatsDto queryFoodStats() {
|
||||
return foodDao.queryFoodStats();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StatsChartDto> queryFoodRecordStats() {
|
||||
return foodDao.queryFoodRecordStats();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StatsChartDto> queryFoodCategoryStats() {
|
||||
return foodDao.queryFoodCategoryStats();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StatsChartDto> queryFoodRankStats() {
|
||||
return foodDao.queryFoodRankStats();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user