【开源】SpringBoot框架开发个人保险管理系统

news2024/11/23 22:23:40

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 登录注册模块
    • 2.2 保险档案模块
    • 2.3 保险订单模块
    • 2.4 保险理赔模块
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询保险产品
    • 4.2 新增保险预定
    • 4.3 订单支付
    • 4.4 新增理赔单
    • 4.5 查询保险理赔
  • 五、免责说明


一、摘要

1.1 项目介绍

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

1.2 项目录屏


二、功能模块

2.1 登录注册模块

个人保险管理系统的登录注册模块是系统中非常重要的一部分,它负责用户身份验证和账户管理,登录注册模块是个人保险管理系统中与用户交互最频繁的部分,它的安全性和用户体验直接影响着整个系统的可用性和用户满意度。

2.2 保险档案模块

个人保险管理系统的保险档案模块是用于管理用户的保险信息和相关数据的重要部分。用户可以通过该功能添加新的保险信息。在添加保险档案时,用户通常需要提供保险类型、保险公司、保险单号、生效日期、失效日期、受益人等信息。系统会对输入的数据进行验证和存储,确保保险档案信息的完整性和准确性。用户可以选择删除不再需要的保险档案。在进行删除操作时,系统通常会提示用户确认删除,以避免误操作导致数据丢失。删除操作通常需要用户具有相应的权限,以防止误删或恶意删除。用户可以对已有的保险档案进行修改。用户可以修改保险信息中的某些字段,如保险公司、生效日期、失效日期等。修改操作也需要用户具有相应的权限,以确保数据的安全性和一致性。用户可以通过查询功能查看自己的保险档案信息。系统通常提供多种查询方式,如按保险类型、保险公司、生效日期等进行条件查询,以便用户快速找到所需的保险信息。在设计和实现个人保险管理系统的保险档案模块时,需要考虑用户友好的界面设计、数据输入验证、权限控制、数据存储安全等方面的需求。同时,需要遵循相关的隐私保护法规,确保用户的个人保险信息得到有效的保护。

2.3 保险订单模块

管理员或用户可以创建新的保险订单,包括填写被保险人信息、保险类型、保险金额、保险期限等。管理员可以根据订单号或其他标识删除已存在的保险订单。管理员或用户可以对已存在的保险订单进行修改,如修改被保险人信息、保险类型、保险金额、保险期限等,管理员或用户可以根据订单号、被保险人信息等条件进行查询已存在的保险订单,以获取订单详情。

2.4 保险理赔模块

管理员或用户可以添加新的理赔记录,包括填写被保险人信息、保险订单号、理赔原因、理赔金额等。管理员可以根据理赔记录号或其他标识删除已存在的理赔记录,管理员或用户可以对已存在的理赔记录进行修改,如修改被保险人信息、理赔原因、理赔金额等。管理员或用户可以根据理赔记录号、被保险人信息等条件进行查询已存在的理赔记录,以获取理赔详情。


三、系统展示

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


四、核心代码

4.1 查询保险产品

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询保险产品")
public Result<IPage<Insurance>> getByPage(@ModelAttribute Insurance insurance ,@ModelAttribute PageVo page){
    QueryWrapper<Insurance> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(insurance.getTitle())) {
        qw.like("title",insurance.getTitle());
    }
    if(!ZwzNullUtils.isNull(insurance.getType())) {
        qw.eq("type",insurance.getType());
    }
    IPage<Insurance> data = iInsuranceService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Insurance>>().setData(data);
}

4.2 新增保险预定

@RequestMapping(value = "/addOrder", method = RequestMethod.GET)
@ApiOperation(value = "新增保险预定")
public Result<InsuranceOrder> addOrder(@RequestParam String id){
    Insurance insurance = iInsuranceService.getById(id);
    if(insurance == null) {
        return ResultUtil.error("保险不存在");
    }
    User currUser = securityUtil.getCurrUser();
    InsuranceOrder io = new InsuranceOrder();
    io.setInsuranceId(insurance.getId());
    io.setInsuranceName(insurance.getTitle());
    io.setUserId(currUser.getId());
    io.setUserName(currUser.getNickname());
    io.setPayFlag(false);
    io.setPayTime("");
    iInsuranceOrderService.saveOrUpdate(io);
    return ResultUtil.success();
}

4.3 订单支付

@RequestMapping(value = "/pay", method = RequestMethod.GET)
@ApiOperation(value = "订单支付")
public Result<InsuranceOrder> pay(@RequestParam String id){
    InsuranceOrder order = iInsuranceOrderService.getById(id);
    if(order == null) {
        return ResultUtil.error("保险单不存在");
    }
    if(order.isPayFlag()) {
        return ResultUtil.error("已支付,请勿重复支付");
    }
    order.setPayFlag(true);
    order.setPayTime(DateUtil.now());
    iInsuranceOrderService.saveOrUpdate(order);
    return ResultUtil.success();
}

4.4 新增理赔单

