车险中介云平台的费用管理系统的设计与实现

2020-05-11 11:44周永圣孙雯侯峰裕杨磊杨晋张小贝
微型电脑应用 2020年2期

周永圣 孙雯 侯峰裕 杨磊 杨晋 张小贝

摘 要: 车险中介云平台的费用管理系统实现了车险平台公司根据各大保险公司的佣金和成本政策灵活调整比例,方便运维人员及时配置费用数据,把握市场信息。介绍费用管理系统利用的前端Vue.js技术、Spring、Mybatis等框架技术,结合Dubbo、Zookeeper等中间件,搭建了一个SOA系统。本系统实现了前后端分离,结构合理,界面清晰友好,方便了运维人员的日常工作。

关键词: 中介云平台; Spring; Vue.js

中图分类号:       文献标志码:

Design and Implementation of Expense Management System for Vehicle

Insurance Intermediary Cloud Platform

ZHOU Yongsheng1,2, SUN Wen1,2, HOU Fengyu1,2, YANG Lei1,2, YANG Jin1,2, ZHANG Xiaobei1,2

(1. School of Communication & Information Engineering, Shanghai University; 2. Shanghai Institute

for Advanced Communication and Data Science, Shanghai 200444)

Abstract: The expense management system of the auto insurance intermediary cloud platform has realized that the auto insurance platform company flexibly adjusted the proportion according to the commissions and cost policies of major insurance companies, facilitated the operation and maintenance personnel to timely allocate cost data and grasp market information. This paper introduces the front-end Vue.js technology and Spring, Mybatis and other framework technologies used in the expense management system, and combines middleware such as Dubbo and Zookeeper to build an SOA system. The system realizes the separation of the front and rear ends, the structure is reasonable, the interface is clear and friendly, and the daily work of the operation and maintenance personnel is convenient.

Key words: Intermediary cloud platform; Spring; Vue.js

0 引言

據统计,截至2017年底,全国机动车保有量达3.10亿辆,机动车驾驶人达3.85亿人,这意味着车险具有庞大的市场。而在当前移动互联网的潮流下,“互联网+车险”无疑是最优组合。通过手机端APP购买车险相比于传统方式更加具有灵活、便捷的特点。然而,各家保险公司针对不同的地区、不同类型的车辆(新保、续保、风险车型等)、不同的保险经代公司等多个因素会制定不同的费用政策,那么为其配套相应的费用管理平台是非常必要的。

本文主要介绍了车险中介云平台的费用管理系统的设计与实现。该系统可让运维人员根据险种(商业险、交强险)、车辆类型(新保、续保、风险车型)、地区等去配置费用政策,通过将不同的费用政策添加到各个大V渠道,实现对大V账号费用政策的灵活管理。整个系统使用了RPC框架,便于后期的维护与拓展。

1 关键技术简介

1.1 Vue.js

Vue是一套用于构建用户界面的渐进式框架。它与其他大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注于视图层,不仅易于上手,还便于与第三方库或者是既有项目进行整合。此外,当与现代化的工具链以及各种支持类库进行整合时,Vue也完全能够为复杂的单页应用提供驱动。Vue响应式框架原理如图1所示[1]。

Vue.js是整个前端工程的基础视图层框架,主要解决前端数据绑定问题。与传统的基于jQuery的繁杂DOM选择器相比,Vue.js的响应式双向绑定数据,实时反映数据的真实变化并映射到目标虚拟DOM上,避免了传统前端开发中DOM选择器复杂的操作,大大简化了前端开发流程,提升了开发效率,降低了开发成本和周期。

Vue-router是Vue.js官方发布的一款路由插件,与Vue.js是深度集成的,适合用于构建单页面应用。与传统的页面跳转相比,Vue-router是通过组件之间的切换来实现页面的切换与跳转。此外,HTML5里引入了新的API,history.pushState和history.replaceState,可以通过这个新的接口做到无刷新访问页面的同时修改页面的URL,让Vue.js能够动态调整页面路径,方便页面切换,提高了用户体验。在本文介绍的系统中,使用其开发用户友好的前端页面,达到前后端分离的目标。

