基于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,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。
车险自助理赔系统的功能性需求主要包含数据中心模块、角色管理模块、车辆档案模块、车辆理赔模块这五大模块,系统是基于浏览器运行的web管理后端,其中各个模块详细说明如下:
数据中心模块包含了车险自助理赔系统的系统基础配置,如登录用户的管理、运营公司组织架构的管理、用户菜单权限的管理、系统日志的管理、公用文件云盘的管理。
其中登录用户管理模块,由管理员负责运维工作,管理员可以对登录用户进行增加、删除、修改、查询操作。
组织架构,指的是运营公司的组织架构,该模块适用于管理这些组织架构的部门层级和员工的部门归属情况。
用户菜单权限管理模块,用于管理不同权限的用户,拥有哪些具体的菜单权限。
系统日志的管理,用于维护用户登入系统的记录,方便定位追踪用户的操作情况。
公用云盘管理模块,用于统一化维护车险自助理赔系统中的图片,如理赔单照片、车辆照片等等。
车险自助理赔系统是给多个角色使用的,车主和理赔管理员拥有着不同的菜单权限,所以需要建立角色管理模块。其中角色的字段包括角色名称、状态、排序值、备注、创建人、创建时间、更新人、更新时间等,管理员可以新增、删除、修改、条件查询角色,用户查询管理员发布的角色数据。
车辆是车险自助理赔系统的核心,有了车辆才可以申请理赔,所以需要对车辆的档案进程维护,车辆信息包括归属人、联系电话、车牌号、车辆照片、品牌、保险状态、创建人、创建时间等,车主可以申请添加自己名下的车辆,管理员可以对车辆信息进行添加、删除、编辑和条件查询操作。
车辆理赔模块用于车主对自己车辆的理赔事宜进行申请和维护。车辆理赔的字段包括车辆、归属人、联系电话、车牌号、车辆照片、品牌、理赔事由、审核状态等,车主可以发起车辆理赔申请,管理员可以对车主发起的理赔申请进行审核操作。
为了更好的表达车辆理赔的情况,设计了理赔照片模块,车主可以根据需要上传理赔的照片,更好的说明理赔的情况,理赔照片的字段包括理赔单、照片、上传时间、上传、备注、排序值、更新时间、更新人,车主可以上传理赔照片,并挂靠到某个车辆理赔单上,管理员可以根据理赔单查询理赔的照片数据。
@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);
}
@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();
}
@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();
}
@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);
}
@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);
}
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!