[免费]SpringBoot+Vue鲜花销售商城系统【论文+源码+SQL脚本】

发布于:2025-06-06 ⋅ 阅读:(16) ⋅ 点赞:(0)

大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue鲜花销售商城系统【论文+源码+SQL脚本】,分享下哈。

项目视频演示
【免费】SpringBoot+Vue鲜花销售商城系统 Java毕业设计_哔哩哔哩_bilibili

项目介绍

随着互联网突飞猛进的发展及其对人们的生活产生至关重要的影响,线上购花,送货到家的购物方式受到了越来越多顾客的接受与喜爱。线上花卉小铺的设计与实现不仅可以带来更广泛的选择与实惠的价格,提供便利且优质的服务,而且可以更高效地宣传种植培养经验、花束的花语等花卉的相关知识,提高大家的文化素养,丰富精神世界。

本项目基于Web端,采用了面向对象的思想,使用的是springboot框架,选用了目前非常流行的Web应用程序开发语言Java,数据的存取采用MYSQL进行技术支持,前端主要使用jQuery与maven。本设计主要实现了用户前台与管理员后端的相关功能,如用户注册登录、个人信息管理、购物车管理、个人订单管理、用户管理、花卉订单管理、花卉类目管理、活动公告发布等。

此次设计从系统需求分析、系统设计到系统编程和调试测试等过程,综合锻炼了自身对一个系统的设计与开发的能力。本文的工作为更为复杂的线上购花系统的建设打下了基础,完成了线上购花的基本流程,达到所需的功能性要求。

系统展示

部分代码

package com.mall.sys.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mall.common.result.R;
import com.mall.sys.entity.MallGoodsType;
import com.mall.sys.entity.queryVo.MallGoodsTypeQueryVo;
import com.mall.sys.service.MallGoodsTypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * 商品类型表 前端控制器
 */
@RestController
@RequestMapping("/sys/mallGoodsType")
@Api(tags="商品类型表")
public class MallGoodsTypeController {

    @Autowired
    MallGoodsTypeService iMallGoodsTypeService;

        /**
        * 查询商品类型表列表
        */
        @PostMapping("queryMallGoodsTypeList")
        @ApiOperation("商品类型表列表")
        public R queryMallGoodsTypeList(@RequestBody MallGoodsTypeQueryVo queryVo) {
            QueryWrapper<MallGoodsType> queryWrapper=new QueryWrapper<>();
            Page<MallGoodsType> page = iMallGoodsTypeService.page(queryVo.getPage(), queryWrapper);
            return R.ok().data("dataList",page);
        }

        /**
         * 保存或者更新商品类型表信息
         */
        @PostMapping("saveOrUpdateMallGoodsType")
        @ApiOperation("保存或者更新商品类型表信息")
        public R saveOrUpdateMallGoodsType(@RequestBody MallGoodsType entity) {
            boolean b =true;
            if(StringUtils.isEmpty(entity.getId())){
                b= iMallGoodsTypeService.save(entity);
            }else{
                b=iMallGoodsTypeService.updateById(entity);
            }
            return R.th(b);
        }


        /**
         * 根据id查询商品类型表信息
         */
        @GetMapping("getByIdMallGoodsType/{id}")
        @ApiOperation("根据id查询商品类型表信息")
        public R getByIdMallGoodsType(@PathVariable("id") String id) {
             MallGoodsType dataMallGoodsType=  iMallGoodsTypeService.getById(id);
             return R.ok().data("entity",dataMallGoodsType);

        }
        /**
         * 根据id删除商品类型表信息
         */
        @DeleteMapping("removeByIdMallGoodsType/{id}")
        @ApiOperation("根据id删除商品类型表信息")
        public R removeByIdMallGoodsType(@PathVariable("id") String id) {
            boolean effect= iMallGoodsTypeService.removeById(id);
            return R.th(effect);

        }

        @GetMapping("mallGoodsTypeList")
        public R mallGoodsTypeList(){
            List<MallGoodsType> list = iMallGoodsTypeService.list();
            List<Map<String, String>> collect = list.stream().map(res -> {
                Map<String, String> maps = new HashMap();
                maps.put("key", res.getTypeName());
                maps.put("value", String.valueOf(res.getId()));
                return maps;
            }).collect(Collectors.toList());

            return R.ok().data("dataList",collect);
        }

}

