基于javaweb和mysql的springboot交通管理在线服务系统(java+springboot+vue+elementui+mysql)
私信源码获取及调试交流
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Node.js≥14
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot交通管理在线服务系统(java+springboot+vue+elementui+mysql)
项目介绍
基于Springboot + vue实现的交通管理在线服务系统
系统包含用户和管理员两个角色
管理员:
管理员管理:负责添加、删除、修改管理员账号,并设置相应的权限,确保管理员团队的专业性和高效性。
基础数据管理:对交通管理的基础数据进行统一的管理,包括道路信息、交通设施、车辆类型等,确保数据的准确性和完整性。
新闻信息管理:发布、编辑和删除交通新闻、政策更新、路况信息等,保持信息的实时性和有效性。
用户管理:管理用户账号,包括用户注册、登录、权限设置等,确保系统的安全性。
用户:
个人中心管理:查看和编辑个人信息,包括联系方式、地址等;查看个人的交通记录,如驾驶证信息、车辆信息以及违法记录等。
驾驶证业务管理:在线提交驾驶证申请、查询、更新、补办等业务,并实时查看办理进度。
机动车业务管理:在线提交车辆注册、年检、转移、报废等业务申请,并获取办理结果。
违法处理业务管理:在线查询违法记录,包括违章详情、罚款金额等;在线缴纳罚款、申请行政复议等。
新闻信息查看:浏览系统发布的交通新闻、政策更新、路况信息等,了解最新的交通动态。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 5.7/8.0版本均可;
5.是否Maven项目:是;
技术栈
后端:SpringBoot+Mybaits
前端:Vue+elementui
使用说明
项目运行:
-
使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
-
使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令;
-
将项目中application.yml配置文件中的数据库配置改为自己的配置;
4.运行项目,在浏览器中输入地址:
后台登录页面
http://localhost:8080/waimaifuwu/admin/dist/index.html#/login
管理员账户:admin 密码:admin
用户账户:a1 密码:123456
文档结构展示:
系统登录展示:
驾驶证业务管理展示:
机动车业务管理展示:
新闻信息管理展示:
违法处理业务管理展示:
用户管理展示:
用户管理控制层:
*/
@RequestMapping("/system")
@Controller
public class SystemController {
@Autowired
private OperaterLogService operaterLogService;
@Autowired
private UserService userService;
@Autowired
private DatabaseBakService databaseBakService;
private Logger log = LoggerFactory.getLogger(SystemController.class);
/**
@ResponseBody
public Result<Boolean> login(HttpServletRequest request,User user,String cpacha){
if(user == null){
return Result.error(CodeMsg.DATA_ERROR);
//用统一验证实体方法验证是否合法
CodeMsg validate = ValidateEntityUtil.validate(user);
if(validate.getCode() != CodeMsg.SU***ESS.getCode()){
return Result.error(validate);
//表示实体信息合法,开始验证验证码是否为空
if(StringUtils.isEmpty(cpacha)){
return Result.error(CodeMsg.CPACHA_EMPTY);
//说明验证码不为空,从session里获取验证码
Object attribute = request.getSession().getAttribute("admin_login");
*/
@RequestMapping("/role")
@Controller
public class RoleController {
private Logger log = LoggerFactory.getLogger(RoleController.class);
@Autowired
private MenuService menuService;
@Autowired
private OperaterLogService operaterLogService;
@Autowired
*/
@RequestMapping(value="/add",method=RequestMethod.GET)
public String add(Model model){
model.addAttribute("roles", roleService.findAll());
return "admin/user/add";
/**
* 录入人脸信息
* @param model
* @return
*/
@RequestMapping(value="/add_face",method=RequestMethod.GET)
public String addFace(Model model,@RequestParam(name="id",required=true)Long id){
model.addAttribute("user", userService.find(id));
private DatabaseBakService databaseBakService;
private Logger log = LoggerFactory.getLogger(SystemController.class);
/**
* 登录页面
* @param name
* @param model
* @return
*/
@RequestMapping(value="/login",method=RequestMethod.GET)
public String login(Model model){
return "admin/system/login";
if(validate.getCode() != CodeMsg.SU***ESS.getCode()){
return Result.error(validate);
if(user.getRole() == null || user.getRole().getId() == null){
return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY);
//判断用户名是否存在
if(userService.isExistUsername(user.getUsername(), 0l)){
return Result.error(CodeMsg.ADMIN_USERNAME_EXIST);
//到这说明一切符合条件,进行数据库新增
if(userService.save(user) == null){
return Result.error(CodeMsg.ADMIN_USE_ADD_ERROR);
operaterLogService.add("添加用户,用户名:" + user.getUsername());
return Result.su***ess(true);
* 后台用户管理控制器
*/
@RequestMapping("/user")
@Controller
public class UserController {
@Autowired
private UserService userService;
@Autowired
private RoleService roleService;
@Autowired
private OperaterLogService operaterLogService;
userService.save(loginedUser);
//更新session里的值
SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser);
return "redirect:update_userinfo";
/**
* 修改密码页面
* @return
*/
@RequestMapping(value="/update_pwd",method=RequestMethod.GET)
public String updatePwd(){
return "admin/system/update_pwd";
return "admin/system/login";
/**
* 用户登录提交表单处理方法
* @param request
* @param user
* @param cpacha
* @return
*/
@RequestMapping(value="/login",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> login(HttpServletRequest request,User user,String cpacha){
角色管理控制层:
/**
* 后台角色管理控制器
*/
@RequestMapping("/role")
@Controller
public class RoleController {
private Logger log = LoggerFactory.getLogger(RoleController.class);
@Autowired
private MenuService menuService;
@Autowired
private OperaterLogService operaterLogService;
log.info("编辑角色【"+role+"】");
operaterLogService.add("编辑角色【"+role.getName()+"】");
return Result.su***ess(true);
/**
* 删除角色
* @param request
* @param id
* @return
*/
@RequestMapping(value="delete",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> delete(@RequestParam(name="id",required=true)Long id){
try {
* @param id
* @param model
* @return
*/
@RequestMapping(value="/edit",method=RequestMethod.GET)
public String edit(@RequestParam(name="id",required=true)Long id,Model model){
List<Menu> findAll = menuService.findAll();
model.addAttribute("topMenus",MenuUtil.getTopMenus(findAll));
model.addAttribute("secondMenus",MenuUtil.getSecondMenus(findAll));
model.addAttribute("thirdMenus",MenuUtil.getThirdMenus(findAll));
Role role = roleService.find(id);
if(!cpacha.equalsIgnoreCase(attribute.toString())){
return Result.error(CodeMsg.CPACHA_ERROR);
//表示验证码正确,开始查询数据库,检验密码是否正确
User findByUsername = userService.findByUsername(user.getUsername());
//判断是否为空
if(findByUsername == null){
return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST);
//表示用户存在,进一步对比密码是否正确
if(!findByUsername.getPassword().equals(user.getPassword())){
return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR);
//表示密码正确,接下来判断用户状态是否可用
if(findByUsername.getStatus() == User.ADMIN_USER_STATUS_UNABLE){
return Result.error(CodeMsg.ADMIN_USER_UNABLE);
//检查用户所属角色状态是否可用
//表示实体信息合法,开始验证验证码是否为空
if(StringUtils.isEmpty(cpacha)){
return Result.error(CodeMsg.CPACHA_EMPTY);
//说明验证码不为空,从session里获取验证码
Object attribute = request.getSession().getAttribute("admin_login");
if(attribute == null){
return Result.error(CodeMsg.SESSION_EXPIRED);
//表示session未失效,进一步判断用户填写的验证码是否正确
if(!cpacha.equalsIgnoreCase(attribute.toString())){
return Result.error(CodeMsg.CPACHA_ERROR);
//表示验证码正确,开始查询数据库,检验密码是否正确
User findByUsername = userService.findByUsername(user.getUsername());
model.addAttribute("user", userService.find(id));
return "admin/user/add_face";
/**
* 用户添加表单提交处理
* @param user
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> add(User user){
//用统一验证实体方法验证是否合法
CodeMsg validate = ValidateEntityUtil.validate(user);
if(validate.getCode() != CodeMsg.SU***ESS.getCode()){
log.info(faceMatch);
JSONObject parseObject = JSONObject.parseObject(faceMatch);
if(parseObject.getIntValue("error_code") != 0){
CodeMsg codeMsg = CodeMsg.DATA_ERROR;
codeMsg.setMsg(parseObject.getString("error_msg"));
return Result.error(codeMsg);
//此处判断人脸可信度
JSONObject result = parseObject.getJSONObject("result");
if(result.getBigDecimal("score").***pareTo(new BigDecimal(80)) < 0){
return Result.error(CodeMsg.ADMIN_USER_FACE_NOT_MATCH);
//检查一切符合,可以登录,将用户信息存放至session
existRole.setRemark(role.getRemark());
existRole.setStatus(role.getStatus());
existRole.setAuthorities(role.getAuthorities());
if(roleService.save(existRole) == null){
return Result.error(CodeMsg.ADMIN_ROLE_EDIT_ERROR);
log.info("编辑角色【"+role+"】");
operaterLogService.add("编辑角色【"+role.getName()+"】");
return Result.su***ess(true);
/**
* 删除角色
* @param request