知识库修改描述

main
liushujing 6 months ago
parent 88454da6f1
commit d9507d32f3

@ -65,7 +65,7 @@ public class FilesController {
//@RequestBody JSONObject object
//FilesDTO dto = object.toJavaObject(FilesDTO.class);
filesService.save(dto);
return new Result();
return new Result().ok(dto);
}
@PostMapping("/modifyFileName")
@ -91,7 +91,7 @@ public class FilesController {
public Result update(@RequestBody FilesDTO dto){
filesService.update(dto);
return new Result();
return new Result().ok(dto);
}
@DeleteMapping

@ -0,0 +1,92 @@
package com.pjilisense.flxai.controller;
import com.pjilisense.flxai.base.constant.Constant;
import com.pjilisense.flxai.dto.FilesDTO;
import com.pjilisense.flxai.page.PageData;
import com.pjilisense.flxai.utils.Result;
import com.pjilisense.flxai.dto.KnowledgeBasesDTO;
import com.pjilisense.flxai.service.KnowledgeBasesService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-01-14
*/
@RestController
@RequestMapping(Constant.BASE_PATH+"knowledgebases")
@Api(tags="${comments}")
public class KnowledgeBasesController {
private static Logger logger = LoggerFactory.getLogger(KnowledgeBasesController.class);
@Autowired
private KnowledgeBasesService knowledgeBasesService;
@GetMapping("page")
@ApiOperation("分页")
@ApiImplicitParams({
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码从1开始", paramType = "query", required = true, dataType="Integer", dataTypeClass =Integer.class) ,
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="Integer", dataTypeClass =Integer.class) ,
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String", dataTypeClass =String.class) ,
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String", dataTypeClass =String.class)
})
public Result<PageData<KnowledgeBasesDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
PageData<KnowledgeBasesDTO> page = knowledgeBasesService.page(params);
return new Result<PageData<KnowledgeBasesDTO>>().ok(page);
}
@GetMapping("{id}")
@ApiOperation("信息")
public Result<KnowledgeBasesDTO> get(@PathVariable("id") String id){
KnowledgeBasesDTO data = knowledgeBasesService.get(id);
return new Result<KnowledgeBasesDTO>().ok(data);
}
@PostMapping
@ApiOperation("保存")
public Result save(@RequestBody KnowledgeBasesDTO dto){
knowledgeBasesService.save(dto);
return new Result().ok(dto);
}
@PostMapping("/modifyDescriptuon")
@ApiOperation("修改描述")
public Result modifyDescriptuon(@RequestBody KnowledgeBasesDTO dto){
boolean suc =knowledgeBasesService.modifyDescriptuon(dto);
return new Result().ok(suc);
}
@PutMapping
@ApiOperation("修改")
public Result update(@RequestBody KnowledgeBasesDTO dto){
knowledgeBasesService.update(dto);
return new Result().ok(dto);
}
@DeleteMapping
@ApiOperation("删除")
public Result delete(@RequestBody String[] ids){
knowledgeBasesService.delete(ids);
return new Result();
}
}

@ -0,0 +1,19 @@
package com.pjilisense.flxai.dao;
import com.pjilisense.flxai.base.dao.BaseDao;
import com.pjilisense.flxai.entity.KnowledgeBasesEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.Map;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-01-14
*/
@Mapper
public interface KnowledgeBasesDao extends BaseDao<KnowledgeBasesEntity> {
int modifyDescriptuon(Map<String, Object> map);
}

