苍穹外卖面试题-下

17. 项目参与人员角色

  1. 项目经理(1人):对整个项目负责,任务分配、把控进度

  2. 产品经理(1人):进行需求调研,输出需求调研文档、产品原型等

  3. UI设计师(1人):根据产品原型输出界面效果图

  4. 架构师(0人):项目整体架构设计、技术选型等

  5. 开发工程师(3+2):功能代码实现

  6. 测试工程师(2人):编写测试用例,输出测试报告

  7. 运维工程师(1人):软件环境搭建、项目上线

18. git在工作中的使用流程

我在工作中对于git的使用,可分为以下几个步骤:

  1. 首先,每天上班之后,我会从公司远程仓库中进行拉取(pull),以保证本地项目和远程仓库项目进度一致

  2. 然后,在本地的开发分支上新建一个当天的分支,进行代码开发

    开发过程中一般在完成某功能或某一模块时,进行本地提交(commit)

  3. 结束一天工作后,先将本地新分支的代码合并到开发分支

  4. 最后,提交(push)到远程仓库前,先进行拉取(pull),如果有冲突,就先进行冲突解决,解决完毕之后,再push

19. 介绍一下苍穹外卖项目

本项目是专门为一家餐厅定制的一款软件产品,主要包含包括 系统管理端小程序端 两部分

系统管理端提供给餐饮企业内部员工使用,可以对餐厅的分类、菜品、套餐、订单、员工等进行管理维护

小程序端提供给消费者使用,可以在线浏览菜品、添加购物车、下单、支付、催单等操作

我在这个项目中主要负责后端分类、套餐、菜品模块和小程序端的所有功能

20. 苍穹外卖核心功能

菜品新增:对菜品表和口味表进行新增操作

  1. 首先将前端传过来的菜品信息保存到菜品表并主键返回,然后遍历前端传过来的口味集合,
  2. 为每个口味设置刚才返回来的主键并保存到口味表

菜品修改:对菜品表进行更新,对菜品详情表进行增删操作

  1. 首先根据前端传过来的菜品信息对菜品表进行修改
  2. 然后根据菜品id删除对应的口味列表集合
  3. 最后再把前端传过来的口味集合重新加入到口味表中

菜品删除:对菜品表和口味表进行删除操作

  1. 遍历前端传过来的菜品id集合得到每个菜品的信息
  2. 如果当前菜品是启售状态或者被套餐关联那么就不能被删除
  3. 否则就可以通过菜品id对菜品表和口味表中的数据进行删除

套餐新增:对套餐表和套餐菜品关系表进行新增操作

  1. 首先将前端传过来的套餐基本信息保存到套餐表中,并返回主键的id
  2. 然后为前端传过来的套餐菜品设置套餐id
  3. 最后将套餐包含的菜品添加到套餐菜品关系表中

套餐修改:对套餐表进行修改,在对套餐菜品关系表进行增删操作

  1. 首先根据前端传过来的套餐基本信息更新到套餐表中
  2. 然后根据套餐的id删除所有套餐菜品关系表中包含的菜品信息
  3. 最后遍历前端传过来的菜品的列表,设置好套餐的id后重新保存到套餐菜品关系表中

套餐删除:对套餐表和套餐菜品关系表进行删除操作

  1. 首先遍历前端传过来套餐id的集合得到每一个套餐的信息
  2. 然后根据id查询套餐,判断套餐的状态是否为启售状态,如果是启售状态,则不能删除
  3. 如果是在禁售状态,就可以通过套餐的id进行套餐菜品关系表的删除操作

分类删除

  1. 分类删除的核心逻辑就是根据前端传过来的分类id去分类表进行一个删除操作
  2. 但是要对这个分类里面是否有菜品和套餐做一个判断,拿着这个id去菜品表和套餐表做一个统计查询
  3. 如果查出来数量大于0,就不能删除,如果为0,直接删除

添加购物车:将用户选择的商品基本数据信息添加到数据库表中进行保存

  1. 利用到的数据库表(本次项目):购物车表,菜品表、套餐表,保存的信息就是从表中查到的

  2. 首先根据id查询购物车中是否有相同商品

    有:则不用添加,只修改查询到的商品number属性+1并重新赋值即可,执行mapper更新。

    无:则判断是菜品还是套餐,查询对应商品的数据库得到基本信息,补全购物车需要的参数执行保存。

公共问题

  1. 在这个项目中主要负责的模块是什么?
  2. 项目中哪些表是你负责设计的? 它们之间的关系是什么?
相关推荐
你喜欢喝可乐吗?20 分钟前
RuoYi-Cloud 验证码处理流程
java·spring cloud·微服务·vue
Java技术小馆1 小时前
langChain开发你的第一个 Agent
java·面试·架构
kangkang-1 小时前
PC端基于SpringBoot架构控制无人机(二):MavLink协议
java·spring boot·后端·无人机
Dcs1 小时前
Anthropic 爆严重安全漏洞!程序员机器沦陷
java
EnigmaCoder1 小时前
Java多线程:核心技术与实战指南
java·开发语言
攀小黑1 小时前
阿里云 使用TST Token发送模板短信
java·阿里云
麦兜*2 小时前
Spring Boot秒级冷启动方案:阿里云FC落地实战(含成本对比)
java·spring boot·后端·spring·spring cloud·系统架构·maven
自由鬼2 小时前
正向代理服务器Squid:功能、架构、部署与应用深度解析
java·运维·服务器·程序人生·安全·架构·代理
G等你下课3 小时前
从点击到执行:如何优雅地控制高频事件触发频率
前端·javascript·面试
Jackson_Mseven3 小时前
面试官:说说 startTransition 和 useDeferredValue?我:我用它一行代码救了首页!
前端·javascript·面试