refactor(dify): 优化 workflow 数据处理

- 修改 WorkflowData 实体类,将 data 字段类型从 String 改为 WorkflowRunResponse.WorkflowRunData
- 更新 DifyWorkflowServiceImpl 中的数据处理逻辑,直接使用 WorkflowRunResponse.WorkflowRunData 对象
- 在 WorkflowRepository 中添加 getData 方法,用于获取未解析的 data 字符串
This commit is contained in:
zhuangtianxiang 2025-05-16 18:13:15 +08:00
parent b299e5a6b1
commit b6ba156d67
3 changed files with 13 additions and 7 deletions

View File

@ -35,9 +35,9 @@ public class WorkflowData{
@TableField(value = "dept_id", fill = FieldFill.INSERT)
private Long deptId;
@TableField(exist = false)
private WorkflowRunResponse.WorkflowRunData runData;
@TableField(typeHandler = JsonbTypeHandler.class)
private String data;
private WorkflowRunResponse.WorkflowRunData data;
// @TableField(typeHandler = JsonbTypeHandler.class)
// private String runData;
}

View File

@ -2,6 +2,10 @@ package com.zsc.edu.dify.modules.dify.repo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zsc.edu.dify.modules.dify.entity.WorkflowData;
import org.apache.ibatis.annotations.Select;
public interface WorkflowRepository extends BaseMapper<WorkflowData> {
@Select("select data from workflow_data where id = #{id}")
String getData(Long id);
}

View File

@ -16,6 +16,8 @@ import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.nio.ByteBuffer;
@AllArgsConstructor
@Service
public class DifyWorkflowServiceImpl extends ServiceImpl<WorkflowRepository, WorkflowData> implements DifyWorkflowService {
@ -39,7 +41,7 @@ public class DifyWorkflowServiceImpl extends ServiceImpl<WorkflowRepository, Wor
WorkflowRunResponse response = difyWorkflow.runWorkflow(request);
WorkflowData workflowData =mapper.toEntity(response);
workflowData.setAppId(appId);
workflowData.setData(String.valueOf(response.getData()));
workflowData.setData(response.getData());
baseMapper.insert(workflowData);
return response;
}
@ -51,8 +53,8 @@ public class DifyWorkflowServiceImpl extends ServiceImpl<WorkflowRepository, Wor
throw new RuntimeException("未找到数据");
}
WorkflowRunResponse.WorkflowRunData parsedData =
JSON.parseObject(workflowData.getData(), WorkflowRunResponse.WorkflowRunData.class);
workflowData.setRunData(parsedData);
JSON.parseObject(baseMapper.getData(id), WorkflowRunResponse.WorkflowRunData.class);
workflowData.setData(parsedData);
return workflowData;
}