💖💖作者:计算机毕业设计小途
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学习实战项目
目录
spring boot二手商品网站介绍
SpringBoot二手商品网站是一款基于B/S架构、面向高校毕业设计场景的完整交易管理系统,后端采用SpringBoot+MyBatis组合,提供RESTful接口,同时保留Django版本源码以满足不同语言偏好;前端以Vue为核心,结合ElementUI快速搭建响应式页面,数据库统一选用MySQL。系统涵盖游客与注册用户双视角:游客可在首页浏览轮播图推荐、最新公告及多级商品分类,通过搜索与筛选查看二手商品详情;注册用户登录后可进入个人中心维护资料,将心仪商品加入购物车并生成订单,订单模块细分已支付、已发货、已完成、已退款四种状态,支持实时跟踪与状态回滚。后台管理端以简洁路由实现商品信息上下架、库存与描述维护,轮播图与公告的动态发布,以及订单批量审核与统计,帮助管理员高效运营整个平台。整套代码遵循MVC分层思想,注释详尽,配置简化,既可直接运行于本地IDE,也可通过内置脚本一键打包部署到云服务器,充分满足计算机专业大四学生在短时间内完成选题、开发、调试与答辩演示的全流程需求。
spring boot二手商品网站演示视频
“我本想混毕业,结果SpringBoot二手商品网站把我逼成全栈”——大四学长的逆袭
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等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学习实战项目