基于javaweb+mysql的springboot书城商城系统(java+springboot+vue+maven+mybatis+mysql)

基于javaweb+mysql的springboot书城商城系统(java+springboot+vue+maven+mybatis+mysql)

运行环境

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

开发工具

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

前端:WebStorm/VSCode/HBuilderX等均可

适用

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

功能说明

基于javaweb+mysql的SpringBoot书城商城系统(java+springboot+vue+maven+mybatis+mysql)

一、项目运行 环境配置:

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。


@RestController
@RequestMapping("/api/msslyyAddressMessaget")
@Api(tags = "收货地址表")
public class MsslyyAddressMessagetController {
    @Resource
    private MsslyyAddressMessagetService msslyyAddressMessagetService;
    @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));
    }

    @ApiOperation(value = "根据用户id查询多条收货地址",notes = "")
    @GetMapping("/findListById/{id}")
    public Result<?> findListById(@PathVariable Long id) {
        QueryWrapper<MsslyyAddressMessaget> queryWrapper=new QueryWrapper<>();
        queryWrapper.lambda().eq(MsslyyAddressMessaget::getUserId,id);
        return Result.success(msslyyAddressMessagetService.list(queryWrapper));
    }

    @ApiOperation(value = "新增收货地址",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody MsslyyAddressMessaget msslyyAddressMessaget) {
        msslyyAddressMessagetService.save(msslyyAddressMessaget);
        return Result.success();
    }

    @ApiOperation(value = "更新收货地址",notes = "")
    @PutMapping
    public Result<?> update(@RequestBody MsslyyAddressMessaget msslyyAddressMessaget) {
        msslyyAddressMessagetService.updateById(msslyyAddressMessaget);
        return Result.success();
        queryWrapper.eq(User::getUsername,username);
        return Result.success(userService.getOne(queryWrapper));
    }

    /**
     * 登录
     *
     * @param user
     * @return
     */
    @ApiOperation(value = "后台用户登录",notes = "")
    @PostMapping("/login")
    public Result<User> login(@RequestBody User user) {
        User res = userService.login(user);
        // 生成token
        String token = JWT.create().withAudience(res.getUsername()).sign(Algorithm.HMAC256(res.getPassword()));
        res.setToken(token);

        logService.log(user.getUsername(), StrUtil.format("用户 {} 登录系统", user.getUsername()));
        return Result.success(res);
    }

    /**
     * 注册
     *
     * @param user
     * @param request
     * @return
     */
    @ApiOperation(value = "后台用户注册",notes = "")
    @PostMapping("/register")
    public Result<User> register(@RequestBody User user, HttpServletRequest request) {
        if (user.getPassword() == null) {
            user.setPassword("123456");
        }
        User dbUser = userService.register(user);
        request.getSession().setAttribute("user", user);

        logService.log(user.getUsername(), StrUtil.format("用户 {} 注册账号成功", user.getUsername()));
        return Result.success(dbUser);
    }

    @ApiOperation(value = "新增后台用户",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody User user) {
        if (user.getPassword() == null) {
            user.setPassword("123456");
        }
        logService.log(StrUtil.format("新增用户:{} ", user.getUsername()));
        return Result.success(userService.save(user));
    }
        return userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
    }

    @ApiOperation(value = "新增图书",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody MsslyyBook msslyyBook) {
        msslyyBookService.save(msslyyBook);
        return Result.success();
    }

    @ApiOperation(value = "下单之后扣除图书数量",notes = "")
    @PostMapping("/decrQuantity/{bookId}/{quantity}")
    public Result<?> decrQuantity(@PathVariable Long bookId,@PathVariable Integer quantity) {
        MsslyyBook book = msslyyBookService.getById(bookId);
        book.setBookQuantityOutput(book.getBookQuantityOutput()+quantity);
        boolean b = msslyyBookService.updateById(book);
        return Result.success(b);
    }

    @ApiOperation(value = "更新图书",notes = "")
    @PutMapping
    public Result<?> update(@RequestBody MsslyyBook msslyyBook) {
        msslyyBookService.updateById(msslyyBook);
        return Result.success();
    }

    @ApiOperation(value = "删除图书",notes = "")
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        msslyyBookService.removeById(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(msslyyBookService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<?> findAll() {
        QueryWrapper<MsslyyBook> queryWrapper=new QueryWrapper<>();
        LambdaQueryWrapper<MsslyyBook> msslyyBookLambdaQueryWrapper = queryWrapper.lambda().orderByDesc(MsslyyBook::getId);
        List<MsslyyBook> list = msslyyBookService.list(msslyyBookLambdaQueryWrapper);
        return Result.success(list);
    }


        logService.log(user.getUsername(), StrUtil.format("用户 {} 注册账号成功", user.getUsername()));
        return Result.success(dbUser);
    }

    @ApiOperation(value = "新增后台用户",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody User user) {
        if (user.getPassword() == null) {
            user.setPassword("123456");
        }
        logService.log(StrUtil.format("新增用户:{} ", user.getUsername()));
        return Result.success(userService.save(user));
    }

    @ApiOperation(value = "更新后台用户",notes = "")
    @PutMapping
    public Result<?> update(@RequestBody User user) {
        logService.log(StrUtil.format("更新用户:{} ", user.getUsername()));
        return Result.success(userService.updateById(user));
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        User user = userService.getById(id);
        logService.log(StrUtil.format("删除用户 {} ", user.getUsername()));

        userService.removeById(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<User> findById(@PathVariable Long id) {
        return Result.success(userService.findById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<List<User>> findAll() {
        return Result.success(userService.list());
    }

    @ApiOperation(value = "分页",notes = "")
    @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<MsslyyWallet> query = Wrappers.<MsslyyWallet>lambdaQuery().orderByDesc(MsslyyWallet::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyWallet::getUserId, name);
        }
        IPage<MsslyyWallet> page = msslyyWalletService.page(new Page<>(pageNum, pageSize), query);
        return Result.success(page);
    }

}

@RestController
@RequestMapping("/api/msslyyLabel")
@Api(tags = "标签表")
public class MsslyyLabelController {
    @Resource
    private MsslyyLabelService msslyyLabelService;
    public Result<?> getBookListById2(
            @PathVariable Long id) {
        List books = msslyyWishlistService.getBookListById(id);
        return Result.success(books);
    }

    @GetMapping("/getFootprintById/{id}")
    public Result<?> getFootprintById(
            @PathVariable Long id,
            @RequestParam(required = false, defaultValue = "1") Integer pageNum,
            @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        List books = msslyyFootprintService.getFootprintById(id);
        Page pages = pageUtils.getPages(pageNum, pageSize, books);
        return Result.success(pages);
    }

    @GetMapping("/getCartById/{id}")
    public Result<?> getCartById(
            @PathVariable Long id,
            @RequestParam(required = false, defaultValue = "1") Integer pageNum,
            @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        List books = msslyyCartService.getCartById(id);
        Page pages = pageUtils.getPages(pageNum, pageSize, books);
        return Result.success(pages);
    }

}


@RestController
@RequestMapping("/api/msslyyCategory")
@Api(tags = "图书分类表")
public class MsslyyCategoryController {
    @Resource
    private MsslyyCategoryService msslyyCategoryService;
    @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));
    }

    @ApiOperation(value = "新增图书分类",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody MsslyyCategory msslyyCategory) {

@RestController
@RequestMapping("/api/msslyyOrderMaster")
@Api(tags = "订单主表")
public class MsslyyOrderMasterController {
    @Resource
    private MsslyyOrderMasterService msslyyOrderMasterService;
    @Resource
    private HttpServletRequest request;
    @Resource
    private UserService userService;
    @Resource
    private MsslyyOrderDetailService msslyyOrderDetailService;
    @Resource
    private PageUtils pageUtils;

    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("/add/{userId}/{orderMasterMoney}/{bookIds}/{bookAmounts}")
    public Result<?> addOrder(@PathVariable Long userId,
                              @RequestBody MsslyyAddressMessaget address,
                              @PathVariable BigDecimal orderMasterMoney,
                              @PathVariable String bookIds,
                              @PathVariable String bookAmounts) {
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<User> findById(@PathVariable Long id) {
        return Result.success(userService.findById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<List<User>> findAll() {
        return Result.success(userService.list());
    }

    @ApiOperation(value = "分页",notes = "")
    @GetMapping("/page")
    public Result<IPage<User>> findPage(@RequestParam(required = false, defaultValue = "") String name,
                                        @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                        @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<User> wrapper = Wrappers.<User>lambdaQuery().ne(User::getUsername, "admin").like(User::getUsername, name).orderByDesc(User::getId);
        return Result.success(userService.page(new Page<>(pageNum, pageSize), wrapper));
    }

    @GetMapping("/export")
    public void export(HttpServletResponse response) throws IOException {

        List<Map<String, Object>> list = CollUtil.newArrayList();

        List<User> all = userService.list();
        for (User user : all) {
            Map<String, Object> row1 = new LinkedHashMap<>();
            row1.put("名称", user.getUsername());
            row1.put("手机", user.getPhone());
            row1.put("邮箱", user.getEmail());
            list.add(row1);
        }

        // 2. 写excel
        ExcelWriter writer = ExcelUtil.getWriter(true);
        writer.write(list, true);
        return Result.success(list);
    }

    @ApiOperation(value = "分页",notes = "")
    @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<MsslyyPublisher> query = Wrappers.<MsslyyPublisher>lambdaQuery().orderByDesc(MsslyyPublisher::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyPublisher::getPublisherName, name);
        }
        IPage<MsslyyPublisher> page = msslyyPublisherService.page(new Page<>(pageNum, pageSize), query);
        return Result.success(page);
    }

}

@RestController
@RequestMapping("/api/msslyyLabelBook")
@Api(tags = "分配标签表")
public class MsslyyLabelBookController {
    @Resource
    private MsslyyLabelBookService msslyyLabelBookService;
    @Resource
    private HttpServletRequest request;
    @Resource
    private UserService userService;

    public User getUser() {
            Map<String, Object> row1 = new LinkedHashMap<>();
            row1.put("名称", user.getUsername());
            row1.put("手机", user.getPhone());
            row1.put("邮箱", user.getEmail());
            list.add(row1);
        }

        // 2. 写excel
        ExcelWriter writer = ExcelUtil.getWriter(true);
        writer.write(list, true);

        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        String fileName = URLEncoder.encode("用户信息", "UTF-8");
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");

        ServletOutputStream out = response.getOutputStream();
        writer.flush(out, true);
        writer.close();
        IoUtil.close(System.out);
    }

}

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(msslyyPublisherService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<?> findAll() {
        List<MsslyyPublisher> list = msslyyPublisherService.list();
        return Result.success(list);
    }

    @ApiOperation(value = "分页",notes = "")
    @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<MsslyyPublisher> query = Wrappers.<MsslyyPublisher>lambdaQuery().orderByDesc(MsslyyPublisher::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyPublisher::getPublisherName, name);
        }
        IPage<MsslyyPublisher> page = msslyyPublisherService.page(new Page<>(pageNum, pageSize), query);
        return Result.success(page);
    }

}

                os = response.getOutputStream();
                os.write(bytes);
                os.flush();
                os.close();
                System.out.println("文件下载");
            }
        } catch (Exception e) {
            System.out.println("文件下载失败");
        }
    }

}

