“我本想混毕业,结果SpringBoot二手商品网站把我逼成全栈”——大四学长的逆袭

54 阅读4分钟

💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目

@TOC

spring boot二手商品网站介绍

SpringBoot二手商品网站是一款基于B/S架构、面向高校毕业设计场景的完整交易管理系统,后端采用SpringBoot+MyBatis组合,提供RESTful接口,同时保留Django版本源码以满足不同语言偏好;前端以Vue为核心,结合ElementUI快速搭建响应式页面,数据库统一选用MySQL。系统涵盖游客与注册用户双视角:游客可在首页浏览轮播图推荐、最新公告及多级商品分类,通过搜索与筛选查看二手商品详情;注册用户登录后可进入个人中心维护资料,将心仪商品加入购物车并生成订单,订单模块细分已支付、已发货、已完成、已退款四种状态,支持实时跟踪与状态回滚。后台管理端以简洁路由实现商品信息上下架、库存与描述维护,轮播图与公告的动态发布,以及订单批量审核与统计,帮助管理员高效运营整个平台。整套代码遵循MVC分层思想,注释详尽,配置简化,既可直接运行于本地IDE,也可通过内置脚本一键打包部署到云服务器,充分满足计算机专业大四学生在短时间内完成选题、开发、调试与答辩演示的全流程需求。

spring boot二手商品网站演示视频

[video(video-jQHC4eAw-1753777346485)(type-bilibili)(url-player.bilibili.com/player.html…)]

spring boot二手商品网站演示图片

系统界面 登陆界面 商品分类 订单管理 卖家管理 个人中心

spring boot二手商品网站代码展示

// 1. 二手商品发布(核心函数:保存商品并生成快照)
@RequestMapping(value = "/item/add", method = RequestMethod.POST)
public ApiResp<String> addItem(@RequestBody ItemDTO dto, HttpSession session){
    Long sellerId = (Long) session.getAttribute("uid");
    dto.setSellerId(sellerId);
    dto.setStatus("ON_SALE");
    dto.setCreateTime(LocalDateTime.now());
    dto.setViewCount(0);
    BigDecimal price = dto.getPrice().setScale(2, RoundingMode.HALF_UP);
    dto.setPrice(price);
    String pics = String.join(",", dto.getPicList());
    dto.setPics(pics);
    itemMapper.insertSelective(dto);
    Long itemId = dto.getId();
    itemSnapshotMapper.insertSnapshot(itemId, dto.getTitle(), price, pics, LocalDateTime.now());
    return ApiResp.success("发布成功");
}

// 2. 加入购物车(核心函数:合并或新增)
@RequestMapping(value = "/cart/add", method = RequestMethod.POST)
public ApiResp<String> addCart(@RequestBody CartDTO dto, HttpSession session){
    Long userId = (Long) session.getAttribute("uid");
    Cart exist = cartMapper.selectByUserAndItem(userId, dto.getItemId());
    if(exist != null){
        int newNum = exist.getQuantity() + dto.getQuantity();
        cartMapper.updateQuantity(exist.getId(), newNum);
    }else{
        Cart c = new Cart();
        c.setUserId(userId);
        c.setItemId(dto.getItemId());
        c.setQuantity(dto.getQuantity());
        c.setCreateTime(LocalDateTime.now());
        cartMapper.insert(c);
    }
    return ApiResp.success("已加入购物车");
}

// 3. 创建订单(核心函数:库存校验、状态初始化、事务)
@Transactional
@RequestMapping(value = "/order/create", method = RequestMethod.POST)
public ApiResp<String> createOrder(@RequestBody List<Long> cartIds, HttpSession session){
    Long buyerId = (Long) session.getAttribute("uid");
    List<Cart> carts = cartMapper.selectByIds(cartIds);
    if(carts.isEmpty()) return ApiResp.error("购物车为空");
    BigDecimal total = BigDecimal.ZERO;
    for(Cart c : carts){
        Item item = itemMapper.selectByPrimaryKey(c.getItemId());
        if(item.getStock() < c.getQuantity())
            throw new BizException("库存不足");
        total = total.add(item.getPrice().multiply(BigDecimal.valueOf(c.getQuantity())));
    }
    Order order = new Order();
    order.setOrderNo(UUID.randomUUID().toString().replace("-",""));
    order.setBuyerId(buyerId);
    order.setStatus("UNPAID");
    order.setCreateTime(LocalDateTime.now());
    order.setTotalPrice(total);
    orderMapper.insert(order);
    for(Cart c : carts){
        Item item = itemMapper.selectByPrimaryKey(c.getItemId());
        itemMapper.updateStock(item.getId(), item.getStock() - c.getQuantity());
        OrderItem oi = new OrderItem();
        oi.setOrderId(order.getId());
        oi.setItemId(c.getItemId());
        oi.setQuantity(c.getQuantity());
        oi.setPrice(item.getPrice());
        orderItemMapper.insert(oi);
    }
    cartMapper.deleteBatch(cartIds);
    return ApiResp.success(order.getOrderNo());
}

spring boot二手商品网站文档展示

文档

💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目