苍穹外卖day03——菜品管理业务代码开发
发布人:shili8
发布时间:2025-01-20 12:08
阅读次数:0
**苍穹外卖日志 - 菜品管理业务代码开发**
###项目背景苍穹外卖是一款基于移动端的外卖平台,用户可以在平台上浏览菜单、下单、支付等功能。作为一名软件工程师,我被分配到负责开发菜品管理业务模块。
### 设计目标1. 实现菜品信息的存储和管理2. 支持菜品分类、价格调整等功能3. 提供接口用于外卖平台的菜单展示和下单### 技术选型* 后端语言:Java8* 框架:Spring Boot2.x* 数据库:MySQL5.7* ORM框架:MyBatis3.x* API接口规范:RESTful API### 菜品管理业务逻辑#### 菜品信息存储和管理首先,我们需要设计一个菜品信息的数据模型。我们使用Java语言来定义菜品类:
java// src/main/java/com/gaoyun/meal/model/Menus.javapublic class Menus { private Long id; private String name; private Double price; private Integer categoryId; // getter和setter方法}
接下来,我们需要设计一个菜品信息的DAO(Data Access Object)类来与数据库进行交互:
java// src/main/java/com/gaoyun/meal/dal/MenusDal.javapublic interface MenusDal { ListqueryAllMenus(); Menus queryMenuById(Long id); void saveMenu(Menus menu); }
我们使用MyBatis3.x来实现菜品信息的DAO类:
xml<!-- src/main/resources/mapper/MenusMapper.xml --> <mapper namespace="com.gaoyun.meal.dal.MenusDal"> <select id="queryAllMenus" resultType="com.gaoyun.meal.model.Menus"> SELECT * FROM menus; </select> <select id="queryMenuById" parameterType="Long" resultType="com.gaoyun.meal.model.Menus"> SELECT * FROM menus WHERE id = #{id}; </select> <insert id="saveMenu" useGeneratedKeys="true" keyProperty="id"> INSERT INTO menus (name, price, category_id) VALUES (#{name}, #{price}, #{categoryId}); </insert> </mapper>
#### 菜品分类和价格调整我们需要设计一个菜品分类的数据模型:
java// src/main/java/com/gaoyun/meal/model/Categories.javapublic class Categories { private Long id; private String name; // getter和setter方法}
我们需要设计一个菜品分类的DAO类来与数据库进行交互:
java// src/main/java/com/gaoyun/meal/dal/CategoriesDal.javapublic interface CategoriesDal { ListqueryAllCategories(); Categories queryCategoryById(Long id); void saveCategory(Categories category); }
我们使用MyBatis3.x来实现菜品分类的DAO类:
xml<!-- src/main/resources/mapper/CategoriesMapper.xml --> <mapper namespace="com.gaoyun.meal.dal.CategoriesDal"> <select id="queryAllCategories" resultType="com.gaoyun.meal.model.Categories"> SELECT * FROM categories; </select> <select id="queryCategoryById" parameterType="Long" resultType="com.gaoyun.meal.model.Categories"> SELECT * FROM categories WHERE id = #{id}; </select> <insert id="saveCategory" useGeneratedKeys="true" keyProperty="id"> INSERT INTO categories (name) VALUES (#{name}); </insert> </mapper>
#### 菜品接口我们需要设计一个菜品接口来与外卖平台进行交互:
java// src/main/java/com/gaoyun/meal/api/MenusApi.javapublic interface MenusApi { ListqueryAllMenus(); Menus queryMenuById(Long id); }
我们使用Spring Boot2.x来实现菜品接口:
java// src/main/java/com/gaoyun/meal/api/MenusApiController.java@RestController@RequestMapping("/api/menus") public class MenusApiController implements MenusApi { @Autowired private MenusDal menusDal; @Override public ListqueryAllMenus() { return menusDal.queryAllMenus(); } @Override public Menus queryMenuById(Long id) { return menusDal.queryMenuById(id); } }
### 总结在本文中,我们设计了一个菜品管理业务模块,包括菜品信息的存储和管理、菜品分类和价格调整,以及菜品接口与外卖平台进行交互。我们使用Java语言、Spring Boot2.x框架、MyBatis3.x ORM框架以及RESTful API规范来实现该模块。
### 后记本文是苍穹外卖日志系列文章的一部分,旨在记录我在开发过程中的思考和体会。希望通过分享我的经验和知识,可以帮助到更多的人。