From e4e69c2759ba2069da5cc42a27f22297c9574e9b Mon Sep 17 00:00:00 2001 From: liushujing Date: Mon, 3 Mar 2025 14:48:28 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=9F=B3=E8=89=B2=E8=A1=A8=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=A2=9E=E5=8A=A0=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/VoiceRefFilesController.java | 95 +++++++++++++++++++ .../flxai/dao/VoiceRefFilesDao.java | 16 ++++ .../pjilisense/flxai/dto/DigitalImgDTO.java | 2 +- .../flxai/dto/VoiceRefFilesDTO.java | 38 ++++++++ .../flxai/entity/DigitalImgEntity.java | 2 +- .../flxai/entity/VoiceRefFilesEntity.java | 38 ++++++++ .../flxai/service/VoiceRefFilesService.java | 18 ++++ .../impl/VoiceRefFilesServiceImpl.java | 47 +++++++++ .../com/pjilisense/flxai/utils/FileUtil.java | 1 + .../mapper/postgres/VoiceRefFilesDao.xml | 21 ++++ 10 files changed, 276 insertions(+), 2 deletions(-) create mode 100644 flx-ai/src/main/java/com/pjilisense/flxai/controller/VoiceRefFilesController.java create mode 100644 flx-ai/src/main/java/com/pjilisense/flxai/dao/VoiceRefFilesDao.java create mode 100644 flx-ai/src/main/java/com/pjilisense/flxai/dto/VoiceRefFilesDTO.java create mode 100644 flx-ai/src/main/java/com/pjilisense/flxai/entity/VoiceRefFilesEntity.java create mode 100644 flx-ai/src/main/java/com/pjilisense/flxai/service/VoiceRefFilesService.java create mode 100644 flx-ai/src/main/java/com/pjilisense/flxai/service/impl/VoiceRefFilesServiceImpl.java create mode 100644 flx-ai/src/main/resources/mapper/postgres/VoiceRefFilesDao.xml diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/controller/VoiceRefFilesController.java b/flx-ai/src/main/java/com/pjilisense/flxai/controller/VoiceRefFilesController.java new file mode 100644 index 0000000..9acc642 --- /dev/null +++ b/flx-ai/src/main/java/com/pjilisense/flxai/controller/VoiceRefFilesController.java @@ -0,0 +1,95 @@ +package com.pjilisense.flxai.controller; + +import com.pjilisense.flxai.base.constant.Constant; +import com.pjilisense.flxai.dto.DigitalImgDTO; +import com.pjilisense.flxai.page.PageData; +import com.pjilisense.flxai.utils.Result; +import com.pjilisense.flxai.dto.VoiceRefFilesDTO; +import com.pjilisense.flxai.service.VoiceRefFilesService; +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; + + +/** + * 音频参考文件 + * + * @author liushujing liushujing@philisense.com + * @since 1.0.0 2025-02-28 + */ +@RestController +@RequestMapping(Constant.BASE_PATH+"voicereffiles") +@Api(tags="音频参考文件") +public class VoiceRefFilesController { + + private static Logger logger = LoggerFactory.getLogger(VoiceRefFilesController.class); + + @Autowired + private VoiceRefFilesService voiceRefFilesService; + + @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> page(@ApiIgnore @RequestParam Map params){ + PageData page = voiceRefFilesService.page(params); + + return new Result>().ok(page); + } + @PostMapping("queryAll") + @ApiOperation("根据类型获取全部数据") + public Result> queryAll(@RequestBody VoiceRefFilesDTO dto) { + List page = voiceRefFilesService.getAll(dto); + return new Result>().ok(page); + } + @GetMapping("{id}") + @ApiOperation("信息") + public Result get(@PathVariable("id") Long id){ + VoiceRefFilesDTO data = voiceRefFilesService.get(id); + + return new Result().ok(data); + } + + @PostMapping + @ApiOperation("保存") + public Result save(@RequestBody VoiceRefFilesDTO dto){ + + voiceRefFilesService.save(dto); + + return new Result(); + } + + @PutMapping + @ApiOperation("修改") + public Result update(@RequestBody VoiceRefFilesDTO dto){ + + voiceRefFilesService.update(dto); + + return new Result(); + } + + @DeleteMapping + @ApiOperation("删除") + public Result delete(@RequestBody String[] ids){ + + voiceRefFilesService.delete(ids); + + return new Result(); + } + + +} \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/dao/VoiceRefFilesDao.java b/flx-ai/src/main/java/com/pjilisense/flxai/dao/VoiceRefFilesDao.java new file mode 100644 index 0000000..e419541 --- /dev/null +++ b/flx-ai/src/main/java/com/pjilisense/flxai/dao/VoiceRefFilesDao.java @@ -0,0 +1,16 @@ +package com.pjilisense.flxai.dao; + +import com.pjilisense.flxai.base.dao.BaseDao; +import com.pjilisense.flxai.entity.VoiceRefFilesEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 音频参考文件 + * + * @author liushujing liushujing@philisense.com + * @since 1.0.0 2025-02-28 + */ +@Mapper +public interface VoiceRefFilesDao extends BaseDao { + +} \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/dto/DigitalImgDTO.java b/flx-ai/src/main/java/com/pjilisense/flxai/dto/DigitalImgDTO.java index d7d2878..eb0dd70 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/dto/DigitalImgDTO.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/dto/DigitalImgDTO.java @@ -28,7 +28,7 @@ public class DigitalImgDTO implements Serializable { @ApiModelProperty(value = "图片存放的相对路径") private String imgPath; - @ApiModelProperty(value = "图片类型1数字人形象2数字人场景3数字人背景") + @ApiModelProperty(value = "图片类型1数字人形象2数字人场景3数字人背景4音色形象") private String imgType; diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/dto/VoiceRefFilesDTO.java b/flx-ai/src/main/java/com/pjilisense/flxai/dto/VoiceRefFilesDTO.java new file mode 100644 index 0000000..e04def0 --- /dev/null +++ b/flx-ai/src/main/java/com/pjilisense/flxai/dto/VoiceRefFilesDTO.java @@ -0,0 +1,38 @@ +package com.pjilisense.flxai.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 音频参考文件 + * + * @author liushujing liushujing@philisense.com + * @since 1.0.0 2025-02-28 + */ +@Data +@ApiModel(value = "音频参考文件") +public class VoiceRefFilesDTO implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String id; + + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "音频存路径") + private String voicePath; + + @ApiModelProperty(value = "显示图片路径") + private String imgPath; + + @ApiModelProperty(value = "语言") + private String language; + + +} \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/entity/DigitalImgEntity.java b/flx-ai/src/main/java/com/pjilisense/flxai/entity/DigitalImgEntity.java index 636ed88..b036488 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/entity/DigitalImgEntity.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/entity/DigitalImgEntity.java @@ -28,7 +28,7 @@ public class DigitalImgEntity { */ private String imgPath; /** - * 图片类型1数字人形象2数字人场景3数字人背景 + * 图片类型1数字人形象2数字人场景3数字人背景4音色形象 */ private String imgType; } \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/entity/VoiceRefFilesEntity.java b/flx-ai/src/main/java/com/pjilisense/flxai/entity/VoiceRefFilesEntity.java new file mode 100644 index 0000000..84caae0 --- /dev/null +++ b/flx-ai/src/main/java/com/pjilisense/flxai/entity/VoiceRefFilesEntity.java @@ -0,0 +1,38 @@ +package com.pjilisense.flxai.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * 音频参考文件 + * + * @author liushujing liushujing@philisense.com + * @since 1.0.0 2025-02-28 + */ +@Data +@TableName("voice_ref_files") +public class VoiceRefFilesEntity { + + /** + * 主键 + */ + private String id; + /** + * 名称 + */ + private String name; + /** + * 音频存路径 + */ + private String voicePath; + /** + * 显示图片路径 + */ + private String imgPath; + /** + * 语言 + */ + private String language; +} \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/service/VoiceRefFilesService.java b/flx-ai/src/main/java/com/pjilisense/flxai/service/VoiceRefFilesService.java new file mode 100644 index 0000000..b7557dd --- /dev/null +++ b/flx-ai/src/main/java/com/pjilisense/flxai/service/VoiceRefFilesService.java @@ -0,0 +1,18 @@ +package com.pjilisense.flxai.service; + +import com.pjilisense.flxai.base.service.CrudService; +import com.pjilisense.flxai.dto.VoiceRefFilesDTO; +import com.pjilisense.flxai.entity.VoiceRefFilesEntity; + +import java.util.List; + +/** + * 音频参考文件 + * + * @author liushujing liushujing@philisense.com + * @since 1.0.0 2025-02-28 + */ +public interface VoiceRefFilesService extends CrudService { + + List getAll(VoiceRefFilesDTO dto); +} \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/VoiceRefFilesServiceImpl.java b/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/VoiceRefFilesServiceImpl.java new file mode 100644 index 0000000..f15dfd9 --- /dev/null +++ b/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/VoiceRefFilesServiceImpl.java @@ -0,0 +1,47 @@ +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.VoiceRefFilesDao; +import com.pjilisense.flxai.dto.DigitalImgDTO; +import com.pjilisense.flxai.dto.VoiceRefFilesDTO; +import com.pjilisense.flxai.entity.DigitalImgEntity; +import com.pjilisense.flxai.entity.VoiceRefFilesEntity; +import com.pjilisense.flxai.service.VoiceRefFilesService; +import cn.hutool.core.util.StrUtil; +import com.pjilisense.flxai.utils.ConvertUtils; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * 音频参考文件 + * + * @author liushujing liushujing@philisense.com + * @since 1.0.0 2025-02-28 + */ +@Service +public class VoiceRefFilesServiceImpl extends CrudServiceImpl implements VoiceRefFilesService { + + @Override + public QueryWrapper getWrapper(Map params){ + String id = (String)params.get("id"); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StrUtil.isNotBlank(id), "id", id); + + return wrapper; + } + + @Override + public List getAll(VoiceRefFilesDTO dto) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StrUtil.isNotBlank(dto.getLanguage()), "language", dto.getLanguage()); + wrapper.eq(StrUtil.isNotBlank(dto.getId()), "id", dto.getId()); + wrapper.orderByAsc("id"); + List entityList =baseDao.selectList(wrapper); + return ConvertUtils.sourceToTarget(entityList, VoiceRefFilesDTO.class); + } + +} \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/utils/FileUtil.java b/flx-ai/src/main/java/com/pjilisense/flxai/utils/FileUtil.java index da2d5fc..6910cdb 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/utils/FileUtil.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/utils/FileUtil.java @@ -46,6 +46,7 @@ public class FileUtil { if (!descFile.getParentFile().exists()) { descFile.getParentFile().mkdirs(); } + //multipartFile.transferTo(descFile); try (InputStream is = multipartFile.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(descFile))) { diff --git a/flx-ai/src/main/resources/mapper/postgres/VoiceRefFilesDao.xml b/flx-ai/src/main/resources/mapper/postgres/VoiceRefFilesDao.xml new file mode 100644 index 0000000..e860c06 --- /dev/null +++ b/flx-ai/src/main/resources/mapper/postgres/VoiceRefFilesDao.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 32c17f13c8b2f4c5071f797efcd0e24f0523f769 Mon Sep 17 00:00:00 2001 From: liushujing Date: Tue, 4 Mar 2025 10:53:30 +0800 Subject: [PATCH 2/4] =?UTF-8?q?DigitalImgController=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- flx-ai/pom.xml | 16 +- .../pjilisense/flxai/config/WebMvcConfig.java | 8 + .../controller/DigitalImgController.java | 8 +- .../com/pjilisense/flxai/utils/FileUtil.java | 12 +- .../test/com/pjilisense/flxai/TestUtils.java | 34 ++++ .../controller/DigitalImgControllerTest.java | 145 ++++++++++++++++++ 6 files changed, 215 insertions(+), 8 deletions(-) create mode 100644 flx-ai/src/test/java/test/com/pjilisense/flxai/controller/DigitalImgControllerTest.java diff --git a/flx-ai/pom.xml b/flx-ai/pom.xml index 49ba9e5..9ae1957 100644 --- a/flx-ai/pom.xml +++ b/flx-ai/pom.xml @@ -43,12 +43,12 @@ org.springframework.boot - spring-boot-starter-test - test + spring-boot-starter-web org.springframework.boot - spring-boot-starter-web + spring-boot-starter-test + test org.springframework.boot @@ -154,6 +154,16 @@ hanlp portable-1.8.6 + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + commons-fileupload + commons-fileupload + 1.3 + diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/config/WebMvcConfig.java b/flx-ai/src/main/java/com/pjilisense/flxai/config/WebMvcConfig.java index 4d44d07..c5d1626 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/config/WebMvcConfig.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/config/WebMvcConfig.java @@ -34,6 +34,7 @@ import java.text.SimpleDateFormat; import java.util.List; import java.util.TimeZone; +import org.springframework.web.multipart.commons.CommonsMultipartResolver; /** * MVC配置 * @@ -89,4 +90,11 @@ public class WebMvcConfig implements WebMvcConfigurer { converter.setObjectMapper(mapper); return converter; } + +// @Bean +// public CommonsMultipartResolver multipartResolver() { +// org.springframework.web.multipart.commons.CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); +// multipartResolver.setMaxUploadSize(100000); // 设置最大上传大小 +// return multipartResolver; +// } } \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/controller/DigitalImgController.java b/flx-ai/src/main/java/com/pjilisense/flxai/controller/DigitalImgController.java index 2ce3e8e..9cd832f 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/controller/DigitalImgController.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/controller/DigitalImgController.java @@ -14,10 +14,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; import springfox.documentation.annotations.ApiIgnore; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.nio.file.Files; @@ -46,7 +48,7 @@ public class DigitalImgController { @Autowired FileUtil fileUtil; @PostMapping("/uploadPicture") - public Result uploadPicture(@RequestParam("file") MultipartFile file) { + public Result uploadPicture(@RequestParam(value="file") MultipartFile file) { if (file.isEmpty()) { return new Result().error("文件为空"); } @@ -57,7 +59,7 @@ public class DigitalImgController { return new Result().error("上传失败: " + e.getMessage()); } } - @PostMapping("/getPicture") + @GetMapping("/getPicture") public void getPicture(HttpServletResponse response,@RequestParam(name = "id", required = true) String id) { try { DigitalImgDTO data = digitalImgService.get(id); @@ -104,6 +106,8 @@ public class DigitalImgController { digitalImgService.save(dto); return new Result(); + //param ={"imgPath":"uploads/202503/5c799cffa5864619b817063f77fe734d..png","name":"开源项目","imgType":"1"} + //{"code":0,"msg":"success","data":null} } @PutMapping diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/utils/FileUtil.java b/flx-ai/src/main/java/com/pjilisense/flxai/utils/FileUtil.java index 6910cdb..618acb1 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/utils/FileUtil.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/utils/FileUtil.java @@ -39,7 +39,7 @@ public class FileUtil { //⽂件后缀,如.jpeg assert filename != null; String suffix = filename.substring(filename.lastIndexOf(".")); - relPath =relPath+"/"+UUID.randomUUID().toString().replace("-","")+"."+suffix; + relPath =relPath+UUID.randomUUID().toString().replace("-","")+suffix; //⽬标⽂件 File descFile = new File(getFilepath(relPath)); //判断⽬标⽂件所在的⽬录是否存在 @@ -92,10 +92,14 @@ public class FileUtil { try { // 读到流中 if(file.isDirectory()) { - inputStream = new FileInputStream(filepath +"/"+ filename);// 文件的存放路径 + filename = rootPath +"/"+ filename; + filename = filename.replace("//","/"); + inputStream = new FileInputStream(filename);// 文件的存放路径 } else { - inputStream = new FileInputStream(filepath);//filepath可能包含文件名 + filename=rootPath; + inputStream = new FileInputStream(filename);//filepath可能包含文件名 } + filename =filename.substring(filename.lastIndexOf("/")+1); response.reset(); response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(filename, "UTF-8")); @@ -107,6 +111,7 @@ public class FileUtil { outputStream.write(b, 0, len); } } catch (IOException e) { + System.out.println(e.getMessage()); //log.error(e.getMessage(), e); }finally { try { @@ -117,6 +122,7 @@ public class FileUtil { } } } + // } public String getFilepath (final String filepath) {//filepath可能包含文件名 diff --git a/flx-ai/src/test/java/test/com/pjilisense/flxai/TestUtils.java b/flx-ai/src/test/java/test/com/pjilisense/flxai/TestUtils.java index 5143919..cc54ced 100644 --- a/flx-ai/src/test/java/test/com/pjilisense/flxai/TestUtils.java +++ b/flx-ai/src/test/java/test/com/pjilisense/flxai/TestUtils.java @@ -222,6 +222,40 @@ public class TestUtils { return null; } + public static void doGetFile(String connectURL, String destFile) { + byte[] bytes = null; + ByteArrayOutputStream byteArrayOut = null; + URL url = null; + HttpURLConnection httpGet = null; + InputStream in = null; + try { + url = new URL(connectURL); + httpGet = (HttpURLConnection) url.openConnection(); + httpGet.setConnectTimeout(CONNECT_TIMEOUT); + httpGet.setReadTimeout(READ_TIMEOUT); + httpGet.setRequestProperty("token", TOKEN); + httpGet.connect(); + in = httpGet.getInputStream(); + byteArrayOut = new ByteArrayOutputStream(); + byte[] buf = new byte[512]; + int l = 0; + while ((l = in.read(buf)) != -1) { + byteArrayOut.write(buf, 0, l); + } + bytes = byteArrayOut.toByteArray(); + File file=new File(destFile); + file.getParentFile().mkdirs(); + FileOutputStream fos = new FileOutputStream(file); + fos.write(bytes); + fos.close(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + close(byteArrayOut); + close(in); + close(httpGet); + } + } private static void close(Closeable stream) { if (stream != null) { try { diff --git a/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/DigitalImgControllerTest.java b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/DigitalImgControllerTest.java new file mode 100644 index 0000000..76f53a4 --- /dev/null +++ b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/DigitalImgControllerTest.java @@ -0,0 +1,145 @@ +package test.com.pjilisense.flxai.controller; + +import cn.hutool.http.body.MultipartBody; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.ApiModelProperty; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +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.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +public class DigitalImgControllerTest { + + @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 testuploadPicture() { + String urls = TestUtils.WebconnectURL+"/api/robot/digitalimg/uploadPicture"; + String charset = TestUtils.UTF8; + try { + CloseableHttpClient client = HttpClients.createDefault(); + File file = new File("C:\\Users\\john\\Desktop\\30_200_200.jpg"); + try { + URL url = new URL(urls); + HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); + httpConn.setUseCaches(false); + httpConn.setDoOutput(true); // Indicates that data will be sent + httpConn.setDoInput(true); // Indicates that data will be received + httpConn.setRequestMethod("POST"); // HTTP Request Method + String boundary = Long.toHexString(System.currentTimeMillis()); // Just generate any random value here + httpConn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); + + OutputStream output = httpConn.getOutputStream(); + PrintWriter writer = new PrintWriter(new OutputStreamWriter(output, "UTF-8"), true); + + // Send normal form data with name "file" + writer.append("--" + boundary).append("\r\n"); + writer.append("Content-Disposition: form-data; name=\"file\"; filename=\"" + file.getName() + "\"").append("\r\n"); + writer.append("Content-Type: " + "application/octet-stream").append("\r\n"); + writer.append("\r\n").flush(); + writer.flush(); + + // files data + FileInputStream input = new FileInputStream(file); + byte[] buffer = new byte[4096]; + int bytesRead; + while ((bytesRead = input.read(buffer)) != -1) { + output.write(buffer, 0, bytesRead); + } + output.flush(); + input.close(); + + // Send multipart form data terminator + writer.append("\r\n").flush(); + writer.append("--" + boundary + "--\r\n").append("\r\n").flush(); + + // Gets the response status code + int status = httpConn.getResponseCode(); + BufferedReader reader = new BufferedReader(new InputStreamReader(httpConn.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + writer.close(); + output.close(); + httpConn.disconnect(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } catch (Exception e) { + e.printStackTrace(); + } + //{"code":0,"msg":"success","data":"uploads/202503/882d8b1d82de42308142f9a49b5716f8.jpg"} + } + @Test + public void testgetPicture() { + String url = TestUtils.WebconnectURL+"/api/robot/digitalimg/getPicture?id=1896743235380944897"; + TestUtils.doGetFile(url, "D:\\ceshi\\sysfile\\download\202503\\1896743235380944897.png"); + } + @Test + public void testGetAllAiTools() { + String url = TestUtils.WebconnectURL+"/api/robot/digitalimg/getAllByType?imgType=1"; + String charset = TestUtils.UTF8; + try { + String body = TestUtils.doGet(url, charset); + System.out.println(body); + } catch (Exception e) { + e.printStackTrace(); + } + //{"code":0,"msg":"success","data":[{"id":"1896741333490540546","name":"开源项目","imgPath":"uploads/202503/5c799cffa5864619b817063f77fe734d.png","imgType":"1"}]} + } + @Test + public void testSave() { + String url = TestUtils.WebconnectURL+"/api/robot/digitalimg"; + String charset = TestUtils.UTF8; + try { + Map params = new HashMap(); +// params.put("name","开源项目"); +// params.put("imgPath","uploads/202503/5c799cffa5864619b817063f77fe734d.png"); +// params.put("imgType","1"); + params.put("name","开源项目"); + params.put("imgPath","uploads/202503/d1f8398f9bb844079f774ef496347e12.png"); + params.put("imgType","1"); + String body = TestUtils.doPost(url, JSON.toJSONString(params), charset); + System.out.println(body); + //param ={"imgPath":"uploads/202503/d1f8398f9bb844079f774ef496347e12.png","name":"开源项目","imgType":"1"} + //{"code":0,"msg":"success","data":null} + } catch (Exception e) { + e.printStackTrace(); + } + } + @Test + public void testupdate() { + String url = TestUtils.WebconnectURL+"/api/robot/digitalimg"; + String charset = TestUtils.UTF8; + try { + Map params = new HashMap(); + params.put("id","1896741333490540546"); + params.put("name","开源项目2"); + params.put("imgPath","uploads/202503/5c799cffa5864619b817063f77fe734d.png"); + params.put("imgType","2"); + String body = TestUtils.doPut(url, JSON.toJSONString(params), charset); + System.out.println(body); + //param ={"imgPath":"uploads/202503/5c799cffa5864619b817063f77fe734d.png","name":"开源项目2","id":"1896741333490540546","imgType":"2"} + //{"code":0,"msg":"success","data":null} + } catch (Exception e) { + e.printStackTrace(); + } + } +} From 36e493dbb50d896565c2c0d7a0e0a4a16b8658df Mon Sep 17 00:00:00 2001 From: liushujing Date: Wed, 5 Mar 2025 15:15:17 +0800 Subject: [PATCH 3/4] =?UTF-8?q?DigitalImgController=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flxai/controller/ChunksController.java | 10 +-- .../controller/FileChunksController.java | 4 +- .../flxai/controller/FilesController.java | 2 +- .../controller/GlobalFilesController.java | 10 +-- .../controller/KnowledgeBasesController.java | 2 +- .../controller/MyDigitalHumanController.java | 15 ++-- .../controller/VoiceRefFilesController.java | 2 +- .../pjilisense/flxai/dto/DigitalImgDTO.java | 3 +- .../flxai/entity/DigitalImgEntity.java | 7 ++ .../flxai/service/MyDigitalHumanService.java | 1 + .../flxai/service/impl/ChunksServiceImpl.java | 2 +- .../impl/MyDigitalHumanServiceImpl.java | 11 +++ .../impl/VoiceRefFilesServiceImpl.java | 1 + .../mapper/postgres/DigitalImgDao.xml | 1 + .../controller/ChunksControllerTest.java | 8 +- .../controller/DigitalImgControllerTest.java | 9 +- .../flxai/controller/FilesControllerTest.java | 13 ++- .../KnowledgeBasesControllerTest.java | 3 + .../MyDigitalHumanControllerTest.java | 86 +++++++++++++++++++ .../VoiceRefFilesControllerTest.java | 82 ++++++++++++++++++ 20 files changed, 244 insertions(+), 28 deletions(-) create mode 100644 flx-ai/src/test/java/test/com/pjilisense/flxai/controller/MyDigitalHumanControllerTest.java create mode 100644 flx-ai/src/test/java/test/com/pjilisense/flxai/controller/VoiceRefFilesControllerTest.java diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/controller/ChunksController.java b/flx-ai/src/main/java/com/pjilisense/flxai/controller/ChunksController.java index 23531a0..f3a3bf4 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/controller/ChunksController.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/controller/ChunksController.java @@ -53,7 +53,7 @@ public class ChunksController { @GetMapping("{id}") @ApiOperation("信息") - public Result get(@PathVariable("id") Long id){ + public Result get(@PathVariable("id") String id){ ChunksDTO data = chunksService.get(id); return new Result().ok(data); @@ -69,7 +69,7 @@ public class ChunksController { public Result save(@RequestBody ChunksDTO dto){ chunksService.save(dto); - return new Result(); + return new Result().ok(dto); } @PutMapping @@ -78,16 +78,16 @@ public class ChunksController { chunksService.update(dto); - return new Result(); + return new Result().ok(dto); } @DeleteMapping @ApiOperation("删除") - public Result delete(@RequestBody Long[] ids){ + public Result delete(@RequestBody String[] ids){ //效验数据 chunksService.delete(ids); - return new Result(); + return new Result().ok(ids); } } \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/controller/FileChunksController.java b/flx-ai/src/main/java/com/pjilisense/flxai/controller/FileChunksController.java index ca43b0e..bc64a00 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/controller/FileChunksController.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/controller/FileChunksController.java @@ -52,7 +52,7 @@ public class FileChunksController { @GetMapping("{id}") @ApiOperation("信息") - public Result get(@PathVariable("id") Long id){ + public Result get(@PathVariable("id") String id){ FileChunksDTO data = fileChunksService.get(id); return new Result().ok(data); @@ -78,7 +78,7 @@ public class FileChunksController { @DeleteMapping @ApiOperation("删除") - public Result delete(@RequestBody Long[] ids){ + public Result delete(@RequestBody String[] ids){ fileChunksService.delete(ids); diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/controller/FilesController.java b/flx-ai/src/main/java/com/pjilisense/flxai/controller/FilesController.java index 19c259c..959e6fc 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/controller/FilesController.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/controller/FilesController.java @@ -99,7 +99,7 @@ public class FilesController { public Result delete(@RequestBody String[] ids){ filesService.delete(ids); - return new Result(); + return new Result().ok(ids); } } \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/controller/GlobalFilesController.java b/flx-ai/src/main/java/com/pjilisense/flxai/controller/GlobalFilesController.java index cea635d..e66fa51 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/controller/GlobalFilesController.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/controller/GlobalFilesController.java @@ -52,7 +52,7 @@ public class GlobalFilesController { @GetMapping("{id}") @ApiOperation("信息") - public Result get(@PathVariable("id") Long id){ + public Result get(@PathVariable("id") String id){ GlobalFilesDTO data = globalFilesService.get(id); return new Result().ok(data); @@ -64,7 +64,7 @@ public class GlobalFilesController { globalFilesService.save(dto); - return new Result(); + return new Result().ok(dto); } @PutMapping @@ -73,16 +73,16 @@ public class GlobalFilesController { globalFilesService.update(dto); - return new Result(); + return new Result().ok(dto); } @DeleteMapping @ApiOperation("删除") - public Result delete(@RequestBody Long[] ids){ + public Result delete(@RequestBody String[] ids){ globalFilesService.delete(ids); - return new Result(); + return new Result().ok(ids); } } \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/controller/KnowledgeBasesController.java b/flx-ai/src/main/java/com/pjilisense/flxai/controller/KnowledgeBasesController.java index 639256f..ca352ba 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/controller/KnowledgeBasesController.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/controller/KnowledgeBasesController.java @@ -86,7 +86,7 @@ public class KnowledgeBasesController { public Result delete(@RequestBody String[] ids){ knowledgeBasesService.delete(ids); - return new Result(); + return new Result().ok(ids); } } \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/controller/MyDigitalHumanController.java b/flx-ai/src/main/java/com/pjilisense/flxai/controller/MyDigitalHumanController.java index 487751f..d52322a 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/controller/MyDigitalHumanController.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/controller/MyDigitalHumanController.java @@ -52,7 +52,7 @@ public class MyDigitalHumanController { @GetMapping("{id}") @ApiOperation("信息") - public Result get(@PathVariable("id") Long id){ + public Result get(@PathVariable("id") String id){ MyDigitalHumanDTO data = myDigitalHumanService.get(id); return new Result().ok(data); @@ -62,23 +62,26 @@ public class MyDigitalHumanController { @ApiOperation("保存") public Result save(@RequestBody MyDigitalHumanDTO dto){ - myDigitalHumanService.save(dto); + // + MyDigitalHumanDTO ret = myDigitalHumanService.genVideo(dto); + //myDigitalHumanService.save(dto); - return new Result(); + return new Result().ok(ret); } @PutMapping @ApiOperation("修改") public Result update(@RequestBody MyDigitalHumanDTO dto){ - myDigitalHumanService.update(dto); + MyDigitalHumanDTO ret = myDigitalHumanService.genVideo(dto); + //myDigitalHumanService.update(dto); - return new Result(); + return new Result().ok(ret); } @DeleteMapping @ApiOperation("删除") - public Result delete(@RequestBody Long[] ids){ + public Result delete(@RequestBody String[] ids){ myDigitalHumanService.delete(ids); diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/controller/VoiceRefFilesController.java b/flx-ai/src/main/java/com/pjilisense/flxai/controller/VoiceRefFilesController.java index 9acc642..6076b33 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/controller/VoiceRefFilesController.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/controller/VoiceRefFilesController.java @@ -58,7 +58,7 @@ public class VoiceRefFilesController { } @GetMapping("{id}") @ApiOperation("信息") - public Result get(@PathVariable("id") Long id){ + public Result get(@PathVariable("id") String id){ VoiceRefFilesDTO data = voiceRefFilesService.get(id); return new Result().ok(data); diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/dto/DigitalImgDTO.java b/flx-ai/src/main/java/com/pjilisense/flxai/dto/DigitalImgDTO.java index eb0dd70..283e3e9 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/dto/DigitalImgDTO.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/dto/DigitalImgDTO.java @@ -31,5 +31,6 @@ public class DigitalImgDTO implements Serializable { @ApiModelProperty(value = "图片类型1数字人形象2数字人场景3数字人背景4音色形象") private String imgType; - + @ApiModelProperty(value = "音频在服务器的目录") + private String voiceServerDir; } \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/entity/DigitalImgEntity.java b/flx-ai/src/main/java/com/pjilisense/flxai/entity/DigitalImgEntity.java index b036488..7a0dce5 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/entity/DigitalImgEntity.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/entity/DigitalImgEntity.java @@ -1,6 +1,7 @@ package com.pjilisense.flxai.entity; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @@ -31,4 +32,10 @@ public class DigitalImgEntity { * 图片类型1数字人形象2数字人场景3数字人背景4音色形象 */ private String imgType; + + /** + * 音频在服务器的目录 + */ + private String voiceServerDir; + } \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/service/MyDigitalHumanService.java b/flx-ai/src/main/java/com/pjilisense/flxai/service/MyDigitalHumanService.java index b7ddadd..1f903d6 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/service/MyDigitalHumanService.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/service/MyDigitalHumanService.java @@ -12,4 +12,5 @@ import com.pjilisense.flxai.entity.MyDigitalHumanEntity; */ public interface MyDigitalHumanService extends CrudService { + MyDigitalHumanDTO genVideo(MyDigitalHumanDTO dto); } \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/ChunksServiceImpl.java b/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/ChunksServiceImpl.java index c182fde..f0a0041 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/ChunksServiceImpl.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/ChunksServiceImpl.java @@ -37,7 +37,7 @@ public class ChunksServiceImpl extends CrudServiceImpl> search(String userid,String keyText) { - return search1( userid, keyText); + return search2( userid, keyText); } private List> search1(String userid,String keyText) { diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/MyDigitalHumanServiceImpl.java b/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/MyDigitalHumanServiceImpl.java index 041eb31..ef3cc2d 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/MyDigitalHumanServiceImpl.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/MyDigitalHumanServiceImpl.java @@ -31,4 +31,15 @@ public class MyDigitalHumanServiceImpl extends CrudServiceImpl0){ + update(dto); + } else { + save(dto); + } + return dto; + } } \ No newline at end of file diff --git a/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/VoiceRefFilesServiceImpl.java b/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/VoiceRefFilesServiceImpl.java index f15dfd9..c91e860 100644 --- a/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/VoiceRefFilesServiceImpl.java +++ b/flx-ai/src/main/java/com/pjilisense/flxai/service/impl/VoiceRefFilesServiceImpl.java @@ -39,6 +39,7 @@ public class VoiceRefFilesServiceImpl extends CrudServiceImpl wrapper = new QueryWrapper<>(); wrapper.eq(StrUtil.isNotBlank(dto.getLanguage()), "language", dto.getLanguage()); wrapper.eq(StrUtil.isNotBlank(dto.getId()), "id", dto.getId()); + wrapper.like(StrUtil.isNotBlank(dto.getName()), "name", dto.getName()); wrapper.orderByAsc("id"); List entityList =baseDao.selectList(wrapper); return ConvertUtils.sourceToTarget(entityList, VoiceRefFilesDTO.class); diff --git a/flx-ai/src/main/resources/mapper/postgres/DigitalImgDao.xml b/flx-ai/src/main/resources/mapper/postgres/DigitalImgDao.xml index f9a06ed..2588a5d 100644 --- a/flx-ai/src/main/resources/mapper/postgres/DigitalImgDao.xml +++ b/flx-ai/src/main/resources/mapper/postgres/DigitalImgDao.xml @@ -8,6 +8,7 @@ + diff --git a/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/ChunksControllerTest.java b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/ChunksControllerTest.java index ca27605..75df960 100644 --- a/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/ChunksControllerTest.java +++ b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/ChunksControllerTest.java @@ -28,7 +28,7 @@ public class ChunksControllerTest { } @Test - public void testGetAllAiTools() { + public void testsearch() { String url = TestUtils.WebconnectURL+"/api/robot/chunks/search"; String charset = TestUtils.UTF8; try { @@ -40,6 +40,12 @@ public class ChunksControllerTest { } catch (Exception e) { e.printStackTrace(); } + //param ={"text":"开源项目","userId":"2f3c5337-cf1a-40ce-bbe3-ec45455d82f1"} + //{"code":0,"msg":"success","data":[{"fid":"file_wb9Pk6GBUq0z","fname":"问答.txt","question":"开源项目","answer":"HanLP是由一系列NLP工具组成的开源项目,其中包含了中文分词、词性标注、命名实体识别等功能。","similarity":"0.9999999999999997779553950749686919152736663818359375","id":"2bcbd9ae-053e-45e5-a3a9-5498915bd749","text":"开源项目,HanLP是由一系列NLP工具组成的开源项目,其中包含了中文分词、词性标注、命名实体识别等功能。"},{"fid":"file_wb9Pk6GBUq0z","fname":"问答.txt","question":"开源项目HanLP","answer":"HanLP是由一系列NLP工具组成的开源项目,其中包含了中文分词、词性标注、命名实体识别等功能。","similarity":"0.81649658092772592343777660062187351286411285400390625","id":"2bcbd9ae-053e-45e5-a3a9-5498915bd748","text":"开源项目HanLP,HanLP是由一系列NLP工具组成的开源项目,其中包含了中文分词、词性标注、命名实体识别等功能。"}]} + + //2 + //param ={"text":"开源项目","userId":"2f3c5337-cf1a-40ce-bbe3-ec45455d82f1"} + //{"code":0,"msg":"success","data":[{"fid":"file_wb9Pk6GBUq0z","fname":"问答.txt","similarity":"0.452267016866645388262213600683026015758514404296875","id":"2bcbd9ae-053e-45e5-a3a9-5498915bd749","text":"开源项目,HanLP是由一系列NLP工具组成的开源项目,其中包含了中文分词、词性标注、命名实体识别等功能。"},{"fid":"file_wb9Pk6GBUq0z","fname":"问答.txt","similarity":"0.424264068711928510335695818866952322423458099365234375","id":"2bcbd9ae-053e-45e5-a3a9-5498915bd748","text":"开源项目HanLP,HanLP是由一系列NLP工具组成的开源项目,其中包含了中文分词、词性标注、命名实体识别等功能。"}]} } } \ No newline at end of file diff --git a/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/DigitalImgControllerTest.java b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/DigitalImgControllerTest.java index 76f53a4..7605d76 100644 --- a/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/DigitalImgControllerTest.java +++ b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/DigitalImgControllerTest.java @@ -113,9 +113,12 @@ public class DigitalImgControllerTest { // params.put("name","开源项目"); // params.put("imgPath","uploads/202503/5c799cffa5864619b817063f77fe734d.png"); // params.put("imgType","1"); - params.put("name","开源项目"); - params.put("imgPath","uploads/202503/d1f8398f9bb844079f774ef496347e12.png"); - params.put("imgType","1"); +// params.put("name","开源项目"); +// params.put("imgPath","uploads/202503/d1f8398f9bb844079f774ef496347e12.png"); +// params.put("imgType","1"); + params.put("name","音色1"); + params.put("imgPath","uploads/202503/4eaee34079d74517ad6b9ea1e90e8308.jpg"); + params.put("imgType","4"); String body = TestUtils.doPost(url, JSON.toJSONString(params), charset); System.out.println(body); //param ={"imgPath":"uploads/202503/d1f8398f9bb844079f774ef496347e12.png","name":"开源项目","imgType":"1"} diff --git a/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/FilesControllerTest.java b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/FilesControllerTest.java index 8d7ba86..da488d0 100644 --- a/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/FilesControllerTest.java +++ b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/FilesControllerTest.java @@ -28,7 +28,7 @@ public class FilesControllerTest { } @Test - public void testGetAllAiTools() { + public void testGetFileList() { String url = TestUtils.WebconnectURL+"/api/robot/files/file_2FbUmaefz5b4"; String charset = TestUtils.UTF8; try { @@ -37,6 +37,8 @@ public class FilesControllerTest { } catch (Exception e) { e.printStackTrace(); } + //method =GET + //{"code":0,"msg":"success","data":{"id":"file_2FbUmaefz5b4","userId":"fd8ae359-64dc-4a57-ab41-5438e2fda975","fileType":"text/plain","name":"jykc2.sql","size":1864714,"url":"files/482454/d2b0edb3-15bf-4fe6-ba2e-97b5f1fe0288.sql","metadata":{"date":"482454","path":"files/482454/d2b0edb3-15bf-4fe6-ba2e-97b5f1fe0288.sql","filename":"d2b0edb3-15bf-4fe6-ba2e-97b5f1fe0288.sql","dirname":"files/482454"},"createdAt":"2025-01-14 14:29:02","updatedAt":"2025-01-14 14:29:23","fileHash":"1d66edbc0b5da3289ecea1ae00ac384b2378603193574c5f0bc9a9a988de2a16","chunkTaskId":"ab3f259e-775a-4c57-8338-b273684f70d1","embeddingTaskId":"12020d55-d453-46d7-a8c8-b0bba5f5c747","accessedAt":"2025-01-14 14:29:02","fileCategory":"1","fileStatus":"1"}} } // @Test // public void testsave() { @@ -81,6 +83,9 @@ public class FilesControllerTest { } catch (Exception e) { e.printStackTrace(); } + //method =POST + //param ={"name":"jykc2.sql","id":"file_2FbUmaefz5b4"} + //{"code":0,"msg":"success","data":true} } @Test @@ -96,6 +101,9 @@ public class FilesControllerTest { } catch (Exception e) { e.printStackTrace(); } + //method =POST + //param ={"fileStatus":"1","id":"file_2FbUmaefz5b4"} + //{"code":0,"msg":"success","data":true} } @Test public void testmodifyFileCategory() { @@ -110,5 +118,8 @@ public class FilesControllerTest { } catch (Exception e) { e.printStackTrace(); } + //method =POST + //param ={"fileCategory":"1","id":"file_2FbUmaefz5b4"} + //{"code":0,"msg":"success","data":true} } } \ No newline at end of file diff --git a/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/KnowledgeBasesControllerTest.java b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/KnowledgeBasesControllerTest.java index d552f20..a6ea0c0 100644 --- a/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/KnowledgeBasesControllerTest.java +++ b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/KnowledgeBasesControllerTest.java @@ -37,6 +37,7 @@ public class KnowledgeBasesControllerTest { } catch (Exception e) { e.printStackTrace(); } + //{"code":0,"msg":"success","data":{"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-16 16:01:51","accessedAt":"2025-01-14 14:27:55"}} } // @Test // public void testsave() { @@ -83,5 +84,7 @@ public class KnowledgeBasesControllerTest { } catch (Exception e) { e.printStackTrace(); } + //param ={"description":"知识库测试23","id":"kb_E5EcemGyKnh9"} + //{"code":0,"msg":"success","data":true} } } \ No newline at end of file diff --git a/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/MyDigitalHumanControllerTest.java b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/MyDigitalHumanControllerTest.java new file mode 100644 index 0000000..6980011 --- /dev/null +++ b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/MyDigitalHumanControllerTest.java @@ -0,0 +1,86 @@ +package test.com.pjilisense.flxai.controller; + +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.ApiModelProperty; +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 MyDigitalHumanControllerTest { + + @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 testGetAllAiTools() { + String url = TestUtils.WebconnectURL+"/api/robot/mydigitalhuman/queryAll?language=ch"; + String charset = TestUtils.UTF8; + try { + Map params = new HashMap(); + params.put("language","zh"); + String body = TestUtils.doPost(url, JSON.toJSONString(params), charset); + System.out.println(body); + } catch (Exception e) { + e.printStackTrace(); + } + //param ={"language":"zh"} + //{"code":0,"msg":"success","data":[{"id":"1896763411581108225","name":"音色Modify","voicePath":"uploads/202503/5c799cffa5864619b817063f77fe734e.MP3","imgPath":"1896761492913520641","language":"zh"}]} + } + @Test + public void testSave() { + String url = TestUtils.WebconnectURL+"/api/robot/mydigitalhuman"; + String charset = TestUtils.UTF8; + try { + Map params = new HashMap(); + params.put("userid","fd8ae359-64dc-4a57-ab41-5438e2fda975"); + params.put("imageid","1896761492913520641"); + params.put("sceneimgid","1896761492913520641"); + params.put("bkimgid","1896761492913520641"); + params.put("voiceid","1896763411581108225"); + params.put("videoimg","1896763411581108225"); + params.put("videodir","genvideo/202503/5c799cffa5864619b817063f77fe734d.mp4"); + params.put("voicedir","genvoice/202503/A1"); + String body = TestUtils.doPost(url, JSON.toJSONString(params), charset); + System.out.println(body); + //param ={"voiceid":"1896763411581108225","videodir":"genvideo/202503/5c799cffa5864619b817063f77fe734d.mp4","imageid":"1896761492913520641","bkimgid":"1896761492913520641","voicedir":"genvoice/202503/A1","videoimg":"1896763411581108225","userid":"fd8ae359-64dc-4a57-ab41-5438e2fda975","sceneimgid":"1896761492913520641"} + //{"code":0,"msg":"success","data":null} + } catch (Exception e) { + e.printStackTrace(); + } + } + + + @Test + public void testupdate() { + String url = TestUtils.WebconnectURL+"/api/robot/mydigitalhuman"; + String charset = TestUtils.UTF8; + try { + Map params = new HashMap(); + params.put("id","1896816581502042113"); + params.put("userid","fd8ae359-64dc-4a57-ab41-5438e2fda975"); + params.put("imageid","1896761492913520641"); + params.put("sceneimgid","1896761492913520641"); + params.put("bkimgid","1896761492913520641"); + params.put("voiceid","1896763411581108225"); + params.put("videoimg","1896763411581108225"); + params.put("videodir","genvideo/202503/5c799cffa5864619b817063f77fe734d.mp4"); + params.put("voicedir","genvoice/202503/A2"); + String body = TestUtils.doPut(url, JSON.toJSONString(params), charset); + System.out.println(body); + //param ={"voiceid":"1896763411581108225","videodir":"genvideo/202503/5c799cffa5864619b817063f77fe734d.mp4","imageid":"1896761492913520641","bkimgid":"1896761492913520641","voicedir":"genvoice/202503/A2","videoimg":"1896763411581108225","id":"1896816581502042113","userid":"fd8ae359-64dc-4a57-ab41-5438e2fda975","sceneimgid":"1896761492913520641"} + //{"code":0,"msg":"success","data":null} + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/VoiceRefFilesControllerTest.java b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/VoiceRefFilesControllerTest.java new file mode 100644 index 0000000..b248158 --- /dev/null +++ b/flx-ai/src/test/java/test/com/pjilisense/flxai/controller/VoiceRefFilesControllerTest.java @@ -0,0 +1,82 @@ +package test.com.pjilisense.flxai.controller; + +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.ApiModelProperty; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +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.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +public class VoiceRefFilesControllerTest { + + @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 testGetAllAiTools() { + String url = TestUtils.WebconnectURL+"/api/robot/voicereffiles/queryAll?language=ch"; + String charset = TestUtils.UTF8; + try { + Map params = new HashMap(); + params.put("language","zh"); + String body = TestUtils.doPost(url, JSON.toJSONString(params), charset); + System.out.println(body); + } catch (Exception e) { + e.printStackTrace(); + } + //param ={"language":"zh"} + //{"code":0,"msg":"success","data":[{"id":"1896763411581108225","name":"音色Modify","voicePath":"uploads/202503/5c799cffa5864619b817063f77fe734e.MP3","imgPath":"1896761492913520641","language":"zh"}]} + } + @Test + public void testSave() { + String url = TestUtils.WebconnectURL+"/api/robot/voicereffiles"; + String charset = TestUtils.UTF8; + try { + Map params = new HashMap(); + params.put("name","音色1"); + params.put("voicePath","uploads/202503/5c799cffa5864619b817063f77fe734d.MP3"); + params.put("imgPath","1896761492913520641"); + params.put("language","zh"); + params.put("voiceServerDir","A1"); + String body = TestUtils.doPost(url, JSON.toJSONString(params), charset); + System.out.println(body); + //param ={"voicePath":"uploads/202503/5c799cffa5864619b817063f77fe734d.MP3","imgPath":"1896761492913520641","name":"音色1","language":"zh","voiceServerDir":"A1"} + //{"code":0,"msg":"success","data":null} + } catch (Exception e) { + e.printStackTrace(); + } + } + @Test + public void testupdate() { + String url = TestUtils.WebconnectURL+"/api/robot/voicereffiles"; + String charset = TestUtils.UTF8; + try { + Map params = new HashMap(); + params.put("id","1896763411581108225"); + params.put("name","音色Modify"); + params.put("voicePath","uploads/202503/5c799cffa5864619b817063f77fe734e.MP3"); + params.put("imgPath","1896761492913520641"); + params.put("language","zh"); + String body = TestUtils.doPut(url, JSON.toJSONString(params), charset); + System.out.println(body); + //param ={"voicePath":"uploads/202503/5c799cffa5864619b817063f77fe734e.MP3","imgPath":"1896761492913520641","name":"音色Modify","language":"zh","id":"1896763411581108225","voiceServerDir":"A1"} + //{"code":0,"msg":"success","data":null} + } catch (Exception e) { + e.printStackTrace(); + } + } +} From cf41556feb63b3084ddcf3bf0b9047f03a94a40d Mon Sep 17 00:00:00 2001 From: lvchenpeng <3194951363@qq.com> Date: Thu, 6 Mar 2025 09:14:14 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/app/(main)/discover/(list)/models/features/Category.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/DigitalHumanWeb/src/app/(main)/discover/(list)/models/features/Category.tsx b/DigitalHumanWeb/src/app/(main)/discover/(list)/models/features/Category.tsx index 6b0d4fe..1b45e23 100644 --- a/DigitalHumanWeb/src/app/(main)/discover/(list)/models/features/Category.tsx +++ b/DigitalHumanWeb/src/app/(main)/discover/(list)/models/features/Category.tsx @@ -53,6 +53,7 @@ const Category = memo<{ data: DiscoverProviderItem[] }>(({ data }) => { return ( ({ ...item, label: (