Java毕业设计-校园二手图书交易

🔥作者主页:疯狂行者🔥

💖简介:Java领域新星创作者🏆、【计算机源码之家】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】💖

💖文末获取源码联系💖

工具下载链接😎😎😎:
JDK版本下载
Eclipse下载链接
Mysql下载链接
tomcat下载链接
向日葵远程工具

计算机课程设计|毕业设计之校园二手图书交易/校园图书交易系统代码-基于SSM+Vue的校园二手图书交易系统/校园图书交易系统


前言

本次文章主要是介绍校园二手图书交易或者校园图书交易系统的功能,系统分类两个角色,管理员,用户

一、系统功能

1.1 开发环境

  • 开发语言:Java
  • 技术:SSM+Vue
  • 数据库:MySQL
  • 架构:B/S
  • 源码类型: Web
  • 编译工具:Idea、Eclipse、MyEclipse (选其一)
  • 其他:jdk1.8、Tomcat8.5 、Navicat

1.2 管理员功能

登录
书籍分类管理
书籍管理
订单管理
用户管理
公告管理
退出登录

1.3 用户功能

登录注册
网站公告
充值余额
购物车
购买记录
退出登录

二、部分功能展示

☀️首页☀️
在这里插入图片描述

☀️用户登录☀️
在这里插入图片描述

☀️购物车☀️
在这里插入图片描述

☀️订单记录☀️
在这里插入图片描述

☀️书城后台书籍分类管理☀️
在这里插入图片描述

☀️订单管理☀️
在这里插入图片描述

☀️书籍管理☀️
在这里插入图片描述

三、部分代码设计

3.1.用户充值余额

代码如下(示例):

	// 处理充值余额请求
    @PostMapping("")
    public AddMoneyResult addMoney(
            @RequestBody AddMoneyForm form,
            @SessionAttribute("userId") String userId
    ) {
        AddMoneyResult result = new AddMoneyResult();
        // 获取用户信息
        User user = userMapper.findById(userId);
        if (user == null) {
            result.setOk(false);
            result.setMessage("请先登录");
            return result;
        }
        // 校验表单
        BigDecimal amount = form.getAmount();
        if (amount.compareTo(BigDecimal.ZERO) <= 0) {
            result.setOk(false);
            result.setMessage("充值金额不能小于等于 0");
            return result;
        }
        // 更新用户余额
        user.setMoney(user.getMoney().add(amount));
        userMapper.updateMoneyById(user.getId(), user.getMoney());
        result.setOk(true);
        result.setMessage("充值成功");
        return result;
    }

3.2.订单管理

// 创建书籍订单
    @PostMapping("/buy")
    public BuyBookResult buyBook(
            @RequestBody BuyBookForm buyBookForm,
            @SessionAttribute("userId") String userId
    ) {
        BuyBookResult buyBookResult = new BuyBookResult();
        // 获取用户信息
        User user = userMapper.findById(userId);
        if (user == null) {
            buyBookResult.setOk(false);
            buyBookResult.setMessage("请先登录");
            return buyBookResult;
        }
        // 校验表单
        String bookId = buyBookForm.getBookId();
        Integer buyAmount = buyBookForm.getBuyAmount();
        if (StringUtils.isEmpty(bookId) || buyAmount <= 0) {
            buyBookResult.setOk(false);
            buyBookResult.setMessage("非法表单字段");
            return buyBookResult;
        }
        // 获取书籍信息
        Book book = bookMapper.findById(bookId);
        if (book == null) {
            buyBookResult.setOk(false);
            buyBookResult.setMessage("找不到该书籍");
            return buyBookResult;
        }
        // 检查库存
        if (buyAmount > book.getStock()) {
            buyBookResult.setOk(false);
            buyBookResult.setMessage("库存不足");
            return buyBookResult;
        }
        // 计算总价
        BigDecimal totalPrice = book.getPrice().multiply(BigDecimal.valueOf(buyAmount));
        // 检查余额
        if (user.getMoney().compareTo(totalPrice) < 0) {
            buyBookResult.setOk(false);
            buyBookResult.setMessage("余额不足,请先充值");
            return buyBookResult;
        }
        // 创建书籍订单
        BookOrder bookOrder = new BookOrder();
        bookOrder.setId(UUID.randomUUID().toString());
        bookOrder.setUserId(user.getId());
        bookOrder.setBookId(book.getId());
        bookOrder.setBookName(book.getName());
        bookOrder.setTotalPrice(totalPrice);
        bookOrder.setStatus(BookOrder.STATUS_WAITING_DELIVERY);
        bookOrder.setBuyDateTimeStamp(System.currentTimeMillis());
        bookOrder.setBuyAmount(buyAmount);
        bookOrder.setConsignee(buyBookForm.getConsignee());
        bookOrder.setPhone(buyBookForm.getPhone());
        bookOrder.setAddress(buyBookForm.getAddress());
        bookOrderMapper.create(bookOrder);
        // 减少书籍库存
        book.setStock(book.getStock() - buyAmount);
        bookMapper.updateStockById(book.getStock(), book.getId());
        // 减少用户的余额
        user.setMoney(user.getMoney().subtract(totalPrice));
        userMapper.updateMoneyById(user.getId(), user.getMoney());

        buyBookResult.setOk(true);
        buyBookResult.setMessage("购买成功,感谢使用");
        return buyBookResult;
    }

3.3.加入购物车

	 // 创建购物车项
    @PostMapping("")
    void create(
            @RequestBody ShoppingCarItem shoppingCarItem,
            @SessionAttribute("userId") String userId
    ) {
        // 检查重复项
        ShoppingCarItem shoppingCarItemFromDb = shoppingCarItemMapper.findByUserIdAndBookId(userId, shoppingCarItem.getBookId());
        if (shoppingCarItemFromDb != null) {
            // 已有重复项,更新购买数量
            shoppingCarItemFromDb.setBuyAmount(
                    shoppingCarItemFromDb.getBuyAmount() + shoppingCarItem.getBuyAmount()
            );
            shoppingCarItemMapper.updateBuyAmount(shoppingCarItemFromDb);
            return;
        }
        // 没有重复项,创建新购物车项
        shoppingCarItem.setId(UUID.randomUUID().toString());
        shoppingCarItem.setUserId(userId);
        shoppingCarItemMapper.create(shoppingCarItem);
    }

总结

获取源码联系:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻微信公众号获取联系方式👇🏻👇🏻👇🏻

打卡 文章 更新 17/ 365天

精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻

Java毕设项目实战

Java课设项目实战

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂行者

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值