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

基于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 管理员模块

管理员-用户管理

管理员-订单管理

管理员-违规用户

管理员-闲置管理1

管理员-闲置管理2

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文件)

图例&#xff1a; 代码&#xff1a; <!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优势

搜索引擎优化&#xff08;SEO&#xff09;是提高网站在搜索引擎结果页&#xff08;SERP&#xff09;中的排名以吸引更多访问者的过程。HTTPS作为网站安全的标准&#xff0c;对SEO有着直接和间接的优势&#xff1a; 1. HTTPS作为排名信号 2014年&#xff0c;Google宣布HTTPS成…...

UE5 C++ 读取图片插件(一)

原来UE可以使用 static,之前不知道&#xff0c;一用就报错。 static TSharedPtr<IImageWrapper> GetImageWrapperByExtention(const FString InImagePath); //智能指针&#xff0c;方便追寻引用C,加载ImageWrapperstatic UTexture2D* LoadTexture2D(const FString& …...

C语言行地址列地址区别,内存的分配

开辟了10个字节的空间在栈中 "abc"常量在代码段 char a[10]"abc"; p&#xff1a;8个字节存"abc"的地址 "abc"常量在代码段中 char *p"abc" char *q"abc" p,q的值是一样的 到…...

Unity 一键修改图片缩放保存为当前的一半大小

用来压缩贴图大小还是比较方便的 支持 png,jpg,tga 话不多说 直接上代码 [MenuItem("Assets/扩展功能/缩放贴图一半尺寸&#xff08;png | jpg | tga&#xff09;", false)]static void ScaleHalfTextureSizeMenu(){foreach(var obj in Selection.objects) {Texture…...

Identifying User Goals from UI Trajectories论文学习

通过UI轨迹识别用户的需求。 这篇论文同样聚焦于UI agent&#xff0c;只是思路比较特别。他们想要通过训练agent通过用户的行为轨迹反推出他们想要干什么的能力来锻炼agent识别&#xff0c;理解&#xff0c;使用UI的能力。同时这个训练项目本身也有一定的实际意义&#xff0c;…...

[STM32]从零开始的STM32标准库环境搭建(小白向)

一、我们为什么要搭建STM32标准库开发环境 如果你对STM32有一定的了解&#xff0c;相信你已经认识了STM32的几种开发方式。基于STM32寄存器开发&#xff0c;基于ST官方的标准库开发&#xff0c;基于ST官方的HAL库开发。我们现在来了解一下这些库的优缺点。首先就是基于寄存器开…...

解决 Android 上的 .NET MAUI/Xamarin.AndroidX 应用调用 ASP.NET Core API 端点时 SSL 连接被拒绝的问题

从虚拟机调用本地API报各种 SSL 连接不上的错误&#xff0c;这给本地调试造成了极大的不便&#xff0c;在被这个问题困扰了多日以后&#xff0c;终于在GitHub上找到答案 基于这个 帖子 &#xff0c;有一个回复 他写了一个帮助类&#xff0c;专门用来调试本地的API&#xff0c;…...

助贷CRM系统:为金融中介行业打造全新营销管理模式

助贷CRM&#xff08;客户关系管理&#xff09;系统是针对金融中介行业&#xff0c;特别是从事贷款助贷业务的机构设计的一套综合管理系统。该系统旨在通过数字化、智能化的手段&#xff0c;优化金融中介机构的营销、销售、客户管理及服务流程&#xff0c;提升运营效率&#xff…...

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 分布式集…...

别再吹牛了,% Vibe Coding 存在无法自洽的逻辑漏洞!蕾

简介 langchain中提供的chain链组件&#xff0c;能够帮助我门快速的实现各个组件的流水线式的调用&#xff0c;和模型的问答 Chain链的组成 根据查阅的资料&#xff0c;langchain的chain链结构如下&#xff1a; $$Input \rightarrow Prompt \rightarrow Model \rightarrow Outp…...

Papa Parse解析故障排查指南:从异常捕获到性能优化的实战方案

Papa Parse解析故障排查指南&#xff1a;从异常捕获到性能优化的实战方案 【免费下载链接】PapaParse Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input 项目地址: https://gitcode.com/gh_mirrors/pa/PapaParse …...

Fish Speech 1.5企业应用:会议纪要自动转语音播报方案

Fish Speech 1.5企业应用&#xff1a;会议纪要自动转语音播报方案 1. 企业会议纪要处理的痛点与解决方案 在日常企业运营中&#xff0c;会议纪要的整理和传达往往面临三大挑战&#xff1a; 效率瓶颈&#xff1a;人工整理会议录音平均耗时1-2小时/场&#xff0c;关键信息传递…...

3分钟搞定:IDM无限试用重置工具完整使用指南

3分钟搞定&#xff1a;IDM无限试用重置工具完整使用指南 【免费下载链接】idm-trial-reset Use IDM forever without cracking 项目地址: https://gitcode.com/gh_mirrors/id/idm-trial-reset 你是否曾因Internet Download Manager&#xff08;IDM&#xff09;试用期结束…...

Altium Designer布线时,线宽规则明明设了为啥不听话?手把手教你检查这两个关键开关

Altium Designer布线时线宽规则失效&#xff1f;两个隐藏开关决定成败 刚接触Altium Designer的工程师们经常遇到这样的场景&#xff1a;明明在规则编辑器里精心设置了线宽参数&#xff0c;实际布线时软件却像没看见这些规则一样我行我素。这种"规则失灵"现象往往让新…...

类、实例、成员与子类:四个最容易混淆的基础概念

在知识表示、知识图谱和本体建模中&#xff0c;“类”“实例”“成员”“子类”是最常用的几个基础概念&#xff0c;也是最容易混淆的一组概念。很多初学者会把“实例”和“成员”混为一谈&#xff0c;把“子类关系”和“成员关系”混为一谈&#xff0c;甚至把“类”和“实例”…...

Krita智能选区插件:AI驱动的图像分割解决方案

Krita智能选区插件&#xff1a;AI驱动的图像分割解决方案 【免费下载链接】krita-vision-tools Krita plugin which adds selection tools to mask objects with a single click, or by drawing a bounding box. 项目地址: https://gitcode.com/gh_mirrors/kr/krita-vision-t…...

开箱即用!AI股票分析师快速部署指南:基于Ollama框架的完全私有化体验

开箱即用&#xff01;AI股票分析师快速部署指南&#xff1a;基于Ollama框架的完全私有化体验 1. 引言&#xff1a;为什么需要私有化AI股票分析工具 在金融投资领域&#xff0c;及时准确的股票分析是决策的关键。然而&#xff0c;传统分析工具存在几个痛点&#xff1a;一是依赖…...

中兴光猫工厂模式终极开启指南:zteOnu工具完整使用教程

中兴光猫工厂模式终极开启指南&#xff1a;zteOnu工具完整使用教程 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否遇到过想要调整中兴光猫的高级设置&#xff0c;却发现普通用户…...

PyTorch 2.9实战:用Profiler分析BERT微调,找出LayerNorm性能瓶颈

PyTorch 2.9实战&#xff1a;用Profiler分析BERT微调&#xff0c;找出LayerNorm性能瓶颈 1. 为什么需要分析BERT微调性能 在自然语言处理任务中&#xff0c;BERT模型的微调是常见的实践场景。然而随着模型规模增大&#xff0c;训练过程中的性能问题日益凸显。许多开发者会遇到…...