feat:增加搜索美食接口

This commit is contained in:
2026-02-12 17:26:37 +08:00
parent fb4ec4a50f
commit 1b56f33a02
5 changed files with 31 additions and 5 deletions

View File

@@ -52,6 +52,12 @@ public class FoodController {
return foodService.queryFoodSummary(currentPage, pageSize, foodQueryVo); return foodService.queryFoodSummary(currentPage, pageSize, foodQueryVo);
} }
@Operation(summary = "搜索美食")
@GetMapping("/recipe/search")
public FoodSummaryDto searchFood(@RequestParam("name") String name) {
return foodService.searchFood(name);
}
@Operation(summary = "查询美食") @Operation(summary = "查询美食")
@GetMapping("/recipe/{id}") @GetMapping("/recipe/{id}")
public @JsonView(ReadView.class) FoodRecipeDto queryFoodRecipe(@PathVariable("id") long id) { public @JsonView(ReadView.class) FoodRecipeDto queryFoodRecipe(@PathVariable("id") long id) {
@@ -60,8 +66,8 @@ public class FoodController {
@Operation(summary = "查询所有美食名称") @Operation(summary = "查询所有美食名称")
@GetMapping("/recipe/name") @GetMapping("/recipe/name")
public List<String> queryFoodName() { public List<String> queryFoodNameList() {
return foodService.queryFoodName(); return foodService.queryFoodNameList();
} }
@Operation(summary = "新增美食成果") @Operation(summary = "新增美食成果")

View File

@@ -15,6 +15,8 @@ public interface FoodDao {
IPage<FoodSummaryDto> queryFoodSummary(IPage<FoodSummaryDto> page, IPage<FoodSummaryDto> queryFoodSummary(IPage<FoodSummaryDto> page,
@Param("query") FoodQueryVo foodQueryVo); @Param("query") FoodQueryVo foodQueryVo);
FoodSummaryDto searchFoodSummary(@Param("name") String name);
List<FoodRecordDto> queryFoodRecordById(@Param("id") Long id); List<FoodRecordDto> queryFoodRecordById(@Param("id") Long id);
List<FoodRecordDto> queryFoodRecord(@Param("startDate") String startDate, List<FoodRecordDto> queryFoodRecord(@Param("startDate") String startDate,

View File

@@ -27,9 +27,11 @@ public interface FoodService {
IPage<FoodSummaryDto> queryFoodSummary(Integer currentPage, Integer pageSize, FoodQueryVo foodQueryVo); IPage<FoodSummaryDto> queryFoodSummary(Integer currentPage, Integer pageSize, FoodQueryVo foodQueryVo);
FoodSummaryDto searchFood(String name);
List<FoodRecordDto> queryFoodRecord(String startDate, String endDate); List<FoodRecordDto> queryFoodRecord(String startDate, String endDate);
List<String> queryFoodName(); List<String> queryFoodNameList();
List<String> queryFoodCategory(); List<String> queryFoodCategory();

View File

@@ -1,6 +1,5 @@
package com.cxx.home.service.impl; package com.cxx.home.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -187,13 +186,20 @@ public class FoodServiceImpl implements FoodService {
return foodSummaryPage; return foodSummaryPage;
} }
@Override
public FoodSummaryDto searchFood(String name) {
FoodSummaryDto foodSummaryDto = foodDao.searchFoodSummary(name);
foodSummaryDto.setRecordList(foodDao.queryFoodRecordById(foodSummaryDto.getId()));
return foodSummaryDto;
}
@Override @Override
public List<FoodRecordDto> queryFoodRecord(String startDate, String endDate) { public List<FoodRecordDto> queryFoodRecord(String startDate, String endDate) {
return foodDao.queryFoodRecord(startDate, endDate); return foodDao.queryFoodRecord(startDate, endDate);
} }
@Override @Override
public List<String> queryFoodName() { public List<String> queryFoodNameList() {
return foodRecipeMapper.selectList(Wrappers.emptyWrapper()) return foodRecipeMapper.selectList(Wrappers.emptyWrapper())
.stream().map(FoodRecipe::getName).collect(Collectors.toList()); .stream().map(FoodRecipe::getName).collect(Collectors.toList());
} }

View File

@@ -119,6 +119,16 @@
ORDER BY a.create_time DESC ORDER BY a.create_time DESC
</select> </select>
<select id="searchFoodSummary" resultMap="foodSummaryResultMap">
SELECT a.id AS id,
a.name AS name,
a.category AS category,
a.recommend_rate AS recommendRate
FROM food_recipe a
WHERE a.name = #{name}
ORDER BY a.create_time DESC
</select>
<select id="queryFoodStats" resultType="com.cxx.home.dto.food.FoodStatsDto"> <select id="queryFoodStats" resultType="com.cxx.home.dto.food.FoodStatsDto">
SELECT COUNT(DISTINCT a.name) AS recipeCount, SELECT COUNT(DISTINCT a.name) AS recipeCount,
COUNT(DISTINCT a.category) AS categoryCount, COUNT(DISTINCT a.category) AS categoryCount,