feat(dify): 添加工作流数据持久化功能
- 新增 WorkflowData 实体类用于存储工作流数据 - 创建 DifyWorkflowService 接口和实现类,用于处理工作流运行和数据保存- 添加 WorkflowMapper 和 WorkflowRepository接口,用于工作流数据的映射和持久化 - 在 V1WorkflowController 中集成新的工作流服务 - 更新 MyMetaObjectHandler 以自动填充用户 ID
This commit is contained in:
parent
f488856412
commit
4cd46e7b77
@ -33,7 +33,7 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
|
||||
this.strictInsertFill(metaObject, "createBy", String.class, userInfo.getUsername());
|
||||
this.strictInsertFill(metaObject, "deptId", Long.class, userInfo.getDeptId());
|
||||
this.strictInsertFill(metaObject, "createId", Long.class, userInfo.getCreateId());
|
||||
|
||||
this.strictInsertFill(metaObject,"userId",Long.class,userInfo.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.zsc.edu.dify.modules.dify.controller;
|
||||
|
||||
import com.zsc.edu.dify.modules.dify.entity.WorkflowData;
|
||||
import com.zsc.edu.dify.modules.dify.repo.AppEntityRepository;
|
||||
import com.zsc.edu.dify.modules.dify.service.DifyWorkflowService;
|
||||
import io.github.guoshiqiufeng.dify.core.pojo.DifyPageResult;
|
||||
import io.github.guoshiqiufeng.dify.workflow.DifyWorkflow;
|
||||
import io.github.guoshiqiufeng.dify.workflow.dto.request.WorkflowLogsRequest;
|
||||
@ -22,6 +24,9 @@ public class V1WorkflowController {
|
||||
@Resource
|
||||
private AppEntityRepository appEntityRepository;
|
||||
|
||||
@Resource
|
||||
private DifyWorkflowService difyWorkflowService;
|
||||
|
||||
/**
|
||||
* 运行工作流
|
||||
*
|
||||
@ -30,10 +35,8 @@ public class V1WorkflowController {
|
||||
*/
|
||||
@PostMapping("/run/{appId}")
|
||||
@PreAuthorize("hasAuthority('dify:workflow:run')")
|
||||
public WorkflowRunResponse runWorkflow(@RequestBody WorkflowRunRequest request,@PathVariable String appId) {
|
||||
String apiKey = appEntityRepository.selectApiKey(appId);
|
||||
request.setApiKey(apiKey);
|
||||
return difyWorkflow.runWorkflow(request);
|
||||
public WorkflowData runWorkflow(@RequestBody WorkflowRunRequest request, @PathVariable String appId) {
|
||||
return difyWorkflowService.run(request, appId);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,29 @@
|
||||
package com.zsc.edu.dify.modules.dify.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.zsc.edu.dify.framework.json.JsonbTypeHandler;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Data
|
||||
@TableName("workflow_data")
|
||||
public class WorkflowData {
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
private String workflowRunId;
|
||||
|
||||
private String taskId;
|
||||
|
||||
@TableField(value = "user_id", fill = FieldFill.INSERT)
|
||||
private Long userId;
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.zsc.edu.dify.modules.dify.mapper;
|
||||
|
||||
import com.zsc.edu.dify.common.mapstruct.BaseMapper;
|
||||
import com.zsc.edu.dify.modules.dify.entity.WorkflowData;
|
||||
import io.github.guoshiqiufeng.dify.workflow.dto.response.WorkflowRunResponse;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.ReportingPolicy;
|
||||
|
||||
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
||||
public interface WorkflowMapper extends BaseMapper<WorkflowRunResponse,WorkflowData> {
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.zsc.edu.dify.modules.dify.repo;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zsc.edu.dify.modules.dify.entity.WorkflowData;
|
||||
|
||||
public interface WorkflowRepository extends BaseMapper<WorkflowData> {
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.zsc.edu.dify.modules.dify.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zsc.edu.dify.modules.dify.entity.WorkflowData;
|
||||
import io.github.guoshiqiufeng.dify.workflow.dto.request.WorkflowRunRequest;
|
||||
|
||||
public interface DifyWorkflowService extends IService<WorkflowData> {
|
||||
WorkflowData run(WorkflowRunRequest request, String appId);
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package com.zsc.edu.dify.modules.dify.service.Impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zsc.edu.dify.modules.dify.entity.WorkflowData;
|
||||
import com.zsc.edu.dify.modules.dify.mapper.WorkflowMapper;
|
||||
import com.zsc.edu.dify.modules.dify.repo.AppEntityRepository;
|
||||
import com.zsc.edu.dify.modules.dify.repo.WorkflowRepository;
|
||||
import com.zsc.edu.dify.modules.dify.service.DifyWorkflowService;
|
||||
import io.github.guoshiqiufeng.dify.workflow.DifyWorkflow;
|
||||
import io.github.guoshiqiufeng.dify.workflow.dto.request.WorkflowRunRequest;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@AllArgsConstructor
|
||||
@Service
|
||||
public class DifyWorkflowServiceImpl extends ServiceImpl<WorkflowRepository, WorkflowData> implements DifyWorkflowService {
|
||||
@Resource
|
||||
AppEntityRepository appEntityRepository;
|
||||
@Resource
|
||||
DifyWorkflow difyWorkflow;
|
||||
@Resource
|
||||
WorkflowMapper mapper;
|
||||
|
||||
@Override
|
||||
public WorkflowData run(WorkflowRunRequest request, String appId){
|
||||
String apiKey = appEntityRepository.selectApiKey(appId);
|
||||
request.setApiKey(apiKey);
|
||||
WorkflowData workflowData =mapper.toEntity(difyWorkflow.runWorkflow(request));
|
||||
baseMapper.insert(workflowData);
|
||||
return workflowData;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user