💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目
@TOC
基于SpringBoot+Vue的智能停车场管理系统介绍
基于SpringBoot+Vue的智能停车场管理系统是一套完整的停车场数字化管理解决方案,采用主流的Java后端技术栈SpringBoot框架,结合MySQL数据库进行数据存储,前端采用uni-app技术实现跨平台开发,支持微信小程序和安卓客户端,形成了C/S和B/S混合架构模式。系统功能涵盖了停车场运营管理的各个环节,包括系统首页展示、用户管理和员工管理等基础权限控制模块,违规类型管理和车辆类型管理等基础数据配置模块,核心业务模块包括停车场管理、预约信息管理、入场车辆管理、出场车辆管理、缴费信息管理和违规信息管理,形成了从车辆预约、入场登记、停车计费到出场结算的完整业务闭环。系统还提供了系统管理、公告信息分类、公告信息发布、轮播图管理等辅助功能模块,以及个人中心和修改密码等用户服务功能。整套系统通过SpringBoot的微服务理念实现了模块化开发,前后端分离的架构设计保证了系统的可扩展性和维护性,MySQL数据库确保了数据的安全性和一致性,uni-app的跨平台特性让用户可以通过多种终端设备便捷地使用停车场服务,真正实现了停车场管理的智能化和数字化转型。
基于SpringBoot+Vue的智能停车场管理系统演示视频
基于SpringBoot+Vue的智能停车场管理系统演示图片
基于SpringBoot+Vue的智能停车场管理系统代码展示
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.*;
@RestController
@RequestMapping("/parking")
public class ParkingController {
@Autowired
private ParkingService parkingService;
private SparkSession spark = SparkSession.builder()
.appName("ParkingDataAnalysis")
.master("local[*]")
.getOrCreate();
@PostMapping("/entry")
public Result processVehicleEntry(@RequestBody VehicleEntryRequest request) {
String plateNumber = request.getPlateNumber();
String vehicleType = request.getVehicleType();
Integer parkingLotId = request.getParkingLotId();
LocalDateTime entryTime = LocalDateTime.now();
if (plateNumber == null || plateNumber.trim().isEmpty()) {
return Result.error("车牌号不能为空");
}
if (!isValidPlateNumber(plateNumber)) {
return Result.error("车牌号格式不正确");
}
ParkingLot parkingLot = parkingService.getParkingLotById(parkingLotId);
if (parkingLot == null) {
return Result.error("停车场不存在");
}
if (parkingLot.getAvailableSpaces() <= 0) {
return Result.error("停车场已满,无法入场");
}
VehicleEntry existingEntry = parkingService.getActiveEntryByPlateNumber(plateNumber);
if (existingEntry != null) {
return Result.error("该车辆已在停车场内,不能重复入场");
}
VehicleEntry vehicleEntry = new VehicleEntry();
vehicleEntry.setPlateNumber(plateNumber);
vehicleEntry.setVehicleType(vehicleType);
vehicleEntry.setParkingLotId(parkingLotId);
vehicleEntry.setEntryTime(entryTime);
vehicleEntry.setStatus("IN_PROGRESS");
boolean saveResult = parkingService.saveVehicleEntry(vehicleEntry);
if (saveResult) {
parkingService.updateParkingLotAvailableSpaces(parkingLotId, -1);
return Result.success("车辆入场登记成功", vehicleEntry);
}
return Result.error("车辆入场登记失败");
}
@PostMapping("/exit")
public Result processVehicleExit(@RequestBody VehicleExitRequest request) {
String plateNumber = request.getPlateNumber();
Integer parkingLotId = request.getParkingLotId();
LocalDateTime exitTime = LocalDateTime.now();
VehicleEntry vehicleEntry = parkingService.getActiveEntryByPlateNumber(plateNumber);
if (vehicleEntry == null) {
return Result.error("未找到该车辆的入场记录");
}
if (!vehicleEntry.getParkingLotId().equals(parkingLotId)) {
return Result.error("停车场信息不匹配");
}
long parkingDuration = calculateParkingDuration(vehicleEntry.getEntryTime(), exitTime);
if (parkingDuration < 0) {
return Result.error("出场时间不能早于入场时间");
}
VehicleType vehicleTypeInfo = parkingService.getVehicleTypeByName(vehicleEntry.getVehicleType());
double parkingFee = calculateParkingFee(parkingDuration, vehicleTypeInfo.getHourlyRate());
VehicleExit vehicleExit = new VehicleExit();
vehicleExit.setPlateNumber(plateNumber);
vehicleExit.setParkingLotId(parkingLotId);
vehicleExit.setEntryTime(vehicleEntry.getEntryTime());
vehicleExit.setExitTime(exitTime);
vehicleExit.setParkingDuration(parkingDuration);
vehicleExit.setParkingFee(parkingFee);
vehicleExit.setPaymentStatus("UNPAID");
boolean saveExitResult = parkingService.saveVehicleExit(vehicleExit);
boolean updateEntryResult = parkingService.updateVehicleEntryStatus(vehicleEntry.getId(), "COMPLETED");
if (saveExitResult && updateEntryResult) {
parkingService.updateParkingLotAvailableSpaces(parkingLotId, 1);
Dataset<Row> sparkData = spark.createDataFrame(Arrays.asList(vehicleExit), VehicleExit.class);
sparkData.write().mode("append").option("path", "/data/parking_exits").save();
return Result.success("车辆出场处理成功", vehicleExit);
}
return Result.error("车辆出场处理失败");
}
@PostMapping("/payment")
public Result processPayment(@RequestBody PaymentRequest request) {
String plateNumber = request.getPlateNumber();
String paymentMethod = request.getPaymentMethod();
Double paymentAmount = request.getPaymentAmount();
LocalDateTime paymentTime = LocalDateTime.now();
VehicleExit vehicleExit = parkingService.getUnpaidExitByPlateNumber(plateNumber);
if (vehicleExit == null) {
return Result.error("未找到未支付的停车记录");
}
if (paymentAmount == null || paymentAmount <= 0) {
return Result.error("支付金额必须大于0");
}
if (Math.abs(paymentAmount - vehicleExit.getParkingFee()) > 0.01) {
return Result.error("支付金额与应付费用不匹配");
}
if (!Arrays.asList("CASH", "ALIPAY", "WECHAT", "CARD").contains(paymentMethod)) {
return Result.error("不支持的支付方式");
}
String paymentId = generatePaymentId();
PaymentInfo paymentInfo = new PaymentInfo();
paymentInfo.setPaymentId(paymentId);
paymentInfo.setPlateNumber(plateNumber);
paymentInfo.setPaymentAmount(paymentAmount);
paymentInfo.setPaymentMethod(paymentMethod);
paymentInfo.setPaymentTime(paymentTime);
paymentInfo.setPaymentStatus("SUCCESS");
boolean savePaymentResult = parkingService.savePaymentInfo(paymentInfo);
boolean updateExitResult = parkingService.updateVehicleExitPaymentStatus(vehicleExit.getId(), "PAID");
if (savePaymentResult && updateExitResult) {
Dataset<Row> paymentData = spark.createDataFrame(Arrays.asList(paymentInfo), PaymentInfo.class);
Dataset<Row> dailyRevenue = paymentData.groupBy("paymentTime").sum("paymentAmount");
dailyRevenue.write().mode("overwrite").option("path", "/data/daily_revenue").save();
return Result.success("支付成功", paymentInfo);
}
return Result.error("支付处理失败");
}
}
基于SpringBoot+Vue的智能停车场管理系统文档展示
💖💖作者:计算机毕业设计小途 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目