基于SSM的零食商城系统

简介: 该系统为原创,创作于2021年3月,包含详细数据库设计。基于SSM整合,数据层为MyBatis,mysql数据库,具有完整的业务逻辑。

项目介绍:



该系统为原创,创作于2021年3月,包含详细数据库设计。基于SSM整合,数据层为MyBatis,mysql数据库,具有完整的业务逻辑。


项目功能:



用户:
登录注册、查看或者分类查看宠物
查看宠物详情及评论
评论、收藏
选择宠物加入购物车,下单
个人订单查看
地址维护
管理员:
登录、用户管理、分类管理、宠物管理、订单管理、快递管理、评价管理、修改密码


数据库设计:



20210821203117216.png


系统包含技术:



后端:SSM

前端:bootstrap,js,css等

开发工具:idea/eclipse

数据库:mysql 5.7

JDK版本:jdk1.8

服务器:tomcat8


部分截图说明:



下面是首页


725ef8abdb07455a898173920e7f54e4.png


分类查看


ee24eb62e1ee45eebb81944f4016e953.png


详情


4a0be5eecce743239d415976ad2b4e41.png


登录


ef43167262a1406d829f391391f77c91.png


收藏信息


5b4ccf328c0d4950b601978d1887fa86.png


购物车


3fe3418d174e4353bdfc86865c69e88f.png


我的订单


b63d590302b54e8c8181363de775fd72.png


用户管理


f10b900907af4656baa81586f64998f9.png


商品管理


f74a847875254eeebc775ae4009021a8.png


订单管理


2da0599521184e6bade9e7ec0da83cf4.png


快递管理


13b29edb0f38478aa2ce7c12ce2b99ef.png


部分代码:



