- 项目背景:餐厅自主点餐项目的初心就是为了让顾客可以方便有序的使用手机进行在线点菜,商家可以按照下单时间有序地处理订单。
- 点餐系统总体分为两部分:用户自主点餐(index.html) + 老板进行管理(admin.html)
用户点餐界面的基本功能:
- 新用户注册
- 老用户登录
- 主界面中能看到当前店家的菜品列表
- 选择要点的菜品,进行下单
- 用户可以看到自己的历史订单,查看订单详情和状态等
老板管理界面的基本功能:
- 管理员登录
- 针对菜品列表进行管理(新增菜品,删除菜品)
- 针对所有订单进行管理(可以看到所有用户的订单,查看订单详情,修改订单的完成状态)
- 需求分析
- 用户管理:分为消费者用户(顾客)和管理员用户(商家)两种角色,分别实现注册登录,注销。
- 菜品管理:系统中能够针对菜品进行新增,查看,删除。不同的用户角色对应不同的操作,针对普通用户,只能查看菜品;针对管理员用户,可以新增,查看,删除。
- 订单管理:支持新增订单,查看所有订单,查看我的订单,修改订单的完成状态。针对普通用户,可以新增订单,查看我的订单;针对管理员,可以查看所有的订单,修改订单状态。
- 设计数据库(四张表)
- 实现数据库操作代码 (写一些JDBC操作数据库的代码,针对数据库操作进行简单的封装)
- 先封装一个DBUtil类,管理连接(单例类)
- 创建实体类:User,Dish,Order。属性和数据库表结构一致。
- 创建对应的DAO类,封装数据访问接口:UserDao,DishDao,OrderDao
- 前后端接口设计 (11个API)
- 用户管理-注册用户(普通用户才可以注册)
请求:POST/register
{
name:xxx
password:xxxxxx
}
响应:HTTP/1.1 200 OK
{
ok:1 //1表示成功,0表示失败
reason:" " //失败时候的原因
}
2.用户管理-登录
请求:POST/login
{
name:xxx
password:xxxxxx
}
响应:HTTP/1.1 200 OK
{
ok:1
reason:" "
name: " "
isAdmin: 0 //0表示普通用户,1表示管理员
}
3.用户管理-检查登陆状态(从服务器端获取)
请求:GET/login
响应:
{
ok:1 //1表示登录,0表示未登录
reason:" "
name: " "
isAdmin: 0 //0表示普通用户,1表示管理员
}
4.用户管理-注销
请求:GET/logout
响应:
{
ok:1
reason:" "
}
5.菜品管理-新增菜品(管理员才可以,普通用户不可以)
请求:POST/dish
{
name:xxx
price:xxx
}
响应:
{
ok:1
reason:" "
}
6.菜品管理-删除菜品(管理员才可以,普通用户不可以)
请求:DELETE/dish?dishId=xxx
响应:
{
ok:1
reason:" "
}
7.菜品管理-查看所有菜品
请求:GET/dish
响应:
{
{
dishId:1,
name:"宫保鸡丁",
price:
}
{
dishId:2,
name:"红烧肉",
price:
}
}
8.订单管理-新增订单(管理员不可以,普通用户可以)
请求:POST/order
[1,2,3,4]
响应:
{
ok:1
reason:" "
}
9.订单管理-查看订单(普通用户只能查看自己的订单,管理员能查看所有的订单)
请求:GET/order
响应:
{
{
orderId:1,
userId:1,
time:
isDone:1
}
{
orderId:2,
userId:2,
time:
isDone:0
}
}
10.订单管理-查看指定订单详情
请求:GET/order?orderId=1
响应:
{
orderId:1,
userId:1,
time:
isDone:1,
dishes:[
{
dishId:1,
name:"宫保鸡丁",
price:
}
{
dishId:2,
name:"红烧肉",
price:
}
]
}
11.订单管理-修改订单状态(管理员才可以,普通用户不可以)
请求:PUT/order?orderId=1&isDone=1
响应:
{
ok:1
reason:" "
}
- 源码链接