毕业设计之校园订餐系统
提示:校园订餐系统
文章目录
一、需求分析
1.1 课题的研究背景
当今社会处于快节奏时代,时间对于学生来说尤其重要,学习争分夺秒,生活也是分秒必争,时间是能省就省,学校也考虑到此问题,故对此进行研究探讨,如果说还有什么时间是学生不能控制的话,就是就餐问题了,下课的时间点接近,同一个食堂,同时供上百甚至上千的学生就餐,时间上确实是一个值得思考的问题,况且不能保证饭菜的质量,于是为了节约时间,同时也为了学生的健康,校内订餐系统应运而生,既能解决节约时间问题,也可以保证就餐的质量,对学生来说很重要且很方便。
1.2 课题的研究目的和意义
随着传统的购物方式正在向网络化发展,出现了“网购”这种越来越受欢迎的新型消费方式[1]。信息化成为社会的重要因素,它不仅是生活便利,还提供了更好的选择,比如外卖的出现,为吃饭问题带来了很大的便利,那么为什么不可以运用在学校呢?既能很好的解决学生的就餐问题,还能解决学校和家长的忧心,学生下课了不再面对人山人海的队伍和半热不凉的饭菜,可以很好的把这些时间用到学习上,何乐而不为呢?于是校内订餐系统应运而生,帮助学生解决这一大难题,当然也是大大降低了校园后厨的压力,一举两得。
1.3 课题的研究内容
本课题旨在建立一个完善的校内订餐系统,通过前台提供食物,展示销量,公开食品评价;后台进行数量统计,包括提供食品的增删改查,订单食品的金额结算;校方则根据学生对不同商家的评价,进行有选择地筛选,提供更好更优的食品。三方平台结合,更好的来解决学生的就餐问题[2]。
二、系统的总体设计
2.1 系统的功能设计
框架搭建:Spring+SpringBoot+Shiro+Eql
2.2 系统的数据库设计
三、部分功能演示
校园订餐系统
四、部分代码展示
@Controller
@RequestMapping("/index")
public class IndexController {
@RequestMapping("/user")
public String index(ModelMap modelMap) {
try {
/**
* 查询所有用户订单状态
*/
List<Map> orderList = new Eql().insert("showAllOrderForIndex").useSqlFile("eql/user.sql").execute();
/*查询订单*/
orderList = orderList.stream().filter(map -> {
map.put("status", getOrderStatus(map.get("status").toString()));
map.put("userNickName", setCodeName(map.get("userNickName").toString()));
//把状态码变为可识别的文字
map.put("orderNo", setCodeName(map.get("orderNo").toString()));
return true;
}).collect(Collectors.toList());
/*查询评价*/
List<Map> commentList = new Eql().select("userIndexComment").limit(2).useSqlFile("eql/user.sql").execute();
modelMap.put("orderList", orderList);
/*查询热销食品*/
List<Map> foodList = new Eql().select("selectHotFoods").limit(6).params(Map.of("keyword", "", "sale", Constant.DOWN)).useSqlFile("eql/user.sql").execute();
modelMap.put("foodList", foodList);
modelMap.put("commentList", commentList);
} catch (Exception e) {
e.printStackTrace();
}
return "index_user";
}
}
@Controller
@RequestMapping("login")
public class LoginController {
@RequestMapping("user/toLogin")
public String userToLogin() {
return "login";
}
/* @RequestMapping("user/saveLogin")
public ModelAndView userSaveLogin(String userPhone,String userPass){
ModelAndView modelAndView = new ModelAndView();
//获取用户
UsernamePasswordToken token = new UsernamePasswordToken();
token.setUsername(userPhone);
token.setPassword(userPass.toCharArray());
try {
SecurityUtils.getSubject().login(token);
} catch (UnknownAccountException e) {
modelAndView.setViewName("login");
modelAndView.addObject("msg","用户名或密码错误");
return modelAndView;
}
modelAndView.setViewName("index_user");
return modelAndView;
}*/
@RequestMapping("user/saveLogin")
public String userSaveLogin(@RequestParam Map map, ModelMap modelMap, HttpServletRequest request) {
//获取用户
UsernamePasswordToken token = new UsernamePasswordToken();
token.setUsername(map.get("userPhone").toString());
token.setPassword(map.get("userPass").toString().toCharArray());
try {
SecurityUtils.getSubject().login(token);
} catch (UnknownAccountException e) {
modelMap.addAttribute("map", map);
modelMap.addAttribute("msg", "用户名或密码错误");
return "login";
}
User user = (User) SecurityUtils.getSubject().getPrincipal();
HttpSession session = request.getSession();
long cartNum = new Eql().selectFirst("cartNum").useSqlFile("eql/user.sql").params(user).execute();
session.setAttribute("cartNum", cartNum);
SavedRequest savedRequest = WebUtils.getSavedRequest(request);
if (null != savedRequest) {
String url = savedRequest.getRequestUrl();
if("/favicon.ico".equals(url)){
return "forward:/index/user";
}
//跳转到之前的url
return "forward:" + url;
}
return "forward:/index/user";
}
@RequestMapping("/no_auth")
void noAuth() {
}
}
@Controller
@RequestMapping("logout")
public class LogoutController {
@RequestMapping("user/toLogout")
public String userToLogout(){
getSubject().logout();//删除主角(User)
getSubject().getSession().stop();//使会话过期
return "redirect:/";
}
@RequestMapping("business/toLogout")
public String businessToLogout(HttpServletRequest request){
request.getSession().removeAttribute("business");
return "forward:/business/toLogin";
}
@RequestMapping("school/toLogout")
public String schoolToLogout(HttpServletRequest request){
request.getSession().removeAttribute("school");
return "forward:/business/toLogin";
}
}
总结:全部源码获取
提示:这里对文章进行总结:
禁止打广告
有需要全部源代码和数据库的可以关注公众号Java进步 回复 校园订餐系统 自取,最后祝愿大家学有所成,加油!
禁止打广告