ai-refactor(flow): 调整抽象流程节点实现和依赖路径

- 修改 AbstractProcessNode 中 ProcessContext 的命名空间引用为 app\flow\context\ProcessContext
- 引入 app\flow\vo\CanHandleResult 用于节点处理结果表示
- 更新前置策略执行后对成功状态的判断,改为调用 isSuccess() 方法
- 增加日志记录细节,便于调试策略执行中断时的错误信息
- 优化代码注释,提升代码可读性和维护性
This commit is contained in:
zimoyin
2026-03-11 02:40:45 +08:00
parent d5991813a6
commit 3471deb3f1
42 changed files with 1950 additions and 4418 deletions
+1 -1
View File
@@ -201,7 +201,7 @@ abstract class AbstractProcessNode implements ProcessNodeInterface
* 1. 遍历所有已注册的策略
* 2. 筛选出阶段为 'before' 的策略
* 3. 依次执行策略的 execute 方法
* 4. 如果某个策略导致上下文错误(!$context->isSuccess()),立即中断后续策略执行
* 4. 如果某个策略导致上下文错误(!$context->isSuccessByResult()),立即中断后续策略执行
*
* 前置策略的应用:
* - 时间验证:检查步骤执行时间是否符合要求
+2 -2
View File
@@ -38,7 +38,7 @@ class CloseNode extends AbstractProcessNode
*/
public function canHandle(ProcessContext $context): CanHandleResult
{
if (!$context->isSuccess() || $context->needDatabaseOperation() || !empty($context->getVoice()->message)) {
if (!$context->isSuccess() || $context->isDatabaseOperationNeeded() || !empty($context->getVoice()->message)) {
return CanHandleResult::no();
}
return CanHandleResult::yes();
@@ -49,7 +49,7 @@ class CloseNode extends AbstractProcessNode
*/
protected function doHandle(ProcessContext $context): ProcessContext
{
if (!$context->isSuccess() || $context->needDatabaseOperation() || !empty($context->getVoice()->message)) {
if (!$context->isSuccess() || $context->isDatabaseOperationNeeded() || !empty($context->getVoice()->message)) {
return $context;
}
// 无节点命中