基于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));







相关推荐
众少成多积小致巨11 分钟前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
东坡白菜21 分钟前
破局全栈:前端开发的Java入门实战记录—JPA(2)
java·后端
Jim6001 小时前
【吃透 MySQL InnoDB连载】第 1 章・解密线上数据库高频故障
mysql
SimonKing7 小时前
艹,维护AI写的代码,我心态崩了......
java·后端·程序员
GreatSQL7 小时前
gt-checksum v4.0.0 新功能解读系列文章(4):SSL 加密连接——数据校验传输安全再升级
mysql
用户298698530147 小时前
Java Word 文档样式进阶:段落与文本背景色设置完全指南
java·后端
小bo波1 天前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择
java·nio·io流·后端开发·文件复制
用户3521802454751 天前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
nanxun8862 天前
记一次诡异的 Docker 容器"串包"故障排查
java
用户1563068103512 天前
Day01 | Java 基础(Java SE)
java