【开源】基于Vue和SpringBoot的车险自助理赔系统

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

在这里插入图片描述

项目编号: S 018 ,文末获取源码。 \color{red}{项目编号:S018,文末获取源码。} 项目编号:S018,文末获取源码。


目录

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

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. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

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



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

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一