<!-- 首页组件-->
<template>
  <div class="home" id="home" name="home">
    <!-- 秒杀测试 -->
    <my-count-down/>
    <!-- 放大镜效果 -->
    <magnifying-glass/>
    <!-- 轮播图 -->
    <div class="block">
      <el-carousel height="500px">

        <el-carousel-item v-for="(item,index) in imgSUrl" :key="index">
          <img style="width:100%;height:100%;" :src="item" >
        </el-carousel-item>

      </el-carousel>
    </div>
    <!-- 轮播图END -->
    <div class="main-box">
      <div class="main" v-for="(item,index) in applianceList" :key="item.id">
 
        <div class="phone">
          <div class="box-hd">
            <div class="title">{{ item.typeName }}</div>
          </div>
          <div class="box-bd">
            <div class="promo-list">
              <router-link to v-if="phoneList[index]">
<!--                <img :src="$target +phoneList[index].value"/>-->
<!--                <img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/ba7c4eccf6864b9101c28d2ca9cc71e2.jpg?w=1708&h=868"/>-->
              </router-link>
            </div>
            <div class="list">
              <MyList :list="item.goodsList" :isMore="true"></MyList>
            </div>
          </div>
        </div>
        <!-- 手机商品展示区域END -->
      </div>
    </div>
  </div>
</template>
<script>
import MagnifyingGlass from '../components/MagnifyingGlass.vue';
import MyCountDown from '../components/MyCountDown.vue';



export default {
  components: {MyCountDown, MagnifyingGlass},
  data() {
    return {
      carousel: "", // 轮播图数据
      phoneList: "", // 手机商品列表
      miTvList: "", // 小米电视商品列表
      applianceList: [], // 家电商品列表
      applianceHotList: "", //热门家电商品列表
      accessoryList: "", //配件商品列表
      accessoryHotList: "", //热门配件商品列表
      protectingShellList: "", // 保护套商品列表
      chargerList: "", //充电器商品列表
      applianceActive: 1, // 家电当前选中的商品分类
      accessoryActive: 1, // 配件当前选中的商品分类
      imgSUrl:[

        "https://img.tukuppt.com/bg_grid/00/15/30/f0b9cvnnPD.jpg!/fh/350",
          "https://ts1.cn.mm.bing.net/th/id/R-C.79ed075aaedd7cda4ad08bdc364252cd?rik=NtuvWGnL%2bwiwzA&riu=http%3a%2f%2fwww.dmaku.com%2fdemo%2fmoban%2f2017052552491025%2fimages%2fsycase3.jpg&ehk=7P7XTGB%2b3D9S5IKXMYoPamwyTG6H1jPcHd%2fsTl7FTfg%3d&risl=&pid=ImgRaw&r=0",
          "https://img.tukuppt.com/ad_preview/00/19/11/5c99f7c852662.jpg!/fw/980"
      ]
    };
  },
  watch: {
    // 家电当前选中的商品分类,响应不同的商品数据
    applianceActive: function (val) {
      // 页面初始化的时候把applianceHotList(热门家电商品列表)直接赋值给applianceList(家电商品列表)
      // 所以在切换商品列表时判断applianceHotList是否为空,为空则是第一次切换,把applianceList赋值给applianceHotList
      if (this.applianceHotList == "") {
        this.applianceHotList = this.applianceList;
      }
      if (val == 1) {
 
        this.applianceList = this.applianceHotList;
        return;
      }
      if (val == 2) {
    
        this.applianceList = this.miTvList;
        return;
      }
    },
    accessoryActive: function (val) {
      if (this.accessoryHotList == "") {
        this.accessoryHotList = this.accessoryList;
      }
      if (val == 1) {
        
        this.accessoryList = this.accessoryHotList;
        return;
      }
      if (val == 2) {
        this.accessoryList = this.protectingShellList;
        return;
      }
      if (val == 3) {
        this.accessoryList = this.chargerList;
        return;
      }
    }
  },
  created() {
    this.$axios
        .get("/home/homeCarousel", {})
        .then(res => {
          this.carousel = res.data.data.dataList;
        })
        .catch(err => {
          return Promise.reject(err);
        });
    this.getPromo()
  },
  methods: {


    // 获取各类商品数据方法封装
    getPromo() {
      this.$axios
          .get("/home/homeGoodsList",)
          .then(res => {
            console.log(res)
            this.applianceList = res.data.data.dataList//商品类型
            this.phoneList = res.data.data.dataMap
          })
          .catch(err => {
            return Promise.reject(err);
          });
    }
  }
};
</script>
<style scoped>
@import "../assets/css/index.css";
</style>

源码下载

链接:https://pan.baidu.com/s/1LSCTF9d0OZGz_rQefDuERA
提取码:1234