业务需求的痛点
相信很多同学都遇到过这样的场景:
产品经理:"这个报表要支持各种条件组合查询,用户可以自定义筛选条件"
业务人员:"我想要查近30天,销售额大于1000,且在华北地区,客户等级是VIP的订单"
另一个业务人员:"我想要查近7天,商品类别是手机,价格在500-2000之间的商品"
这种需求听起来简单,但实现起来却很复杂。传统的做法往往是写一堆 if-else,或者为每种组合写一个查询接口,维护成本极高。
解决方案思路
我们今天要解决的,就是让业务人员能够自由组合查询条件,而不需要后端开发每次都写新的查询逻辑。
核心思路是:
动态SQL:根据用户选择的条件动态生成SQL语句
条件编排器:将查询条件抽象成可配置的组件
规则引擎:处理复杂的条件组合逻辑
技术选型
SpringBoot:快速搭建应用
MyBatis-Plus:动态SQL构建
Easy Rules:条件编排规则引擎
MySQL:数据存储
核心实现思路
1. 查询条件模型设计
首先,我们需要定义一个