1.2 Spring框架

Spring是一个开源框架,它是为了解决企业级应用开发的复杂性而创建的。Spring的核心是控制反转(IOC)和面向切面(AOP),应用了控制反转,一个对象就不需要自己创建或者查找依赖对象,其依赖对象会通过被动的方式传递进来,极大地降低了对象之间的耦合,减化了企业级项目的复杂性。此外,Spring是一个分层架构的框架,分层架构允许开发人员为其项目选择合适的组件,不排斥各种优秀的开源框架,比如Hibernate、Mybatis等。在本文介绍的系统中,使用Spring与Dubbo和Mybatis进行整合使用,提高了开发效率。

1.3 Dubbo

Dubbo[2]是由阿里巴巴集团提供的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心主要包含三个部分:远程通讯、集群容错和自动发现。Dubbo与Spring是无缝集成的,只需要简单的配置信息,Dubbo就可以提供透明化的远程方法调用,如同调用本地方法一般;软负载均衡及容错机制,降低成本,减少单点;服务自动注册与发现,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑地添加或删除服务提供者。在本文介绍的系统中,Dubbo与Zookeeper结合使用,暴露服务接口给前端页面。

2 系統架构的构建及数据库的设计

本系统是一个基于Dubbo的分布式服务系统[3],由多个基础服务和业务服务构成。整个系统前后端分离,前端通过注册在Zookeeper中的接口调用后台服务,完成对费用政策的处理。

2.1 系统架构的构建

对互联网车险下单平台日常运维工作的需求进行分析,将费用管理系统分为费用维度配置、分享规则配置、导出分享规则、费用成本配置、批量生成成本方案等10个功能模块。如图2所示。

(1) 费用维度配置:运维人员可根据各大保险公司提供的车险报价的基础维度新增费用维度,比如新车购置价、使用性质和出现次数等,同时支持对基础维度的灵活组合,支持对基础维度和维度组合的查询、编辑和添加功能。

(2) 分享规则配置:由于推广车险的业务员有两种可能,一个是团队业务员,业务员会有上下级关系;一个是普通业务员,不属于任何团队。对于有上下级关系的业务员的账户,当其出单时需要为其上上级,上级账户提供一定比例的佣金抽成,因而需要支持对不同地区、不同保险公司、不同业务渠道的账户配置一级分享比例、二级分享比例以及大V绩效信息。

(3) 费用规则列表:可根据车险和非车险查询对应的费用规则详细信息。

(4) 导出分享规则:将用户配置的分享规则数据导出到Excel文件当中,方便运维人员与保险业务员进行线下沟通。

(5) 结算费率配置:运维人员根据基础维度或者维度组合的笛卡尔乘积,按照保险公司提供的车险结算数据去配置相应的结算比例。

(6) 费用成本配置:费用成本是指从保险公司给的出单抽成当中去除给车险互联网平台的费用、经代公司的费用以及第三方打款的费用。运维人员需要根据地区、方案类型、业务渠道等多个因素去配置费用成本数据。

(7) 导出结算方案列表:将用户配置的结算方案数据导出到Excel文件当中。

(8) 批量生成结算方案:在实际的生产活动中,有时需要生成大量的结算方案,逐条新增对于运维人员来说工作量偏大,因此可在系统下载导入的模板Excel,在其中一次性填写要配置的数据,将其导入到系统当中。

(9) 导出成本方案列表:将用户配置的成本方案数据导出到Excel文件当中。

(10) 批量生成成本方案:在系统中下载导入成本方案的模板Excel,在其中填写配置数据,将其一次性导入系统当中。

此外,要实现费用政策生效的功能,需要将配置的分享规则、费用成本和结算费率添加到下单渠道,渠道会对应App下单的账号。根据上述功能分块以及考虑到后续维护和扩展,将系统的实现架构分表现层、Dubbo管理层、服务层、实体层和资源层,系统架构如图3所示。

