基于springboot的校园跑腿系统

简介: 该系统创作于2022年5月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,页面使用html,具有完整的业务逻辑,适合选题:校园跑腿、跑腿、校园帮等。

项目介绍:



该系统创作于2022年5月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,页面使用html,具有完整的业务逻辑,适合选题:校园跑腿、跑腿、校园帮等。


项目功能:



3b0146cea93a463c87773bc9739bf5c1.jpg6c1f9ea0c28a4c3c99c420da16248252.png


数据库表结构文档:



441db3215b7d482186050bd2c7355eb8.png


系统包含技术:



后端:springboot、mybatis

前端:layui,js,css等,html页面

开发工具:idea

数据库:mysql 5.7

JDK版本:jdk1.8


部分截图说明:



下面是用户首页,可以看到部分任务和商品


f6a1b597f78840b9a407df21dd74a45b.png


登录页面如下:


aac70ad57d0c49d5ad9592ab9945b459.png


分页展示商品,可以筛选


01d2edf271954742a0247028b291cb15.png


点击某一个,可以看到商品详情,可以加入购物车


bc552e3b5e3b40fba16b439c823bf39b.png


所有任务


0ef5c46df7294ad5a487c9187157709a.png


任务详情查看


 80c1acc02d78492aa6a9eae37aa267b7.png


商品订单


519bc8a2061a4e48b3f423d159678840.png


管理员-首页


61d9c90075cc483ba3821fcccde9f1d4.png


管理员-商家认证


1ac9eaaed9d240b8b8e6279a5f462f37.png


管理员-骑手认证


d5b7d2a540e54527a6e3b1acec77f908.png


管理员-用户管理


2021a672b3d54bbaab20bd3e1b6870c0.png


商家-添加商品


40c93619fc294014b330af283a01d9e9.png


商家-商品管理


f2e30065f40a447ba89c1cbed31754f7.png


部分代码:



拦截器


@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        HttpSession session = request.getSession();
        if(session.getAttribute("userInfo") != null){
            return true;
        }
        // 不符合条件的给出提示信息,并转发到主页面
        request.setAttribute("msg", "您还没有登录,请先登录!");
        request.getRequestDispatcher("/logout").forward(request, response);
        //返回true通过,返回false拦截
        return false;
    }


文件上传


