项目背景
随着汽车市场的快速发展,售后服务的质量直接影响消费者的满意度和品牌忠诚度。传统模式下,顾客常面临预约难、信息沟通不畅和排队时间长等问题。为了解决这些痛点,我们设计并实现了一款基于微信小程序的 4S 店服务预约系统,旨在提升服务管理效率与用户体验。
技术选型
本系统采用前后端分离架构。后端使用 Java 语言结合 Spring Boot 框架,利用 MySQL 数据库存储数据;前端采用微信小程序技术,通过微信开发者工具进行开发。这种组合不仅保证了系统的稳定性和安全性,还利用了小程序免安装、传播快的优势。
核心架构
系统遵循 B/S(Browser/Server)模式,采用 MVC 三层架构设计:
- 视图层:负责展示数据和用户交互。
- 模型层:处理业务逻辑和数据整合。
- 控制层:协调视图与模型之间的数据传递。
数据库设计
数据库设计是系统的基石。主要实体包括会员用户、服务项目、预约信息、员工用户等。以下是部分关键表结构的设计思路:
用户表 (user)
用于保存用户登录信息,包含用户名、密码、手机号、邮箱及状态字段。
预约信息表 (appointment_information)
记录车主姓名、车牌号、服务项目、预约时间及审核状态等核心业务数据。
服务项目表 (service_items)
存储项目名称、类型、价格、详情及封面图片等信息。
功能实现
用户认证模块
登录流程涉及格式验证、数据库查询及密码校验。系统支持用户名、邮箱或手机号登录,密码采用 MD5 加密存储。登录成功后生成 Token 存入 Redis,确保会话安全。
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
// 获取输入参数
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = ;
Map<String, String> map = <>();
(username != && !.equals(username)){
map.put(, username);
resultList = service.selectBaseList(service.select(map, <>()));
} (email != && !.equals(email)){
map.put(, email);
resultList = service.selectBaseList(service.select(map, <>()));
} (phone != && !.equals(phone)){
map.put(, phone);
resultList = service.selectBaseList(service.select(map, <>()));
} {
error(, );
}
(resultList == || resultList.size() <= ){
error(, );
}
(User) resultList.get();
service.encryption(password);
(byUsername.getPassword().equals(md5password)) {
();
accessToken.setToken(UUID.randomUUID().toString().replaceAll(, ));
accessToken.setUser_id(byUsername.getUserId());
Duration.ofSeconds();
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken, duration);
JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put(, accessToken.getToken());
();
ret.put(, user);
success(ret);
} {
error(, );
}
}


