基于javaweb和mysql的springboot校园二手书交易管理系统(java+springboot+vue+elementui+layui+mysql)

基于javaweb和mysql的springboot校园二手书交易管理系统(java+springboot+vue+elementui+layui+mysql)

私信源码获取及调试交流
**私信**源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行

前端:WebStorm/VSCode/HBuilderX等均可

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb的SpringBoot校园二手书交易管理系统(java+springboot+vue+elementui+layui+mysql)

项目介绍

基于SpringBoot Vue的校园二手书交易管理系统

角色:管理员、卖家、用户

管理员:管理员登录系统后,可以对首页、个人中心、用户管理、卖家用户管理、图书分类管理、二手图书管理、求购图书管理、求购回复管理、留言反馈、系统管理、订单管理等功能模块

卖家:卖家用户登录系统后,可以对首页、个人中心、二手图书管理、求购图书管理、求购回复管理、订单管理等

用户:用户登录系统后,可以对首页、个人中心、二手图书管理、求购图书管理、求购回复管理、订单管理

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;

技术栈

后端:SpringBoot+Mybaits

前端:Vue+ElementUI+Layui+HTML+CSS+JS

使用说明

项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,控制台提示运行成功后再去运行前端项目; 5. 管理员用户名密码:admin/admin 普通用户名密码:user/123456

java 复制代码
good.setGoodSecondType(typeService.getSecondTypeById(good.getSecondTypeId()));

List<User> userList = userService.getAllUser();

List<FirstType> firstTypeList = typeService.getAllFirstType();

List<Order> orderList = orderService.getOrderList();

model.addAttribute("goodList", goodList);

model.addAttribute("userList", userList);

model.addAttribute("firstTypeList", firstTypeList);

model.addAttribute("orderList", orderList);

return "admin/adminPage";

@RequestMapping(value = "/user/update/status/{statusId}&{userId}", method = RequestMethod.GET)

