### 立达中学食堂系统详细设计 #### 一、系统架构设计 1. **整体架构** - 系统采用B/S架构,分为前端、后端和数据库三层结构。 - 前端负责用户界面的展示和交互,后端负责业务逻辑的处理和数据存储。 2. **技术选型** - 前端:Vue.js,HTML5,CSS3,JavaScript - 后端:Spring Boot(Java) - 数据库:MySQL - 服务器:Linux,Nginx #### 二、数据库设计 1. **数据库选型** - 采用MySQL数据库,具有高效性、可靠性和可扩展性。 2. **数据库表设计** **用户表(users)** - id:主键,自增 - username:用户名,唯一 - password:密码,哈希加密 - role:角色(学生、教职工、管理员) - email:邮箱地址 - phone:联系电话 **菜品表(dishes)** - id:主键,自增 - name:菜品名称 - price:价格 - description:描述 - image_url:图片地址 **库存表(inventory)** - id:主键,自增 - item_name:食材名称 - quantity:数量 - unit:单位 - threshold:预警阈值 **订单表(orders)** - id:主键,自增 - user_id:用户ID,外键 - dish_id:菜品ID,外键 - quantity:数量 - total_price:总价 - order_date:订单日期 **采购表(purchases)** - id:主键,自增 - item_name:食材名称 - quantity:数量 - unit_price:单价 - supplier:供应商 - purchase_date:采购日期 #### 三、前端设计 1. **用户界面** - **首页**:显示系统简介、导航栏,登录/注册按钮。 - **菜品列表**:展示每日菜品,包含名称、价格、图片等信息。 - **订单管理**:用户查看历史订单、当前订单状态。 - **个人信息**:用户查看和修改个人信息。 2. **管理员界面** - **用户管理**:管理员查看、添加、修改、删除用户信息。 - **菜品管理**:管理员管理菜品信息,包括添加、修改、删除。 - **库存管理**:管理员查看库存情况,管理食材信息。 - **订单管理**:管理员查看订单详情,处理订单。 - **报表管理**:生成并查看销售报表、库存报表、用户报表。 #### 四、后端设计 1. **业务逻辑层** - **用户管理服务**:处理用户注册、登录、信息管理等逻辑。 - **菜品管理服务**:处理菜品的增删改查业务逻辑。 - **库存管理服务**:处理库存信息的记录、预警、更新等逻辑。 - **订单管理服务**:处理订单的创建、查询、统计等逻辑。 - **报表管理服务**:生成销售报表、库存报表、用户报表等。 2. **数据访问层** - 通过DAO(Data Access Object)模式与数据库交互,提供数据的增删改查接口。 3. **接口设计** - **用户管理接口** - 注册接口:`POST /api/users/register` - 登录接口:`POST /api/users/login` - 获取用户信息接口:`GET /api/users/{id}` - 更新用户信息接口:`PUT /api/users/{id}` - **菜品管理接口** - 获取菜品列表接口:`GET /api/dishes` - 添加菜品接口:`POST /api/dishes` - 修改菜品接口:`PUT /api/dishes/{id}` - 删除菜品接口:`DELETE /api/dishes/{id}` - **库存管理接口** - 获取库存列表接口:`GET /api/inventory` - 添加库存接口:`POST /api/inventory` - 修改库存接口:`PUT /api/inventory/{id}` - 删除库存接口:`DELETE /api/inventory/{id}` - **订单管理接口** - 创建订单接口:`POST /api/orders` - 获取订单列表接口:`GET /api/orders` - 获取订单详情接口:`GET /api/orders/{id}` - **报表管理接口** - 获取销售报表接口:`GET /api/reports/sales` - 获取库存报表接口:`GET /api/reports/inventory` - 获取用户报表接口:`GET /api/reports/users` #### 五、系统流程设计 1. **用户注册与登录** - 用户通过前端界面填写注册信息,提交至`/api/users/register`接口。 - 系统验证信息有效性后,保存用户信息至数据库,并返回注册成功。 - 用户登录时,提交用户名和密码至`/api/users/login`接口,系统验证后返回登录状态。 2. **菜品管理** - 管理员登录后,通过菜品管理界面操作。 - 添加新菜品时,填写菜品信息,提交至`/api/dishes`接口。 - 修改或删除菜品,通过对应接口更新数据库信息。 3. **库存管理** - 管理员通过库存管理界面查看和管理库存。 - 添加新库存记录,提交至`/api/inventory`接口。 - 修改或删除库存信息,通过对应接口更新数据库。 4. **订单管理** - 用户通过前端界面选择菜品并提交订单,系统生成订单记录。 - 用户可以在订单管理界面查看历史订单和当前订单状态。 - 管理员通过后台查看并处理订单,确保订单信息准确。 5. **报表生成** - 管理员通过报表管理界面选择报表类型,系统生成相应报表。 - 报表数据通过各个管理接口的统计结果生成,并展示在前端界面。 #### 六、界面设计 1. **用户界面** - **首页**:简洁明了的导航栏,登录和注册入口。 - **菜品列表**:卡片式布局,每个菜品显示图片、名称、价格,用户可以点击查看详情。 - **订单管理**:表格布局,显示订单编号、菜品名称、数量、总价、订单状态等信息。 - **个人信息**:表单布局,用户可以修改个人信息,点击保存更新。 2. **管理员界面** - **用户管理**:表格布局,显示用户列表,支持增删改查操作。 - **菜品管理**:卡片式布局,显示菜品列表,支持增删改查操作。 - **库存管理**:表格布局,显示库存列表,支持增删改查操作。 - **订单管理**:表格布局,显示订单列表,支持查询和处理操作。 - **报表管理**:图表展示销售、库存、用户数据,支持按时间段查询和导出。 #### 七、安全设计 1. **数据安全** - 使用HTTPS协议,保障数据传输的安全性。 - 用户密码采用哈希算法加密存储,防止泄露。 2. **权限管理** - 根据用户角色分配不同的权限,确保数据的安全性和访问的合理性。 - 通过JWT(JSON Web Token)进行身份验证和权限校验。 3. **防火墙和入侵检测** - 配置防火墙,防止外部攻击。 - 部署入侵检测系统,实时监控系统安全,发现异常及时处理。 #### 八、总结 本详细设计文档从系统架构、数据库设计、前后端设计、接口设计、系统流程、界面设计和安全设计等方面进行了详细描述,为系统的开发提供了完整的指导和参考。通过严格按照设计文档进行开发,确保系统高效、稳定、安全地运行,满足立达中学食堂管理和服务的需求。