背景与目标
随着城市化进程加快,机动车保有量持续增长,传统线下管理模式在效率、透明度上已显捉襟见肘。为了解决拥堵预警滞后、违章处理繁琐等痛点,我们设计了一套在线服务系统。目标是整合资源,实现业务线上化、数据可视化,既方便公众办事,也为管理部门提供决策依据。
技术选型
后端选用 SpringBoot2,利用其'约定优于配置'的特性快速搭建 RESTful API;前端采用 Vue3,配合 ElementUI 打造响应式界面。数据持久层使用 MyBatis-Plus,减少样板代码。数据库方面,MySQL 8.0 提供了更好的性能与 JSON 支持。安全层面,引入 JWT 进行无状态身份验证,确保传输加密。
数据库设计
系统核心围绕用户、车辆和违章记录展开。
用户信息表
存储登录凭证与基础资料,主键为用户 ID。
| 字段名 | 类型 | 说明 |
|---|---|---|
| user_id | BIGINT | 主键 |
| user_name | VARCHAR | 登录名 |
| real_name | VARCHAR | 真实姓名 |
| pass_encrypt | VARCHAR | 加密密码 |
| mobile_num | VARCHAR | 手机号 |
| role_type | TINYINT | 角色(0 用户,1 管理员) |
车辆信息表
关联车主,车牌号需唯一校验。
| 字段名 | 类型 | 说明 |
|---|---|---|
| car_id | BIGINT | 主键 |
| plate_num | VARCHAR | 车牌号 |
| owner_id | BIGINT | 所属用户 ID |
| car_status | TINYINT | 状态(0 正常,1 锁定) |
违章记录表
记录违规详情及处理进度。
| 字段名 | 类型 | 说明 |
|---|---|---|
| violate_id | BIGINT | 主键 |
| car_id | BIGINT | 关联车辆 |
| fine_amount | DECIMAL | 罚款金额 |
| deal_status | TINYINT | 处理状态 |
核心逻辑实现
以用户认证模块为例,这里需要兼顾安全性与便捷性。
package com.controller;
import org.springframework.web.bind.annotation.*;
javax.servlet.http.HttpServletRequest;
{
UsersService userService;
TokenService tokenService;
R {
userService.selectOne(
<UsersEntity>().eq(, username)
);
(user == || !user.getPassword().equals(password)) {
R.error();
}
tokenService.generateToken(user.getId(), username, , user.getRole());
R.ok().put(, token);
}
R {
(userService.selectOne( <UsersEntity>().eq(, user.getUsername())) != ) {
R.error();
}
userService.insert(user);
R.ok();
}
}


