【开源】基于SpringBoot的车险自助理赔系统的设计和实现

本文主要是介绍【开源】基于SpringBoot的车险自助理赔系统的设计和实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 数据中心模块
    • 2.2 角色管理模块
    • 2.3 车辆档案模块
    • 2.4 车辆理赔模块
    • 2.5 理赔照片模块
  • 三、系统设计
    • 3.1 用例设计
    • 3.2 数据库设计
      • 3.2.1 角色表
      • 3.2.2 车辆表
      • 3.2.3 理赔表
      • 3.2.4 理赔照片表
  • 四、系统展示
  • 五、核心代码
    • 5.1 查询车辆档案
    • 5.2 申请车辆理赔
    • 5.3 上传理赔照片
    • 5.4 小程序登录
    • 5.5 修改个人昵称
  • 六、免责说明


一、摘要

1.1 项目介绍

基于Vue+SpringBoot+MySQL 的车险自助理赔系统包含车辆管理模块、车险理赔模块、理赔审核模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,车险自助理赔系统基于角色的访问控制,给车险管理员、用户、理赔专员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

项目编号: S 018 ,源码已在 B i l i b i l i 中上架,需要的朋友请自行下载。 \color{red}{项目编号:S018,源码已在 Bilibili 中上架,需要的朋友请自行下载。} 项目编号:S018,源码已在Bilibili中上架,需要的朋友请自行下载。

https://gf.bilibili.com/item/detail/1104012029

为了帮助小白入门 Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。

1.2 项目录屏


二、功能模块

车险自助理赔系统的功能性需求主要包含数据中心模块、角色管理模块、车辆档案模块、车辆理赔模块这五大模块,系统是基于浏览器运行的web管理后端,其中各个模块详细说明如下:

2.1 数据中心模块

数据中心模块包含了车险自助理赔系统的系统基础配置,如登录用户的管理、运营公司组织架构的管理、用户菜单权限的管理、系统日志的管理、公用文件云盘的管理。
其中登录用户管理模块,由管理员负责运维工作,管理员可以对登录用户进行增加、删除、修改、查询操作。
组织架构,指的是运营公司的组织架构,该模块适用于管理这些组织架构的部门层级和员工的部门归属情况。
用户菜单权限管理模块,用于管理不同权限的用户,拥有哪些具体的菜单权限。
系统日志的管理,用于维护用户登入系统的记录,方便定位追踪用户的操作情况。
公用云盘管理模块,用于统一化维护车险自助理赔系统中的图片,如理赔单照片、车辆照片等等。

2.2 角色管理模块

车险自助理赔系统是给多个角色使用的,车主和理赔管理员拥有着不同的菜单权限,所以需要建立角色管理模块。其中角色的字段包括角色名称、状态、排序值、备注、创建人、创建时间、更新人、更新时间等,管理员可以新增、删除、修改、条件查询角色,用户查询管理员发布的角色数据。

2.3 车辆档案模块

车辆是车险自助理赔系统的核心,有了车辆才可以申请理赔,所以需要对车辆的档案进程维护,车辆信息包括归属人、联系电话、车牌号、车辆照片、品牌、保险状态、创建人、创建时间等,车主可以申请添加自己名下的车辆,管理员可以对车辆信息进行添加、删除、编辑和条件查询操作。

2.4 车辆理赔模块

车辆理赔模块用于车主对自己车辆的理赔事宜进行申请和维护。车辆理赔的字段包括车辆、归属人、联系电话、车牌号、车辆照片、品牌、理赔事由、审核状态等,车主可以发起车辆理赔申请,管理员可以对车主发起的理赔申请进行审核操作。

2.5 理赔照片模块

为了更好的表达车辆理赔的情况,设计了理赔照片模块,车主可以根据需要上传理赔的照片,更好的说明理赔的情况,理赔照片的字段包括理赔单、照片、上传时间、上传、备注、排序值、更新时间、更新人,车主可以上传理赔照片,并挂靠到某个车辆理赔单上,管理员可以根据理赔单查询理赔的照片数据。


三、系统设计

3.1 用例设计

在这里插入图片描述

3.2 数据库设计

3.2.1 角色表

在这里插入图片描述

3.2.2 车辆表

在这里插入图片描述

3.2.3 理赔表

在这里插入图片描述

3.2.4 理赔照片表

在这里插入图片描述


四、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


五、核心代码

5.1 查询车辆档案

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询车辆")
public Result<IPage<Vehicle>> getByPage(@ModelAttribute Vehicle vehicle ,@ModelAttribute PageVo page){QueryWrapper<Vehicle> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(vehicle.getUserName())) {qw.like("user_name",vehicle.getUserName());}if(!ZwzNullUtils.isNull(vehicle.getCarNumber())) {qw.like("car_number",vehicle.getCarNumber());}if(!ZwzNullUtils.isNull(vehicle.getStatus())) {qw.like("status",vehicle.getStatus());}IPage<Vehicle> data = iVehicleService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Vehicle>>().setData(data);
}

