苍穹外卖面试题-下

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. 项目中哪些表是你负责设计的? 它们之间的关系是什么?

你可能感兴趣的:(项目面试题,面试,java)