25 KiB
接口变更记录 — 2026-04-13 19:14
提交
89b08620· 作者 wx · 时间 2026-04-13 19:14:52 +0800feat(product-v2): 搬迁报价公式+温馨提示+预订条款到v2
变更总览
- hl-product-service-v2
- 🆕 AdminBookingTerms (+7 接口)
- 🆕 AdminWarmTips (+7 接口)
- 🆕 Formula (+19 接口)
hl-product-service-v2
🆕 新增: AdminBookingTerms
📌 GET /admin/product/booking-terms/list — 预订条款列表
返回所有预订条款(含禁用),按创建时间倒序
响应 Result<List<BookingTermsRespVO>>
| 字段 | 类型 | 说明 |
|---|---|---|
termsId |
Long |
预订条款ID |
termsName |
String |
条款名称 |
content |
String |
条款内容(富文本) |
enabled |
Boolean |
是否启用 |
remark |
String |
备注 |
createdBy |
Long |
创建人ID |
createdAt |
LocalDateTime |
创建时间 |
updatedAt |
LocalDateTime |
更新时间 |
📌 GET /admin/product/booking-terms/enabled — 启用的预订条款列表
仅返回启用状态的条款,供产品设计时选择
响应 Result<List<BookingTermsRespVO>>
| 字段 | 类型 | 说明 |
|---|---|---|
termsId |
Long |
预订条款ID |
termsName |
String |
条款名称 |
content |
String |
条款内容(富文本) |
enabled |
Boolean |
是否启用 |
remark |
String |
备注 |
createdBy |
Long |
创建人ID |
createdAt |
LocalDateTime |
创建时间 |
updatedAt |
LocalDateTime |
更新时间 |
📌 GET /admin/product/booking-terms/{termsId} — 预订条款详情
参数
{termsId}(Long) — 路径参数:预订条款ID
响应 Result<BookingTermsRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
termsId |
Long |
预订条款ID |
termsName |
String |
条款名称 |
content |
String |
条款内容(富文本) |
enabled |
Boolean |
是否启用 |
remark |
String |
备注 |
createdBy |
Long |
创建人ID |
createdAt |
LocalDateTime |
创建时间 |
updatedAt |
LocalDateTime |
更新时间 |
📌 POST /admin/product/booking-terms — 创建预订条款
创建后默认启用
请求体 BookingTermsSaveReqVO
| 字段 | 类型 | 说明 |
|---|---|---|
termsName |
String |
条款名称 |
content |
String |
条款内容(富文本) |
remark |
String |
备注 |
响应 Result<BookingTermsRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
termsId |
Long |
预订条款ID |
termsName |
String |
条款名称 |
content |
String |
条款内容(富文本) |
enabled |
Boolean |
是否启用 |
remark |
String |
备注 |
createdBy |
Long |
创建人ID |
createdAt |
LocalDateTime |
创建时间 |
updatedAt |
LocalDateTime |
更新时间 |
📌 PUT /admin/product/booking-terms/{termsId} — 修改预订条款
参数
{termsId}(Long) — 路径参数:预订条款ID
请求体 BookingTermsSaveReqVO
| 字段 | 类型 | 说明 |
|---|---|---|
termsName |
String |
条款名称 |
content |
String |
条款内容(富文本) |
remark |
String |
备注 |
响应 Result<BookingTermsRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
termsId |
Long |
预订条款ID |
termsName |
String |
条款名称 |
content |
String |
条款内容(富文本) |
enabled |
Boolean |
是否启用 |
remark |
String |
备注 |
createdBy |
Long |
创建人ID |
createdAt |
LocalDateTime |
创建时间 |
updatedAt |
LocalDateTime |
更新时间 |
📌 DELETE /admin/product/booking-terms/{termsId} — 删除预订条款
软删除,已绑定的产品不受影响
参数
{termsId}(Long) — 路径参数:预订条款ID
响应 Result<Void>
📌 PUT /admin/product/booking-terms/{termsId}/toggle — 启用/禁用预订条款
禁用后不再出现在产品设计的可选列表中
参数
{termsId}(Long) — 路径参数:预订条款IDenabled(boolean) — 查询参数:是否启用
响应 Result<Void>
🆕 新增: AdminWarmTips
📌 GET /admin/product/warm-tips/list — 温馨提示列表
返回所有温馨提示(含禁用),按创建时间倒序
响应 Result<List<WarmTipsRespVO>>
| 字段 | 类型 | 说明 |
|---|---|---|
tipsId |
Long |
温馨提示ID |
tipsName |
String |
提示名称 |
content |
String |
提示内容(富文本) |
enabled |
Boolean |
是否启用 |
remark |
String |
备注 |
createdBy |
Long |
创建人ID |
createdAt |
LocalDateTime |
创建时间 |
updatedAt |
LocalDateTime |
更新时间 |
📌 GET /admin/product/warm-tips/enabled — 启用的温馨提示列表
仅返回启用状态的提示,供产品设计时选择
响应 Result<List<WarmTipsRespVO>>
| 字段 | 类型 | 说明 |
|---|---|---|
tipsId |
Long |
温馨提示ID |
tipsName |
String |
提示名称 |
content |
String |
提示内容(富文本) |
enabled |
Boolean |
是否启用 |
remark |
String |
备注 |
createdBy |
Long |
创建人ID |
createdAt |
LocalDateTime |
创建时间 |
updatedAt |
LocalDateTime |
更新时间 |
📌 GET /admin/product/warm-tips/{tipsId} — 温馨提示详情
参数
{tipsId}(Long) — 路径参数:温馨提示ID
响应 Result<WarmTipsRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
tipsId |
Long |
温馨提示ID |
tipsName |
String |
提示名称 |
content |
String |
提示内容(富文本) |
enabled |
Boolean |
是否启用 |
remark |
String |
备注 |
createdBy |
Long |
创建人ID |
createdAt |
LocalDateTime |
创建时间 |
updatedAt |
LocalDateTime |
更新时间 |
📌 POST /admin/product/warm-tips — 创建温馨提示
创建后默认启用
请求体 WarmTipsSaveReqVO
| 字段 | 类型 | 说明 |
|---|---|---|
tipsName |
String |
提示名称 |
content |
String |
提示内容(富文本) |
remark |
String |
备注 |
响应 Result<WarmTipsRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
tipsId |
Long |
温馨提示ID |
tipsName |
String |
提示名称 |
content |
String |
提示内容(富文本) |
enabled |
Boolean |
是否启用 |
remark |
String |
备注 |
createdBy |
Long |
创建人ID |
createdAt |
LocalDateTime |
创建时间 |
updatedAt |
LocalDateTime |
更新时间 |
📌 PUT /admin/product/warm-tips/{tipsId} — 修改温馨提示
参数
{tipsId}(Long) — 路径参数:温馨提示ID
请求体 WarmTipsSaveReqVO
| 字段 | 类型 | 说明 |
|---|---|---|
tipsName |
String |
提示名称 |
content |
String |
提示内容(富文本) |
remark |
String |
备注 |
响应 Result<WarmTipsRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
tipsId |
Long |
温馨提示ID |
tipsName |
String |
提示名称 |
content |
String |
提示内容(富文本) |
enabled |
Boolean |
是否启用 |
remark |
String |
备注 |
createdBy |
Long |
创建人ID |
createdAt |
LocalDateTime |
创建时间 |
updatedAt |
LocalDateTime |
更新时间 |
📌 DELETE /admin/product/warm-tips/{tipsId} — 删除温馨提示
软删除,已绑定的产品不受影响
参数
{tipsId}(Long) — 路径参数:温馨提示ID
响应 Result<Void>
📌 PUT /admin/product/warm-tips/{tipsId}/toggle — 启用/禁用温馨提示
禁用后不再出现在产品设计的可选列表中
参数
{tipsId}(Long) — 路径参数:温馨提示IDenabled(boolean) — 查询参数:是否启用
响应 Result<Void>
🆕 新增: Formula
📌 GET /admin/product/formula/group/list — 公式组列表
获取定价公式组列表,可按产品类型筛选。
参数
productType(String) — 查询参数
响应 Result<List<FormulaGroupRespVO>>
| 字段 | 类型 | 说明 |
|---|---|---|
groupId |
String |
公式组ID |
groupCode |
String |
公式组编码 |
groupName |
String |
公式组名称 |
productType |
String |
适用产品类型 |
description |
String |
描述 |
isActive |
Boolean |
是否激活 |
version |
Integer |
版本号 |
createTime |
LocalDateTime |
创建时间 |
stepCount |
Integer |
步骤数量 |
📌 GET /admin/product/formula/group/{groupId} — 公式组详情
参数
{groupId}(Long) — 路径参数
响应 Result<FormulaGroupRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
groupId |
String |
公式组ID |
groupCode |
String |
公式组编码 |
groupName |
String |
公式组名称 |
productType |
String |
适用产品类型 |
description |
String |
描述 |
isActive |
Boolean |
是否激活 |
version |
Integer |
版本号 |
createTime |
LocalDateTime |
创建时间 |
stepCount |
Integer |
步骤数量 |
📌 POST /admin/product/formula/group — 创建公式组
请求体 FormulaGroupSaveReqVO
| 字段 | 类型 | 说明 |
|---|---|---|
groupCode |
String |
公式组编码 |
groupName |
String |
公式组名称 |
productType |
String |
适用产品类型(字典product_type: CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品) |
description |
String |
描述 |
响应 Result<FormulaGroupRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
groupId |
String |
公式组ID |
groupCode |
String |
公式组编码 |
groupName |
String |
公式组名称 |
productType |
String |
适用产品类型 |
description |
String |
描述 |
isActive |
Boolean |
是否激活 |
version |
Integer |
版本号 |
createTime |
LocalDateTime |
创建时间 |
stepCount |
Integer |
步骤数量 |
📌 PUT /admin/product/formula/group/{groupId} — 更新公式组
参数
{groupId}(Long) — 路径参数
请求体 FormulaGroupSaveReqVO
| 字段 | 类型 | 说明 |
|---|---|---|
groupCode |
String |
公式组编码 |
groupName |
String |
公式组名称 |
productType |
String |
适用产品类型(字典product_type: CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品) |
description |
String |
描述 |
响应 Result<FormulaGroupRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
groupId |
String |
公式组ID |
groupCode |
String |
公式组编码 |
groupName |
String |
公式组名称 |
productType |
String |
适用产品类型 |
description |
String |
描述 |
isActive |
Boolean |
是否激活 |
version |
Integer |
版本号 |
createTime |
LocalDateTime |
创建时间 |
stepCount |
Integer |
步骤数量 |
📌 PUT /admin/product/formula/group/{groupId}/activate — 激活公式组
激活指定公式组,同时自动停用同产品类型下的其他公式组
参数
{groupId}(Long) — 路径参数
响应 Result<Void>
📌 DELETE /admin/product/formula/group/{groupId} — 删除公式组
已激活的公式组不能删除,需先激活其他公式组
参数
{groupId}(Long) — 路径参数
响应 Result<Void>
📌 GET /admin/product/formula/group/{groupId}/steps — 公式步骤列表
获取公式组下所有步骤,按执行顺序升序排列
参数
{groupId}(Long) — 路径参数
响应 Result<List<FormulaStepRespVO>>
| 字段 | 类型 | 说明 |
|---|---|---|
formulaId |
String |
公式ID |
groupId |
String |
公式组ID |
stepCode |
String |
步骤编码 |
stepName |
String |
步骤名称 |
executionOrder |
Integer |
执行顺序 |
expression |
String |
表达式 |
outputVar |
String |
输出变量名 |
inputVars |
String |
输入变量(逗号分隔) |
description |
String |
描述 |
isEnabled |
Boolean |
是否启用 |
createTime |
LocalDateTime |
创建时间 |
updateTime |
LocalDateTime |
更新时间 |
📌 GET /admin/product/formula/step/{formulaId} — 公式步骤详情
参数
{formulaId}(Long) — 路径参数
响应 Result<FormulaStepRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
formulaId |
String |
公式ID |
groupId |
String |
公式组ID |
stepCode |
String |
步骤编码 |
stepName |
String |
步骤名称 |
executionOrder |
Integer |
执行顺序 |
expression |
String |
表达式 |
outputVar |
String |
输出变量名 |
inputVars |
String |
输入变量(逗号分隔) |
description |
String |
描述 |
isEnabled |
Boolean |
是否启用 |
createTime |
LocalDateTime |
创建时间 |
updateTime |
LocalDateTime |
更新时间 |
📌 POST /admin/product/formula/step — 创建公式步骤
请求体 FormulaStepSaveReqVO
| 字段 | 类型 | 说明 |
|---|---|---|
groupId |
Long |
公式组ID |
stepCode |
String |
步骤编码 |
stepName |
String |
步骤名称 |
executionOrder |
Integer |
执行顺序 |
expression |
String |
Aviator表达式(支持数学运算、条件判断、内置函数;可引用前置步骤的输出变量和公式变量表中的变量) |
outputVar |
String |
输出变量名 |
inputVars |
String |
输入变量(逗号分隔) |
description |
String |
描述 |
changeNote |
String |
变更说明 |
响应 Result<FormulaStepRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
formulaId |
String |
公式ID |
groupId |
String |
公式组ID |
stepCode |
String |
步骤编码 |
stepName |
String |
步骤名称 |
executionOrder |
Integer |
执行顺序 |
expression |
String |
表达式 |
outputVar |
String |
输出变量名 |
inputVars |
String |
输入变量(逗号分隔) |
description |
String |
描述 |
isEnabled |
Boolean |
是否启用 |
createTime |
LocalDateTime |
创建时间 |
updateTime |
LocalDateTime |
更新时间 |
📌 PUT /admin/product/formula/step/{formulaId} — 更新公式步骤
更新时自动保存版本快照,可通过版本历史接口查看和回滚
参数
{formulaId}(Long) — 路径参数
请求体 FormulaStepSaveReqVO
| 字段 | 类型 | 说明 |
|---|---|---|
groupId |
Long |
公式组ID |
stepCode |
String |
步骤编码 |
stepName |
String |
步骤名称 |
executionOrder |
Integer |
执行顺序 |
expression |
String |
Aviator表达式(支持数学运算、条件判断、内置函数;可引用前置步骤的输出变量和公式变量表中的变量) |
outputVar |
String |
输出变量名 |
inputVars |
String |
输入变量(逗号分隔) |
description |
String |
描述 |
changeNote |
String |
变更说明 |
响应 Result<FormulaStepRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
formulaId |
String |
公式ID |
groupId |
String |
公式组ID |
stepCode |
String |
步骤编码 |
stepName |
String |
步骤名称 |
executionOrder |
Integer |
执行顺序 |
expression |
String |
表达式 |
outputVar |
String |
输出变量名 |
inputVars |
String |
输入变量(逗号分隔) |
description |
String |
描述 |
isEnabled |
Boolean |
是否启用 |
createTime |
LocalDateTime |
创建时间 |
updateTime |
LocalDateTime |
更新时间 |
📌 PUT /admin/product/formula/step/{formulaId}/toggle — 启用/禁用公式步骤
参数
{formulaId}(Long) — 路径参数
响应 Result<Void>
📌 DELETE /admin/product/formula/step/{formulaId} — 删除公式步骤
参数
{formulaId}(Long) — 路径参数
响应 Result<Void>
📌 GET /admin/product/formula/step/{formulaId}/versions — 公式步骤版本历史
按版本号倒序返回历史版本列表
参数
{formulaId}(Long) — 路径参数
响应 Result<List<FormulaVersionRespVO>>
| 字段 | 类型 | 说明 |
|---|---|---|
versionId |
String |
版本ID |
formulaId |
String |
公式ID |
versionNum |
Integer |
版本号 |
expression |
String |
表达式 |
changeNote |
String |
变更说明 |
changedBy |
String |
变更人ID |
createTime |
LocalDateTime |
创建时间 |
📌 PUT /admin/product/formula/step/{formulaId}/rollback/{versionNum} — 回滚公式步骤到指定版本
回滚前自动备份当前表达式
参数
{formulaId}(Long) — 路径参数{versionNum}(Integer) — 路径参数
响应 Result<FormulaStepRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
formulaId |
String |
公式ID |
groupId |
String |
公式组ID |
stepCode |
String |
步骤编码 |
stepName |
String |
步骤名称 |
executionOrder |
Integer |
执行顺序 |
expression |
String |
表达式 |
outputVar |
String |
输出变量名 |
inputVars |
String |
输入变量(逗号分隔) |
description |
String |
描述 |
isEnabled |
Boolean |
是否启用 |
createTime |
LocalDateTime |
创建时间 |
updateTime |
LocalDateTime |
更新时间 |
📌 POST /admin/product/formula/test — 测试公式执行
使用自定义变量值测试公式组的执行结果,不影响业务数据
请求体 FormulaTestReqVO
| 字段 | 类型 | 说明 |
|---|---|---|
groupId |
Long |
公式组ID |
variables |
Map<String, Object> |
测试变量(变量名->值) |
响应 Result<FormulaTestResultVO>
| 字段 | 类型 | 说明 |
|---|---|---|
success |
Boolean |
是否成功 |
errorMessage |
String |
错误信息 |
stepResults |
List<StepResult> |
各步骤执行结果 |
finalVariables |
Map<String, Object> |
最终变量表 |
totalTimeMs |
Long |
总耗时(毫秒) |
stepCode |
String |
步骤编码 |
stepName |
String |
步骤名称 |
outputVar |
String |
输出变量名 |
outputValue |
Object |
输出值 |
expression |
String |
表达式 |
executionTimeMs |
Long |
执行耗时(毫秒) |
success |
Boolean |
是否成功 |
errorMessage |
String |
错误信息 |
📌 GET /admin/product/formula/var/list — 公式变量列表
获取公式变量列表,可按变量分类筛选(INPUT/INTERMEDIATE/OUTPUT)
参数
category(String) — 查询参数
响应 Result<List<FormulaVarRespVO>>
| 字段 | 类型 | 说明 |
|---|---|---|
varId |
String |
变量ID |
varName |
String |
变量名 |
varType |
String |
变量类型:DECIMAL/INTEGER/BOOLEAN/STRING |
category |
String |
变量分类:INPUT/INTERMEDIATE/OUTPUT |
description |
String |
描述 |
defaultValue |
String |
默认值 |
productTypes |
List<String> |
适用产品类型列表 |
📌 POST /admin/product/formula/var — 创建公式变量
请求体 FormulaVarSaveReqVO
| 字段 | 类型 | 说明 |
|---|---|---|
varName |
String |
变量名 |
varType |
String |
变量类型:DECIMAL/INTEGER/BOOLEAN/STRING |
category |
String |
变量分类:INPUT/INTERMEDIATE/OUTPUT |
description |
String |
描述 |
defaultValue |
String |
默认值 |
productTypes |
List<String> |
适用产品类型列表 |
响应 Result<FormulaVarRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
varId |
String |
变量ID |
varName |
String |
变量名 |
varType |
String |
变量类型:DECIMAL/INTEGER/BOOLEAN/STRING |
category |
String |
变量分类:INPUT/INTERMEDIATE/OUTPUT |
description |
String |
描述 |
defaultValue |
String |
默认值 |
productTypes |
List<String> |
适用产品类型列表 |
📌 PUT /admin/product/formula/var/{varId} — 更新公式变量
参数
{varId}(Long) — 路径参数
请求体 FormulaVarSaveReqVO
| 字段 | 类型 | 说明 |
|---|---|---|
varName |
String |
变量名 |
varType |
String |
变量类型:DECIMAL/INTEGER/BOOLEAN/STRING |
category |
String |
变量分类:INPUT/INTERMEDIATE/OUTPUT |
description |
String |
描述 |
defaultValue |
String |
默认值 |
productTypes |
List<String> |
适用产品类型列表 |
响应 Result<FormulaVarRespVO>
| 字段 | 类型 | 说明 |
|---|---|---|
varId |
String |
变量ID |
varName |
String |
变量名 |
varType |
String |
变量类型:DECIMAL/INTEGER/BOOLEAN/STRING |
category |
String |
变量分类:INPUT/INTERMEDIATE/OUTPUT |
description |
String |
描述 |
defaultValue |
String |
默认值 |
productTypes |
List<String> |
适用产品类型列表 |
📌 DELETE /admin/product/formula/var/{varId} — 删除公式变量
如果有公式步骤引用了该变量,删除后步骤执行时会报错
参数
{varId}(Long) — 路径参数
响应 Result<Void>
📁 全部变更文件 (点击展开)
M hl-product-service-v2/pom.xml
A hl-product-service-v2/src/main/java/com/hulalv/product/controller/admin/AdminBookingTermsController.java
A hl-product-service-v2/src/main/java/com/hulalv/product/controller/admin/AdminWarmTipsController.java
A hl-product-service-v2/src/main/java/com/hulalv/product/controller/admin/FormulaController.java
A hl-product-service-v2/src/main/java/com/hulalv/product/engine/AviatorCeil10Function.java
A hl-product-service-v2/src/main/java/com/hulalv/product/engine/AviatorMaxFunction.java
A hl-product-service-v2/src/main/java/com/hulalv/product/engine/AviatorSafeFunction.java
A hl-product-service-v2/src/main/java/com/hulalv/product/engine/AviatorSellPriceFunction.java
A hl-product-service-v2/src/main/java/com/hulalv/product/engine/FormulaEngine.java
A hl-product-service-v2/src/main/java/com/hulalv/product/engine/FormulaEngineConfig.java
A hl-product-service-v2/src/main/java/com/hulalv/product/engine/PricingContext.java
M hl-product-service-v2/src/main/java/com/hulalv/product/entity/BookingTermsDO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/entity/PricingFormulaDO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/entity/PricingFormulaGroupDO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/entity/PricingFormulaVarDO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/entity/PricingFormulaVersionDO.java
M hl-product-service-v2/src/main/java/com/hulalv/product/entity/WarmTipsDO.java
M hl-product-service-v2/src/main/java/com/hulalv/product/mapper/BookingTermsMapper.java
A hl-product-service-v2/src/main/java/com/hulalv/product/mapper/PricingFormulaGroupMapper.java
A hl-product-service-v2/src/main/java/com/hulalv/product/mapper/PricingFormulaMapper.java
A hl-product-service-v2/src/main/java/com/hulalv/product/mapper/PricingFormulaVarMapper.java
A hl-product-service-v2/src/main/java/com/hulalv/product/mapper/PricingFormulaVersionMapper.java
M hl-product-service-v2/src/main/java/com/hulalv/product/mapper/WarmTipsMapper.java
A hl-product-service-v2/src/main/java/com/hulalv/product/service/admin/BookingTermsService.java
A hl-product-service-v2/src/main/java/com/hulalv/product/service/admin/FormulaGroupService.java
A hl-product-service-v2/src/main/java/com/hulalv/product/service/admin/FormulaStepService.java
A hl-product-service-v2/src/main/java/com/hulalv/product/service/admin/FormulaTestService.java
A hl-product-service-v2/src/main/java/com/hulalv/product/service/admin/FormulaVarService.java
A hl-product-service-v2/src/main/java/com/hulalv/product/service/admin/WarmTipsService.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/BookingTermsRespVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/BookingTermsSaveReqVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/WarmTipsRespVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/WarmTipsSaveReqVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/formula/FormulaGroupRespVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/formula/FormulaGroupSaveReqVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/formula/FormulaStepRespVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/formula/FormulaStepSaveReqVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/formula/FormulaTestReqVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/formula/FormulaTestResultVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/formula/FormulaVarRespVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/formula/FormulaVarSaveReqVO.java
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/formula/FormulaVersionRespVO.java