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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring MVC源码中设计模式——适配器模式

适配器模式介绍 适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式&#xff0c;它结合了两个独立接口的功能。 应用场景&#xff1a; 1、系统需要使用现有的类&#xff0c;而此类的接口不符合系统的需要…

leedcode刷题--day7(字符串)

23 文章讲解 力扣地址 C class Solution { public:void reverseString(vector<char>& s) {int left 0;int right s.size() - 1; // right 应该初始化为 s.size() - 1while (left < right) {swap(s[left], s[right]); // 直接交换 s[left] 和 s[right] 的值lef…

备战蓝桥杯---状态压缩DP基础1之棋盘问题

它只是一种手段&#xff0c;一种直观而高效地表示复杂状态的手段。 我们先来看一道比较基础的&#xff1a; 直接DFS是肯定不行&#xff0c;我们发现对某一行&#xff0c;只要它前面放的位置都一样&#xff0c;那么后面的结果也一样。 因此我们考虑用DP&#xff0c;并且只有0/…

操作系统x面试|进程与线程

1. 线程进程的区别 进程可以称为是资源分配的最小单元&#xff0c;而线程可以称为是处理器分配的最小单元。 资源包括内存空间。同时进程是一段代码的执行过程&#xff0c;这段代码需要多少的内存在代码确定时已经确定下来了。 处理器就是执行单元&#xff0c;一个进程可以拆解…

Vue3速成

文章目录 day 11. 创建vue3工程3. 响应式数据4. 计算属性 day 25. watch 监视6. watchEffect7. 标签的ref属性8. 回顾TS中的接口_泛型_自定义类型 day 1 1. 创建vue3工程 相关代码如下&#xff1a; ## 创建vue工程 npm create vuelastest## 安装node_modules npm install //…

分类问题经典算法 | 二分类问题 | Logistic回归:梯度下降

目录 一. 损失函数1. 交叉熵损失函数2. 梯度下降 一. 损失函数 Logistic回归算法公式推导篇中&#xff0c;我们通过对似然函数求对数&#xff0c;得到 l ( θ ) l(\theta ) l(θ)&#xff1a; l ( θ ) l n [ L ( θ ) ] ∑ i 1 M { y ( i ) l n [ h θ ( x ( i ) ) ] ( …

laravel ApiResponse接口统一响应封装

一&#xff0c;新增接口返回码配置文件 在config中新增配置文件apicode.php <?phpreturn [ apicodes>[/*** Message("OK")* 对成功的 GET、PUT、PATCH 或 DELETE 操作进行响应。也可以被用在不创建新资源的 POST 操作上*/HTTP_OK > 200,/*** Message(&qu…

优化云的 10 种方法...

云优化是正确选择正确的资源并将其分配给工作负载或应用程序的过程&#xff0c;确保资源得到有效利用并优化性能。这是为了确保您充分利用云基础设施。这包括确保您没有过度配置&#xff08;或者实际上配置不足&#xff09;资源&#xff0c;并确保您为正确的任务使用正确的服务…

职场的过早优化

过早优化&#xff0c;指的是还没弄清楚需求未来的变化的走向的时候&#xff0c;忽略了更重要的问题。 放在职业发展上&#xff1a;你在没有积累足够职场资源&#xff08;眼界、能力、人脉等等&#xff09;&#xff0c;也没有对职业发展形成清晰认知的时候&#xff0c;就过早地进…

UE学习笔记--解决滚轮无法放大蓝图、Panel等

我们发现有时候创建蓝图之后&#xff0c;右上角的缩放是1&#xff1a;1 但是有时候我们可能需要放的更大一点。 发现一直用鼠标滚轮像上滚动&#xff0c;都没有效果。 好像最大只能 1&#xff1a;1. 那是因为 UE 做了限制。如果希望继续放大&#xff0c;我们可以按住 Ctrl 再去…

Python读取hbase数据库

1. hbase连接 首先用hbase shell 命令来进入到hbase数据库&#xff0c;然后用list命令来查看hbase下所有表&#xff0c;以其中表“DB_level0”为例&#xff0c;可以看到库名“baotouyiqi”是拼接的&#xff0c;python代码访问时先连接&#xff1a; def hbase_connection(hbase…

精品SSM的选修课管理系统选课签到打卡

《[含文档PPT源码等]精品基于SSM的选修课管理系统设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&#xff1a;HTM…