diff --git a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/BoxesInfoEntity.java b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/BoxesInfoEntity.java index 925c4d8fe..9895f44b1 100644 --- a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/BoxesInfoEntity.java +++ b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/BoxesInfoEntity.java @@ -124,4 +124,20 @@ public class BoxesInfoEntity extends Model { @Schema(description="部门id") private Long deptId; + + /** + * 获取餐桌类型 + * @return 餐桌类型 + */ + public Integer getTableType() { + return tableType; + } + + /** + * 设置餐桌类型 + * @param tableType 餐桌类型 + */ + public void setTableType(Integer tableType) { + this.tableType = tableType; + } } \ No newline at end of file diff --git a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/CanteenOnlineSpuEntity.java b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/CanteenOnlineSpuEntity.java index a63a729c3..725228f3f 100644 --- a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/CanteenOnlineSpuEntity.java +++ b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/CanteenOnlineSpuEntity.java @@ -185,4 +185,18 @@ public class CanteenOnlineSpuEntity extends Model { @Schema(description="关联每日菜谱id") private Long linkSpuId; + + /** + * 菜品类型 1-常驻菜品 2-每日菜品 + */ + @Schema(description="菜品类型 1-常驻菜品 2-每日菜品") + @TableField(exist = false) + private Integer dishType; + + /** + * 菜品类型名称 + */ + @Schema(description="菜品类型名称") + @TableField(exist = false) + private String dishTypeName; } \ No newline at end of file diff --git a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/vo/AppBoxesInfoVO.java b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/vo/AppBoxesInfoVO.java index 5519c2058..fbe3d7477 100644 --- a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/vo/AppBoxesInfoVO.java +++ b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/vo/AppBoxesInfoVO.java @@ -54,6 +54,12 @@ public class AppBoxesInfoVO { */ private Integer tableType; + /** + * 餐桌类型名称 + */ + @Schema(description="餐桌类型名称") + private String tableTypeName; + /** * 商户id */ diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesInfoController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesInfoController.java index cea517663..d6c7fea16 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesInfoController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesInfoController.java @@ -164,14 +164,45 @@ public class BoxesInfoController { wrapper.eq(StrUtil.isNotBlank(boxesInfo.getName()), BoxesInfoEntity::getName, boxesInfo.getName()); wrapper.eq(ObjectUtil.isNotEmpty(boxesInfo.getStatus()), BoxesInfoEntity::getStatus, boxesInfo.getStatus()); wrapper.eq(ObjectUtil.isNotEmpty(boxesInfo.getTableType()), BoxesInfoEntity::getTableType, boxesInfo.getTableType()); - Page pageResult = boxesInfo.selectPage(page, wrapper); + + // 使用service的分页方法 + Page pageResult = boxesInfoService.page(page, wrapper); List appInfoRespVOS = new ArrayList<>(); + pageResult.getRecords().forEach(x -> { AppBoxesInfoVO appBoxesInfoVO = com.bsd.pjcloud.common.core.util.BeanUtils.toBean(x, AppBoxesInfoVO.class); + // 转换餐桌类型 + Integer tableType = x.getTableType(); + if (tableType != null) { + switch (tableType) { + case 1: + appBoxesInfoVO.setTableTypeName("小桌(2-4人)"); + break; + case 2: + appBoxesInfoVO.setTableTypeName("中桌(4-6人)"); + break; + case 3: + appBoxesInfoVO.setTableTypeName("大桌(6-8人)"); + break; + case 4: + appBoxesInfoVO.setTableTypeName("包间(8人以上)"); + break; + default: + appBoxesInfoVO.setTableTypeName("未知类型"); + break; + } + } appInfoRespVOS.add(appBoxesInfoVO); }); - pageResult.setRecords(appInfoRespVOS); - return R.ok(pageResult); + + // 创建新的Page对象,避免类型转换问题 + Page resultPage = new Page<>(); + resultPage.setCurrent(pageResult.getCurrent()); + resultPage.setSize(pageResult.getSize()); + resultPage.setTotal(pageResult.getTotal()); + resultPage.setRecords(appInfoRespVOS); + + return R.ok(resultPage); } @PostMapping("/createBooking") diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java index dcee541b7..2c8d757fb 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java @@ -50,15 +50,30 @@ public class CanteenOnlineSpuController { * * @param page 分页对象 * @param canteenOnlineSpu 在线点餐spu + * @param dishType 菜品类型筛选:1-常驻菜品(linkSpuId为空),2-每日菜品(linkSpuId不为空) * @return */ - @Operation(summary = "分页查询", description = "分页查询") + @Operation(summary = "分页查询", description = "分页查询,支持按菜品类型筛选:1-常驻菜品,2-每日菜品") @GetMapping("/page") @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_view')") - public R getCanteenOnlineSpuPage(@ParameterObject Page page, @ParameterObject CanteenOnlineSpuEntity canteenOnlineSpu) { + public R getCanteenOnlineSpuPage(@ParameterObject Page page, + @ParameterObject CanteenOnlineSpuEntity canteenOnlineSpu, + @RequestParam(value = "dishType", required = false) Integer dishType) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.like(StrUtil.isNotBlank(canteenOnlineSpu.getName()), CanteenOnlineSpuEntity::getName, canteenOnlineSpu.getName()); wrapper.eq(Objects.nonNull(canteenOnlineSpu.getCategoryId()), CanteenOnlineSpuEntity::getCategoryId, canteenOnlineSpu.getCategoryId()); + + // 根据菜品类型筛选 + if (Objects.nonNull(dishType)) { + if (dishType == 1) { + // 1-常驻菜品:linkSpuId为空 + wrapper.isNull(CanteenOnlineSpuEntity::getLinkSpuId); + } else if (dishType == 2) { + // 2-每日菜品:linkSpuId不为空 + wrapper.isNotNull(CanteenOnlineSpuEntity::getLinkSpuId); + } + } + return R.ok(canteenOnlineSpuService.pageScope(page, wrapper)); } diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenOnlineSpuServiceImpl.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenOnlineSpuServiceImpl.java index 8df22d705..c4291d43c 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenOnlineSpuServiceImpl.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenOnlineSpuServiceImpl.java @@ -32,6 +32,7 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; import java.util.Objects; +import cn.hutool.core.collection.CollUtil; /** * 在线点餐spu @@ -167,6 +168,22 @@ public class CanteenOnlineSpuServiceImpl extends ServiceImpl wrapper) { - return baseMapper.selectPageByScope(page, wrapper, DataScope.of()); + Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); + List records = pageData.getRecords(); + + if (CollUtil.isNotEmpty(records)) { + // 为每条记录添加菜品类型标识 + records.forEach(record -> { + if (record.getLinkSpuId() == null) { + record.setDishTypeName("常驻菜品"); + record.setDishType(1); + } else { + record.setDishTypeName("每日菜品"); + record.setDishType(2); + } + }); + } + + return pageData; } } \ No newline at end of file