package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.domain. TBoard; import com.ruoyi.system.domain.TOrderMeal; import com.ruoyi.system.service.TBoardService; import com.ruoyi.system.service.TOrderMealService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.parameters.P; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; /** *

* 餐桌 前端控制器 *

* * @author xiaochen * @since 2024-08-14 */ @Api(tags = "餐桌") @RestController @RequestMapping("/t-board") public class TBoardController { private final TBoardService boardService; private final TokenService tokenService; private final TOrderMealService orderMealService; @Autowired public TBoardController(TBoardService boardService, TokenService tokenService, TOrderMealService orderMealService) { this. boardService = boardService; this.tokenService = tokenService; this.orderMealService = orderMealService; } /** * 查询 餐桌列表 */ @ApiOperation( value = "查询餐桌列表") @PostMapping(value = "/list") public AjaxResult> list() { Long objectId = tokenService.getLoginUser().getObjectId(); List list = boardService.list(Wrappers.lambdaQuery(TBoard.class) .eq(TBoard::getShopId, objectId)); // 不等于空闲状态的 List ids = list.stream().filter(e -> !e.getStatus().equals(1)).map(TBoard::getId).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(ids)){ List orderMeals = orderMealService.list(Wrappers.lambdaQuery(TOrderMeal.class) .in(TOrderMeal::getBoardId, ids) .isNotNull(TOrderMeal::getMealTime) .orderByDesc(TOrderMeal::getCreateTime)); for (TBoard board : list) { List collect = orderMeals.stream().filter(e -> board.getId().equals(e.getBoardId())).sorted(Comparator.comparing(TOrderMeal::getCreateTime).reversed()).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(collect)){ board.setMealType(collect.get(0).getMealType()); board.setMealPerson(collect.get(0).getMealPerson()); board.setOrderMoney(collect.get(0).getOrderMoney()); board.setOrderMealId(collect.get(0).getId()); } } } return AjaxResult.success(list); } /** * 添加 餐桌管理 */ @ApiOperation( value = "添加餐桌") @PostMapping(value = "/add") public AjaxResult add(@RequestBody TBoard dto) { dto.setShopId(tokenService.getLoginUser().getObjectId()); return AjaxResult.success( boardService.save(dto)); } /** * 修改 餐桌 */ @ApiOperation( value = "修改餐桌") @PostMapping(value = "/update") public AjaxResult update(@RequestBody TBoard dto) { return AjaxResult.success( boardService.updateById(dto)); } /** * 根据店铺id查询餐桌列表 */ @ApiOperation( value = "根据店铺id查询餐桌列表") @GetMapping(value = "/getBoardByShopId") public AjaxResult> getBoardByShopId(@RequestParam("shopId") Long shopId) { return AjaxResult.success( boardService.list(Wrappers.lambdaQuery(TBoard.class) .eq(TBoard::getShopId,shopId))); } /** * 查看 餐桌详情 */ @ApiOperation( value = "查看餐桌详情") @GetMapping(value = "/getDetailById") public AjaxResult getDetailById(@RequestParam("id") Long id) { return AjaxResult.success( boardService.getById(id)); } /** * 删除 餐桌 */ @ApiOperation( value = "删除餐桌") @DeleteMapping(value = "/deleteById") public AjaxResult deleteById(@RequestParam("id") Long id) { return AjaxResult.success( boardService.removeById(id)); } /** * 批量删除 餐桌 */ @ApiOperation( value = "批量删除餐桌") @DeleteMapping(value = "/deleteByIds") public AjaxResult deleteByIds(@RequestBody List ids) { return AjaxResult.success( boardService.removeByIds(ids)); } }