项目名称:畅享美食
开发环境: IDEA+Mysql+JDK1.8+Git+Maven+docker+linux
软件架构: SpringBoot+Spring+SpringMVC+MybatisPlus+Redis+nginx+Swagger+Sharding-JDBC+Spring Sessio n
项目描述:
本项目是专门为餐饮企业定制的一款软件产品,包括系统管理后台和移动端应用两部分。管理后台可以对餐厅的菜品、套餐、
订单进行管理和维护。移动端应用采用短信验证码的登录,可以在线浏览菜品、添加购物车、下单等。 本项目分为3期进行开发
:第一期主要实现项目基本需求, 第二期主要针对移动端应用进行改进。 第三期主要针对系统进行优化升级,提高系统的访问性能。
模块分析:
1. 登录登出模块
包含四个功能,分别是员工登录、员工退出登录、用户登录、用户退出。员工登录逻辑:先判断用户名是否存在,再判断密码(经过MD5加密)是否正确,最后判断用户状态是否被禁用,登录成功将用户ID存入session中。 员工退出逻辑:移除session中的用户id,返回退出成功消息。用户登录采用短信验证码的方式登录,调用阿里云的短信服务。
2.员工管理模块和分类管理模块
包含四个功能,分别是员工和分类的增删改查操作。如:新增员工、员工信息分页查询、员工状态更改、员工信息更改。新增分类、分类分页查询、删除分类、修改分类。其中做员工状态更改时遇到个问题,我们点击状态修改按钮,会发送一个请求携带用户id和状态取反值,我们mysql数据库的主键id采用的是雪花算法,但是由于js处理long型数据会丢失精度,导的后端无法查询到员工,解决办法是配置一个消息转换器,在我们后端返回给前端时,返回String类型而不是int类型
3.菜品管理模块和套餐管理模块(难点)
包含六个功能,分别是菜品图片上传下载、新增菜品、菜品数据分页查询、修改菜品、单个删除或批量删除菜品、单个停售或
批量停售菜品。套餐模块总体跟菜品管理模块差不多。
项目亮点:
1.使用docker部署mysql,实现主从复制功能。减小数据库的并发访问压力。
2.使用SpringCache整合redis缓存数据,如短信验证码、用户浏览的菜品和套餐数据。减小数据库的并发访问压力。
3.使用nginx部署静态资源,将用户请求反向代理到应用集群,在配置文件中配置负载均衡策略。降低服务器压力。