基于springboot的校园跑腿系统

博主主页:猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

项目介绍: 

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

项目功能:

基于springboot的校园跑腿系统_第1张图片

基于springboot的校园跑腿系统_第2张图片 

数据库表结构文档: 

基于springboot的校园跑腿系统_第3张图片

系统包含技术:

后端:springboot、mybatis
前端:layui,js,css等,html页面
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

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

基于springboot的校园跑腿系统_第4张图片

 登录页面如下:

基于springboot的校园跑腿系统_第5张图片

分页展示商品,可以筛选

基于springboot的校园跑腿系统_第6张图片 

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

基于springboot的校园跑腿系统_第7张图片 

所有任务

基于springboot的校园跑腿系统_第8张图片

任务详情查看 

基于springboot的校园跑腿系统_第9张图片  

商品订单

基于springboot的校园跑腿系统_第10张图片

管理员-首页基于springboot的校园跑腿系统_第11张图片

 管理员-商家认证

基于springboot的校园跑腿系统_第12张图片

 管理员-骑手认证

基于springboot的校园跑腿系统_第13张图片

 管理员-用户管理

基于springboot的校园跑腿系统_第14张图片

商家-添加商品

基于springboot的校园跑腿系统_第15张图片

 商家-商品管理

基于springboot的校园跑腿系统_第16张图片

部分代码:

 拦截器

@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 acticleAvatar(MultipartFile dropFile, HttpServletRequest request) throws IOException {
        Map 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 customOrderList = customOrderService.queryFilter(mp);
        model.addAttribute("customOrderList",customOrderList);
        List 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 customOrders = customOrderService.queryFilter(mp);
        PageInfo 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 orderss = ordersService.queryFilter(mp);
        PageInfo 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 goodsList = goodsService.queryFilter(mp);
        PageInfo 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 goodsList = goodsService.selectByCondition(goods);
        PageInfo 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,"删除成功");
    }

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

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

你可能感兴趣的:(java,javaweb,spring,boot,mybatis,后端)