表现层:为用户提供可视化的数据展示和配置平台,用户在该层可以查看配置的数据。本层采用的是Vue.js技术,基于axios发送Http请求,达到与后台进行交互的目的。

Dubbo管理层:使用Zookeeper作为注册中心[4],负责服务的注册、订阅和通知功能。服务层提供的多个基础服务、业务服务和技术服务,使用Dubbo暴露服务接口,服务消费者通过注册中心获取服务提供者的地址表,并根据负载均衡算法直接调用服务,实现了对服务的有效管理,避免了由于服务众多而造成的混乱,便于后续的维护和扩展。

资源层:资源层主要是Mysql数据库和一些数据的缓存。表现层配置的数据,通过服务层将其存到Mysql当中。服务层与资源层的交互使用Mybatis作为持久层框架,将表现层采集的数据封装为实体层中的POJO,进一步映射成数据库中的记录。同时,将数据库的查询结果封装为POJO,再经JSON序列化返回到表现层,达到了前端数据与后台数据库高效地交互的目的。

2.2 数据库的设计

根据费用管理系统的实际需求,结合数据库的设计原则[5]和业务系统数据库的一些关联信息,费用管理系统的主要数据库设计如下:

(1) 费用维度表:主要用来存储保险公司所提供的费用维度信息,比如新车购置价区间、险别、车辆类型、风险标志等,其表结构如表1所示。

(2) 分享规则数据表和费用成本数据表:这两张表主要用来存储运维人员配置的分享和成本数据,以便在车险App下单时,计算金豆值(保费提成),分享规则表如表2所示,费用成本表结构相似,不再赘述。

(3) 结算方案表:主要用来存储根据费用维度配置的结算比例数据,具体表结构如表3所示。

3 费用管理系统的实现及效果

由于整个系统前后端分离,系统的启动部署分为两个部分,一是后台接口代码的启动,二是前端Vue项目的启动。后台接口的各个组件是通过Dubbo框架来进行交互的,每个接口通过配置文件来暴露服务,通过Zookeeper来发现各个接口服务的具体地址,其中Dubbo配置如图4所示。

启动前端Vue项目,要先下载node.js,下载完成后进行安装,在命令行输入npm run dev命令启动整个Vue项目。前后台两者正确启动后,整个系统的效果如圖5所示。

4 总结

本文介绍的费用管理系统,根据当前软件开发的导向,实现了前后端分离,前端采用目前流行的Vue.js技术,为用户提供界面友好的视觉服务,后台采用Dubbo作为RPC框架,结合Zookeeper为前端请求提供Api接口服务,整个系统层次分明,结构合理,便于后期维护和扩展。系统目前通过测试和验收,基本满足了运维需求,已成功上线运行。

参考文献

[1] 陈岩.轻量级响应式框架Vue.js应用分析[J].中国管理信息化,2018,21(3):181-183.

[2] 张舵,王楠,连京维,等.运营管理平台APP配置化功能设计与实现[J].工业控制计算机,2018,31(10):123-124.

[3] 叶子安. 基于分布式的高性能Web站点的设计与实现[D].广州:华南理工大学,2018.

[4] 苗凡,阎志远,戴琳琳.基于Zookeeper的配置管理中心设计与实现[J].铁路计算机应用,2018,27(10):26-29.

[5] 周捷,张凤静.软件数据库的设计原则[J].电子技术与软件工程,2018(21):157.

(收稿日期: 2018.12.14)

作者简介:周永圣(1994-),男,硕士,研究方向:Java Web开发。

孙雯(1994-),女,硕士,研究方向:通信与信息系统。

侯峰裕(1995-),男,硕士,研究方向:通信与信息系统。

杨磊(1994-),男,硕士,研究方向:通信与信息系统。

杨晋(1996-),男,硕士,研究方向:JavaWeb开发。

张小贝(1982-),男,教授,博士,研究方向:通信与信息系统。文章编号:1007-757X(2020)02-0086-04