5.2 申请车辆理赔

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "小程序申请理赔")
public Result<Object> addOne(@RequestParam String carId,@RequestParam String reason,@RequestParam String money,@RequestParam String image){Vehicle v = iVehicleService.getById(carId);if(v == null) {return ResultUtil.error("车辆不存在");}VehicleClaim vc = new VehicleClaim();vc.setVehicleId(v.getId());vc.setUserId(v.getUserId());vc.setUserName(v.getUserName());vc.setMobile(v.getMobile());vc.setCarNumber(v.getCarNumber());vc.setImage(v.getImage());vc.setBrand(v.getBrand());vc.setClaimReason(reason);vc.setClaimTime1(DateUtil.now());vc.setClaimTime2("");vc.setClaimStatus("未审核");vc.setClaimUser("");try {vc.setClaimMoney(BigDecimal.valueOf(Long.parseLong(money)));} catch (Exception e) {vc.setClaimMoney(BigDecimal.ZERO);}iVehicleClaimService.saveOrUpdate(vc);User currUser = securityUtil.getCurrUser();String[] imageList = image.split(",");for (String vo : imageList) {VehicleImage vi = new VehicleImage();vi.setClaimId(vc.getId());vi.setImage(vo);vi.setUploadTime(DateUtil.now());vi.setUploadUser(currUser.getNickname());iVehicleImageService.saveOrUpdate(vi);}return ResultUtil.success();
}

5.3 上传理赔照片

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增照片")
public Result<VehicleImage> addOne(@RequestParam String id,@RequestParam String image){User currUser = securityUtil.getCurrUser();String[] imageList = image.split(",");for (String vo : imageList) {VehicleImage vi = new VehicleImage();vi.setClaimId(id);vi.setImage(vo);vi.setUploadTime(DateUtil.now());vi.setUploadUser(currUser.getNickname());iVehicleImageService.saveOrUpdate(vi);}return ResultUtil.success();
}

5.4 小程序登录

@RequestMapping(value = "/loginOnWeb", method = RequestMethod.GET)
@ApiOperation(value = "小程序登陆")
public Result<String> loginOnWeb(@RequestParam String userName, @RequestParam String password){QueryWrapper<User> qw = new QueryWrapper<>();qw.eq("username",userName);List<User> userList = iUserService.list(qw);if(userList.size() < 1) {User u = new User();u.setUsername(userName);u.setNickname(userName);u.setMobile(userName);u.setEmail(u.getMobile() + "@qq.com");String encryptPass = new BCryptPasswordEncoder().encode(password);u.setPassword(encryptPass).setType(0);iUserService.saveOrUpdate(u);QueryWrapper<Role> roleQw = new QueryWrapper<>();roleQw.eq("default_role",true);List<Role> roleList = iRoleService.list(roleQw);if(roleList.size() > 0){for(Role role : roleList) {iUserRoleService.saveOrUpdate(new UserRole().setUserId(u.getId()).setRoleId(role.getId()));}}String accessToken = securityUtil.getToken(u.getUsername(), true);UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(new SecurityUserDetails(u), null, null);SecurityContextHolder.getContext().setAuthentication(authentication);return new ResultUtil<String>().setData(accessToken);}User user = userList.get(0);if(!new BCryptPasswordEncoder().matches(password, user.getPassword())){return ResultUtil.error("密码不正确");}String accessToken = securityUtil.getToken(user.getUsername(), true);UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(new SecurityUserDetails(user), null, null);SecurityContextHolder.getContext().setAuthentication(authentication);return new ResultUtil<String>().setData(accessToken);
}

5.5 修改个人昵称

@RequestMapping(value = "/changeName", method = RequestMethod.GET)
@ApiOperation(value = "修改昵称")
public Result<User> changeName(@RequestParam String nickname){User user = iUserService.getById(securityUtil.getCurrUser().getId());if(user == null) {return ResultUtil.error("用户不存在");}user.setNickname(nickname);iUserService.saveOrUpdate(user);return new ResultUtil<User>().setData(user);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

这篇关于【开源】基于SpringBoot的车险自助理赔系统的设计和实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/295076

相关文章

Python实现Word转PDF全攻略(从入门到实战)

《Python实现Word转PDF全攻略(从入门到实战)》在数字化办公场景中,Word文档的跨平台兼容性始终是个难题,而PDF格式凭借所见即所得的特性,已成为文档分发和归档的标准格式,下面小编就来和大... 目录一、为什么需要python处理Word转PDF?二、主流转换方案对比三、五套实战方案详解方案1:

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析

Spring Security6.3.x的使用指南与注意事项

《SpringSecurity6.3.x的使用指南与注意事项》SpringSecurity6.3.1基于现代化架构,提供简洁配置、增强默认安全性和OAuth2.1/OIDC支持,采用Lambda... 目录介绍基础配置 (Servlet 应用 - 使用 Lambda DSL)关键配置详解(Lambda DS

Java Stream 的 Collectors.toMap高级应用与最佳实践

《JavaStream的Collectors.toMap高级应用与最佳实践》文章讲解JavaStreamAPI中Collectors.toMap的使用,涵盖基础语法、键冲突处理、自定义Map... 目录一、基础用法回顾二、处理键冲突三、自定义 Map 实现类型四、处理 null 值五、复杂值类型转换六、处理

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R