SpringBoot之校园订餐系统全部源码,一键运行

该文介绍了为解决校园内学生就餐时间紧张及质量不保证的问题,设计了一个校园订餐系统。系统采用Spring、SpringBoot、Shiro和Eql等技术,实现了前端食物展示、销量统计和食品评价,后台订单处理和商家管理等功能。通过部分代码展示,阐述了系统如何查询和处理用户订单、热销食品以及用户评论。此外,文章提供了获取完整源码的方式。
摘要由CSDN通过智能技术生成

毕业设计之校园订餐系统


提示:校园订餐系统



一、需求分析

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进步 回复 校园订餐系统 自取,最后祝愿大家学有所成,加油!

在这里插入图片描述
禁止打广告

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旋律~学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值