基于VUE的校园二手物品交易管理系统的设计与实现 (含源码+sql+视频导入教程)
👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频
1 、功能描述
基于VUE的校园二手物品交易管理系统8拥有两种角色
管理员:闲置物品管理、订单管理、用户管理
用户:登录注册、购物车、发布闲置物品、评论、发货、收货地址管理等
1.1 背景描述
基于VUE的校园二手物品交易管理系统是一个使用Vue.js框架构建的Web应用程序。它旨在提供一个方便、可靠的平台,以管理校园内的二手物品交易。该系统主要包括用户管理、物品管理、订单管理和评价管理等功能。
用户管理模块允许学生、教师和管理员注册、登录和修改个人信息。物品管理模块使学生可以发布和搜索物品,包括名称、描述和价格等信息。订单管理模块涵盖了订单生成、支付和发货等流程。评价管理模块则保障了交易的公正性和安全性。
该系统特点在于界面友好、操作简便和功能完善。它满足了校园内二手物品交易的需求,使学生更方便地进行二手物品交易,提高物品利用率并节约资源。同时,它也减少了浪费并保护了环境。
2、项目技术
后端框架:springboot、Mybatis
前端技术:VUE
2.1 springboot
Spring Boot是由Pivotal团队提供的基于Spring的框架,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot集成了绝大部分目前流行的开发框架,就像Maven集成了所有的JAR包一样,Spring Boot集成了几乎所有的框架,使得开发者能快速搭建Spring项目。
2.2 mysql
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
3、开发环境
- JAVA版本:JDK1.8
- IDE类型:IDEA、Eclipse都可运行
- tomcat版本:无需
- 数据库类型:MySql(5.5-5.7、8.x版本都可)
- maven版本:无限制
- 硬件环境:Windows
4、功能截图+视频演示+文档目录
4.1 登录

4.2 前端模块


4.3 用户模块




4.4 管理员模块