@ -20,51 +20,38 @@ import java.util.UUID;
* @since 1.0.0 2025-01-14
*/
@Data
@ApiModel(value = "${comments}")
@ApiModel(value = "文件")
public class FilesDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "$column.comments")
private String id;
@ApiModelProperty(value = "$column.comments")
private String userId;
@ApiModelProperty(value = "$column.comments")
private String fileType;
@ApiModelProperty(value = "$column.comments")
private String name;
@ApiModelProperty(value = "$column.comments")
private Integer size;
@ApiModelProperty(value = "$column.comments")
private String url;
@ApiModelProperty(value = "$column.comments")
private Map<String,Object> metadata;
@ApiModelProperty(value = "$column.comments")
@JsonSerialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeSerializer.class)
@JsonDeserialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeDeserializer.class)
private OffsetDateTime createdAt;
@ApiModelProperty(value = "$column.comments")
@JsonSerialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeSerializer.class)
@JsonDeserialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeDeserializer.class)
private OffsetDateTime updatedAt;
@ApiModelProperty(value = "$column.comments")
private String fileHash;
@ApiModelProperty(value = "$column.comments")
private UUID chunkTaskId;
@ApiModelProperty(value = "$column.comments")
private UUID embeddingTaskId;
@ApiModelProperty(value = "$column.comments")
@JsonSerialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeSerializer.class)
@JsonDeserialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeDeserializer.class)
private OffsetDateTime accessedAt;

@ -0,0 +1,55 @@
package com.pjilisense.flxai.dto;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.OffsetDateTime;
import java.util.Date;
import java.util.Map;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-01-14
*/
@Data
@ApiModel(value = "知识库")
public class KnowledgeBasesDTO implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String name;
private String description;
private String avatar;
private String type;
private String userId;
private Boolean isPublic;
private Map<String,Object> settings;
@JsonSerialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeSerializer.class)
@JsonDeserialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeDeserializer.class)
private OffsetDateTime createdAt;
@JsonSerialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeSerializer.class)
@JsonDeserialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeDeserializer.class)
private OffsetDateTime updatedAt;
@JsonSerialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeSerializer.class)
@JsonDeserialize(using = com.pjilisense.flxai.wrapper.OffsetDateTimeDeserializer.class)
private OffsetDateTime accessedAt;
}

@ -0,0 +1,67 @@
package com.pjilisense.flxai.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.pjilisense.flxai.handle.JsonbTypeHandler;
import lombok.Data;
import java.time.OffsetDateTime;
import java.util.Date;
import java.util.Map;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-01-14
*/
@Data
@TableName("knowledge_bases")
public class KnowledgeBasesEntity {
/**
* $column.comments
*/
private String id;
/**
* $column.comments
*/
private String name;
/**
* $column.comments
*/
private String description;
/**
* $column.comments
*/
private String avatar;
/**
* $column.comments
*/
private String type;
/**
* $column.comments
*/
private String userId;
/**
* $column.comments
*/
private Boolean isPublic;
/**
* $column.comments
*/
@TableField(value = "settings", typeHandler = JsonbTypeHandler.class)
private Map<String,Object> settings;
/**
* $column.comments
*/
private OffsetDateTime createdAt;
/**
* $column.comments
*/
private OffsetDateTime updatedAt;
/**
* $column.comments
*/
private OffsetDateTime accessedAt;
}

@ -0,0 +1,16 @@
package com.pjilisense.flxai.service;
import com.pjilisense.flxai.base.service.CrudService;
import com.pjilisense.flxai.dto.KnowledgeBasesDTO;
import com.pjilisense.flxai.entity.KnowledgeBasesEntity;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-01-14
*/
public interface KnowledgeBasesService extends CrudService<KnowledgeBasesEntity, KnowledgeBasesDTO> {
boolean modifyDescriptuon(KnowledgeBasesDTO dto);
}

@ -0,0 +1,41 @@
package com.pjilisense.flxai.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.pjilisense.flxai.base.service.impl.CrudServiceImpl;
import com.pjilisense.flxai.dao.KnowledgeBasesDao;
import com.pjilisense.flxai.dto.FilesDTO;
import com.pjilisense.flxai.dto.KnowledgeBasesDTO;
import com.pjilisense.flxai.entity.KnowledgeBasesEntity;
import com.pjilisense.flxai.service.KnowledgeBasesService;
import cn.hutool.core.util.StrUtil;
import com.pjilisense.flxai.utils.MapUtils;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-01-14
*/
@Service
public class KnowledgeBasesServiceImpl extends CrudServiceImpl<KnowledgeBasesDao, KnowledgeBasesEntity, KnowledgeBasesDTO> implements KnowledgeBasesService {
@Override
public QueryWrapper<KnowledgeBasesEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get("id");
QueryWrapper<KnowledgeBasesEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StrUtil.isNotBlank(id), "id", id);
return wrapper;
}
@Override
public boolean modifyDescriptuon(KnowledgeBasesDTO dto) {
int cnt = baseDao.modifyDescriptuon(MapUtils.objectToMap(dto));
return cnt>0;
}
}

