diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java index c33ce6f..f3b3dd9 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java @@ -54,7 +54,7 @@ public class V1ChatController { ) { sendRequest.setApiKey(appEntityService.getApikey(appId)); sendRequest.setUserId(SecurityUtil.getUserInfo().id.toString()); - return ExceptionUtil.difyException(()->difyChat.send(sendRequest)); + return difyChat.send(sendRequest); } @@ -100,11 +100,12 @@ public class V1ChatController { */ @PostMapping("/messages/{appid}") @PreAuthorize("hasAuthority('dify:chat:query')") - public DifyPageResult conversations( + public DifyPageResult messages( @RequestBody MessagesRequest request, @PathVariable String appid ) { String apiKey = appEntityService.getApikey(appid); + request.setUserId(SecurityUtil.getUserInfo().id.toString()); request.setApiKey(apiKey); return ExceptionUtil.difyException(()->difyChat.messages(request)); } @@ -136,7 +137,7 @@ public class V1ChatController { try{ difyChat.deleteConversation(conversationId, apiKey,userId); }catch (RuntimeException e){ - throw new RuntimeException("删除会话失败"+e.getMessage()); + throw new ApiException("删除会话失败"+e.getMessage()); } } diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java index 6835c7f..2ab9b0d 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java @@ -1,6 +1,7 @@ package com.zsc.edu.dify.modules.dify.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zsc.edu.dify.exception.ExceptionUtil; import com.zsc.edu.dify.framework.mybatisplus.DataPermission; import com.zsc.edu.dify.framework.security.SecurityUtil; @@ -101,6 +102,7 @@ public class V1WorkflowController { /** * 日志列表 + * * @param appId * @return */ @@ -111,4 +113,39 @@ public class V1WorkflowController { return difyWorkflowService.list(new QueryWrapper().eq("app_id",appId)); } + /** + * 详情 + * + * @param id + * @return + */ + @GetMapping("/detail/{id}") + @PreAuthorize("hasAuthority('dify:workflow:query')") + public WorkflowData detail(@PathVariable Long id){ + return difyWorkflowService.detail(id); + } + + /** + * 删除 + * + * @param id + * @return + */ + @DeleteMapping("/delete/{id}") + @PreAuthorize("hasAuthority('dify:workflow:delete')") + public boolean delete(@PathVariable Long id){ + return difyWorkflowService.delete(id); + } + + /** + * 分页查询 + * + * @param page + * @return + */ + @GetMapping("/query") + @PreAuthorize("hasAuthority('dify:workflow:query')") + public Page query(Page page){ + return difyWorkflowService.query(page); + } } diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/entity/WorkflowData.java b/src/main/java/com/zsc/edu/dify/modules/dify/entity/WorkflowData.java index 373d1e5..9b063a8 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/entity/WorkflowData.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/entity/WorkflowData.java @@ -1,9 +1,12 @@ package com.zsc.edu.dify.modules.dify.entity; +import com.alibaba.fastjson2.JSON; 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 io.github.guoshiqiufeng.dify.workflow.dto.response.WorkflowRunResponse; import lombok.Data; import lombok.Getter; import lombok.Setter; @@ -13,7 +16,7 @@ import lombok.Setter; @Setter @Data @TableName("workflow_data") -public class WorkflowData { +public class WorkflowData{ @TableId private Long id; @@ -31,4 +34,10 @@ 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; } diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/service/DifyWorkflowService.java b/src/main/java/com/zsc/edu/dify/modules/dify/service/DifyWorkflowService.java index af33588..7a7bc02 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/service/DifyWorkflowService.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/service/DifyWorkflowService.java @@ -1,5 +1,6 @@ package com.zsc.edu.dify.modules.dify.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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; @@ -8,4 +9,10 @@ import io.github.guoshiqiufeng.dify.workflow.dto.response.WorkflowRunResponse; public interface DifyWorkflowService extends IService { WorkflowRunResponse run(WorkflowRunRequest request, String appId); + + WorkflowData detail(Long id); + + Page query(Page page); + + boolean delete(Long id); } diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/service/Impl/DifyWorkflowServiceImpl.java b/src/main/java/com/zsc/edu/dify/modules/dify/service/Impl/DifyWorkflowServiceImpl.java index 7732402..9e903cf 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/service/Impl/DifyWorkflowServiceImpl.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/service/Impl/DifyWorkflowServiceImpl.java @@ -1,5 +1,8 @@ package com.zsc.edu.dify.modules.dify.service.Impl; +import com.alibaba.fastjson2.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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; @@ -36,7 +39,30 @@ public class DifyWorkflowServiceImpl extends ServiceImpl query(Page page){ + return baseMapper.selectPage(page,new QueryWrapper<>()); + } + + @Override + public boolean delete(Long id){ + return baseMapper.deleteById(id) > 0; + } } diff --git a/src/test/java/com/zsc/edu/dify/DifyBackendApplicationTests.java b/src/test/java/com/zsc/edu/dify/DifyBackendApplicationTests.java index 3b88e1d..f465e39 100644 --- a/src/test/java/com/zsc/edu/dify/DifyBackendApplicationTests.java +++ b/src/test/java/com/zsc/edu/dify/DifyBackendApplicationTests.java @@ -1,5 +1,7 @@ package com.zsc.edu.dify; +import com.zsc.edu.dify.modules.dify.repo.AppEntityRepository; +import com.zsc.edu.dify.modules.dify.service.AppEntityService; import com.zsc.edu.dify.modules.message.repo.BulletinRepository; import com.zsc.edu.dify.modules.system.repo.UserRepository; import jakarta.annotation.Resource; @@ -17,7 +19,4 @@ class DifyBackendApplicationTests { void contextLoads() { // bulletinRepository.selectAll(); } - - - }