作者主页:源码空间站2022
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
基于SpringBoot Vue的校园二手书交易管理系统
角色:管理员、卖家、用户
管理员:管理员登录系统后,可以对首页、个人中心、用户管理、卖家用户管理、图书分类管理、二手图书管理、求购图书管理、求购回复管理、留言反馈、系统管理、订单管理等功能模块
卖家:卖家用户登录系统后,可以对首页、个人中心、二手图书管理、求购图书管理、求购回复管理、订单管理等
用户:用户登录系统后,可以对首页、个人中心、二手图书管理、求购图书管理、求购回复管理、订单管理
使用人群:
正在做毕设的学生,或者需要项目实战练习的Java学习者
由于本程序规模不大,可供课程设计,毕业设计学习演示之用
环境需要
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
运行截图
论文
前台界面
后管界面
相关代码
GoodsController
package com.example.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.auth0.jwt.JWT;
import com.example.common.Result;
import com.example.service.UserService;
import com.example.entity.Goods;
import com.example.service.GoodsService;
import com.example.entity.User;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.List;
@RestController
@RequestMapping("/api/goods")
public class GoodsController {
@Resource
private GoodsService goodsService;
@Resource
private HttpServletRequest request;
@Resource
private UserService userService;
public User getUser() {
String token = request.getHeader("token");
String username = JWT.decode(token).getAudience().get(0);
return userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
}
@PostMapping
public Result<?> save(@RequestBody Goods goods) {
goods.setCreateTime(DateUtil.now());
goodsService.save(goods);
return Result.success();
}
@PutMapping
public Result<?> update(@RequestBody Goods goods) {
goodsService.updateById(goods);
return Result.success();
}
@DeleteMapping("/{id}")
public Result<?> delete(@PathVariable Long id) {
goodsService.removeById(id);
return Result.success();
}
@GetMapping("/{id}")
public Result<?> findById(@PathVariable Long id) {
Goods goods = goodsService.getById(id);
goods.setRealPrice(goods.getPrice().multiply(BigDecimal.valueOf(goods.getDiscount())));
return Result.success(goods);
}
@GetMapping
public Result<?> findAll() {
List<Goods> list = goodsService.findAll();
return Result.success(list);
}
/**
* 推荐商品
* @return
*/
@GetMapping("/recommend")
public Result<?> recommend() {
List<Goods> list = goodsService.recommend();
return Result.success(list);
}
/**
* 推热销商品
* @return
*/
@GetMapping("/sales")
public Result<?> sales() {
List<Goods> list = goodsService.sales();
return Result.success(list);
}
/**
* 根据分类id查询商品
* @param id
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("/byCategory/{id}")
public Result<?> findByCategory(@PathVariable Long id,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
IPage<Goods> page = goodsService.pageByCategory(new Page<>(pageNum, pageSize), id);
return Result.success(page);
}
@GetMapping("/page")
public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
IPage<Goods> page = goodsService.findPage(new Page<>(pageNum, pageSize), name);
return Result.success(page);
}
}
NoticeController
package com.example.controller;
import cn.hutool.core.date.DateUtil;
import com.auth0.jwt.JWT;
import com.example.common.Result;
import com.example.service.UserService;
import com.example.entity.Notice;
import com.example.service.NoticeService;
import com.example.entity.User;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
@RestController
@RequestMapping("/api/notice")
public class NoticeController {
@Resource
private NoticeService noticeService;
@Resource
private HttpServletRequest request;
@Resource
private UserService userService;
public User getUser() {
String token = request.getHeader("token");
String username = JWT.decode(token).getAudience().get(0);
return userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
}
@PostMapping
public Result<?> save(@RequestBody Notice notice) {
notice.setTime(DateUtil.formatDateTime(new Date()));
return Result.success(noticeService.save(notice));
}
@PutMapping
public Result<?> update(@RequestBody Notice notice) {
return Result.success(noticeService.updateById(notice));
}
@DeleteMapping("/{id}")
public Result<?> delete(@PathVariable Long id) {
noticeService.removeById(id);
return Result.success();
}
@GetMapping("/{id}")
public Result<?> findById(@PathVariable Long id) {
return Result.success(noticeService.getById(id));
}
@GetMapping
public Result<?> findAll() {
return Result.success(noticeService.list());
}
@GetMapping("/page")
public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
LambdaQueryWrapper<Notice> query = Wrappers.<Notice>lambdaQuery().like(Notice::getTitle, name).orderByDesc(Notice::getId);;
return Result.success(noticeService.page(new Page<>(pageNum, pageSize), query));
}
}
如果也想学习本系统,下面领取。关注并回复:122springboot