@ -18,9 +18,10 @@ public class OffsetDateTimeDeserializer extends JsonDeserializer<OffsetDateTime>
if(dateTimeStr.length()==19&& dateTimeStr.indexOf('T')==-1) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 创建一个Joda DateTime实例
LocalDateTime localDateTime = LocalDateTime.parse(dateTimeStr, formatter);
LocalDateTime localDateTimeBJ = LocalDateTime.parse(dateTimeStr, formatter);
// 转换为OffsetDateTime
OffsetDateTime offsetDateTimeUtc = localDateTime.atOffset(ZoneOffset.UTC);
//OffsetDateTime offsetDateTimeUtc = localDateTime.atOffset(ZoneOffset.UTC);
OffsetDateTime offsetDateTimeUtc = localDateTimeBJ.atOffset(ZoneOffset.ofHours(+8));
return offsetDateTimeUtc;
} else if(dateTimeStr.length()>19) {
OffsetDateTime dateTime = OffsetDateTime.parse(dateTimeStr, DateTimeFormatter.ISO_OFFSET_DATE_TIME);

@ -5,7 +5,9 @@ import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
public class OffsetDateTimeSerializer extends JsonSerializer<OffsetDateTime> {
@ -16,6 +18,9 @@ public class OffsetDateTimeSerializer extends JsonSerializer<OffsetDateTime> {
@Override
public void serialize(OffsetDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeString(value.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
LocalDateTime localDateTimeBJ=value.plusHours(8).toLocalDateTime();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
gen.writeString(localDateTimeBJ.format(formatter));
//gen.writeString(value.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
}
}

@ -22,14 +22,14 @@
</resultMap>
<update id="modifyFileName" parameterType="java.util.Map">
UPDATE files SET name = #{name,jdbcType=VARCHAR} WHERE id = #{id}
UPDATE files SET name = #{name,jdbcType=VARCHAR},updated_at = now() WHERE id = #{id}
</update>
<update id="modifyFileStatus" parameterType="java.util.Map">
UPDATE files SET file_status = #{fileStatus,jdbcType=VARCHAR} WHERE id = #{id}
UPDATE files SET file_status = #{fileStatus,jdbcType=VARCHAR},updated_at = now() WHERE id = #{id}
</update>
<update id="modifyFileCategory" parameterType="java.util.Map">
UPDATE files SET file_category = #{fileCategory,jdbcType=VARCHAR} WHERE id = #{id}
UPDATE files SET file_category = #{fileCategory,jdbcType=VARCHAR},updated_at = now() WHERE id = #{id}
</update>
</mapper>

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pjilisense.flxai.dao.KnowledgeBasesDao">
<resultMap type="com.pjilisense.flxai.entity.KnowledgeBasesEntity" id="knowledgeBasesMap">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="description" column="description"/>
<result property="avatar" column="avatar"/>
<result property="type" column="type"/>
<result property="userId" column="user_id"/>
<result property="isPublic" column="is_public"/>
<result property="settings" column="settings" typeHandler="com.pjilisense.flxai.handle.JsonbTypeHandler"/>
<result property="createdAt" column="created_at" jdbcType="TIMESTAMP_WITH_TIMEZONE" javaType="java.time.OffsetDateTime"/>
<result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP_WITH_TIMEZONE" javaType="java.time.OffsetDateTime"/>
<result property="accessedAt" column="accessed_at" jdbcType="TIMESTAMP_WITH_TIMEZONE" javaType="java.time.OffsetDateTime"/>
</resultMap>
<update id="modifyDescriptuon" parameterType="java.util.Map">
UPDATE knowledge_bases SET description = #{description,jdbcType=VARCHAR},updated_at = now() WHERE id = #{id}
</update>
</mapper>

@ -38,6 +38,36 @@ public class FilesControllerTest {
e.printStackTrace();
}
}
// @Test
// public void testsave() {
// String url = TestUtils.WebconnectURL+"/api/robot/files/";
// String charset = TestUtils.UTF8;
// try {
// Map<String, Object> params = new HashMap<String, Object>();
// params.put("userId","fd8ae359-64dc-4a57-ab41-5438e2fda975");
// params.put("fileType","text/plain");
// params.put("name","jykc3.sql");
// params.put("size",1864714);
// params.put("url","files/482454/d2b0edb3-15bf-4fe6-ba2e-97b5f1fe0288.sql");
// params.put("fileHash","1d66edbc0b5da3289ecea1ae00ac384b2378603193574c5f0bc9a9a988de2a16");
// params.put("chunkTaskId","ab3f259e-775a-4c57-8338-b273684f70d1");
// params.put("embeddingTaskId","12020d55-d453-46d7-a8c8-b0bba5f5c747");
// params.put("fileCategory","1");
// params.put("fileStatus","1");
//
// Map<String, Object> metadata = new HashMap<String, Object>();
// params.put("metadata",metadata);
// metadata.put("date","482454");
// metadata.put("path","files/482454/d2b0edb3-15bf-4fe6-ba2e-97b5f1fe0288.sql");
// metadata.put("filename","d2b0edb3-15bf-4fe6-ba2e-97b5f1fe0288.sql");
// metadata.put("dirname","files/482454");
//
// String body = TestUtils.doPost(url, JSON.toJSONString(params), charset);
// System.out.println(body);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
@Test
public void testmodifyFileName() {
String url = TestUtils.WebconnectURL+"/api/robot/files/modifyFileName";

@ -0,0 +1,87 @@
/**
* Copyright (c) 2018 All rights reserved.
* <p>
* https://www.renren.io
* <p>
*
*/
package test.com.pjilisense.flxai.controller;
import com.alibaba.fastjson.JSON;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import test.com.pjilisense.flxai.TestUtils;
import java.util.HashMap;
import java.util.Map;
public class KnowledgeBasesControllerTest {
@BeforeEach
public void setUpTestDataWithinTransaction() {
// set up test data within the transaction
}
@AfterEach
public void tearDownWithinTransaction() {
// execute "tear down" logic within the transaction
}
@Test
public void testGet() {
String url = TestUtils.WebconnectURL+"/api/robot/knowledgebases/kb_E5EcemGyKnh9";
String charset = TestUtils.UTF8;
try {
String body = TestUtils.doGet(url, charset);
System.out.println(body);
} catch (Exception e) {
e.printStackTrace();
}
}
// @Test
// public void testsave() {
// String url = TestUtils.WebconnectURL+"/api/robot/knowledgebases/";
// String charset = TestUtils.UTF8;
// try {
// Map<String, Object> params = new HashMap<String, Object>();
//// params.put("id","kb_E5EcemGyKnh9");
// params.put("name","知识库4");
// params.put("description","知识库4测试");
// params.put("userId","fd8ae359-64dc-4a57-ab41-5438e2fda975");
// params.put("isPublic",true);
//// params.put("createdAt","2025-01-14 14:27:55");
//// params.put("updatedAt","2025-01-14 14:27:55");
//// params.put("accessedAt","2025-01-14 14:27:55");
//// "id":"kb_E5EcemGyKnh9",
//// "name":"知识库1",
//// "description":"知识库测试2",
//// "avatar":null,
//// "type":null,
//// "userId":"fd8ae359-64dc-4a57-ab41-5438e2fda975",
//// "isPublic":false,
//// "settings":null,
//// "createdAt":"2025-01-14 14:27:55",
//// "updatedAt":"2025-01-14 14:27:55",
//// "accessedAt":"2025-01-14 14:27:55"
//
// String body = TestUtils.doPost(url, JSON.toJSONString(params), charset);
// System.out.println(body);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
@Test
public void testmodifyDescriptuon() {
String url = TestUtils.WebconnectURL+"/api/robot/knowledgebases/modifyDescriptuon";
String charset = TestUtils.UTF8;
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put("id","kb_E5EcemGyKnh9");
params.put("description","知识库测试23");
String body = TestUtils.doPost(url, JSON.toJSONString(params), charset);
System.out.println(body);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Loading…
Cancel
Save