基于Springboot+Vue图书商城系统

目录

1、系统架构

2、系统介绍

3、运行环境

4、系统演示

 5、前端搭建

6、功能展示

7、代码展示


1、系统架构

后台: SpringBoot + Mybatis-plus + Mybatis + Hutool工具包 + lombok插件

前台:Vue + Vue Router + ELementUI + Axios

2、系统介绍

功能:首页推荐(默认根据用户买过的商品进行推荐,如果没买过则根据商品销量推荐)、轮播图管理、商品、订单、购物车、商品评论、商品评论点赞、商品收藏、商品点赞、订单支付、公告。

角色:管理员、商家、用户 后台功能:商品销量统计,用户管理,角色管理,菜单管理,公告管理,日志管理,轮播图管理,商品分类管理,商品管理,订单管理,地址管理。

3、运行环境

JDK:1.8

Node: 12.13.1

数据库:Mysql5.7 +

浏览器:Chrome

需要自己安装JDK、Node、Mysql、 IDEA 、Navicat等软件

4、系统演示

基于Springboot+Vue图书商城系统_第1张图片

基于Springboot+Vue图书商城系统_第2张图片

基于Springboot+Vue图书商城系统_第3张图片

基于Springboot+Vue图书商城系统_第4张图片

 5、前端搭建

  • 使用idea或vscode、hbuildx打开项目

  • 配置npm源为国内镜像,否则下载会很慢(必须先下载安装好node)

    npm config set registry https://registry.npm.taobao.org
  • 执行npm i命令进行依赖的安装

  • 执行npm run serve 运行项目

6、功能展示

基于Springboot+Vue图书商城系统_第5张图片

7、代码展示

package com.example.controller;

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.Address;
import com.example.service.AddressService;
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.util.List;

@RestController
@RequestMapping("/api/address")
public class AddressController {
    @Resource
    private AddressService addressService;
    @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.lambdaQuery().eq(User::getUsername, username));
    }

    @PostMapping
    public Result save(@RequestBody Address address) {
        addressService.save(address);
        return Result.success();
    }

    @PutMapping
    public Result update(@RequestBody Address address) {
        addressService.updateById(address);
        return Result.success();
    }

    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Long id) {
        addressService.removeById(id);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result findById(@PathVariable Long id) {
        return Result.success(addressService.getById(id));
    }

    @GetMapping
    public Result findAll() {
        LambdaQueryWrapper
query = Wrappers.
lambdaQuery().orderByDesc(Address::getId); query.eq(Address::getUserId, getUser().getId()); List
list = addressService.list(query); return Result.success(list); } @GetMapping("/page") public Result findPage( @RequestParam(required = false, defaultValue = "1") Integer pageNum, @RequestParam(required = false, defaultValue = "10") Integer pageSize) { LambdaQueryWrapper
query = Wrappers.
lambdaQuery().orderByDesc(Address::getId); // query.eq(Address::getUserId, getUser().getId()); IPage
page = addressService.page(new Page<>(pageNum, pageSize), query); return Result.success(page); } @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
query = Wrappers.
lambdaQuery().orderByDesc(Address::getId); query.eq(Address::getUserId, getUser().getId()); IPage
page = addressService.page(new Page<>(pageNum, pageSize), query); return Result.success(page); } }

你可能感兴趣的:(SpringBoot,后端,前后端分离,spring,boot,vue.js,mybatis)