5 、核心代码实现
5.1 配置代码
# 使用对象关系映射,将对象和xml文件联系起来
# 指定MyBatis映射文件的路径
mybatis.typeAliasesPackage=com.second.hand.trading.server.model
mybatis.mapperLocations=classpath:mapper/*.xmlspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/second_hand_trading?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=root# multipart上传文件
spring.servlet.multipart.enabled=true
#单个文件上传最大值
spring.servlet.multipart.max-file-size=200MB
#单次上传最大值
spring.servlet.multipart.max-request-size=200MB
#文件存放目录
userFilePath=D:\\1\\backend\\src\\main\\resources\\image
# 后端url
baseUrl=http://localhost:8080spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss# 中文乱码
server.servlet.encoding.charset=utf-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
5.2 用户管理核心代码
package com.second.hand.trading.server.controller;import com.second.hand.trading.server.enums.ErrorMsg;
import com.second.hand.trading.server.model.UserModel;
import com.second.hand.trading.server.service.UserService;
import com.second.hand.trading.server.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.sql.Timestamp;@RestController
@RequestMapping("user")
public class UserController {@Autowiredprivate UserService userService;/*** 注册账号* @param userModel* @return*/@PostMapping("sign-in")public ResultVo signIn(@RequestBody UserModel userModel) {System.out.println(userModel);userModel.setSignInTime(new Timestamp(System.currentTimeMillis()));if (userModel.getAvatar() == null || "".equals(userModel.getAvatar())) {userModel.setAvatar("https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png");}if (userService.userSignIn(userModel)) {return ResultVo.success(userModel);}return ResultVo.fail(ErrorMsg.REGISTER_ERROR);}/*** 登录,不安全,可伪造id,后期改进** @param accountNumber* @param userPassword* @param response* @return*/@RequestMapping("login")public ResultVo login(@RequestParam("accountNumber") @NotEmpty @NotNull String accountNumber,@RequestParam("userPassword") @NotEmpty @NotNull String userPassword,HttpServletResponse response) {UserModel userModel = userService.userLogin(accountNumber, userPassword);System.out.println("登录:" + userModel);System.out.println("===================================");System.out.println(accountNumber + " " + userPassword);System.out.println("===================================");if (null == userModel) {return ResultVo.fail(ErrorMsg.EMAIL_LOGIN_ERROR);}// 用户名或者密码为空if(accountNumber.equals("") || userPassword.equals("")){return ResultVo.fail(ErrorMsg.EMAIL_LOGIN_ERROR);}// 手机号长度不足11位if(userModel.getAccountNumber().length() != 11){return ResultVo.fail(ErrorMsg.EMAIL_LOGIN_ERROR);}if(userModel.getUserStatus()!=null&&userModel.getUserStatus().equals((byte) 1)){return ResultVo.fail(ErrorMsg.ACCOUNT_Ban);}Cookie cookie = new Cookie("shUserId", String.valueOf(userModel.getId()));
// cookie.setMaxAge(60 * 60 * 24 * 30);cookie.setPath("/");cookie.setHttpOnly(false);response.addCookie(cookie);return ResultVo.success(userModel);}/*** 退出登录** @param shUserId* @param response* @return*/@RequestMapping("logout")public ResultVo logout(@CookieValue("shUserId")@NotNull(message = "登录异常 请重新登录")@NotEmpty(message = "登录异常 请重新登录") String shUserId, HttpServletResponse response) {Cookie cookie = new Cookie("shUserId", shUserId);cookie.setMaxAge(0);cookie.setPath("/");cookie.setHttpOnly(true);response.addCookie(cookie);return ResultVo.success();}/*** 获取用户信息** @param id* @return*/@GetMapping("info")public ResultVo getOneUser(@CookieValue("shUserId") @NotNull(message = "登录异常 请重新登录")@NotEmpty(message = "登录异常 请重新登录")String id) {return ResultVo.success(userService.getUser(Long.valueOf(id)));}/*** 修改用户公开信息* @param id* @param userModel* @return*/@PostMapping("/info")public ResultVo updateUserPublicInfo(@CookieValue("shUserId") @NotNull(message = "登录异常 请重新登录")@NotEmpty(message = "登录异常 请重新登录")String id, @RequestBody UserModel userModel) {userModel.setId(Long.valueOf(id));if (userService.updateUserInfo(userModel)) {return ResultVo.success();}return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);}/*** 修改密码* @param id* @param oldPassword* @param newPassword* @return*/@GetMapping("/password")public ResultVo updateUserPassword(@CookieValue("shUserId") @NotNull(message = "登录异常 请重新登录")@NotEmpty(message = "登录异常 请重新登录") String id,@RequestParam("oldPassword") @NotEmpty @NotNull String oldPassword,@RequestParam("newPassword") @NotEmpty @NotNull String newPassword) {if (userService.updatePassword(newPassword,oldPassword,Long.valueOf(id))) {return ResultVo.success();}return ResultVo.fail(ErrorMsg.PASSWORD_RESET_ERROR);}
}
6 、功能视频演示
基于VUE的校园二手物品交易管理系统8
7 、 获取方式
👇 大家点赞、收藏、关注、评论啦 👇🏻获取联系方式,后台回复关键词:二手👇🏻
相关文章:
基于VUE的校园二手物品交易管理系统的设计与实现 (含源码+sql+视频导入教程)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于VUE的校园二手物品交易管理系统8拥有两种角色 管理员:闲置物品管理、订单管理、用户管理 用户:登录注册、购物车、发布闲置物品、评论、发货、收货地址管理等…...
pytest 常用的辅助函数和工具函数
pytest 常用的辅助函数和工具函数示例 # File: my_module.pydef fetch_data():return process datadef process_data():data fetch_data()return data.upper() import logging import sys import pytest#01-------------------------------pytest.fixture,sample_data 在测试…...
记录Java秋招面经(网上找的)
1.Mysql的存储机制,怎么落到库里面的? 当数据插入 MySQL 时,首先数据修改会在内存中的 Buffer Pool 中完成,同时记录写入 Redo Log 以保证事务的持久性。事务提交时,日志会被刷入磁盘,确保数据可以恢复。修…...
记录k8s重启之后kubelet无法启动的问题
重启机器后,kubelet没有自启动,手动启动失败,检查日志反馈找不到bootstrap-kubelet.conf这个文件。 systemctl start kubelet journalctl -u kubelet 57481 run.go:74] "command failed" err"failed to run Kubelet: unable …...
IA——网络操作设备VRP简介
一,VRP简介 二,网络设备的管理 (1)console口: (2)talnet: (3)SSH: 安全的远程登陆 (4)通过WEB页面登录: 三,命令行常见…...
Java项目: 基于SpringBoot+mysql企业客户管理系统(含源码+数据库+答辩PPT+毕业论文)
一、项目简介 本项目是一套基于SpringBootmysql企业客户管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功…...
基于STM32设计的智能安防系统(微信小程序)(218)
文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】整体构架【3】微信小程序开发思路1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要【5】项目背景1.4 开发工具的选择【1】设备端…...
tomcat redis minio nginx windows开机自启
tomcat 开机自启 命令 service.bat install 控制台输入 service.bat install 再到服务中去查看有没有注册成功,minio,redis,nginx 也是一样在服务里查看注册成功没 redis 开机自启 命令 redis-server.exe --service-install redis.windows.conf --loglevel ve…...
Docker构建镜像教程
目录 1. Docker 环境准备2. 编写 Dockerfile3. 构建 Docker 镜像4. 运行容器5. 管理镜像和容器6. 镜像的导出和导入6.1 导出 Docker 镜像6.2 导入 Docker 镜像6.3 导出与导入的实际场景6.4 压缩导出的镜像 7. 推送镜像到 Docker Hub8. Dockerfile 指令详解1. FROM2. RUN3. WORK…...
扑捉一只耿鬼(HTML文件)
图例: 代码: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>耿鬼</title><style>body {background: #fff;font-family: Comfortaa, sans-serif;}* {box-sizing:…...
Address localhost:1099 is already in use:tomcat频繁重启端口占用问题
错误提示 Unable to open debugger port (127.0.0.1:58198): java.net.SocketException "Socket closed" Address localhost:1099 is already in use 端口被占用 报错原因 由于短时间内频繁运行tomcat服务器。 为了避免出现这一错误。可以点击刷新uodate resourc…...
HTTPS SEO优势
搜索引擎优化(SEO)是提高网站在搜索引擎结果页(SERP)中的排名以吸引更多访问者的过程。HTTPS作为网站安全的标准,对SEO有着直接和间接的优势: 1. HTTPS作为排名信号 2014年,Google宣布HTTPS成…...
UE5 C++ 读取图片插件(一)
原来UE可以使用 static,之前不知道,一用就报错。 static TSharedPtr<IImageWrapper> GetImageWrapperByExtention(const FString InImagePath); //智能指针,方便追寻引用C,加载ImageWrapperstatic UTexture2D* LoadTexture2D(const FString& …...
C语言行地址列地址区别,内存的分配
开辟了10个字节的空间在栈中 "abc"常量在代码段 char a[10]"abc"; p:8个字节存"abc"的地址 "abc"常量在代码段中 char *p"abc" char *q"abc" p,q的值是一样的 到…...
Unity 一键修改图片缩放保存为当前的一半大小
用来压缩贴图大小还是比较方便的 支持 png,jpg,tga 话不多说 直接上代码 [MenuItem("Assets/扩展功能/缩放贴图一半尺寸(png | jpg | tga)", false)]static void ScaleHalfTextureSizeMenu(){foreach(var obj in Selection.objects) {Texture…...
Identifying User Goals from UI Trajectories论文学习
通过UI轨迹识别用户的需求。 这篇论文同样聚焦于UI agent,只是思路比较特别。他们想要通过训练agent通过用户的行为轨迹反推出他们想要干什么的能力来锻炼agent识别,理解,使用UI的能力。同时这个训练项目本身也有一定的实际意义,…...
[STM32]从零开始的STM32标准库环境搭建(小白向)
一、我们为什么要搭建STM32标准库开发环境 如果你对STM32有一定的了解,相信你已经认识了STM32的几种开发方式。基于STM32寄存器开发,基于ST官方的标准库开发,基于ST官方的HAL库开发。我们现在来了解一下这些库的优缺点。首先就是基于寄存器开…...
解决 Android 上的 .NET MAUI/Xamarin.AndroidX 应用调用 ASP.NET Core API 端点时 SSL 连接被拒绝的问题
从虚拟机调用本地API报各种 SSL 连接不上的错误,这给本地调试造成了极大的不便,在被这个问题困扰了多日以后,终于在GitHub上找到答案 基于这个 帖子 ,有一个回复 他写了一个帮助类,专门用来调试本地的API,…...
助贷CRM系统:为金融中介行业打造全新营销管理模式
助贷CRM(客户关系管理)系统是针对金融中介行业,特别是从事贷款助贷业务的机构设计的一套综合管理系统。该系统旨在通过数字化、智能化的手段,优化金融中介机构的营销、销售、客户管理及服务流程,提升运营效率ÿ…...
HBase 部署及shell操作
HBase 数据库 一、HBase 概述1.1 HBase 是什么HBase 的特点 二、HBase 模型及架构2.1 HBase 逻辑模型2.2 HBase 数据模型2.3 HBase 物理模型2.3.1 列簇物理模型2.3.2 Rowkey 字段排序2.3.3 Region 存储到不同节点2.3.4 Region 结构 2.4 HBase 基本架构 三、搭建 HBase 分布式集…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...
