1. 分类管理功能概述
在餐饮管理系统中,分类管理是基础但至关重要的功能模块。它主要负责对菜品和套餐进行分类管理,包括新增、查询、修改、删除以及状态控制等操作。一个设计良好的分类系统能够有效提升后台管理效率,同时为前端用户提供清晰的产品展示结构。
分类管理通常需要处理以下核心业务场景:
- 分类的增删改查(CRUD)操作
- 分类状态的启用/禁用控制
- 分类与菜品/套餐的关联关系维护
- 分类的分页查询与条件筛选
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 分类实体设计与数据模型
2.1 Category实体类详解
分类的核心数据模型通过Category类来定义,这个实体类映射数据库中的分类表:
java复制@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Category implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 主键ID
private Integer type; // 类型: 1菜品分类 2套餐分类
private String name; // 分类名称
private Integer sort; // 排序权重
private Integer status; // 状态: 0禁用 1启用
private LocalDateTime createTime; // 创建时间
private LocalDateTime updateTime; // 更新时间
private Long createUser; // 创建人ID
private Long updateUser; // 修改人ID
}
关键字段说明:
type字段用于区分菜品分类和套餐分类,这种设计避免了为两种分类创建单独的表,简化了数据模型status字段控制分类的启用/禁用状态,禁用状态的分类不会在前端展示sort字段决定了分类在列表中的展示顺序,数值越小排序越靠前
2.2 自动填充字段的实现
创建时间、更新时间、创建人和修改人这四个字段可以通过AOP+注解的方式实现自动填充,避免在每个业务方法中重复设置:
java复制@AutoFill(value = OperationType.INSERT)
public void save(CategoryDTO categoryDTO) {
Category category = new Category();
BeanUtils.copyProperties(categoryDTO, category);
category.setStatus(StatusConstant.DISABLE); // 默认禁用状态
categoryMapper.insert(category);
}
提示:自动填充的实现通常基于MyBatis的拦截器或Spring AOP,通过识别自定义注解在SQL执行前后自动设置这些通用字段。
3. 分类管理核心功能实现
3.1 新增分类功能
新增分类需要处理两种类型的分类:菜品分类和套餐分类。前端通过type字段区分,后端使用同一套逻辑处理:
java复制public void save(CategoryDTO categoryDTO) {
// 参数校
