毕业设计实战:基于Spring Boot+Vue的智慧生活商城系统设计与实现,从需求到测试全流程拆解,新手也能轻松通关!
谁懂啊!当初做智慧生活商城系统毕设时,光商品表和订单表的关联就卡了5天——一开始没设外键,查某件商品的所有订单时数据全串错,导师看了直接让我“重画数据库E-R图”😫 后来踩遍无数坑才摸出一套高效落地流程,今天把需求分析、技术选型、功能实现到测试的细节全说透,宝子们不用再熬夜改代码,轻松搞定毕设!
一、先搞懂“智慧生活商城要啥”!需求分析别瞎蒙
刚开始我跳过需求分析就写代码,花两周加了个“AI商品推荐算法功能”,结果导师一句“核心是商品管理与订单交易,不是复杂算法”直接打回重改!后来才明白,需求分析得先抓准“谁用系统、要干啥”,这步做对,后面少走90%弯路。
1. 核心用户&功能拆解(踩坑后总结版)
智慧生活商城系统就两类核心用户:管理员和普通用户(别加“访客下单功能”!我当初加了后,未登录用户能提交订单却无法追踪,数据混乱,最后砍掉才顺畅):
- 管理员端(必做功能):
- 基础管理:个人中心(修改密码/资料)、会员等级管理(设置不同等级折扣,黄金会员95折/白银96折)、用户管理(查看列表/重置密码/禁用违规账号)
- 商品管理:维护商品信息(新增/修改/上下架)、上传商品照片、管理库存(增加/减少库存)、按商品类型/名称筛选(我当初没加,找商品要翻几十页)
- 订单与售后:商品订单管理(查看订单/发货)、商品退货管理(审核退货申请/标记退货状态)、商品评价管理(查看评价/回复用户)
- 内容管理:公告管理(发布通知/维护类型)、轮播图管理(上传首页轮播图)、商品留言管理(审核留言/回复咨询)
- 用户端(核心功能):
- 商品浏览:查看商品列表(按类型/价格筛选)、查看商品详情(含库存、原价、现价、点击量)、收藏感兴趣商品
- 交易操作:加入购物车(修改购买数量)、确认下单(选择收货地址/查看实付金额)、订单管理(查看待付款/已发货订单)、申请退货(填写退货原因/上传凭证)
- 个人中心:修改个人信息(头像/手机号/邮箱)、管理收货地址(新增/设为默认)、查看我的收藏/评价/退货记录
2. 需求分析避坑指南(血泪教训!)
- 别光靠“空想”!找2个同学分别模拟管理员和消费者提意见:比如有用户说“想快速区分待付款/已发货订单”,我才加了“订单状态标色”(待付款标红色/已发货标蓝色),比瞎加“AI推荐”实用多了
- 一定要画用例图!用DrawIO画简单版,标清“管理员-审核退货申请”“用户-提交订单”,跟导师汇报时,比光说“我要做XX功能”直观10倍(当初没画,导师听20分钟还没get到逻辑)
- 写“需求规格说明书”!不用复杂,把“功能描述、约束条件”写清楚(比如“商品库存≥0”“订单实付金额≥0”“商品照片仅支持JPG/PNG”),编码时对着做,不会跑偏
3. 可行性分析别敷衍!3点写清楚就能过
导师超爱问“你这系统可行吗”,别只说“我觉得可行”,从3个核心角度写,显得专业:
- 技术可行性:Spring Boot、Vue、MySQL都是课堂学过的,图书馆有《Spring Boot实战》《Vue.js前端开发》,遇到问题能查资料(别用Vue3+TypeScript!我当初想试,类型定义卡了一周,换回Vue2才顺利)
- 经济可行性:所有工具全免费!IDEA(社区版)、MySQL、Navicat(学生版)官网直接下,不用花钱买版权,答辩时说“开发成本为0”,导师会觉得你懂成本控制
- 操作可行性:界面参考主流电商平台(如淘宝),按钮布局简洁,我找同学测试,3分钟就学会加购物车、下单,导师直接认可
二、技术选型别跟风!这套组合稳到爆
刚开始我跟风用Spring Boot+Vue3+Redis,结果“购物车缓存”卡了5天——Redis的持久化配置没设对,重启后用户购物车数据全丢😫 后来换成Spring Boot 2.6+Vue2+MySQL8.0+IDEA 2022+Tomcat9,新手友好度拉满,调试效率翻两倍!
1. 技术栈详细对比(附避坑提醒)
宝子们别盲目选“最新技术”,稳定比炫酷重要!我整理了5个核心工具的选择理由和坑点,直接抄:
| 技术工具 | 为啥选它 | 避坑提醒!(重点!) |
|---|---|---|
| Spring Boot 2.6 | 简化配置,集成SSM高效,自带依赖管理,学习资料丰富 | 别用2.7+版本!部分依赖冲突,会出现“Bean注入失败”报错 |
| Vue2 | 学习成本低,文档齐全(有中文教程),兼容性好,适合新手 | 别用Vue3!TypeScript类型校验复杂,前后端联调易出错 |
| MySQL 8.0 | 支持事务和外键,存商品、订单、用户数据足够用,占内存小,支持utf8mb4编码 | 安装时设“utf8mb4”编码!我当初用默认编码,用户姓名含特殊字符(如“䞍”)乱码,查2小时才解决 |
| IDEA 2022 | 对Java开发支持好,自带Spring Boot插件,调试工具直观,免费开源 | 别更到2023+版本!高版本对老电脑兼容性差,经常卡顿闪退 |
| Tomcat 9.0 | 和Spring Boot、Vue适配最好,支持热部署,启动稳定,极少崩溃 | 别用Tomcat 10!会出现“Servlet API包名变更”,答辩时系统崩了就完了 |
2. 开发环境搭建(step by step 实操)
很多宝子卡在“环境配置”,跟着步骤来超简单,我当初一次成功:
- 装JDK 1.8:记住安装路径(比如D:\Java\jdk1.8.0_301),配置“JAVA_HOME”环境变量,Path中添加“%JAVA_HOME%\bin”,cmd输入“java -version”显示版本即成功
- 装IDEA 2022(社区版):选“IntelliJ IDEA Community Edition”,免费够用,首次打开勾选“Spring Boot”“Vue”插件,自动安装
- 装MySQL 8.0:用Navicat管理(可视化工具超方便),新建数据库“smart_life_mall”,编码设“utf8mb4”,排序规则选“utf8mb4_general_ci”
- 配Tomcat 9.0:在IDEA中添加服务器,选“Apache Tomcat v9.0”,关联安装路径,启动后访问“http://localhost:8080”看到Tomcat首页即成功
- 初始化项目:新建Spring Boot项目(后端),导入MySQL驱动包,配置application.properties;新建Vue项目(前端),安装axios依赖,测试前后端连接成功即完成初始化
3. 架构图一定要画!答辩加分项
用DrawIO画前后端分离架构图,标清“前端(Vue)-后端接口(Controller)-业务层(Service)-数据访问层(DAO)-数据库(MySQL)”:比如用户点“提交订单”→Vue传请求→Controller接收→Service校验库存→DAO操作数据库→返回结果。去年答辩时,评委特意夸这图“逻辑清晰”,比光说“我用了Spring Boot+Vue”专业多了!
三、数据库设计:别让表关联坑了你
这部分是毕设的“核心骨架”,我当初没关联“商品表”和“订单表”,查“某件商品的所有订单”要写3层嵌套SQL,调试到凌晨1点😫 后来按“实体-属性-关系”设计,终于理清了。
1. 核心实体&属性(附ER图绘制技巧)
先确定“实体”(管理员、用户、商品、订单、购物车、退货、收货地址、公告),再想“属性”,别漏关键字段!我整理了必做的11张表,直接照着画ER图:
- 用户表(yonghu):id(主键)、username(账号)、password(密码,MD5加密)、yonghu_name(姓名)、yonghu_phone(手机号)、yonghu_id_number(身份证号,唯一)、yonghu_photo(头像路径)、huiyuandengji_types(会员等级)
- 商品表(shangpin):id(主键)、shangpin_name(商品名称)、shangpin_uuid_number(商品编号,唯一)、shangpin_photo(照片路径)、shangpin_types(商品类型)、shangpin_kucun_number(库存)、shangpin_old_money(原价)、shangpin_new_money(现价)、shangxia_types(是否上架)
- 商品订单表(shangpin_order):id(主键)、shangpin_id(关联商品)、yonghu_id(关联用户)、address_id(关联收货地址)、buy_number(购买数量)、shangpin_order_true_price(实付价格)、shangpin_order_types(订单类型)、shangpin_order_payment_types(支付类型)
- 商品退货表(shangpin_tuihuo):id(主键)、shangpin_order_id(关联订单)、yonghu_id(关联用户)、shangpin_tuihuo_content(退货原因)、shangpin_tuihuo_types(退货状态)、shangpin_tuihuo_yesno_types(审核状态)
画ER图用Visio或亿图,记住3个规则:
- 矩形代表“实体”(比如“商品”“商品订单”)
- 椭圆代表“属性”(比如商品的“库存”“现价”)
- 菱形代表“关系”(比如“商品-商品订单”是一对多,一件商品可有多条订单;“用户-购物车-商品”是多对多,一个用户可加多个商品到购物车) 避坑提醒:别把“商品照片、用户头像”存数据库!我当初存二进制导致数据库崩溃,改成存“文件路径”(比如/static/photo/shangpin1.jpg)才对。
2. 数据库物理设计(附建表SQL示例)
ER图画好后,转成实际表,字段类型和约束别瞎设!比如“商品现价”用DECIMAL(10,2),“手机号”用VARCHAR(11),“订单号”设UNIQUE约束,避免重复。
给宝子们贴“商品表”和“商品订单表”的建表SQL,复制到Navicat就能用:
-- 商品表
CREATE TABLE `shangpin` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '商品ID',
`shangpin_name` VARCHAR(200) NOT NULL COMMENT '商品名称',
`shangpin_uuid_number` VARCHAR(200) DEFAULT NULL COMMENT '商品编号(唯一)',
`shangpin_photo` VARCHAR(200) DEFAULT NULL COMMENT '商品照片路径',
`shangpin_types` INT DEFAULT NULL COMMENT '商品类型(1-食品,2-日用品,3-电子产品)',
`shangpin_kucun_number` INT DEFAULT 0 COMMENT '商品库存',
`shangpin_old_money` DECIMAL(10,2) DEFAULT NULL COMMENT '商品原价',
`shangpin_new_money` DECIMAL(10,2) DEFAULT NULL COMMENT '现价',
`shangpin_clicknum` INT DEFAULT 0 COMMENT '点击次数',
`shangpin_content` TEXT DEFAULT NULL COMMENT '商品介绍',
`shangxia_types` INT DEFAULT 1 COMMENT '是否上架(1-是,0-否)',
`shangpin_delete` INT DEFAULT 0 COMMENT '逻辑删除(1-删除,0-正常)',
`create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_shangpin_uuid` (`shangpin_uuid_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表';
-- 商品订单表
CREATE TABLE `shangpin_order` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '订单ID',
`shangpin_order_uuid_number` VARCHAR(200) DEFAULT NULL COMMENT '订单号(唯一)',
`address_id` INT DEFAULT NULL COMMENT '关联收货地址ID(外键)',
`shangpin_id` INT DEFAULT NULL COMMENT '关联商品ID(外键)',
`yonghu_id` INT DEFAULT NULL COMMENT '关联用户ID(外键)',
`buy_number` INT DEFAULT NULL COMMENT '购买数量',
`shangpin_order_true_price` DECIMAL(10,2) DEFAULT NULL COMMENT '实付价格',
`shangpin_order_courier_name` VARCHAR(200) DEFAULT NULL COMMENT '快递公司',
`shangpin_order_courier_number` VARCHAR(200) DEFAULT NULL COMMENT '快递单号',
`shangpin_order_types` INT DEFAULT NULL COMMENT '订单类型(1-待付款,2-已付款,3-已发货)',
`shangpin_order_payment_types` INT DEFAULT NULL COMMENT '支付类型(1-现金,2-微信,3-支付宝)',
`insert_time` TIMESTAMP DEFAULT NULL COMMENT '订单创建时间',
`create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_uuid` (`shangpin_order_uuid_number`),
KEY `fk_order_shangpin` (`shangpin_id`),
KEY `fk_order_yonghu` (`yonghu_id`),
KEY `fk_order_address` (`address_id`),
CONSTRAINT `fk_order_shangpin` FOREIGN KEY (`shangpin_id`) REFERENCES `shangpin` (`id`),
CONSTRAINT `fk_order_yonghu` FOREIGN KEY (`yonghu_id`) REFERENCES `yonghu` (`id`),
CONSTRAINT `fk_order_address` FOREIGN KEY (`address_id`) REFERENCES `address` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品订单表';
3. 表关联测试!别等编码才发现错
建完表一定要测关联!比如在“商品订单表”插数据(商品ID=1,用户ID=1,购买数量=2,实付价格=925.10),用JOIN查询“某件商品的所有订单”:
SELECT u.yonghu_name, u.yonghu_phone, o.shangpin_order_uuid_number,
o.buy_number, o.shangpin_order_true_price, o.shangpin_order_types
FROM shangpin_order o
JOIN yonghu u ON o.yonghu_id = u.id
JOIN shangpin s ON o.shangpin_id = s.id
WHERE s.id = 1;
如果能查出“用户名+手机号+订单号+购买数量+实付价格+订单状态”,说明关联没问题;如果报错“Unknown column”,大概率是外键没设对,赶紧检查表结构。
四、功能实现:核心模块操作+页面设计
不用做所有功能!先搞定3个核心模块,答辩时足够出彩。每个模块我都附关键操作逻辑和页面设计要点,宝子们直接套就行。
1. 管理员端:商品管理模块(必做!)
这是管理员的核心功能,实现“商品信息维护+库存管理+上下架控制”,重点说“库存校验”和“价格校验”——别漏这两步,我当初就是这里踩了大坑!
(1)关键操作逻辑
- 新增商品前,校验“商品名称非空”“库存≥0”“现价≥0且≤原价”(缺一项提示“请完善商品信息”);
- 上传商品照片时,限制格式为JPG/PNG,大小≤5MB(避免占用过多服务器空间);
- 库存管理:减少库存时,校验“库存≥购买数量”(不足提示“库存不足,无法减少”);上下架时,同步用户端“下架商品不再显示”。
(2)页面设计要点(Vue+Element UI)
页面标题:管理员-商品管理页面
(插入图片位置:此处放“商品管理页面截图”,需包含以下元素)
- 筛选区:
- 输入框:商品名称(模糊查)、商品编号(精确查)
- 下拉框:商品类型(全部/食品/日用品/电子产品)、是否上架(全部/是/否)
- 按钮:“查询”(蓝色el-button)、“新增商品”(绿色el-button)
- 商品列表区:
- 表格列名:商品名称、编号、类型、库存、原价、现价、点击次数、状态、操作
- 状态显示:上架标绿色“已上架”/下架标灰色“已下架”
- 操作按钮:“详情”(蓝色)、“编辑”(橙色)、“删除”(红色)、“上下架切换”“增加库存”“减少库存”
- 新增商品弹窗:
- 表单元素:商品名称(必填)、商品类型(下拉框,必填)、商品编号(必填,唯一)、库存(数字输入框,≥0)、原价(数字输入框,≥0)、现价(数字输入框,≤原价)、商品照片(上传框,JPG/PNG)
- 按钮:“提交”(绿色)、“取消”(灰色)
(3)避坑提醒
- 库存与价格校验!加逻辑:
// 库存校验 Integer kucun = shangpin.getShangpinKucunNumber(); if (kucun < 0) { return Result.error("商品库存不能为负数,请重新输入!"); } // 价格校验(现价≤原价) BigDecimal oldMoney = shangpin.getShangpinOldMoney(); BigDecimal newMoney = shangpin.getShangpinNewMoney(); if (newMoney.compareTo(BigDecimal.ZERO) < 0 || newMoney.compareTo(oldMoney) > 0) { return Result.error("商品现价需≥0且≤原价,请重新输入!"); }
2. 用户端:订单提交模块(核心需求!)
用户用系统的核心是“选商品-下单”,流程别复杂:加入购物车→修改数量→确认收货地址→提交订单,我当初漏了“库存不足校验”,导致用户能下单超库存商品,补了半天才好。
(1)关键操作逻辑
- 提交订单前,校验“收货地址已选择”“购买数量≥1”“商品库存≥购买数量”(缺一项提示对应错误);
- 自动计算实付金额(现价×购买数量),根据会员等级折扣调整(黄金会员95折);
- 提交成功后,更新商品库存(库存-购买数量),生成唯一订单号(格式:ORDER+日期+随机数)。
(2)页面设计要点(Vue+Element UI)
页面标题:用户-确认下单页面
(插入图片位置:此处放“确认下单页面截图”,需包含以下元素)
- 收货地址区:
- 地址列表:显示用户已添加的地址,默认地址标“默认”标签,支持“选择”“编辑”“新增”
- 选中地址:高亮显示,含收货人、手机号、详细地址
- 商品信息区:
- 表格列名:商品名称、照片、单价、购买数量、小计
- 小计计算:单价×数量,自动显示
- 订单结算区:
- 结算信息:商品总价、会员折扣、实付金额(标红大号字体)
- 支付方式:单选“现金”“微信”“支付宝”
- 按钮:“提交订单”(绿色el-button,禁用状态:未选地址/未选支付方式)
(3)避坑提醒
- 库存不足与订单号生成!加逻辑:
// 校验库存 Shangpin shangpin = shangpinService.getById(shangpinId); if (shangpin.getShangpinKucunNumber() < buyNumber) { return Result.error("商品库存不足,当前库存:" + shangpin.getShangpinKucunNumber()); } // 计算实付金额(会员折扣) BigDecimal truePrice = shangpin.getShangpinNewMoney().multiply(new BigDecimal(buyNumber)); Yonghu yonghu = yonghuService.getById(yonghuId); if (yonghu.getHuiyuandengji_types() == 1) { // 黄金会员95折 truePrice = truePrice.multiply(new BigDecimal("0.95")); } else if (yonghu.getHuiyuandengji_types() == 2) { // 白银会员96折 truePrice = truePrice.multiply(new BigDecimal("0.96")); } // 生成唯一订单号 String orderUuid = "ORDER" + new SimpleDateFormat("yyyyMMdd").format(new Date()) + RandomUtils.nextInt(1000, 9999); // 提交订单 ShangpinOrder order = new ShangpinOrder(); order.setShangpinOrderUuidNumber(orderUuid); order.setShangpinId(shangpinId); order.setYonghuId(yonghuId); order.setBuyNumber(buyNumber); order.setShangpinOrderTruePrice(truePrice); orderService.save(order); // 更新库存 shangpin.setShangpinKucunNumber(shangpin.getShangpinKucunNumber() - buyNumber); shangpinService.updateById(shangpin); return Result.success("订单提交成功,订单号:" + orderUuid);
3. 管理员端:商品退货审核模块(答辩亮点!)
这个功能最能体现“售后闭环”,导师超爱问!核心是“查看退货申请-审核-标记退货状态”,别漏“审核意见必填”,不然无法追溯拒绝原因。
页面设计要点(Vue+Element UI)
页面标题:管理员-商品退货管理页面
(插入图片位置:此处放“退货管理页面截图”,需包含以下元素)
- 筛选区:
- 输入框:退货流水号(精确查)、订单号(模糊查)、用户姓名(模糊查)
- 下拉框:退货状态(全部/申请中/已退货/已拒绝)、审核状态(全部/待审核/已同意/已拒绝)
- 按钮:“查询”(蓝色)、“批量审核”(紫色)
- 退货列表区:
- 表格列名:退货流水号、订单号、用户姓名、申请时间、退货原因、退货状态、审核状态、操作
- 操作按钮:待审核显示“同意”“拒绝”,已审核显示“查看详情”
- 审核弹窗:
- 只读信息:退货流水号、订单号、用户姓名、退货原因、申请时间
- 填写项:审核结果(单选“同意”“拒绝”)、审核意见(文本域,拒绝时必填)
- 按钮:“提交审核”(绿色)、“取消”(灰色)
(3)避坑提醒
- 审核意见校验与状态同步!加逻辑:
// 拒绝时校验审核意见 if (result == 2 && StringUtils.isEmpty(auditOpinion)) { return Result.error("拒绝退货需填写审核意见!"); } // 更新退货状态 ShangpinTuihuo tuihuo = tuihuoService.getById(tuihuoId); tuihuo.setShangpinTuihuoYesnoTypes(result); // 1=同意,2=拒绝 tuihuo.setShangpinTuihuoYesnoText(auditOpinion); tuihuo.setShangpinTuihuoShenheTime(new Date()); // 同意退货时,同步订单状态为“已退货” if (result == 1) { tuihuo.setShangpinTuihuoTypes(2); // 2=已退货 ShangpinOrder order = orderService.getById(tuihuo.getShangpinOrderId()); order.setShangpinOrderTypes(5); // 5=已退货 orderService.updateById(order); // 恢复商品库存 Shangpin shangpin = shangpinService.getById(order.getShangpinId()); shangpin.setShangpinKucunNumber(shangpin.getShangpinKucunNumber() + order.getBuyNumber()); shangpinService.updateById(shangpin); } else { tuihuo.setShangpinTuihuoTypes(3); // 3=已拒绝 } tuihuoService.updateById(tuihuo); return Result.success("审核完成!");
五、测试别敷衍!这3步让答辩不翻车
很多宝子觉得“功能能跑就行”,结果答辩时评委一测就出问题!我当初没测“商品库存为0时下单”场景,导致系统允许超库存订单,导师说“不符合电商逻辑”,当场扣分😫 测试一定要针对性做!
1. 功能测试(必测3个模块)
别全测!重点测“核心功能”,我整理了测试用例表,直接填结果:
(1)商品管理测试(表1:商品测试用例)
| 测试场景 | 操作步骤 | 预期结果 | 实际结果 | 测试结论 |
|---|---|---|---|---|
| 商品库存为负数 | 新增商品→库存填-10→提交 | 提示“商品库存不能为负数,请重新输入!” | ||
| 商品现价超过原价 | 新增商品→原价100→现价150→提交 | 提示“商品现价需≥0且≤原价,请重新输入!” | ||
| 正常新增商品 | 填名称+编号+库存50+原价100+现价80→传JPG照片→提交 | 提示“新增成功!”,列表显示该商品(上架状态) |
(2)订单提交测试(表2:订单测试用例)
| 测试场景 | 操作步骤 | 预期结果 | 实际结果 | 测试结论 |
|---|---|---|---|---|
| 未选择收货地址下单 | 加商品到购物车→直接提交→不选地址 | 提示“请选择收货地址!” | ||
| 商品库存不足下单 | 商品库存2→购买数量3→提交订单 | 提示“商品库存不足,当前库存:2” | ||
| 正常提交订单 | 选地址+购买数量1+选支付方式→提交 | 提示“订单提交成功,订单号:XXX” |
(3)退货审核测试(表3:退货测试用例)
| 测试场景 | 操作步骤 | 预期结果 | 实际结果 | 测试结论 |
|---|---|---|---|---|
| 拒绝退货不填意见 | 选退货记录→点“拒绝”→不填意见→提交 | 提示“拒绝退货需填写审核意见!” | ||
| 同意退货 | 选退货记录→点“同意”→填意见→提交 | 提示“审核完成!”,退货状态变为“已退货”,商品库存恢复 | ||
| 正常拒绝退货 | 选退货记录→点“拒绝”→填意见→提交 | 提示“审核完成!”,退货状态变为“已拒绝” |
2. 兼容性测试(容易忽略的点)
别只在自己电脑测!答辩时评委可能用不同浏览器,我当初没测IE,结果商品列表表格错乱,赶紧加兼容性CSS才好:
- 浏览器测试:Chrome、Firefox、Edge、IE11(重点测IE,兼容性最差)
- 分辨率测试:1920×1080、1366×768(别让页面出现横向滚动条,用Element UI的响应式布局,加“overflow-x: hidden”)
3. 测试报告要写好!答辩加分
把测试结果整理成“测试报告”,含“目的、范围、用例、结果、问题总结”,导师会觉得你“做事严谨”。比如:
- 问题总结:“IE浏览器下商品列表错乱,通过添加IE专属CSS(*zoom: 1;)修复;超库存下单未拦截,加库存校验修复”
- 测试结论:“核心功能(商品管理、订单提交、退货审核)均通过测试,无严重bug;兼容性问题已修复,系统可正常使用”
六、答辩准备:3个加分小技巧
毕设不仅要做出来,还要说清楚!我当初准备了这3点,导师直接给“良好”:
- 演示流程要顺畅:提前录演示视频(怕现场系统崩),按“管理员新增商品→用户加购物车下单→管理员发货→用户申请退货→管理员审核同意”的流程来,别跳步
- 重点讲“你解决了啥问题”:比如“一开始商品超库存能下单,加库存校验解决;退货拒绝无需填理由,加意见必填修复;表关联错误导致订单查不到,重新设计外键解决”,比光说“我用了Spring Boot+Vue”有亮点
- 准备常见问题:导师大概率问“为啥选前后端分离”“数据多了怎么优化”,提前答:“前后端分离解耦,前端改样式不影响后端;数据多就加索引(如商品表的shangpin_types和shangxia_types联合索引),优化查询速度,还能分表存储历史订单数据”
最后:毕设通关的小私心
以上就是基于Spring Boot+Vue的智慧生活商城系统从0到1的避坑干货!毕设没那么难,关键是找对方法,别瞎做复杂功能。
需要核心源码(前后端分离,带注释,直接能跑)、数据库脚本(含测试数据)、ER图模板的宝子,评论区扣“智慧生活商城”,我私发你;卡在某个模块(比如商品上传、订单结算),也可以留言,我看到必回!
点赞收藏这篇,下次找流程不迷路~祝宝子们毕设顺利,轻松毕业!😘