@RestController
@RequestMapping("/api/msslyyAddressMessaget")
@Api(tags = "收货地址表")
public class MsslyyAddressMessagetController {
    @Resource
    private MsslyyAddressMessagetService msslyyAddressMessagetService;
    @Resource
    private HttpServletRequest request;
     * @return
     */
    @ApiOperation(value = "也许你会喜欢",notes = "")
    @GetMapping("/like")
    public Result<?> like() {
        List<MsslyyBook> list = msslyyBookService.list();
        int size = list.size();
        HashSet<MsslyyBook> books = new HashSet<>();
        if (size>=4){
            while (books.size()<4){
                int i = new Random().nextInt(size);
                if (list.get(i)!=null) books.add(list.get(i));
            }
        }
        return Result.success(books);
    }

    /**
     * 其他同类产品4种
     * @return
     */
    @ApiOperation(value = "其他同类产品4种",notes = "")
    @GetMapping("/classIf/{classIf}/{bookId}")
    public Result<?> classIf(@PathVariable Integer classIf,@PathVariable Integer bookId) {
        QueryWrapper<MsslyyBook> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("category_id",classIf);
        queryWrapper.ne("book_id",bookId);
        List<MsslyyBook> list = msslyyBookService.list(queryWrapper);
        if (list.size()>=4) {
            return Result.success(list.subList(0,4));
        }else {
            return Result.success(list);
        }

    }

