Compare commits

..

1 Commits

Author SHA1 Message Date
vertoryao
e72d36e049 refactor(dify): 升级 dify-spring-boot-starter版本并优化相关代码
- 将 dify-spring-boot-starter 版本从 0.11.0 升级到 1.0.3
2025-06-12 17:18:49 +08:00
7 changed files with 26 additions and 20 deletions

View File

@ -42,7 +42,7 @@
<dependency> <dependency>
<groupId>io.github.guoshiqiufeng.dify</groupId> <groupId>io.github.guoshiqiufeng.dify</groupId>
<artifactId>dify-spring-boot-starter</artifactId> <artifactId>dify-spring-boot-starter</artifactId>
<version>0.11.0</version> <version>1.0.3</version>
</dependency> </dependency>
<dependency> <dependency>

View File

@ -1,6 +1,7 @@
package com.zsc.edu.dify.framework.json; package com.zsc.edu.dify.framework.json;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
@ -15,6 +16,7 @@ public class JsonConfig {
@Bean @Bean
public Jackson2ObjectMapperBuilderCustomizer customizer() { public Jackson2ObjectMapperBuilderCustomizer customizer() {
return builder -> builder return builder -> builder
.modules(new JavaTimeModule())
.serializationInclusion(JsonInclude.Include.NON_NULL) .serializationInclusion(JsonInclude.Include.NON_NULL)
.serializationInclusion(JsonInclude.Include.NON_EMPTY); .serializationInclusion(JsonInclude.Include.NON_EMPTY);
} }

View File

@ -9,9 +9,9 @@ import com.zsc.edu.dify.modules.dify.service.AppEntityService;
import com.zsc.edu.dify.modules.dify.service.WorkflowDeptService; import com.zsc.edu.dify.modules.dify.service.WorkflowDeptService;
import com.zsc.edu.dify.modules.operationLog.entity.OperationLogAnnotation; import com.zsc.edu.dify.modules.operationLog.entity.OperationLogAnnotation;
import io.github.guoshiqiufeng.dify.server.DifyServer; import io.github.guoshiqiufeng.dify.server.DifyServer;
import io.github.guoshiqiufeng.dify.server.dto.response.ApiKeyResponseVO; import io.github.guoshiqiufeng.dify.server.dto.response.ApiKeyResponse;
import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponseVO; import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponse;
import io.github.guoshiqiufeng.dify.server.dto.response.DatasetApiKeyResponseVO; import io.github.guoshiqiufeng.dify.server.dto.response.DatasetApiKeyResponse;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
@ -50,7 +50,7 @@ public class V1ServerController {
* @return * @return
*/ */
@GetMapping("/{id}") @GetMapping("/{id}")
public AppsResponseVO getApp(@PathVariable("id") String id) { public AppsResponse getApp(@PathVariable("id") String id) {
return difyServer.app(id); return difyServer.app(id);
} }
@ -60,7 +60,7 @@ public class V1ServerController {
* @return * @return
*/ */
@GetMapping("/api-key/{id}") @GetMapping("/api-key/{id}")
public List<ApiKeyResponseVO> getAppApiKey(@PathVariable("id") String id) { public List<ApiKeyResponse> getAppApiKey(@PathVariable("id") String id) {
return difyServer.getAppApiKey(id); return difyServer.getAppApiKey(id);
} }
@ -70,7 +70,7 @@ public class V1ServerController {
* @return * @return
*/ */
@PostMapping("/api-key/init/{id}") @PostMapping("/api-key/init/{id}")
public List<ApiKeyResponseVO> initAppApiKey(@PathVariable("id") String id) { public List<ApiKeyResponse> initAppApiKey(@PathVariable("id") String id) {
return difyServer.initAppApiKey(id); return difyServer.initAppApiKey(id);
} }
@ -79,7 +79,7 @@ public class V1ServerController {
* @return * @return
*/ */
@GetMapping("/api-key/dataset") @GetMapping("/api-key/dataset")
public List<DatasetApiKeyResponseVO> getDatasetApiKey() { public List<DatasetApiKeyResponse> getDatasetApiKey() {
return difyServer.getDatasetApiKey(); return difyServer.getDatasetApiKey();
} }
@ -88,7 +88,7 @@ public class V1ServerController {
* @return * @return
*/ */
@PostMapping("/api-key/dataset/init") @PostMapping("/api-key/dataset/init")
public List<DatasetApiKeyResponseVO> initDatasetApiKey() { public List<DatasetApiKeyResponse> initDatasetApiKey() {
return difyServer.initDatasetApiKey(); return difyServer.initDatasetApiKey();
} }

View File

@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.annotation.IEnum;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.zsc.edu.dify.framework.json.JsonbTypeHandler; import com.zsc.edu.dify.framework.json.JsonbTypeHandler;
import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponseVO; import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponse;
import lombok.*; import lombok.*;
import java.util.List; import java.util.List;
@ -20,7 +20,7 @@ import java.util.Map;
@Getter @Getter
@Setter @Setter
@TableName("apps_entity") @TableName("apps_entity")
public class AppEntity extends AppsResponseVO { public class AppEntity extends AppsResponse {
@TableField(typeHandler = JsonbTypeHandler.class) @TableField(typeHandler = JsonbTypeHandler.class)
private Map<String, Object> modelConfig; private Map<String, Object> modelConfig;

View File

@ -2,10 +2,10 @@ package com.zsc.edu.dify.modules.dify.mapper;
import com.zsc.edu.dify.common.mapstruct.BaseMapper; import com.zsc.edu.dify.common.mapstruct.BaseMapper;
import com.zsc.edu.dify.modules.dify.entity.AppEntity; import com.zsc.edu.dify.modules.dify.entity.AppEntity;
import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponseVO; import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponse;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy; import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface AppEntityMapper extends BaseMapper<AppsResponseVO, AppEntity> { public interface AppEntityMapper extends BaseMapper<AppsResponse, AppEntity> {
} }

View File

@ -11,8 +11,8 @@ import com.zsc.edu.dify.modules.dify.repo.AppEntityRepository;
import com.zsc.edu.dify.modules.dify.repo.WorkflowDeptRepository; import com.zsc.edu.dify.modules.dify.repo.WorkflowDeptRepository;
import com.zsc.edu.dify.modules.dify.service.AppEntityService; import com.zsc.edu.dify.modules.dify.service.AppEntityService;
import io.github.guoshiqiufeng.dify.server.DifyServer; import io.github.guoshiqiufeng.dify.server.DifyServer;
import io.github.guoshiqiufeng.dify.server.dto.response.ApiKeyResponseVO; import io.github.guoshiqiufeng.dify.server.dto.response.ApiKeyResponse;
import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponseVO; import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponse;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
@ -51,19 +51,19 @@ public class AppEntityServiceImpl extends ServiceImpl<AppEntityRepository, AppEn
* @param appsResponseList * @param appsResponseList
* @return * @return
*/ */
public List<AppsResponseVO> addApps(List<AppsResponseVO> appsResponseList) { public List<AppsResponse> addApps(List<AppsResponse> appsResponseList) {
for(AppsResponseVO appsResponse : appsResponseList){ for(AppsResponse appsResponse : appsResponseList){
boolean isHave = baseMapper.exists(new QueryWrapper<AppEntity>().eq("id", appsResponse.getId())); boolean isHave = baseMapper.exists(new QueryWrapper<AppEntity>().eq("id", appsResponse.getId()));
if(!isHave){ if(!isHave){
AppEntity appEntity = appEntityMapper.toEntity(appsResponse); AppEntity appEntity = appEntityMapper.toEntity(appsResponse);
baseMapper.insert(appEntity); baseMapper.insert(appEntity);
List<ApiKeyResponseVO> apiKeyList =difyServer.getAppApiKey(appsResponse.getId()); List<ApiKeyResponse> apiKeyList =difyServer.getAppApiKey(appsResponse.getId());
if (apiKeyList != null) { if (apiKeyList != null) {
difyServer.initAppApiKey(appsResponse.getId()); difyServer.initAppApiKey(appsResponse.getId());
Optional<ApiKeyResponseVO> apiKeyResponseVO = apiKeyList.stream() Optional<ApiKeyResponse> ApiKeyResponse = apiKeyList.stream()
.filter(apiKey -> apiKey.getToken() != null) .filter(apiKey -> apiKey.getToken() != null)
.findFirst(); .findFirst();
apiKeyResponseVO.ifPresent(apiKey -> appEntity.setApiKey(apiKey.getToken())); ApiKeyResponse.ifPresent(apiKey -> appEntity.setApiKey(apiKey.getToken()));
} }
baseMapper.updateById(appEntity); baseMapper.updateById(appEntity);
}else{ }else{

View File

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -38,6 +40,7 @@ public class BaseEntity implements Serializable {
* 创建时间 * 创建时间
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public LocalDateTime createTime; public LocalDateTime createTime;
/* /*
* 创建人 * 创建人
@ -49,6 +52,7 @@ public class BaseEntity implements Serializable {
* 更新时间 * 更新时间
*/ */
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public LocalDateTime updateTime; public LocalDateTime updateTime;
/* /*
* 更新人 * 更新人