前端操作


  /**
    * @Description: 商品详情
    * @Param: [goodsid, model, session]
    * @return: java.lang.String
    * @Author: Mr.Wang
    * @Date: 2021/3/14
    */
    @RequestMapping(value = "/detail",method = RequestMethod.GET)
    public String detailGoods(Integer goodsid, Model model, HttpSession session) {
        if(goodsid == null) {
            return "redirect:/main";
        }
        User user = (User) session.getAttribute("user");
        //要传回的数据存在HashMap中
        Map<String,Object> goodsInfo = new HashMap<String,Object>();
        //查询商品的基本信息
        Goods goods = goodsService.selectById(goodsid);
        if (user == null) {
            goods.setFav(false);
        } else {
            Favorite favorite = goodsService.selectFavByKey(new FavoriteKey(user.getUserid(), goodsid));
            if (favorite == null) {
                goods.setFav(false);
            } else {
                goods.setFav(true);
            }
        }
        //查询商品类别
        Category category = cateService.selectById(goods.getCategory());
        //商品图片
        List<ImagePath> imagePath = goodsService.findImagePath(goodsid);
        //商品评论
        //返回数据
        goodsInfo.put("goods", goods);
        goodsInfo.put("cate", category);
        goodsInfo.put("image", imagePath);
        model.addAttribute("goodsInfo",goodsInfo);
        //评论信息
        CommentExample commentExample=new CommentExample();
        commentExample.or().andGoodsidEqualTo(goods.getGoodsid());
        List<Comment> commentList=commentService.selectByExample(commentExample);
        for (Integer i=0;i<commentList.size();i++)
        {
            Comment comment=commentList.get(i);
            User commentUser=userService.selectByPrimaryKey(comment.getUserid());
            comment.setUserName(commentUser.getUsername());
            commentList.set(i,comment);
        }
        CategoryExample categoryExample = new CategoryExample();
        categoryExample.setOrderByClause("cateId");
        List<Category> categories = cateService.selectByExample(categoryExample);
        model.addAttribute("categorys", categories);
        model.addAttribute("commentList",commentList);
        return "detail";
    }
    /**
    * @Description: 搜索
    * @Param: [pn, keyword, model, session]
    * @return: java.lang.String
    * @Author: Mr.Wang
    * @Date: 2021/3/14
    */
    @RequestMapping(value = "/search", method = RequestMethod.GET)
    public String searchGoods(@RequestParam(value = "page",defaultValue = "1") Integer pn, String keyword, Model model, HttpSession session) {
        User user = (User) session.getAttribute("user");
        //一页显示几个数据
        PageHelper.startPage(pn, 16);
        //查询数据
        GoodsExample goodsExample = new GoodsExample();
        goodsExample.or().andGoodsnameLike("%" + keyword + "%");
        List<Goods> goodsList = goodsService.selectByExample(goodsExample);
        //获取图片地址
        for (int i = 0; i < goodsList.size(); i++) {
            Goods goods = goodsList.get(i);
            List<ImagePath> imagePathList = goodsService.findImagePath(goods.getGoodsid());
            goods.setImagePaths(imagePathList);
            //判断是否收藏
            if (user == null) {
                goods.setFav(false);
            } else {
                Favorite favorite = goodsService.selectFavByKey(new FavoriteKey(user.getUserid(), goods.getGoodsid()));
                if (favorite == null) {
                    goods.setFav(false);
                } else {
                    goods.setFav(true);
                }
            }
            goodsList.set(i, goods);
        }
        CategoryExample categoryExample = new CategoryExample();
        categoryExample.setOrderByClause("cateId");
        List<Category> categories = cateService.selectByExample(categoryExample);
        //显示几个页号
        PageInfo page = new PageInfo(goodsList,5);
        model.addAttribute("pageInfo", page);
        model.addAttribute("keyword", keyword);
        model.addAttribute("categorys", categories);
        return "search";
    }
    /**
    * @Description: 收藏
    * @Param: [goodsid, session]
    * @return: com.zhang.ssmschoolshop.util.Msg
    * @Author: Mr.Wang
    * @Date: 2021/3/14
    */
    @RequestMapping("/collect")
    @ResponseBody
    public Msg collectGoods(Integer goodsid, HttpSession session) {
        //取登录用户信息,未登录重定向至登录页面
        User user = (User) session.getAttribute("user");
        if(user == null) {
            return Msg.fail("收藏失败");
        }
        //添加收藏
        Favorite favorite = new Favorite();
        favorite.setCollecttime(new Date());
        favorite.setGoodsid(goodsid);
        favorite.setUserid(user.getUserid());
        goodsService.addFavorite(favorite);
        return Msg.success("收藏成功");
    }
    /**
    * @Description: 删除收藏
    * @Param: [goodsid, session]
    * @return: com.zhang.ssmschoolshop.util.Msg
    * @Author: Mr.Wang
    * @Date: 2021/3/14
    */
    @RequestMapping("/deleteCollect")
    @ResponseBody
    public Msg deleteFavGoods(Integer goodsid, HttpSession session) {
        User user = (User) session.getAttribute("user");
        if (user == null) {
            return Msg.fail("取消收藏失败");
        }
        //删除收藏
        goodsService.deleteFavByKey(new FavoriteKey(user.getUserid(),goodsid));
        return Msg.success("取消收藏成功");
    }


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


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


相关文章
|
3月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
2月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
348 37
|
2月前
|
Java 应用服务中间件 数据库连接
ssm项目整合,简单的用户管理系统
文章介绍了一个使用SSM框架(Spring、SpringMVC、MyBatis)构建的简单用户管理系统的整合过程,包括项目搭建、数据库配置、各层代码实现以及视图展示。
ssm项目整合,简单的用户管理系统
|
2月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
30 0
|
3月前
|
SQL Java 应用服务中间件
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
这篇文章是关于如何使用SSM框架搭建图书商城管理系统的教程,包括完整过程介绍、常见问题解答和售后服务,提供了项目地址、运行环境配置、效果图展示以及运行代码的步骤。
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
|
4月前
|
存储 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(2)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
60 1
|
4月前
|
安全 数据挖掘 测试技术
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(2)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
65 0
|
4月前
|
Java 关系型数据库 MySQL
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(1)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
59 0
|
5月前
|
搜索推荐 JavaScript Java
计算机Java项目|基于SSM的个性化商铺系统
计算机Java项目|基于SSM的个性化商铺系统
|
5月前
|
前端开发 JavaScript Java
计算机Java项目|SSM智能仓储系统
计算机Java项目|SSM智能仓储系统