当前位置: 首页 > news >正文

基于SSM的水果商城

博主主页:猫头鹰源码

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

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

文末联系获取

项目介绍: 

该系统基于SSM整合,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:商城、水果商城、网上购物、网购、在线购物等。

项目功能:

用户:登陆注册、商品详情、分类查看、筛选商品、加入购物车、收藏、我的订单等
管理员:登陆、用户管理、分类管理、商品管理、订单维护、公告管理、留言管理
具备完整的商城业务逻辑。

系统包含技术:

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

部分截图说明:

下面是首页

水果商品详情

购物车

我的订单查看

 我的收藏

个人中心

留言信息

后台的登录

后台首页

后台商品维护

后台用户管理

 

部分代码:

商品修改操作

 /**
     * 分页查询商品列表
     */
    @RequestMapping("/findBySql")
    public String findBySql(Model model, Item item){
        String sql = "select * from item where isDelete = 0 ";
        if(!isEmpty(item.getName())){
            sql += " and name like '%" + item.getName() + "%' ";
        }
        sql += " order by id desc";
        Pager<Item> pagers = itemService.findBySqlRerturnEntity(sql);
        model.addAttribute("pagers",pagers);
        model.addAttribute("obj",item);
        return "item/item";
    }

    /**
     * 添加商品入口
     */
    @RequestMapping("/add")
    public String add(Model model){
        String sql = "select * from item_category where isDelete = 0 and pid is not null order by id";
        List<ItemCategory> listBySqlReturnEntity = itemCategoryService.listBySqlReturnEntity(sql);
        model.addAttribute("types",listBySqlReturnEntity);
        return "item/add";
    }

    /**
     * 执行添加商品
     */
    @RequestMapping("/exAdd")
    public String exAdd(Item item, @RequestParam("file")CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {
        itemCommon(item, files, request);
        item.setGmNum(0);
        item.setIsDelete(0);
        item.setScNum(0);
        itemService.insert(item);
        return "redirect:/item/findBySql.action";
    }

    /**
     * 修改商品入口
     */
    @RequestMapping("/update")
    public String update(Integer id,Model model){
        Item obj = itemService.load(id);
        String sql = "select * from item_category where isDelete = 0 and pid is not null order by id";
        List<ItemCategory> listBySqlReturnEntity = itemCategoryService.listBySqlReturnEntity(sql);
        model.addAttribute("types",listBySqlReturnEntity);
        model.addAttribute("obj",obj);
        return "item/update";
    }

    /**
     * 执行修改商品
     */
    @RequestMapping("/exUpdate")
    public String exUpdate(Item item, @RequestParam("file")CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {
        itemCommon(item, files, request);
        itemService.updateById(item);
        return "redirect:/item/findBySql.action";
    }

    /**
     * 新增和更新的公共方法
     */
    private void itemCommon(Item item, @RequestParam("file") CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {
        if(files.length>0) {
            for (int s = 0; s < files.length; s++) {
                String n = UUIDUtils.create();
                String path = SystemContext.getRealPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename();
                File newFile = new File(path);
                //通过CommonsMultipartFile的方法直接写文件
                files[s].transferTo(newFile);
                if (s == 0) {
                    item.setUrl1(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());
                }
                if (s == 1) {
                    item.setUrl2(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());
                }
                if (s == 2) {
                    item.setUrl3(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());
                }
                if (s == 3) {
                    item.setUrl4(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());
                }
                if (s == 4) {
                    item.setUrl5(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());
                }
            }
        }
        ItemCategory byId = itemCategoryService.getById(item.getCategoryIdTwo());
        item.setCategoryIdOne(byId.getPid());
    }

    /**
     * 商品下架
     */
    @RequestMapping("/delete")
    public String update(Integer id){
        Item obj = itemService.load(id);
        obj.setIsDelete(1);
        itemService.updateById(obj);
        return "redirect:/item/findBySql.action";
    }

    /**
     * 按关键字或者二级分类查询
     */
    @RequestMapping("/shoplist")
    public String shoplist(Item item,String condition,Model model){
        String sql = "select * from item where isDelete=0";
        if(!isEmpty(item.getCategoryIdTwo())){
            sql +=" and category_id_two = " +item.getCategoryIdTwo();
        }
        if(!isEmpty(condition)){
            sql += " and name like '%" + condition +"%' ";
            model.addAttribute("condition",condition);
        }
        if(!isEmpty(item.getPrice())){
            sql += " order by (price+0) desc";
        }
        if(!isEmpty(item.getGmNum())){
            sql += " order by gmNum desc";
        }
        if(isEmpty(item.getPrice())&&isEmpty(item.getGmNum())){
            sql += " order by id desc";
        }

        Pager<Item> pagers = itemService.findBySqlRerturnEntity(sql);
        model.addAttribute("pagers",pagers);
        model.addAttribute("obj",item);
        return "item/shoplist";
    }

前端首页

 /**
     * 前端首页
     */
    @RequestMapping("/uIndex")
    public String uIndex(Model model, Item item,HttpServletRequest request){
        String sql1 = "select * from item_category where isDelete=0 and pid is null order by name";
        List<ItemCategory> fatherList = itemCategoryService.listBySqlReturnEntity(sql1);
        List<CategoryDto> list = new ArrayList<>();
        if(!CollectionUtils.isEmpty(fatherList)){
            for(ItemCategory ic:fatherList){
                CategoryDto dto = new CategoryDto();
                dto.setFather(ic);
                //查询二级类目
                String sql2 = "select * from item_category where isDelete=0 and pid="+ic.getId();
                List<ItemCategory> childrens = itemCategoryService.listBySqlReturnEntity(sql2);
                dto.setChildrens(childrens);
                list.add(dto);
                model.addAttribute("lbs",list);
            }
        }
        //折扣商品
        List<Item> zks = itemService.listBySqlReturnEntity("select * from item where isDelete=0 and zk is not null order by zk desc limit 0,10");
        model.addAttribute("zks",zks);

        //热销商品
        List<Item> rxs = itemService.listBySqlReturnEntity("select * from item where isDelete=0 order by gmNum desc limit 0,10");
        model.addAttribute("rxs",rxs);

        return "login/uIndex";
    }

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

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

相关文章:

  • Ubuntu20.04美化成mac OS苹果风格
  • 国际航运管理复习总结题
  • 详解Redis基础数据类型Set增删查(带Java源码)
  • 从零开始实现一个量化回测系统(二)
  • 设计模式:工厂模式
  • 基于Python实现的英文文本信息检索系统
  • java语言入门(一)之JAVA语言基础入门
  • Redis缓存数据库
  • Arm64 linux Virtual memory分析
  • std::cout、printf 和 RCLCPP_INFO的对比
  • 人工智能导论笔记
  • 基于ODBTC有序抖动块截断编码和DCT域数字水印嵌入提取算法matlab仿真
  • 场景文字检测DBnet论文解读
  • 【 失踪人口回归】新·学期
  • Win10安装TensorRT
  • 深入了解以太坊
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • Apache Pulsar 2.1 重磅发布
  • FineReport中如何实现自动滚屏效果
  • Less 日常用法
  • Mocha测试初探
  • Nacos系列:Nacos的Java SDK使用
  • node和express搭建代理服务器(源码)
  • yii2权限控制rbac之rule详细讲解
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 机器学习中为什么要做归一化normalization
  • 基于 Babel 的 npm 包最小化设置
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 两列自适应布局方案整理
  • 前端存储 - localStorage
  • 入门到放弃node系列之Hello Word篇
  • 算法系列——算法入门之递归分而治之思想的实现
  • 微信小程序实战练习(仿五洲到家微信版)
  • 线上 python http server profile 实践
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​如何在iOS手机上查看应用日志
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (多级缓存)多级缓存
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (理论篇)httpmoudle和httphandler一览
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .Net - 类的介绍
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net经典笔试题
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @font-face 用字体画图标