当前位置: 首页 > news >正文

Java项目-苍穹外卖_Day3-Day4

项目来源:

黑马程序员 Java项目实战《苍穹外卖》】

[https://www.bilibili.com/video/BV1TP411v7v6]

@ZZHow(ZZHow1024)

公共字段自动填充

  • 问题分析
    • 业务表中存在公共字段:

      序号字段名含义数据类型操作类型
      1create_time创建时间datetimeinsert
      2create_user创建人idbigintinsert
      3update_time修改时间datetimeinsert、update
      4update_user修改人idbigintinsert、update
    • 问题:代码冗余,不便于后期维护。

  • 实现思路
    • 思路:
      • 自定义注解 AutoFill,用于标识需要进行公共字段自动填充的方法。
      • 自定义切面类 AutoFillAspect,统一拦截加入了 AutoFill 注解的方法,通过反射为公共字段赋值。
      • 在 Mapper 的方法上加入 AutoFill 注解。
    • 技术点:枚举、注解、AOP 和 反射。

新增菜品

  • 需求分析和设计
    • 业务规则:
      • 菜品名称必须是唯一的。
      • 莱品必须属于某个分类下,不能单独存在。
      • 新增菜品时可以根据情况选择菜品的口味。
      • 每个菜品必须对应一张图片。
    • 接口设计:
      • 根据类型查询分类。
        • Path:/admin/category/list
        • Method:GET
      • 文件上传。
        • Path:/admin/common/upload
        • Method:POST
      • 新增菜品。
        • Path:/admin/dish
        • Method:POST

菜品分页查询

  • 需求分析和设计
    • 业务规则:
      • 根据页码展示菜品信息。
      • 每页展示 10 条数据。
      • 分页查询时可以根据需要输入菜品名称、菜品分类、菜品状态进行查询。
    • 接口设计:
      • Path:/admin/dish/page
      • Method:GET

删除菜品

  • 需求分析和设计
    • 业务规则:
      • 可以一次删除一个菜品,也可以批量删除菜品。
      • 起售中的菜品不能删除。
      • 被套餐关联的菜品不能删除。
      • 删除菜品后,关联的口味数据也需要删除掉。
    • 接口设计:
      • Path:/admin/dish
      • Method:Delete

修改菜品

  • 需求分析和设计
    • 接口设计:
      • 根据 ID 查询菜品
        • Path:/admin/dish/{id}
        • Method:GET
      • 根据类型查询分类(已实现)
      • 文件上传(已实现)
      • 修改菜品
        • Path:/admin/dish
        • Method:PUT

起售停售菜品

  • 需求分析和设计
    • 业务规则:
      • 可以对状态为“起售”的菜品进行“停售”操作。
      • 可以对状态为“停售”的菜品进行“起售”操作。
    • 接口设计:
      • Path:/admin/dish/status/{status}
      • Method:POST
  • 代码开发
    • 根据接口文档进行开发。

开发套餐管理模块功能

  • 代码开发
    • 此业务模块与上一部分(菜品管理业务)模块实现类似。
http://www.dtcms.com/a/351165.html

相关文章:

  • MyBatis-Flex:一个支持关联查询的MyBatis
  • android vehicle
  • SOME/IP-SD协议含配置选项键值信息的报文示例解析
  • 贝叶斯优化提升化学合成反应效率(附源码)
  • 如何将数据从vivo手机传输到另一部vivo手机
  • 《高并发场景下数据一致性隐疾的实战复盘》
  • Coze Studio开源版:AI Agent开发平台的深度技术解析- 入门篇
  • 深度学习篇---LeNet-5网络结构
  • iOS 开发中的 UIStackView 使用详解
  • Linux-服务器初始化
  • RHEL8.6环境下批量验证服务器凭据并配置Ansible免密管理全流程
  • 用wp_trim_words函数实现WordPress截断部分内容并保持英文单词完整性
  • Ansible 文件管理与 Jinja2 模板全解析:从模块应用到动态配置生成
  • Ansible核心技巧:循环条件与错误处理
  • nginx代理 flink Dashboard、sentinel dashboard的问题
  • HarmonyOS之深入了解装饰器
  • 服务器初始化流程***
  • Rust 符号体系全解析:分类、应用与设计意图
  • CentOS 7 升级 OpenSSL 3.5.1 的详细教程
  • 【Linux】Socket编程——TCP版
  • 【Python】shutil.make_archive() 方法详解
  • 支持向量机(SVM)核心原理与应用解析
  • SOME/IP-SD规范中,对 服务(Service) 和 实例(Instance)的理解
  • 多模态RAG架构:下一代跨模态智能检索系统的设计与实践
  • 机器视觉学习-day03-灰度化实验-二值化和自适应二值化
  • 使用C++与Qt6,在windows上打造MacOS风格桌面应用窗口
  • PDF文件中的相邻页面合并成一页,例如将第1页和第2页合并,第3页和第4页合并
  • Mac测试端口连接的几种方式
  • 如何将视频从安卓设备传输到Mac?
  • Mac安装mitmproxy及操作对监控的请求