public ResponseEntity updateUserStatus(@PathVariable Integer statusId,

@PathVariable Integer userId){

Boolean success = userService.updateUserStatus(statusId, userId);
java 复制代码
model.addAttribute("orderInfo", orderInfo);

model.addAttribute("orders", orders);

System.out.println("sellerInfo.size:" + orders.size());

return "user/sellerInfo";

@RequestMapping(value = "/user/order/delete/{orderId}", method = RequestMethod.GET)

public ResponseEntity deleteOrderById(@PathVariable Integer orderId) {

Boolean success;

success = orderService.deleteOrderById(orderId) > 0;

return ResponseEntity.ok(success);

@RequestMapping(value = "/user/sellerOrder/delete/{orderId}&{goodId}", method = RequestMethod.GET)

public ResponseEntity deleteSellerOrderById(@PathVariable Integer orderId,

@PathVariable Integer goodId) {
java 复制代码
String contentType = photo.getContentType();

String imageName = contentType.substring(contentType

.indexOf("/") + 1);

String name = fileName + "." + imageName;

photo.transferTo(new File(pathRoot + name));

String photoUrl = filePath + "/" + name;

user.setPhotoUrl(photoUrl);

} else {

String photoUrl = userService.getUserById(user.getId())

.getPhotoUrl();

user.setPhotoUrl(photoUrl);

insertSuccess = userService.updateUser(user);

if (insertSuccess) {
java 复制代码
user.setPhotoUrl(photoUrl);

insertSuccess = userService.updateUser(user);

if (insertSuccess) {

session.removeAttribute("user");

session.setAttribute("user", user);

return "redirect:/user/userProfile";

} else {

status = "修改失败!";

model.addAttribute("user", user);

model.addAttribute("status", status);

return "user/userEdit";
java 复制代码
if (success) {

success = orderService.deleteOrderById(orderId) > 0;

return ResponseEntity.ok(success);

@RequestMapping(value = "/user/order/update/status/{orderId}&{statusId}", method = RequestMethod.GET)

public ResponseEntity updateOrderStatus(@PathVariable Integer orderId,

@PathVariable Integer statusId) {

Boolean success = orderService.updateStatus(statusId, orderId) > 0;

if (success) {

Order order = orderService.getOrderById(orderId);

return ResponseEntity.ok(order);
java 复制代码
if (admin != null){

String mdsPass = DigestUtils.md5DigestAsHex((password + admin.getCode()).getBytes());

//            if (!mdsPass .equals(admin.getPassword())){

//                message = "用户密码错误!";

//            }

if (!password .equals(admin.getPassword())){

message = "用户密码错误!";

} else if (admin.getRoleId() != 101){

message = "用户没有权限访问!";

} else {

session.setAttribute("admin",admin);

return "redirect:/admin/adminPage";
java 复制代码
} else {

return ResponseEntity.ok("密码修改失败!");

} else {

return ResponseEntity.ok("原密码输入不正确!");

 管理员控制层:

@Controller

@RequestMapping(value = "admin")

public class AdminController {

private final UserService userService;

private final GoodService goodService;

private final TypeService typeService;

private final OrderService orderService;
java 复制代码
+ randomString.getRandomString(10);

String contentType = photo.getContentType();

String imageName = contentType.substring(contentType

.indexOf("/") + 1);

String name = fileName + "." + imageName;

photo.transferTo(new File(pathRoot + name));

String photoUrl = filePath + "/" + name;

user.setPhotoUrl(photoUrl);

} else {

String photoUrl = userService.getUserById(user.getId())
java 复制代码
public ResponseEntity updateUserStatus(@PathVariable Integer statusId,

@PathVariable Integer userId){

Boolean success = userService.updateUserStatus(statusId, userId);

if (success){

List<User> userList = userService.getAllUser();

return ResponseEntity.ok(userList);

return ResponseEntity.ok(success);

@RequestMapping(value = "/user/delete/{userId}", method = RequestMethod.GET)

public ResponseEntity deleteUser(@PathVariable Integer userId){

Boolean success = userService.deleteUser(userId);

if (success){

List<User> userList = userService.getAllUser();
java 复制代码
} else {

orderService.deleteOrderById(order.getId());

return ResponseEntity.ok(success);

return ResponseEntity.ok(success);

@RequestMapping(value = "/user/order/allOrder", method = RequestMethod.GET)

public ResponseEntity getAllOrders() {

List<Order> orderList = orderService.getOrderList();

return ResponseEntity.ok(orderList);

用户管理控制层:

@Controller

@RequestMapping(value = "user")
java 复制代码
@RequestMapping(value = "/user/order/allOrder", method = RequestMethod.GET)

public ResponseEntity getAllOrders() {

List<Order> orderList = orderService.getOrderList();

return ResponseEntity.ok(orderList);

用户管理控制层:

@Controller

@RequestMapping(value = "user")

public class UserController {

private final GoodService goodService;

private final OrderService orderService;

private final ReviewService reviewService;
java 复制代码
User user = (User) session.getAttribute("user");

if (user == null) {

return "redirect:/";

List<Collect> collects = collectService

.getCollectByUserId(user.getId());

for (Collect collect : collects) {

collect.setGood(goodService.getGoodById(collect.getGoodId()));

List<Good> goods = goodService.getGoodByUserId(user.getId());

List<Order> orders = orderService.getOrderByCustomerId(user.getId());

List<Review> reviews = reviewService.gerReviewByToUserId(user.getId());
java 复制代码
model.addAttribute("orderInfo", orderInfo);

model.addAttribute("orders", orders);

return "user/orderInfo";

@RequestMapping(value = "/user/sellerInfo", method = RequestMethod.GET)

public String getSellerInfo(ModelMap model,

@RequestParam(value = "orderId", required = false) Integer orderId,

HttpSession session) {

User sessionUser = (User) session.getAttribute("user");

if (sessionUser == null) {

return "redirect:/";

Order orderInfo = orderService.getOrderById(orderId);

List<Order> orders = orderService.getOtherOrderBySellerId(

sessionUser.getId(), orderId);
java 复制代码
public String postAdminLogin(ModelMap model,

@RequestParam(value = "email", required = false) String email,

@RequestParam(value = "password", required = false) String password,

HttpSession session) {

User admin = userService.getUserByEmail(email);

String message;

if (admin != null){

String mdsPass = DigestUtils.md5DigestAsHex((password + admin.getCode()).getBytes());

//            if (!mdsPass .equals(admin.getPassword())){

//                message = "用户密码错误!";

//            }

if (!password .equals(admin.getPassword())){
java 复制代码
model.addAttribute("sellGoods", sellGoods);

model.addAttribute("reviews", reviews);

model.addAttribute("replies", replies);

return "user/userEdit";

@RequestMapping(value = "/userEdit", method = RequestMethod.POST)

public String postUserEdit(ModelMap model, @Valid User user,

HttpSession session,

@RequestParam(value = "photo", required = false) MultipartFile photo)

throws IOException {

String status;

Boolean insertSuccess;

User sessionUser = (User) session.getAttribute("user");

user.setId(sessionUser.getId());
java 复制代码
collect.setGood(goodService.getGoodById(collect.getGoodId()));

List<Good> goods = goodService.getGoodByUserId(user.getId());

List<Order> orders = orderService.getOrderByCustomerId(user.getId());

List<Review> reviews = reviewService.gerReviewByToUserId(user.getId());

List<Reply> replies = reviewService.gerReplyByToUserId(user.getId());

List<Order> sellGoods = orderService.getOrderBySellerId(user.getId());

model.addAttribute("collects", collects);

model.addAttribute("goods", goods);

model.addAttribute("orders", orders);

model.addAttribute("reviews", reviews);

model.addAttribute("replies", replies);

model.addAttribute("sellGoods", sellGoods);

return "user/userProfile";
java 复制代码
if (!photo.isEmpty()) {

RandomString randomString = new RandomString();

FileCheck fileCheck = new FileCheck();

String filePath = "/statics/image/photos/" + user.getId();

String pathRoot = fileCheck.checkGoodFolderExist(filePath);

String fileName = user.getId()

+ randomString.getRandomString(10);

String contentType = photo.getContentType();

String imageName = contentType.substring(contentType

.indexOf("/") + 1);

String name = fileName + "." + imageName;

photo.transferTo(new File(pathRoot + name));







相关推荐
毕设源码-邱学长2 小时前
【开题答辩全过程】以 校园博客系统 为例,包含答辩的问题和答案
java
毕设源码-赖学姐2 小时前
【开题答辩全过程】以 小学体育用品管理系统为例,包含答辩的问题和答案
java
SimonKing2 小时前
GitHub热榜1k星影视壳(OuonnkiTV)遇上AI影视源
java·后端·程序员
创梦流浪人2 小时前
Soli Admin:面向复杂业务场景的模块化企业后台基础平台
java·erp·后台管理系统
程序员侠客行2 小时前
Tomcat 网络I/O模型浅析
java·tomcat·web
一直都在5722 小时前
AQS详解
java·开发语言
sheji34162 小时前
【开题答辩全过程】以 校园帮系统为例,包含答辩的问题和答案
java·spring boot
koping_wu2 小时前
【Java并发】CompletableFuture详解:常用API和底层原理
java·开发语言·python
填满你的记忆2 小时前
《Java 面试常见题型(2026最新版,背完直接能面)》
java·开发语言