一、个人简介
💖💖作者:计算机编程果茶熊 💙💙个人简介:曾长期从事计算机专业培训教学,担任过编程老师,同时本人也热爱上课教学,擅长Java、微信小程序、Python、Golang、安卓Android等多个IT方向。会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 计算机毕业设计选题 💕💕文末获取源码联系计算机编程果茶熊
二、系统介绍
开发语言:Java 后端框架:Spring Boot(Spring+SpringMVC+Mybatis) 前端:Vue 数据库:MySQL 系统架构:B/S 开发工具:IDEA(Java的)
社区便民服务平台是一套基于Java Spring Boot框架开发的综合性社区服务管理系统,采用前后端分离的B/S架构,前端使用Vue框架,后端集成Spring、SpringMVC和MyBatis技术栈,数据存储采用MySQL数据库。该平台围绕社区居民的日常生活需求,构建了完整的服务生态体系,涵盖用户管理、服务预订、活动组织、积分商城、论坛交流等多个核心模块。系统通过服务类型管理和服务信息管理实现对各类便民服务的统一管理,支持服务订单的全生命周期跟踪,从订单生成到完成服务再到费用结算和服务评价,形成闭环管理流程。平台还集成了活动分类管理和活动信息管理功能,为社区活动的组织和报名提供便捷通道,同时通过积分商城管理和积分兑换管理建立激励机制,提升用户参与度。此外,系统还包含举报记录管理和论坛交流管理等功能,营造健康的社区交流环境,为居民提供一站式的便民服务体验。
三、视频解说
四、部分功能展示
五、部分代码展示
import org.apache.spark.sql.SparkSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
@Service
public class CommunityServiceCore {
@Autowired
private ServiceOrderMapper serviceOrderMapper;
@Autowired
private UserMapper userMapper;
@Autowired
private IntegralMapper integralMapper;
@Autowired
private ActivityMapper activityMapper;
private SparkSession spark = SparkSession.builder()
.appName("CommunityServicePlatform")
.master("local[*]")
.getOrCreate();
@Transactional
public Result processServiceOrder(ServiceOrderRequest request) {
ServiceOrder order = new ServiceOrder();
order.setUserId(request.getUserId());
order.setServiceId(request.getServiceId());
order.setOrderTime(LocalDateTime.now());
order.setStatus("PENDING");
order.setTotalAmount(request.getAmount());
serviceOrderMapper.insert(order);
User user = userMapper.selectById(request.getUserId());
if (user.getBalance().compareTo(request.getAmount()) < 0) {
throw new BusinessException("余额不足,无法创建订单");
}
user.setBalance(user.getBalance().subtract(request.getAmount()));
userMapper.updateById(user);
ServiceProvider provider = serviceProviderMapper.selectByServiceId(request.getServiceId());
NotificationService.sendOrderNotification(provider.getId(), order.getId());
ServiceOrderDetail detail = new ServiceOrderDetail();
detail.setOrderId(order.getId());
detail.setServiceDescription(request.getDescription());
detail.setAppointmentTime(request.getAppointmentTime());
detail.setContactPhone(request.getContactPhone());
detail.setServiceAddress(request.getAddress());
serviceOrderDetailMapper.insert(detail);
IntegralRecord integralRecord = new IntegralRecord();
integralRecord.setUserId(request.getUserId());
integralRecord.setOrderId(order.getId());
integralRecord.setIntegralAmount(request.getAmount().multiply(new BigDecimal("0.1")).intValue());
integralRecord.setOperationType("ORDER_REWARD");
integralRecord.setCreateTime(LocalDateTime.now());
integralMapper.insert(integralRecord);
user.setIntegralBalance(user.getIntegralBalance() + integralRecord.getIntegralAmount());
userMapper.updateById(user);
return Result.success("订单创建成功", order.getId());
}
@Transactional
public Result processIntegralExchange(IntegralExchangeRequest request) {
User user = userMapper.selectById(request.getUserId());
Product product = productMapper.selectById(request.getProductId());
if (user.getIntegralBalance() < product.getRequiredIntegral()) {
return Result.error("积分余额不足,无法兑换该商品");
}
if (product.getStock() <= 0) {
return Result.error("商品库存不足,兑换失败");
}
user.setIntegralBalance(user.getIntegralBalance() - product.getRequiredIntegral());
userMapper.updateById(user);
product.setStock(product.getStock() - 1);
product.setExchangeCount(product.getExchangeCount() + 1);
productMapper.updateById(product);
IntegralExchangeRecord exchangeRecord = new IntegralExchangeRecord();
exchangeRecord.setUserId(request.getUserId());
exchangeRecord.setProductId(request.getProductId());
exchangeRecord.setIntegralCost(product.getRequiredIntegral());
exchangeRecord.setExchangeTime(LocalDateTime.now());
exchangeRecord.setStatus("SUCCESS");
exchangeRecord.setDeliveryAddress(request.getDeliveryAddress());
exchangeRecord.setContactPhone(request.getContactPhone());
integralExchangeMapper.insert(exchangeRecord);
IntegralRecord integralRecord = new IntegralRecord();
integralRecord.setUserId(request.getUserId());
integralRecord.setIntegralAmount(-product.getRequiredIntegral());
integralRecord.setOperationType("PRODUCT_EXCHANGE");
integralRecord.setCreateTime(LocalDateTime.now());
integralRecord.setRemark("兑换商品:" + product.getProductName());
integralMapper.insert(integralRecord);
DeliveryOrder deliveryOrder = new DeliveryOrder();
deliveryOrder.setExchangeRecordId(exchangeRecord.getId());
deliveryOrder.setRecipientName(request.getRecipientName());
deliveryOrder.setDeliveryAddress(request.getDeliveryAddress());
deliveryOrder.setContactPhone(request.getContactPhone());
deliveryOrder.setDeliveryStatus("PREPARING");
deliveryOrder.setCreateTime(LocalDateTime.now());
deliveryOrderMapper.insert(deliveryOrder);
return Result.success("积分兑换成功,商品将在3-5个工作日内配送", exchangeRecord.getId());
}
@Transactional
public Result processActivityRegistration(ActivityRegistrationRequest request) {
Activity activity = activityMapper.selectById(request.getActivityId());
if (activity == null) {
return Result.error("活动不存在,报名失败");
}
if (activity.getRegistrationEndTime().isBefore(LocalDateTime.now())) {
return Result.error("活动报名时间已截止,无法报名");
}
if (activity.getCurrentParticipants() >= activity.getMaxParticipants()) {
return Result.error("活动报名人数已满,无法报名");
}
ActivityRegistration existingRegistration = activityRegistrationMapper
.selectByUserIdAndActivityId(request.getUserId(), request.getActivityId());
if (existingRegistration != null) {
return Result.error("您已报名该活动,请勿重复报名");
}
User user = userMapper.selectById(request.getUserId());
if (activity.getRegistrationFee().compareTo(BigDecimal.ZERO) > 0) {
if (user.getBalance().compareTo(activity.getRegistrationFee()) < 0) {
return Result.error("余额不足,无法支付报名费用");
}
user.setBalance(user.getBalance().subtract(activity.getRegistrationFee()));
userMapper.updateById(user);
}
ActivityRegistration registration = new ActivityRegistration();
registration.setUserId(request.getUserId());
registration.setActivityId(request.getActivityId());
registration.setRegistrationTime(LocalDateTime.now());
registration.setContactPhone(request.getContactPhone());
registration.setEmergencyContact(request.getEmergencyContact());
registration.setSpecialRequirements(request.getSpecialRequirements());
registration.setStatus("CONFIRMED");
activityRegistrationMapper.insert(registration);
activity.setCurrentParticipants(activity.getCurrentParticipants() + 1);
activityMapper.updateById(activity);
IntegralRecord integralRecord = new IntegralRecord();
integralRecord.setUserId(request.getUserId());
integralRecord.setIntegralAmount(20);
integralRecord.setOperationType("ACTIVITY_REGISTRATION");
integralRecord.setCreateTime(LocalDateTime.now());
integralRecord.setRemark("参与活动:" + activity.getActivityName());
integralMapper.insert(integralRecord);
user.setIntegralBalance(user.getIntegralBalance() + 20);
userMapper.updateById(user);
ActivityNotification notification = new ActivityNotification();
notification.setActivityId(request.getActivityId());
notification.setUserId(request.getUserId());
notification.setNotificationContent("您已成功报名活动:" + activity.getActivityName());
notification.setNotificationType("REGISTRATION_SUCCESS");
notification.setCreateTime(LocalDateTime.now());
activityNotificationMapper.insert(notification);
return Result.success("活动报名成功,请按时参加", registration.getId());
}
}
六、部分文档展示
七、END
💕💕文末获取源码联系计算机编程果茶熊