Vue+SpringBoot打造个人保险管理系统

在这里插入图片描述


目录

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算以e为底1+x的自然对数 即ln(1+x) math.log1p(x)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算以e为底 1x的自然对数 即ln(1x) math.log1p(x) [太阳]选择题 请问执行以下程序的运行结果是&#xff1a; import math print("【执行】math.log1p(0)") print (math.log1p(0)) …

服务端向客户端推送数据的实现方案

在日常的开发中&#xff0c;我们经常能碰见服务端需要主动推送给客户端数据的业务场景&#xff0c;比如数据大屏的实时数据&#xff0c;比如消息中心的未读消息&#xff0c;比如聊天功能等等。 本文主要介绍SSE的使用场景和如何使用SSE。 服务端向客户端推送数据的实现方案有哪…

Vue路由模式

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介路由模式1. Hash 模式2. History 模式选择路由模式的考虑因素 ⭐ 写在最后 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏&#xff01;创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能树的学习…

Node.js中的数据加密和安全传输

在当今日益数字化的世界中&#xff0c;数据安全一直是一个备受关注的话题。Node.js作为一种流行的后端开发技术&#xff0c;其在数据加密和安全传输方面的应用也备受关注。本篇博客将深入探讨Node.js中的数据加密和安全传输相关内容&#xff0c;并为读者提供一些示例代码&#…

vue实现水印功能

目录 一、应用场景 二、实现原理 三、详细开发 1.水印的实现方式 2.防止用户通过控制台修改样式去除水印效果&#xff08;可跳过&#xff0c;有弊端&#xff09; 3.水印的使用 &#xff08;1&#xff09;单页面/全局使用 &#xff08;2&#xff09;全局使用个别页面去掉…

【投稿优惠|快速见刊】2024年图像,机器学习和人工智能国际会议(ICIMLAI 2024)

【投稿优惠|快速见刊】2024年图像&#xff0c;机器学习和人工智能国际会议&#xff08;ICIMLAI 2024&#xff09; 重要信息 会议官网&#xff1a;http://www.icimlai.com会议地址&#xff1a;深圳召开日期&#xff1a;2024.03.30截稿日期&#xff1a;2024.03.20 &#xff08;先…

音视频开发之旅(72)- AI数字人-照片说话之SadTalker

目录 1.效果展示 2.SadTalker原理学习 3.SadTalker代码流程分析 4.性能优化 5.参考资料 AI数字人目前做的最好的无疑是heygen&#xff0c;但是费用也是很贵&#xff0c;也有一些其他的商业应用&#xff0c;比如&#xff1a;微软小冰、腾讯智影、万兴播爆和硅基智能等。 而…

如何确保JDK版本与操作系统架构匹配?

1. 序言 最近的工作中&#xff0c;需要升级JDK版本到17.0.7&#xff0c;以解决一个JDK bug&#xff1a;JDK-8299626该bug的core dump关键字如下&#xff1a;SIGSEGV in PhaseIdealLoop::build_loop_late_post_work公司JDK团队提供的、包含JDK的基础镜像&#xff0c;有aarch64和…

基于C#开发OPC DA客户端——搭建KEPServerEX服务

简介 OPC DA (OLE for Process Control Data Access) 是一种工业自动化领域中的通信协议标准&#xff0c;它定义了应用程序如何访问由OPC服务器提供的过程控制数据。OPC DA标准允许软件应用程序&#xff08;客户端&#xff09;从OPC服务器读取实时数据或向服务器写入数据&…

elment-ui table表格排序后 清除排序箭头/恢复默认排序 的高亮样式

问题描述&#xff1a; 1.默认排序是按照名称升序排列&#xff08;图一&#xff09; 2.在选择了筛选项以及其他排序方式之后&#xff0c;箭头高亮是这样的&#xff08;图二&#xff09; 3.当我点击清空按钮后&#xff0c;类型清空了&#xff0c;并且传给后端的排序方式是名称/升…

数据库管理-第157期 Oracle Vector DB AI-08(20240301)

数据库管理157期 2024-03-01 数据库管理-第157期 Oracle Vector DB & AI-08&#xff08;20240301&#xff09;1 创建示例向量2 查找最近向量3 基于向量簇组的最近向量查询总结 数据库管理-第157期 Oracle Vector DB & AI-08&#xff08;20240301&#xff09; 作者&…

蓝桥杯-单片机组基础5——外部中断与LED的控制(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章&#xff1a;戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写&#xff0c;代码可直接在比赛开发板上使用。 型号&#xff1a;国信天长4T开发板&#xff08;绿板&#xff09;&#xff0c;芯片&#xff1a;IAP15F2K6…

二叉搜索树在线OJ题讲解

二叉树创建字符串 我们首先进行题目的解读&#xff1a; 大概意思就是用&#xff08;&#xff09;把每个节点的值给括起来&#xff0c;然后再经过一系列的省略的来得到最后的结果 大家仔细观察题目给出的列子就可以发现&#xff0c;其实这个题目可以大致分为三种情况&#xff1…

git安装与使用4.3

一、git的安装 1、下载git包 下载git包url&#xff1a;https://git-scm.com/download/win 下载包分为&#xff1a;64位和32位 2、点击安装包 2、选择安装路径 3、 点击下一步 4、点击next 5、点击next 6、点击next 7、 8、 9、 10、 11、 12、在桌面空白处&#xff0c;右键…

服务器上部署WEb服务方法

部署Web服务在服务器上是一个比较复杂的过程。这不仅仅涉及到配置环境、选择软件和设置端口&#xff0c;更有众多其它因素需要考虑。以下是在服务器上部署WEb服务的步骤&#xff1a; 1. 选择服务器&#xff1a;根据项目规模和预期访问量&#xff0c;选择合适的服务器类型和配置…

2024.02.29作业

1. TCP模型 server #include "test.h"#define SER_IP "192.168.191.128" #define SER_PORT 9999int main(int argc, char const *argv[]) {int sfd -1;sfd socket(AF_INET, SOCK_STREAM, 0);if (-1 sfd){perror("socket error");return -1;…

Tomcat部署Web服务器及基础功能配置

前言 Tomcat作为一款网站服务器&#xff0c;目前市面上Java程序使用的比较多&#xff0c;作为运维工人&#xff0c;有必要了解一款如何去运行Java环境的网站服务。 目录 一、Java相关介绍 1. Java历史 2. Java跨平台服务 3. Java实现动态网页功能 3.1 servelt 3.2 jsp …

【排序算法】基数排序

一&#xff1a;基本概念 1.1 基数排序(桶排序)介绍 基数排序&#xff08;radix sort&#xff09;属于“分配式排序”&#xff08;distribution sort&#xff09;&#xff0c;又称“桶子法”&#xff08;bucket sort&#xff09;或bin sort&#xff0c;顾名思义&#xff0c;它是…

2024最新ChatGPT网站源码AI绘画系统:SparkAI系统(Ai智能问答系统和Midjourney绘画系统)

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持GPT…

2.模拟问题——2.使用二维数组输出图形

用二维数组描述图形 首先要计算出整个输出的方框大小&#xff0c;从而判定相应关键循环点 #include <cstdio> char arr[1000][3000]; int main() {int h;//初始化&#xff0c;全部内部填空格while(scanf("%d",&h) ! EOF){for (int i 0; i < h; i) {f…