需求:统一计次系统:业务不同,计次不同,后续操作不同。
入参:需计次的业务 + 个性化Map入参(特判业务使用)
出参:计次后的后续操作所需参数 + 当前计次
表设计:日志表(甩锅必备、查问题、唯一性校验)、业务计次表(业务原子维度计次)、业务计次规则表(主要有几个字段:计次业务;计次规则表达式1、满足计次规则1的后续操作参数;计次规则表达式2、满足计次规则2的后续操作参数;...... ;计次规则表达式10、满足计次规则10的后续操作参数;一般业务10个计次规则够用了;表达式的判断一般根据 当前计次+个性化入参)
技术选用:计次规则表达式参考使用aviator等表达式执行引擎。
业务逻辑(整体逻辑使用锁、事务):先计次。再依次进行计次规则表达式的运行校验,满足“计次规则表达式1”的就返回“满足计次规则1的后续操作参数”,否则进行后面的表达式判断,直到满足返回。如果没有满足的表达式,返回空参数。
计次通常还伴随保护期等一些与业务强关联的操作,这些就不要聚合到计次系统中了,或者只聚合一些常用的基础功能。