转转回收业务策略中心的实践

2024-06-05 21:52

本文主要是介绍转转回收业务策略中心的实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 背景

回收业务发展日益壮大,我们在邮寄、上门、门店三大履约模式下的业务逻辑日益复杂。同样都是在做回收这一个业务,即便履约方式不同,也有很多业务概念是一致的。为了避免各个业务闷头造轮子,同时又能拉齐三端的业务标准,故成立了业务中台。其中的一部分便是策略中心,希望即能够统一管理各个业务的策略流程,也能够满足不同的个性化策略配置。

2 策略中心

回收业务长期以来存在保价补贴策略,对于订单的成交率和NPS都有提升。所以不同的履约业务都陆续接入了订单保价能力。而回收订单是否能够满足保价策略,需要经历一系列的校验,这些校验通常由通常由一个个相互独立的功能节点组成。

保价补贴校验简易流程

我们的目标是,希望能够借助策略中心,下沉补贴策略逻辑,并能跨多个业务线复用,可热插拔,降低开发成本
并从收拢补贴策略开始,最终实现一个在回收业务体系下,标准能力即通用又能满足业务个性化的业务流程的配置平台

策略中心架构

3 系统设计

为了方便我们管理策略流程,选择了LiteFlow这款技术框架。

3.1 LiteFlow

LiteFlow是一款拥有编排式特性的规则引擎,我们可以将各个模块定义为一个独立的组件,这样我们可以任意编排我们的流程,组件与组件之间是解耦的。

  • 组件:组件即为我们流程中的Node节点。v2.12.0版本更新后有三种组件:普通组件、选择组件、布尔组件。
  • 流程:通过EL规则对组件节点编排后的流程。

LiteFlow架构

LiteFlow其它的优点:

  • 完善的官方文档:官方文档精致简洁。
  • 热插拔:随时随地更改我们配置的el表达式,动态调整业务流程,也支持平滑热刷新。
  • 数据源配置灵活:支持大多数常用的一些数据配置源比如Apollo、MySQL等。
  • 活跃的社区:作者每天都会在群里回答开发者遇到的问题,较为活跃。

3.2 策略执行流程

借助LiteFlow,我们可以针对不同的业务场景制定不同的补贴策略,例如在和外部合作商合作进行回收的场景,我们不想校验用户历史订单的补贴次数,以此来提高补贴率,那我们只需要针对这条的业务线单独配置一条不包含此校验的流程即可。

策略执行流程

3.3 画布

为了能够更方便的管理我们的策略流程,我们希望通过后台来操作变更策略流程,但是LiteFlow不支持可视化编排,所以单独开发设计了一套画布功能来满足我们的诉求。

后台画布

3.4 节点

在不同的策略流程中,不同的节点的业务配置也有可能不相同。例如:我们的保价时效一般是七天,但部分业务流程希望能延长此时效,所以针对不同的策略流程我们需要能够单独对某个节点进行特殊的业务配置,为此我们实现了对节点的编辑能力,来方便调整业务策略。

编辑节点属性

当我们需要变更配置时,只需找到对应的策略链路,点击对应的节点即可变更对应的节点策略配置。

变更流程节点配置

4 未来规划

  • 数据字典:接下来即将开始设计数据字典的部分,希望能够帮助我们更方便的定义策略的出入参。
  • 安全性:因为涉及核心策略,一旦改错可能会造成不必要的损失,所以需要从监控、版本链、审批流几个方面开始加强对于策略的管理。
  • 可视化配置后台:对于节点配置,目前都是针对特殊节点单独开发的,新增节点配置无法做到零开发。而公司现在支持两套可视化配置后台easyui和candy,所以需要探索一个合适的方式将现有的架构能力接入进来。

关于作者

多斯,转转C2B业务研发工程师

转转研发中心及业界小伙伴们的技术学习交流平台,定期分享一线的实战经验及业界前沿的技术话题。
关注公众号「转转技术」(综合性)、「大转转FE」(专注于FE)、「转转QA」(专注于QA),更多干货实践,欢迎交流分享~

这篇关于转转回收业务策略中心的实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034273

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

离心萃取机废旧磷酸铁锂电池回收工艺流程

在废旧磷酸铁锂电池的回收工艺流程中,离心萃取机主要应用于萃取除杂的步骤,以提高回收过程中有价金属(如锂)的纯度。以下是结合离心萃取机应用的废旧磷酸铁锂电池回收工艺流程: 电池拆解与预处理 拆解:将废旧磷酸铁锂电池进行拆解,分离出电池壳、正负极片、隔膜等部分。破碎与筛分:将正负极片进行破碎处理,并通过筛分将不同粒径的物料分开,以便后续处理。 浸出与溶解 浸出:采用适当的浸出工艺(如二段式逆