/**
     * 文件上传
     * @param dropFile
     * @param request
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "/avatar", method = RequestMethod.POST)
    public Map<String, Object> acticleAvatar(MultipartFile dropFile, HttpServletRequest request) throws IOException {
        Map<String, Object> result = new HashMap<>();
        //获取文件后缀
        String fileName = dropFile.getOriginalFilename();
        String fileSuffix = fileName.substring(fileName.lastIndexOf('.'));
        //文件存放路径
        String fileDirPath = new String(uploadDir);
        File fileDir = new File(fileDirPath);
        //判断文件是否存在
        if (!fileDir.exists()){
            fileDir.mkdirs();
        }
        File file = new File(fileDir.getAbsolutePath()+ File.separator+ UUID.randomUUID() + fileSuffix);
        try {
            dropFile.transferTo(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //传到前端
        result.put("fileName", "http://localhost:"+port+"/upload/"+file.getName());
        return result;
    }


首页相关操作


//首页
    @GetMapping("/")
    public String userIframe(Model model){
        Map mp = new HashMap<>();
        mp.put("limit","1");
        mp.put("status","01");
        List<CustomOrder> customOrderList = customOrderService.queryFilter(mp);
        model.addAttribute("customOrderList",customOrderList);
        List<Goods> goods = goodsService.queryFilter(mp);
        model.addAttribute("goods",goods);
        return "show";
    }
    //自定义订单
    @GetMapping("/corder")
    public String corder(Model model, String searchName, Integer pageNum, Integer pageSize){
        Map mp = new HashMap<>();
        mp.put("name",searchName);
        mp.put("status","01");
        if(pageNum==null){
            pageNum =1;
        }
        if(pageSize==null){
            pageSize =10;
        }
        PageHelper.startPage(pageNum,pageSize);
        List<CustomOrder> customOrders = customOrderService.queryFilter(mp);
        PageInfo<CustomOrder> customOrderList = new PageInfo<>(customOrders);
        model.addAttribute("customOrderList",customOrderList);
        return "CustomOrder";
    }
    //商品订单
    @GetMapping("/sorder")
    public String sorder(Model model, String searchName, Integer pageNum, Integer pageSize){
        Map mp = new HashMap<>();
        mp.put("no",searchName);
        mp.put("status","01");
        if(pageNum==null){
            pageNum =1;
        }
        if(pageSize==null){
            pageSize =10;
        }
        PageHelper.startPage(pageNum,pageSize);
        List<Orders> orderss = ordersService.queryFilter(mp);
        PageInfo<Orders> ordersList = new PageInfo<>(orderss);
        model.addAttribute("ordersList",ordersList);
        return "goodsOrder";
    }
    //商品
    @GetMapping("/good")
    public String good(Model model, String storeName, String name, Integer pageNum, Integer pageSize){
        Map mp = new HashMap<>();
        mp.put("storeName",storeName);
        mp.put("name",name);
        mp.put("status","01");
        if(pageNum==null){
            pageNum =1;
        }
        if(pageSize==null){
            pageSize =8;
        }
        PageHelper.startPage(pageNum,pageSize);
        List<Goods> goodsList = goodsService.queryFilter(mp);
        PageInfo<Goods> goods = new PageInfo<>(goodsList);
        model.addAttribute("goods",goods);
        return "good";
    }
    //商品详情
    @GetMapping("/goodDetail")
    public String goodDetail(String id, Model model){
        Goods good = goodsService.selectById(id);
        model.addAttribute("id",id);
        model.addAttribute("good",good);
        return "goodDetail";
    }


商品操作


/**列表数据*/
    @GetMapping("/list")
    @ResponseBody
    public PageResultVo findGoods(Goods goods, Integer limit, Integer page, HttpSession session){
        String type = (String)session.getAttribute("type");
        if(type.equals("03")){
            User user = (User)session.getAttribute("userInfo");
            goods.setUid(String.valueOf(user.getId()));
        }
        PageHelper.startPage(page,limit);
        List<Goods> goodsList = goodsService.selectByCondition(goods);
        PageInfo<Goods> pages = new PageInfo<>(goodsList);
        return JsonData.table(goodsList,pages.getTotal());
    }
    /**编辑详情*/
    @GetMapping("/edit")
    @ResponseBody
    public Goods edit(Model model, String id){
        return goodsService.selectById(id);
    }
    /**编辑*/
    @PostMapping("/edit")
    @ResponseBody
    public JsonData edit(Goods goods){
        int a = goodsService.updateById(goods);
        if (a > 0) {
          return JsonData.success(null,"编辑成功!");
        } else {
          return JsonData.fail("编辑失败");
        }
    }
    /**删除*/
    @PostMapping("/del")
    @ResponseBody
    public JsonData del(String id){
        try{
          goodsService.deleteById(Integer.parseInt(id));
        }catch(Exception ex){
          JsonData.fail("出现错误");
        }
        return JsonData.success(null,"删除成功");
    }


以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。


好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~



相关文章
|
24天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
108 13
|
2月前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
368 1
|
2月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
3月前
|
存储 安全 Java
打造智能合同管理系统:SpringBoot与电子签章的完美融合
【10月更文挑战第7天】 在数字化转型的浪潮中,电子合同管理系统因其高效、环保和安全的特点,正逐渐成为企业合同管理的新宠。本文将分享如何利用SpringBoot框架实现一个集电子文件签字与合同管理于一体的智能系统,探索技术如何助力合同管理的现代化。
144 4
|
3月前
|
前端开发 Java Apache
SpringBoot实现电子文件签字+合同系统!
【10月更文挑战第15天】 在现代企业运营中,合同管理和电子文件签字成为了日常活动中不可或缺的一部分。随着技术的发展,电子合同系统因其高效性、安全性和环保性,逐渐取代了传统的纸质合同。本文将详细介绍如何使用SpringBoot框架实现一个电子文件签字和合同管理系统。
149 1
|
3月前
|
文字识别 安全 Java
SpringBoot3.x和OCR构建车牌识别系统
本文介绍了一个基于Java SpringBoot3.x框架的车牌识别系统,详细阐述了系统的设计目标、需求分析及其实现过程。利用Tesseract OCR库和OpenCV库,实现了车牌图片的识别与处理,确保系统的高准确性和稳定性。文中还提供了具体的代码示例,展示了如何构建和优化车牌识别服务,以及如何处理特殊和异常车牌。通过实际应用案例,帮助读者理解和应用这一解决方案。
|
2月前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
55 0
|
3月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
202 1
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
133 62
|
1月前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。

热门文章

最新文章