| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package com.etotem.cfc.controller.admin;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.etotem.cfc.common.Result;
- import com.etotem.cfc.entity.Food;
- import com.etotem.cfc.service.FoodService;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import org.springframework.web.bind.annotation.*;
- import javax.annotation.Resource;
- import java.util.*;
- import java.util.stream.Collectors;
- @Tag(name = "\u7ba1\u7406\u7aef-\u98df\u6750\u7ba1\u7406")
- @RestController
- @RequestMapping("/api/admin/foods")
- public class AdminFoodController {
- @Resource
- private FoodService foodService;
- @Operation(summary = "\u98df\u6750\u5217\u8868")
- @PostMapping("/list")
- public Result<Map<String, Object>> list(@RequestBody Map<String, Object> params) {
- long page = params.get("page") != null ? ((Number) params.get("page")).longValue() : 1;
- long size = params.get("size") != null ? ((Number) params.get("size")).longValue() : 20;
- String category = (String) params.get("category");
- String keyword = (String) params.get("keyword");
- Page<Food> pageResult = foodService.listPage(page, size, category, keyword, "active");
- List<Map<String, Object>> records = new ArrayList<>();
- for (Food food : pageResult.getRecords()) {
- Map<String, Object> item = new HashMap<>();
- item.put("id", food.getId());
- item.put("name", food.getName());
- item.put("category", food.getCategory());
- item.put("unit", food.getUnit());
- item.put("calories", food.getCalories());
- item.put("protein", food.getProtein());
- item.put("fat", food.getFat());
- item.put("carbs", food.getCarbs());
- item.put("fiber", food.getFiber());
- item.put("energyKj", food.getEnergyKj());
- item.put("starch", food.getStarch());
- item.put("cholesterol", food.getCholesterol());
- item.put("priceLevel", food.getPriceLevel());
- item.put("nutritionTags", food.getNutritionTags());
- item.put("suitableFor", food.getSuitableFor());
- item.put("allergens", food.getAllergens());
- item.put("coverImage", food.getCoverImage());
- item.put("status", food.getStatus());
- item.put("sortOrder", food.getSortOrder());
- item.put("createdAt", food.getCreatedAt());
- item.put("updatedAt", food.getUpdatedAt());
- item.put("months", foodService.getMonths(food.getId()));
- records.add(item);
- }
- Map<String, Object> data = new HashMap<>();
- data.put("records", records);
- data.put("total", pageResult.getTotal());
- data.put("page", pageResult.getCurrent());
- data.put("size", pageResult.getSize());
- return Result.success(data);
- }
- @Operation(summary = "\u65b0\u589e\u98df\u6750")
- @PostMapping("/create")
- public Result<Food> create(@RequestBody Food food) {
- foodService.create(food);
- return Result.success(food);
- }
- @Operation(summary = "\u66f4\u65b0\u98df\u6750")
- @PostMapping("/update")
- public Result<String> update(@RequestBody Food food) {
- foodService.update(food);
- return Result.success("ok");
- }
- @Operation(summary = "\u5220\u9664\u98df\u6750")
- @PostMapping("/delete")
- public Result<String> delete(@RequestBody Map<String, Object> params) {
- Long id = params.get("id") != null ? Long.valueOf(params.get("id").toString()) : null;
- if (id == null) return Result.error("id\u4e0d\u80fd\u4e3a\u7a7a");
- foodService.delete(id);
- return Result.success("ok");
- }
- @Operation(summary = "\u98df\u6750\u8be6\u60c5\uff08\u542b\u5e94\u5b63\u6708\u4efd\uff09")
- @PostMapping("/detail")
- public Result<Map<String, Object>> detail(@RequestBody Map<String, Object> params) {
- Long id = params.get("id") != null ? Long.valueOf(params.get("id").toString()) : null;
- if (id == null) return Result.error("id\u4e0d\u80fd\u4e3a\u7a7a");
- Map<String, Object> result = foodService.getDetailWithMonths(id);
- if (result == null) return Result.error("\u98df\u6750\u4e0d\u5b58\u5728");
- return Result.success(result);
- }
- @Operation(summary = "\u4fdd\u5b58\u5e94\u5b63\u6708\u4efd")
- @PostMapping("/saveMonths")
- public Result<String> saveMonths(@RequestBody Map<String, Object> params) {
- Long id = params.get("id") != null ? Long.valueOf(params.get("id").toString()) : null;
- if (id == null) return Result.error("id\u4e0d\u80fd\u4e3a\u7a7a");
- @SuppressWarnings("unchecked")
- List<Integer> months = params.get("months") != null
- ? ((List<Object>) params.get("months")).stream()
- .map(o -> o instanceof Integer ? (Integer) o : Integer.valueOf(o.toString()))
- .collect(Collectors.toList())
- : Collections.emptyList();
- foodService.saveMonths(id, months);
- return Result.success("ok");
- }
- }
|