——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Node.js≥14
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
❗没学过node.js的不要搞前后端分离项目
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明









基于javaweb的SpringBoot网上书城管理系统(java+springboot+maven+vue+elementui+axios+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项目:是; 6.是否为前后端分离项目:是
技术栈
后台:SpringBoot+Mybatis-plus+Mybatis+lombok插件
前台:Vue+Vue Router+ELementUI+Axios
使用说明
先启动后端再启动前端 后端: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入后端项目end文件夹,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,后端运行成功后再运行前端项目;
前端: 1、确保安装好node及npm,命令行切换到front所在路径 2、执行npm run serve启动项目
后台地址:http://localhost:8001/login 用户: tom/123456 管理员: admin/admin
书城首页展示:
添加购物车展示:
订单页面列表展示:
收藏夹页面展示:
后台管理统计页面:
后台管理订单管理页面:
轮播图展示管理:
后台商品管理展示:
后台登录页面展示:
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| 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)); }
}
@Service public class LogService extends ServiceImpl<LogMapper, Log> {
@Resource
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| 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 OrderGoods orderGoods) { orderGoodsService.save(orderGoods); return Result.success(); }
@PutMapping public Result<?> update(@RequestBody OrderGoods orderGoods) { orderGoodsService.updateById(orderGoods); return Result.success(); }
@DeleteMapping("/{id}") public Result<?> delete(@PathVariable Long id) { orderGoodsService.removeById(id); return Result.success(); }
@GetMapping("/{id}") public Result<?> findById(@PathVariable Long id) { return Result.success(orderGoodsService.getById(id)); }
@GetMapping public Result<?> findAll() { List<OrderGoods> list = orderGoodsService.list(); return Result.success(list); }
@GetMapping("/page") public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name, @RequestParam(required = false, defaultValue = "1") Integer pageNum,
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| }
@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)); }
}
@Service public class LogService extends ServiceImpl<LogMapper, Log> {
@Resource private LogMapper logMapper;
@Resource private HttpServletRequest request;
@Resource private UserService userService;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| @GetMapping public Result<?> findAll() { List<Goods> list = goodsService.findAll(); return Result.success(list); }
@GetMapping("/recommend") public Result<?> recommend() { List<Goods> list = goodsService.recommend(); return Result.success(list); }
@GetMapping("/sales") public Result<?> sales() { List<Goods> list = goodsService.sales(); return Result.success(list); }
@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); }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| if (user == null) { return Result.success(new Page<>()); } LambdaQueryWrapper<Collect> query = Wrappers.<Collect>lambdaQuery().eq(Collect::getUserId, getUser().getId()).orderByDesc(Collect::getId); IPage<Collect> page = collectService.page(new Page<>(pageNum, pageSize), query); return Result.success(page); }
}
@RestController @RequestMapping("/files") public class FileController {
@PostMapping("/upload") public Result<String> upload(MultipartFile file) {
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| }
@GetMapping("/page/front") public Result<?> Front( @RequestParam(required = false, defaultValue = "1") Integer pageNum, @RequestParam(required = false, defaultValue = "10") Integer pageSize) { User user = getUser(); if(user == null) { return Result.success(new Page<>()); } LambdaQueryWrapper<Address> query = Wrappers.<Address>lambdaQuery().orderByDesc(Address::getId); query.eq(Address::getUserId, getUser().getId()); IPage<Address> page = addressService.page(new Page<>(pageNum, pageSize), query); return Result.success(page); }
}
@RestController @RequestMapping("/api/message") public class MessageController { @Resource private MessageService messageService; @Resource
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=121524190701201jw
https://javayms.pages.dev?id=121524190701201jw