    @ApiOperation(value = "分页",notes = "")
    @GetMapping("/page")
    public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
    public Result<?> update(@RequestBody Permission permission) {
        logService.log(StrUtil.format("更新权限菜单:{}", permission.getName()));
        return Result.success(permissionService.updateById(permission));
    }

    @ApiOperation(value = "删除权限",notes = "")
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        Permission permission = permissionService.getById(id);
        logService.log(StrUtil.format("删除权限菜单:{}", permission.getName()));
        permissionService.delete(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<Permission> findById(@PathVariable Long id) {
        return Result.success(permissionService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<List<Permission>> findAll() {
        return Result.success(permissionService.list());
    }

    @ApiOperation(value = "分页",notes = "")
    @GetMapping("/page")
    public Result<IPage<Permission>> findPage(@RequestParam(required = false, defaultValue = "") String name,
                                              @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                              @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        return Result.success(permissionService.page(new Page<>(pageNum, pageSize), Wrappers.<Permission>lambdaQuery().like(Permission::getName, name)));
    }

    @ApiOperation(value = "根据角色id查询",notes = "")
    @PostMapping("/getByRoles")
    public Result<List<Permission>> getByRoles(@RequestBody List<Role> roles) {
        return Result.success(permissionService.getByRoles(roles));
    }

}

        return Result.success(msslyyBookService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<?> findAll() {
        QueryWrapper<MsslyyBook> queryWrapper=new QueryWrapper<>();
        LambdaQueryWrapper<MsslyyBook> msslyyBookLambdaQueryWrapper = queryWrapper.lambda().orderByDesc(MsslyyBook::getId);
        List<MsslyyBook> list = msslyyBookService.list(msslyyBookLambdaQueryWrapper);
        return Result.success(list);
    }

    /**
     * 畅销书籍
     * @return
     */
    @ApiOperation(value = "畅销书籍",notes = "")
    @GetMapping("/selling")
    public Result<?> findSelling() {
        QueryWrapper<MsslyyBook> queryWrapper=new QueryWrapper<>();
        LambdaQueryWrapper<MsslyyBook> msslyyBookLambdaQueryWrapper = queryWrapper.lambda().orderByDesc(MsslyyBook::getBookQuantityOutput);
        List<MsslyyBook> list = msslyyBookService.list(msslyyBookLambdaQueryWrapper);
        return Result.success(list);
    }

    /**
     * 特价商品
     * @return
     */
    @ApiOperation(value = "特价商品",notes = "")
    @GetMapping("/specialOffer")
    public Result<?> specialOffer() {
        QueryWrapper<MsslyyBook> queryWrapper=new QueryWrapper<>();
        LambdaQueryWrapper<MsslyyBook> msslyyBookLambdaQueryWrapper = queryWrapper.lambda().orderByAsc(MsslyyBook::getBookNewPrice);
        List<MsslyyBook> list = msslyyBookService.list(msslyyBookLambdaQueryWrapper);
        return Result.success(list);
    }

    /**
     * 随机推荐
     * @return
     */
    private HttpServletRequest request;
    @Resource
    private UserService userService;
    @Autowired
    private RedisUtil redisUtil;
    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));
    }
    @GetMapping("/add/{bookId}/{userId}")
    public Result<?> add(@PathVariable Long bookId,@PathVariable Long userId) {
        int i = msslyyWishlistService.addWishList(bookId, userId);
        return Result.success(i);
    }

    @ApiOperation(value = "新增收藏",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody MsslyyWishlist msslyyWishlist) {
        msslyyWishlistService.save(msslyyWishlist);
        return Result.success();
    }

    @ApiOperation(value = "更新收藏",notes = "")
    @PutMapping
    public Result<?> update(@RequestBody MsslyyWishlist msslyyWishlist) {
        msslyyWishlistService.updateById(msslyyWishlist);
        return Result.success();
    }

    @ApiOperation(value = "删除收藏",notes = "")
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        msslyyWishlistService.removeById(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(msslyyWishlistService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping

@RestController
@RequestMapping("/api/msslyyCategory")
@Api(tags = "图书分类表")
public class MsslyyCategoryController {
    @Resource
    private MsslyyCategoryService msslyyCategoryService;
    @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));
    }

    @ApiOperation(value = "新增图书分类",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody MsslyyCategory msslyyCategory) {
        msslyyCategoryService.save(msslyyCategory);
        return Result.success();
    }

    @ApiOperation(value = "更新图书分类",notes = "")
    @PutMapping
    public Result<?> update(@RequestBody MsslyyCategory msslyyCategory) {
        msslyyCategoryService.updateById(msslyyCategory);
        return Result.success();
    }

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值