一、个人简介
💖💖作者:计算机编程果茶熊 💙💙个人简介:曾长期从事计算机专业培训教学,担任过编程老师,同时本人也热爱上课教学,擅长Java、微信小程序、Python、Golang、安卓Android等多个IT方向。会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 计算机毕业设计选题 💕💕文末获取源码联系计算机编程果茶熊
二、系统介绍
开发语言:Java+Python 数据库:MySQL 系统架构:B/S 后端框架:SpringBoot(Spring+SpringMVC+Mybatis)+Django 前端:Vue+HTML+CSS+JavaScript+jQuery
本跳蚤市场管理系统是基于Spring Boot和Vue技术栈开发的B/S架构Web应用系统,旨在为高校学生和社区用户提供便捷的二手物品交易平台。系统采用前后端分离的设计模式,后端使用Spring Boot框架整合Spring、SpringMVC和MyBatis技术,提供稳定的RESTful API接口服务,前端基于Vue框架配合ElementUI组件库构建现代化的用户界面。系统核心功能涵盖用户注册登录管理、商品分类体系管理、二手商品信息发布与浏览、物品交换信息处理、实时消息通知推送、订单全流程管理以及系统后台管理等模块。通过MySQL数据库存储用户数据、商品信息、交易记录等关键业务数据,确保数据的一致性和完整性。系统支持用户发布闲置物品、浏览购买商品、协商交易价格、处理订单流程、接收系统通知等完整的二手交易业务流程,为用户打造安全可靠的线上跳蚤市场交易环境。
三、视频解说
四、部分功能展示
五、部分代码展示
import org.apache.spark.sql.SparkSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
@Service
public class FlexMarketService {
@Autowired
private SparkSession sparkSession = SparkSession.builder().appName("FlexMarketAnalysis").master("local[*]").getOrCreate();
@Autowired
private UserMapper userMapper;
@Autowired
private ProductMapper productMapper;
@Autowired
private OrderMapper orderMapper;
public ResultVO userRegistration(UserRegisterDTO registerDTO) {
if (userMapper.findByUsername(registerDTO.getUsername()) != null) {
return ResultVO.error("用户名已存在");
}
if (userMapper.findByEmail(registerDTO.getEmail()) != null) {
return ResultVO.error("邮箱已被注册");
}
if (!registerDTO.getPassword().equals(registerDTO.getConfirmPassword())) {
return ResultVO.error("两次密码输入不一致");
}
User user = new User();
user.setUsername(registerDTO.getUsername());
user.setPassword(passwordEncoder.encode(registerDTO.getPassword()));
user.setEmail(registerDTO.getEmail());
user.setPhone(registerDTO.getPhone());
user.setCreateTime(new Date());
user.setStatus(1);
user.setAvatar("default_avatar.jpg");
user.setUserType(0);
int result = userMapper.insert(user);
if (result > 0) {
String token = jwtUtils.generateToken(user.getUsername());
redisTemplate.opsForValue().set("user_token_" + user.getId(), token, 7, TimeUnit.DAYS);
UserInfoVO userInfo = new UserInfoVO();
userInfo.setId(user.getId());
userInfo.setUsername(user.getUsername());
userInfo.setEmail(user.getEmail());
userInfo.setToken(token);
return ResultVO.success("注册成功", userInfo);
}
return ResultVO.error("注册失败");
}
public ResultVO publishProduct(ProductPublishDTO publishDTO) {
User currentUser = getCurrentUser();
if (currentUser == null) {
return ResultVO.error("用户未登录");
}
if (publishDTO.getPrice() <= 0) {
return ResultVO.error("商品价格必须大于0");
}
if (publishDTO.getTitle().length() < 5 || publishDTO.getTitle().length() > 100) {
return ResultVO.error("商品标题长度应在5-100字符之间");
}
Product product = new Product();
product.setUserId(currentUser.getId());
product.setTitle(publishDTO.getTitle());
product.setDescription(publishDTO.getDescription());
product.setPrice(publishDTO.getPrice());
product.setOriginalPrice(publishDTO.getOriginalPrice());
product.setCategoryId(publishDTO.getCategoryId());
product.setCondition(publishDTO.getCondition());
product.setLocation(publishDTO.getLocation());
product.setImages(String.join(",", publishDTO.getImageUrls()));
product.setStatus(0);
product.setCreateTime(new Date());
product.setUpdateTime(new Date());
product.setViewCount(0);
product.setFavoriteCount(0);
int result = productMapper.insert(product);
if (result > 0) {
sparkSession.sql("INSERT INTO product_analytics VALUES (" + product.getId() + ", " + currentUser.getId() + ", 'PUBLISH', '" + new Date() + "')");
return ResultVO.success("商品发布成功", product);
}
return ResultVO.error("商品发布失败");
}
public ResultVO createOrder(OrderCreateDTO orderDTO) {
User currentUser = getCurrentUser();
if (currentUser == null) {
return ResultVO.error("用户未登录");
}
Product product = productMapper.findById(orderDTO.getProductId());
if (product == null) {
return ResultVO.error("商品不存在");
}
if (product.getStatus() != 0) {
return ResultVO.error("商品已下架或已售出");
}
if (product.getUserId().equals(currentUser.getId())) {
return ResultVO.error("不能购买自己发布的商品");
}
Order existingOrder = orderMapper.findByProductIdAndBuyerId(orderDTO.getProductId(), currentUser.getId());
if (existingOrder != null && existingOrder.getStatus() != 4) {
return ResultVO.error("您已对该商品下过订单");
}
Order order = new Order();
order.setBuyerId(currentUser.getId());
order.setSellerId(product.getUserId());
order.setProductId(orderDTO.getProductId());
order.setOrderNo(generateOrderNo());
order.setTotalAmount(orderDTO.getOfferPrice() != null ? orderDTO.getOfferPrice() : product.getPrice());
order.setDeliveryMethod(orderDTO.getDeliveryMethod());
order.setDeliveryAddress(orderDTO.getDeliveryAddress());
order.setRemark(orderDTO.getRemark());
order.setStatus(0);
order.setCreateTime(new Date());
order.setUpdateTime(new Date());
int result = orderMapper.insert(order);
if (result > 0) {
sparkSession.sql("INSERT INTO order_analytics VALUES ('" + order.getOrderNo() + "', " + currentUser.getId() + ", 'CREATE', '" + new Date() + "')");
notificationService.sendOrderNotification(product.getUserId(), "您有新的订单,请及时处理", order.getId());
return ResultVO.success("订单创建成功", order);
}
return ResultVO.error("订单创建失败");
}
}
六、部分文档展示
七、END
💕💕文末获取源码联系计算机编程果茶熊