@RequestMapping(value = "/addLiPei", method = RequestMethod.GET)
@ApiOperation(value = "新增理赔单")
public Result<InsuranceOrder> addLiPei(@RequestParam String id,@RequestParam float number){
    InsuranceOrder order = iInsuranceOrderService.getById(id);
    if(order == null) {
        return ResultUtil.error("保险单不存在");
    }
    Insurance ins = iInsuranceService.getById(order.getInsuranceId());
    if(ins == null) {
        return ResultUtil.error("保险不存在");
    }
    if(number < ins.getDownNumber().floatValue() || number > ins.getUpNumber().floatValue()) {
        return ResultUtil.error("赔付金额必须在保险限额内" + ins.getDownNumber().floatValue() + " - " + ins.getUpNumber().floatValue());
    }
    User currUser = securityUtil.getCurrUser();
    InsurancePay pay = new InsurancePay();
    pay.setInsuranceId(order.getInsuranceId());
    pay.setInsuranceName(order.getInsuranceName());
    pay.setOrderId(order.getId());
    pay.setUserId(currUser.getId());
    pay.setUserName(currUser.getNickname());
    pay.setStatus(0);
    pay.setMoney(BigDecimal.valueOf(number));
    iInsurancePayService.saveOrUpdate(pay);
    return ResultUtil.success();
}

4.5 查询保险理赔

@RequestMapping(value = "/getByMyPage", method = RequestMethod.GET)
@ApiOperation(value = "查询保险理赔")
public Result<IPage<InsurancePay>> getByMyPage(@ModelAttribute InsurancePay insurancePay ,@ModelAttribute PageVo page){
    QueryWrapper<InsurancePay> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(insurancePay.getInsuranceName())) {
        qw.like("insurance_name",insurancePay.getInsuranceName());
    }
    qw.eq("user_id",securityUtil.getCurrUser().getId());
    IPage<InsurancePay> data = iInsurancePayService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<InsurancePay>>().setData(data);
}

五、免责说明

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

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1532348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArcGIS Pro、R和INVEST:三位一体的生态系统服务评估框架

生态系统服务是指生态系统所形成的用于维持人类赖以生存和发展的自然环境条件与效用&#xff0c;是人类直接或间接从生态系统中得到的各种惠益。联合国千年生态系统评估&#xff08;Millennium ecosystem assessment&#xff0c;MA&#xff09;提出生态系统服务包括供给、调节、…

Go微服务实战——服务的监控与链路追踪(监控数据可视化)

链路追踪背景 对于早期系统或者服务来说&#xff0c;开发人员一般通过打日志的方式来进行埋点&#xff08;常用的数据采集方式&#xff09;&#xff0c;然后再根据日志系统和性能监控定位及分析问题。对于单体的应用通过日志系统完全可以定位到问题&#xff0c;从而排查异常。…

Docker系列

目录 练习&#xff1a;去DockerHub搜索并拉取一个Redis镜像 练习&#xff1a;去DockerHub搜索并拉取一个Redis镜像 目标&#xff1a; 1&#xff09;去DockerHub搜索Redis镜像 2&#xff09;查看Redis镜像的名称和版本 3&#xff09;利用docker pull命令拉取镜像 查看是否…

数据仓库的魅力及其在企业中的应用实践

数据仓库&#xff0c;这一创新性的概念来自于比尔恩门&#xff0c;从1980年代末提出以来&#xff0c;便凭借其独特的架构设计和强大的数据处理能力&#xff0c;在全球商业领域中掀起了一场革命。它不仅是解决企业海量数据存储和查询需求的关键技术&#xff0c;更是推动企业实现…

贵州省二级分类土地利用数据(矢量)

贵州省&#xff0c;地处中国西南腹地&#xff0c;地貌属于中国西南部高原山地&#xff0c;境内地势西高东低&#xff0c;自中部向北、东、南三面倾斜&#xff0c;平均海拔在1100米左右。贵州高原山地居多&#xff0c;素有“八山一水一分田”之说。全省地貌可概括分为&#xff1…

双向链表、单双向链表比较、双向链表的基本操作

我要成为嵌入式高手之3月20日数据结构第三天&#xff01;&#xff01; ———————————————————————————— 双向链表 双向链表与单向链表的区别&#xff1a;双向链表中的结点的指针域包含前驱结点的地址&#xff0c;而单向链表的结点中指针域只有后驱结…

PyTorch 深度学习(GPT 重译)(六)

十四、端到端结节分析&#xff0c;以及接下来的步骤 本章内容包括 连接分割和分类模型 为新任务微调网络 将直方图和其他指标类型添加到 TensorBoard 从过拟合到泛化 在过去的几章中&#xff0c;我们已经构建了许多对我们的项目至关重要的系统。我们开始加载数据&#xf…

RK3399 android10 移植SiS-USB触摸驱动

