一、项目分析
(1)订餐用户:
①账号登录:账号密码登录
②用户信息:编辑、修改个人信息,修改密码
③生成、取消订单:查看菜品信息并进行订购,查看历史订单,取消、修改未生效订单
④订单评价:查看菜品评价,对已购菜品进行评价
食堂商户:
①账号登录:账号密码登录
②商户信息:编辑、修改商户信息、修改密码
③菜单管理:更新菜品信息、删除菜品
④订单管理:接受用户订单并提供反馈、查看历史订单
⑤查看评价:查看用户对菜品的评价
系统管理员:
①订单管理:监听所有订单信息并提供统计信息
②用户管理:可对商户及用户的个人信息进行管理
③评论管理:完成对用户评论信息的审核、删除等功能。
(4)统计和查询功能:可选取一个时间范围内:最受欢迎的食堂商户排名,单个菜品销售排名,最受欢迎的套餐排名。取不同评价点(色、香、味、价格)的权值相加。
二、开发环境
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————
三、功能介绍
(1)订餐用户:可以查看食堂商户的菜品信息,并进行订购;可以对自己的个人信息及密码进行修改;可以对所订购的菜品进行评价,并且可以查看其他用户对菜品的评价;可以查看历史已生效订单。查看,修改以及取消未生效的订单;可以记录用户的偏好,并进行推荐。评价采用量化打分方式进行(多权值相加)。
(2) 食堂商户:主要为订餐用户提供服务。可以通过管理菜单,更新菜品信息和删除菜品;可以及时接受到用户的订单并提供反馈,可以查看历史订单记录;可以查看用户对菜品的评价;可以修改商户的信息及修改密码。
(3) 系统管理员:主要为订餐用户和食堂商户提供服务。可以监视所有订单信息;可以提供统计信息;可以对商户以及用户的个人信息进行管理并完成对用户评论信息的审核、删除等功能。
(4)统计和查询功能:可选取一个时间范围内:最受欢迎的食堂商户排名,单个菜品销售排名,最受欢迎的套餐排名。取不同评价点(色、香、味、价格)的权值相加。
四、核心代码
部分代码:
package com.example.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {
@Resource
private CaiwuService caiwuService;
@PostMapping
public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
caiwuService.add(caiwu);
return Result.success(caiwu);
}
@PostMapping("/deleteList")
public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
caiwuService.deleteList(caiwu.getList());
return Result.success();
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
caiwuService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody CaiwuVo caiwu) {
caiwuService.update(caiwu);
return Result.success();
}
@GetMapping("/{id}")
public Result<Caiwu> detail(@PathVariable Integer id) {
Caiwu caiwu = caiwuService.findById(id);
return Result.success(caiwu);
}
@GetMapping
public Result<List<Caiwu>> all() {
return Result.success(caiwuService.list());
}
@PostMapping("/page")
public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
return Result.success(caiwuService.findPage(caiwuVo));
}
@PostMapping("/login")
public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
throw new CustomException(ResultCode.PARAM_LOST_ERROR);
}
Caiwu login = caiwuService.login(caiwu);
// if(!login.getStatus()){
// return Result.error("1001","状态限制,无法登录系统");
// }
if(login != null) {
HashMap hashMap = new HashMap();
hashMap.put("user", login);
Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
String token = JwtUtil.creatToken(map);
hashMap.put("token", token);
return Result.success(hashMap);
}else {
return Result.error();
}
}
@PutMapping("/updatePassword")
public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
Caiwu caiwu = caiwuService.findById(info.getId());
String oldPassword = SecureUtil.md5(info.getMima());
if (!oldPassword.equals(caiwu.getMima())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
info.setMima(SecureUtil.md5(info.getNewPassword()));
Caiwu caiwu1 = new Caiwu();
BeanUtils.copyProperties(info, caiwu1);
caiwuService.update(caiwu1);
return Result.success();
}
}
五、效果图
六、文章目录
目录
摘 要 1
1 绪论 3
1.1 背景及意义 3
1.1.1选题背景 3
1.1.2选题意义 3
1.2 国内外研究现状 3
1.2.1国外研究现状 3
1.2.2国内研究现状 4
1.3 研究内容 4
1.4 预期目标 4
2 系统开发环境和相关技术 5
2.1 系统开发环境 5
2.2 系统开发平台及相关技术 5
3 系统分析 7
3.1 系统可行性分析 7
3.1.1技术可行性 7
3.1.2经济可行性 7
3.1.3操作可行性 7
3.2 用户角色分析 7
3.3 系统功能需求 7
3.4 系统流程分析 8
3.4.1登录流程 8
4 系统设计 10
4.1 系统功能模块设计 10
4.1.1功能模块 11
4.1.2管理员功能模块 11
4.2 数据库设计 12
4.2.1 数据库概念模型设计 12
4.2.2 关系模式转换 15
4.2.3 数据库物理结构设计 15
5 系统实现 18
5.1工作人员功能模块 18
5.2管理员功能模块 21
6 系统测试 26
6.1 系统测试的目的 26
6.2 系统测试方法 26
6.3 功能测试 26
7 总结 28
参考文献 29
致 谢 30