大家好,我是java1234_小锋老师,分享一套微信小程序停车场预约管理系统(Springboot后端+Vue3管理端) 。
项目简介
当前社会,随着人们生活质量的提高和思想观念的演进,加之经济全球化的推动,互联网技术正以前所未有的速度提高社会综合发展的效能。这一技术正广泛渗透到各行各业中,而传统管理方式已经不能对时间和地点的严格限制而显得力不从心。微信小程序作为一种创新解决方案,有效打破了传统的这些局限。
尤为重要的是,互联网与物联网技术的快速发展极大地促进了微信小程序在停车场预约小程序领域的应用当中,使之变得更加便捷、高效且智能化。在此情况下,本系统采用了先进的B/S架构模式,并借助微信开发者工具,运用Spring Boot框架构建。我们搭建了Java运行环境,部署了Tomcat服务器,并选择了MySQL这一轻量级数据库作为数据存储的核心。这些技术手段的综合运用,保证了系统的高效稳定运行,为用户带来了卓越的使用体验和高效的管理效能。
本系统旨在提升本行业的管理效率和信息化管理,停车场预约小程序的设计与实现也为相关领域的研究提供了对照和参考。通过实践中的应用和优化,本系统可为用户放心使用。
源码下载
链接: pan.baidu.com/s/1AuopaWj4…
提取码: 1234
相关截图
核心代码
package com.cl.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.cl.annotation.IgnoreAuth;
import com.cl.entity.ConfigEntity;
import com.cl.entity.EIException;
import com.cl.service.ConfigService;
import com.cl.utils.R;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.net.URLDecoder;
import java.util.Date;
/**
* 上传文件映射表
*/
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked", "rawtypes"})
public class FileController {
@Autowired
private ConfigService configService;
/**
* 上传文件
*/
@RequestMapping("/upload")
@IgnoreAuth
public R upload(@RequestParam("file") MultipartFile file, String type) throws Exception {
if (file.isEmpty()) {
throw new EIException("上传文件不能为空");
}
String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
String pathStr = ResourceUtils.getURL("classpath:static").getPath();
// 使用URLDecoder解码以支持中文路径
pathStr = URLDecoder.decode(pathStr, "UTF-8");
File path = new File(pathStr);
if (!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(), "/file/");
if (!upload.exists()) {
upload.mkdirs();
}
String fileName = new Date().getTime() + "." + fileExt;
if (StringUtils.isNotBlank(type) && type.contains("_template")) {
fileName = type + "." + fileExt;
new File(upload.getAbsolutePath() + "/" + fileName).deleteOnExit();
}
File dest = new File(upload.getAbsolutePath() + "/" + fileName);
file.transferTo(dest);
/**
* 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开
* 请将以下的"D:\\cl123456\\src\\main\\resources\\static\\file"替换成你本地项目的upload路径,
* 并且项目路径不能存在中文、空格等特殊字符
*/
// FileUtils.copyFile(dest, new File("D:\\cl123456\\src\\main\\resources\\static\\file"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/
if (StringUtils.isNotBlank(type) && type.equals("1")) {
ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
if (configEntity == null) {
configEntity = new ConfigEntity();
configEntity.setName("faceFile");
configEntity.setValue(fileName);
} else {
configEntity.setValue(fileName);
}
configService.insertOrUpdate(configEntity);
}
return R.ok().put("file", fileName);
}
/**
* 下载文件
*/
@IgnoreAuth
@RequestMapping("/download")
public ResponseEntity<byte[]> download(@RequestParam String fileName) {
try {
File path = new File(ResourceUtils.getURL("classpath:static").getPath());
if (!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(), "/file/");
if (!upload.exists()) {
upload.mkdirs();
}
File file = new File(upload.getAbsolutePath() + "/" + fileName);
if (file.exists()) {
/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
getResponse().sendError(403);
}*/
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", fileName);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
}
} catch (IOException e) {
e.printStackTrace();
}
return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
}
}