From b66bdcaadb203f6b04431255ec7d4d05a4915097 Mon Sep 17 00:00:00 2001 From: limin Date: Tue, 31 Dec 2024 16:42:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AD=98=E5=82=A8=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=20=E7=B1=BB=E5=9E=8B=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/config/MyBatisConfig.java | 29 +++++++++++++++ .../llm/handler/JSONObjectTypeHandler.java | 35 +++++++++++++++++++ .../async/AsyncDataProcessService.java | 24 +++++++++++-- 3 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/MyBatisConfig.java create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/handler/JSONObjectTypeHandler.java diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/MyBatisConfig.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/MyBatisConfig.java new file mode 100644 index 000000000..cc17de8a6 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/MyBatisConfig.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.llm.framework.backend.config; + +import cn.hutool.json.JSONObject; +import cn.iocoder.yudao.module.llm.handler.JSONObjectTypeHandler; +import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; +import org.apache.ibatis.type.TypeHandlerRegistry; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan("cn.iocoder.yudao.module.llm.dal.mysql.dataprocesstask") +public class MyBatisConfig { + + @Bean + public JSONObjectTypeHandler jsonObjectTypeHandler() { + return new JSONObjectTypeHandler(); + } + + @Bean + public ConfigurationCustomizer configurationCustomizer() { + return configuration -> { + TypeHandlerRegistry typeHandlerRegistry = configuration.getTypeHandlerRegistry(); + if (!typeHandlerRegistry.hasTypeHandler(JSONObject.class)) { + typeHandlerRegistry.register(JSONObject.class, jsonObjectTypeHandler()); + } + }; + } +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/handler/JSONObjectTypeHandler.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/handler/JSONObjectTypeHandler.java new file mode 100644 index 000000000..e782cb747 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/handler/JSONObjectTypeHandler.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.llm.handler; + +import cn.hutool.json.JSONObject; +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class JSONObjectTypeHandler extends BaseTypeHandler { + @Override + public void setNonNullParameter(PreparedStatement ps, int i, JSONObject parameter, JdbcType jdbcType) throws SQLException { + ps.setString(i, parameter.toString()); + } + + @Override + public JSONObject getNullableResult(ResultSet rs, String columnName) throws SQLException { + String jsonStr = rs.getString(columnName); + return jsonStr == null ? null : new JSONObject(jsonStr); + } + + @Override + public JSONObject getNullableResult(ResultSet rs, int columnIndex) throws SQLException { + String jsonStr = rs.getString(columnIndex); + return jsonStr == null ? null : new JSONObject(jsonStr); + } + + @Override + public JSONObject getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { + String jsonStr = cs.getString(columnIndex); + return jsonStr == null ? null : new JSONObject(jsonStr); + } +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncDataProcessService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncDataProcessService.java index 935be71b3..6f61e6ae4 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncDataProcessService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncDataProcessService.java @@ -1,6 +1,9 @@ package cn.iocoder.yudao.module.llm.service.async; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO; +import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetDO; +import cn.iocoder.yudao.module.llm.dal.mysql.dataprocesstask.DataProcessTaskMapper; import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -9,12 +12,29 @@ import javax.annotation.Resource; @Service public class AsyncDataProcessService { + @Resource + private DatasetMapper datasetMapper; + @Resource + private DataProcessTaskMapper dataProcessTaskMapper; + + /* @Resource + private */ @Async public void backups(DataProcessTaskDO dataProcessTask) { try { - Thread.sleep(100000); - }catch(InterruptedException e){ + // 判断备份数据集是否存在 + if (dataProcessTask.getDatasetPostId() == null){ + DatasetDO datasetDO = datasetMapper.selectById(dataProcessTask.getDatasetId()); + DatasetDO newData = BeanUtils.toBean(datasetDO, DatasetDO.class); + newData.setId(null); + datasetMapper.insert(newData); + dataProcessTask.setDatasetPostId(newData.getId()); + dataProcessTaskMapper.updateById(dataProcessTask); + } + + }catch(Exception e){ + dataProcessTaskMapper.updateStatus(dataProcessTask.getId(), 5); }; } }