一&#xff0c;SiS USB触摸简介 SiS USB 触摸屏通常是一种外接式触摸屏设备&#xff0c;通过 USB 接口连接到计算机或其他设备上。这种触摸屏设备可以提供触摸输入功能&#xff0c;用户可以通过手指或触控笔在屏幕上进行操作&#xff0c;实现点击、拖动、缩放等操作。 SiS USB…

腾讯云GPU云服务器简介_GPU服务器购买指南_GPU云服务器操作

腾讯云GPU服务器是提供GPU算力的弹性计算服务&#xff0c;腾讯云GPU服务器具有超强的并行计算能力&#xff0c;可用于深度学习训练、科学计算、图形图像处理、视频编解码等场景&#xff0c;腾讯云百科txybk.com整理腾讯云GPU服务器租用价格表、GPU实例优势、GPU解决方案、GPU软…

学点儿Java_Day7_在实体类当中IDEA无法进行单元测试(@Test没有启动按钮)

在敲代码体会继承和访问修饰符的时候忽然遇到了单元测试不管用的情况&#xff0c;表现为没有启动按钮   经过一番折腾&#xff0c;发现我的测试是在具有构造函数的实体类Person当中进行的&#xff0c;当我把所有的构造函数删除后&#xff0c;启动按钮又出来了&#xff0c;加…

Pycharm实用快捷键

Pycharm实用快捷键 1.代码/函数提示2.查找同一变量位置3.添加类型提示4.一键代码规范化5.任意位置切换到下一行6.快速运行7.多行快速注释8.展开/折叠代码块9.全局搜索10.变量用过的地方11.快速包围12.跳到文件成员13.在项目内查找14.快速选中15.导入优化16.扩展 / 缩小选中17.复…

【SQL】1141. 查询近30天活跃用户数(常规写法;date_add())

前述 mysql中date_add()函数的使用 题目描述 leetcode题目&#xff1a;1141. 查询近30天活跃用户数 Code 写法一 select activity_date as day, count(distinct user_id) as active_users from Activity where activity_date > 2019-06-27 and activity_date < 2019…

北斗短报文+4G应急广播系统:全面预警灾害信息 构建安全美好乡村

建设社会主义新农村是确保小康社会宏伟目标如期实现的必然要求&#xff0c;是构建和谐社会的重要内容。针对现代农业发展的要求&#xff0c;通过完善专业化监测预报技术&#xff0c;提高精细化的灾害监测预警能力&#xff0c;建设广覆盖的预警信息发布网络&#xff0c;建设有效…

Linux快速入门,上手开发 01.学习路线

少时曾许凌云志&#xff0c;当取世间第一流 再见少年拉满弓&#xff0c;不惧岁月不飓风 —— 24.3.20 1.Linux的发展历史 2.VM虚拟机的Linux初体验 3.图形化页面设置系统——快速上手 4.命令行操作——向专业前进 5.核心操作命令——必知必会&#xff08;管理企业级权限/定位b…

【web算法】列车车厢重排问题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

【Unity】Plastic云同步总是password error

【背景】 Plastic是Unity的项目版本控制功能&#xff0c;可以方便在多个地点同步项目进度。原本用得挺爽的&#xff0c;结果今天遇到糟心事&#xff0c;明明Hub也正常登着&#xff0c;可Plastic的一个update的dll就是不停反复运行并报Password invalid。 【问题分析】 听说I…

常见六大WEB安全问题

一、XSS跨站脚本攻击 1.Cross-Site Scripting&#xff08;跨站脚本攻击&#xff09;简称 XSS&#xff08;因为缩写和 CSS重叠&#xff0c;所以只能叫 XSS&#xff09;&#xff0c;是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本&#xff0c;使之在用户的浏览器上运行…

流畅的 Python 第二版(GPT 重译)(十)

第十八章&#xff1a;with、match 和 else 块 上下文管理器可能几乎与子例程本身一样重要。我们只是初步了解了它们。[…] Basic 有一个 with 语句&#xff0c;在许多语言中都有 with 语句。但它们的功能不同&#xff0c;它们都只是做一些非常浅显的事情&#xff0c;它们可以避…

关于v1.29.2 版本的Maxwell存在于mysql8.0后版本部分源码字符集处理确实问题

1. 先去GitHub下载源码.zip文件2. 找到上图中的这个 StringColumnDef.java 做如下修改 eg: 3.然后是pom文件部分的修改&#xff1a; 将这个org.jgroups的版本降低到0.5.2.Final 然后再去注释掉一个类的引用&#xff1a; MaxwellHA.java 3.1 还可以不用降低这个org.jgro…

大模型学习笔记七:LLM应用

文章目录 一、维护生产级别的LLM应用,需要做的事二、符合需求的LLM App维护平台三、LangFuse1)替换OpenAI客户端(把跟OpenAI交互记录到LangFuse)1.1)几个基本概念2)通过LangChain的回调函数触发记录(上面用的原生OpenAI接口,下面是调用LangChain的接口)3)构建一个实际…