項目編號: 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 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。
下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!
- 出于自愿而使用/開發本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
- 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
- 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業利潤損失、業務中斷與業務信息丟失),博主概不承擔任何責任。
- 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。