软件开发流程

角色分工

开发环境搭建
创建普通Maven项目编写pom.xml导入依赖
配置文件application.yml
启动类编写
src/main/java/com/XXX/reggie/ReggieApplication.java
配置类编写 完成MVC框架静态资源映射
config/WebMvcConfig
再次启动查看日志是否成功,然后访问页面http://localhost:8080/backend/index.html

ps:不管用的看看放的路径是否正确,启动类要在最外层

员工管理功能
后台登录功能
需求分析
http://localhost:8080/backend/page/login/login.html打开登陆页面
按下F12,点击登录按钮,发送请求并题交参数



数据模型
创建实体类Employee与数据模型(employee表)映射

创建实体类entity / Employee.java
代码开发
创建mapper,service,controller层
项目结构图

service层
实现通用增删改查的service接口
([service接口继承IService]
(https://blog.csdn.net/weixin_/article/details/))
自定义通用Service方法
service实现类 继承ServiceImpl<EmployeeMapper,Employee>
并执行EmployeeService 接口
controller层

编写 通用返回结果Result类
/common / Result
(通用结果类,服务端响应的所以结果最终都会包装成各种类型返回给前端页面)

需要后端返给前端code,data,msg
登陆方法代码实现
java 基础实战

根据post请求方式,请求URL

根据返回的Jason数据
需要用到request去getSession
业务逻辑:
在controller中创建登录方法

功能测试
完善登录功能(过滤器)
需求分析

代码开发
实现步骤:
1、创建自定义过滤器LoginCheckFilter
2、在启动类上加入注解@ServletComponentScan
3.完善过滤器的处理逻辑
…/Application.java 启动类中加上注解
业务逻辑

注意:
NOTLOGIN 与静态资源中…/js/request.js中响应拦截器里msg信息要一致不然刷新到index.html页面不会跳转到登录页面

功能测试

后台退出功能
需求分析
代码开发
用户点击页面中退出按钮,发送请求,请求地址为/employee/logout,请求方式为POST。我们只需要在Controller中创建对应的处理方法即可,具体的处理逻辑:
1、清理Session中的用户id
2、返回结果
功能测试
省略
新增员工功能
需求分析

数据模型

新增用户的用户名设置为unique具有唯一属性,status状态要有默认值1不被禁用
代码开发



功能测试


前端返给服务端参数,服务端返还jason数据
员工信息分页查询功能
需求分析

代码开发

…/config/MybatisPlusConfig
功能测试



启用/禁用员工账号功能
需求分析

代码开发

功能测试

原来修改代码可执行但无效修改,需要修复


代码修复

…/common/JacksonObjectMapper配置类
扩展SpringMvc的消息转换器
…/config/WebMvcConfig.java
再次测试



编辑员工信息功能
需求分析

代码开发

功能测试

分类管理功能
公共字段自动填充功能
需求分析

代码开发

这里先将createUser和updateUser的id值写死为1,后面完善功能会用获取的id替换
功能完善

验证一次请求,走的同一个线程
把测试日志插入
LoginCheckFiter.java
EmployeeController.java
MyMetaObjectHandler.java程序中,打开修改页面保存看结果

ThreadLocal



功能测试

新增分类功能
需求分析


数据模型


代码开发

Entity实体类
Mapper接口
业务层Service接口
业务层ServiceImpl实现类
Controller控制层

功能测试
分类信息分类查询功能
需求分析
代码开发

构造根据sort值排序的条件构造器
功能测试


删除功能
需求分析

代码开发


这里只给Dish和Setmeal的实体类代码,剩下的接口和实现类与之前类似,此处省略
回到categoryService层重写remove方法

public void remove(Long id);

自定义异常类
在全局处理中处理异常
功能测试

出现bug,属于前后端id名不同导致,多亏弹幕大军

然后在静态资源中找到发现,前端定义的接口参数是ids,而我们controller写的参数是id
刚开始我以为两种方式改变其中任意一个对应上就行,但改前端接口还是不行,所以只能妥协的改掉controller方法里的参数为ids
ps:有知道的大佬还请赐教

修改分类功能
需求分析

代码开发
功能测试


菜品管理功能
文件上传下载
简要介绍
文件上传

前端文件上传组件


文件下载

代码开发
服务端文件上传

两种方式:
1.在过滤器中添加放行路径

2.先登录再打开上传界面

功能测试

新增菜品
需求分析

数据模型


代码开发
下菜品分类下拉框选项数据展示功能

…/controller/CatergoryController
添加菜品页面数据保存功能


DishDTo实体类(原来的Dish实体类中没有菜品口味的name和value属性)
在接口中自定义方法(操作两张表)
实现类重写方法
JAVA 批量修改List里面某个字段的方法
方法一:通过流的方式
方法二:通过forEach

最后在DishController中的save方法中调用自定义方法
功能测试

菜品信息分页查询
需求分析

代码开发


菜品分类一栏没有显示,可以看到后端返回的是categoryId,应该返回categoryName菜品名称
功能测试

修改菜品
需求分析

代码开发

修改前数据回显
回显数据涉及两个表的数据,到DishService中自定义get方法(获取dish表中基本信息以及dish_flavor中对应的口味信息)
这里使用DishDto为返回对象类型,与页面数据对应
回显后修改保存
功能测试
自我完善部分
菜品售卖状态修改功能(批量修改)
菜品删除功能(批量删除)
套餐管理功能
新增套餐功能
需求分析

数据模型

代码开发

SetmealDish 套餐餐品
接口和控制层省略…

1-2.套餐分类和菜品分类的数据获取(CategoryController中处理过)
3.在DishController中
4-5.图片上传下载也已经处理过了
6.需要自定义保存方法
(原因:只操作setmeal表,套餐中的菜品信息无法保存)
在SetmealService中自定义保存方法,调用setmeal和seatmeal_dish表
功能测试
可选菜品展示

保存功能
setmeal套餐表

setmeal_dish套餐菜品关联表

套餐信息分页查询功能
需求分析

代码开发
功能测试


删除套餐
需求分析
代码开发
功能测试
短信发送功能
短信服务

阿里云短信服务

官网注册——>控制台——>云通信



了解即可,签名申请需要三证合一比较繁琐

模板详情

AccessKey 创建子用户安全系数高

创建用户


需求分析

数据模型

代码开发

阿里云短信服务官方文档
Java SDK使用手册
导入短信发送所需maven坐标


User实体类创建
短信发送SMSUtils工具类
随机生成验证码工具类ValidateCodeUtils工具类
修改LoginCheckFilter过滤器
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/3460.html