diff --git a/tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/pojo/PageParam.java b/tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/pojo/PageParam.java index 99ffe39..09ceaf7 100644 --- a/tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/pojo/PageParam.java +++ b/tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/pojo/PageParam.java @@ -26,7 +26,7 @@ public class PageParam implements Serializable { /** * 页码,从 1 开始", example = "1 */ - @NotNull(message = "页码不能为空") + @NotNull(message = "页码不能为空" ) @Min(value = 1, message = "页码最小值为 1") private Integer pageNo = 1; diff --git a/tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/util/serializer/ImgJsonSerializer.java b/tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/serializer/ImgJsonSerializer.java similarity index 51% rename from tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/util/serializer/ImgJsonSerializer.java rename to tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/serializer/ImgJsonSerializer.java index 9af3bca..85e1d1f 100644 --- a/tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/util/serializer/ImgJsonSerializer.java +++ b/tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/serializer/ImgJsonSerializer.java @@ -1,64 +1,50 @@ -/* - * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. - * - * https://www.mall4j.com/ - * - * 未经允许,不可做商业用途! - * - * 版权所有,侵权必究! - */ - -package com.tashow.cloud.common.util.serializer; +package com.tashow.cloud.common.serializer; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; -import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.io.IOException; -import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; /** - * @author lanhai + * 图片URL序列化器 + * 自动为相对路径的图片添加文件服务器前缀 */ @Component public class ImgJsonSerializer extends JsonSerializer { - /* @Autowired - private Qiniu qiniu; - @Autowired - private ImgUploadUtil imgUploadUtil;*/ + @Value("${file-server}") + private String fileServer; @Override public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException { - /*if (StrUtil.isBlank(value)) { + if (StrUtil.isBlank(value)) { gen.writeString(StrUtil.EMPTY); return; } String[] imgs = value.split(StrUtil.COMMA); StringBuilder sb = new StringBuilder(); String resourceUrl = ""; - String rule="^((http[s]{0,1})://)"; - Pattern pattern= Pattern.compile(rule); - if (Objects.equals(imgUploadUtil.getUploadType(), 2)) { - resourceUrl = qiniu.getResourcesUrl(); - } else if (Objects.equals(imgUploadUtil.getUploadType(), 1)) { - resourceUrl = imgUploadUtil.getResourceUrl(); - } + String rule = "^((http[s]{0,1})://)"; + Pattern pattern = Pattern.compile(rule); + + resourceUrl = fileServer; + for (String img : imgs) { Matcher matcher = pattern.matcher(img); //若图片以http或https开头,直接返回 - if (matcher.find()){ + if (matcher.find()) { sb.append(img).append(StrUtil.COMMA); - }else { + } else { sb.append(resourceUrl).append(img).append(StrUtil.COMMA); } } - sb.deleteCharAt(sb.length()-1); - gen.writeString(sb.toString());*/ + sb.deleteCharAt(sb.length() - 1); + gen.writeString(sb.toString()); } } diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSampleFileRespVO.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSampleFileRespVO.java index 4158115..0dc105f 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSampleFileRespVO.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSampleFileRespVO.java @@ -1,6 +1,9 @@ package com.tashow.cloud.ai.controller.admin.aisample.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +import com.tashow.cloud.common.serializer.ImgJsonSerializer; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -10,6 +13,7 @@ import lombok.Data; public class AiSampleFileRespVO { @Schema(description = "文件地址") + @JsonSerialize(using = ImgJsonSerializer.class) private String fileUrl; @Schema(description = "文件名称") diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSamplePageReqVO.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSamplePageReqVO.java index 15295e2..c3581d1 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSamplePageReqVO.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSamplePageReqVO.java @@ -12,10 +12,10 @@ import lombok.ToString; @ToString(callSuper = true) public class AiSamplePageReqVO extends PageParam { - @Schema(description = "标签ids", example = "25839") + @Schema(description = "标签ids") private String tagIds; - @Schema(description = "样本名称", example = "张三") + @Schema(description = "样本名称") private String sampleName; @Schema(description = "样本格式", example = "1") diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSampleRespVO.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSampleRespVO.java index 54bf4aa..cca4bce 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSampleRespVO.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/vo/AiSampleRespVO.java @@ -1,8 +1,9 @@ package com.tashow.cloud.ai.controller.admin.aisample.vo; - import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleTagDO; +import com.tashow.cloud.common.serializer.ImgJsonSerializer; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -21,6 +22,7 @@ public class AiSampleRespVO { private List tags; @Schema(description = "样本文件地址") + @JsonSerialize(using = ImgJsonSerializer.class) private String sampleFilePath; @Schema(description = "样本名称", example = "张三") diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/model/AiModelController.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/model/AiModelController.java index cdf8370..95a48ad 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/model/AiModelController.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/model/AiModelController.java @@ -17,6 +17,8 @@ import jakarta.validation.Valid; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; + import static com.tashow.cloud.common.pojo.CommonResult.success; @Tag(name = "管理后台 - AI模型管理") @@ -53,12 +55,11 @@ public class AiModelController { } @GetMapping("/get") - @Operation(summary = "获得模型") - @Parameter(name = "id", description = "编号", required = true, example = "1") + @Operation(summary = "获取所有已启用的模型") @PermitAll - public CommonResult getModel(@RequestParam("id") Long id) { - AiModelDO model = modelService.getModel(id); - return success(BeanUtils.toBean(model, AiModelRespVO.class)); + public CommonResult> getEnabledModels() { + List models = modelService.getEnabledModels(); + return success(BeanUtils.toBean(models, AiModelRespVO.class)); } @GetMapping("/page") diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/mysql/aisample/AiSampleMapper.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/mysql/aisample/AiSampleMapper.java index fd29024..f4db01d 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/mysql/aisample/AiSampleMapper.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/mysql/aisample/AiSampleMapper.java @@ -28,14 +28,18 @@ public interface AiSampleMapper extends BaseMapperX { ",sample_mine_type sampleMineType ,sample_size sampleSize, remark,creator,updater,create_time createTime" + ",update_time updateTime,deleted,tenant_id tenantId " + "FROM tz_ai_sample t " + - "INNER JOIN tz_ai_sample_tag_relate r ON t.id = r.sample_id " + + "LEFt JOIN tz_ai_sample_tag_relate r ON t.id = r.sample_id " + "" + + "AND t.deleted =0"+ " " + " AND FIND_IN_SET(r.sample_tag_id,${pageReqVO.tagIds}) " + " " + " " + " AND t.sample_name LIKE CONCAT('%',#{pageReqVO.sampleName},'%')" + " " + + " " + + " AND t.sample_mine_type LIKE CONCAT('%',#{pageReqVO.sampleMineType},'%')" + + " " + "" + "GROUP BY t.id ORDER BY t.id DESC" + "") diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleServiceImpl.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleServiceImpl.java index d6a03cb..736ecc3 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleServiceImpl.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleServiceImpl.java @@ -44,8 +44,7 @@ public class AiSampleServiceImpl implements AiSampleService { private AiSampleTagRelateMapper aiSampleTagRelateMapper; @Resource private FileApi fileApi; - @Value("${file-server}") - private String fileServer; + @Override @SneakyThrows @@ -55,15 +54,15 @@ public class AiSampleServiceImpl implements AiSampleService { /* 调用文件上传服务*/ for (MultipartFile file : uploadReqVO.getFiles()) { //返回上传结果 - String file1 = fileServer + fileApi.createFile(file.getBytes()); + String filePath=fileApi.createFile(file.getOriginalFilename(), "", file.getBytes()); //保存样本信息 AiSampleDO aiSampleDO = new AiSampleDO(); - aiSampleDO.setSampleFilePath(file1); + aiSampleDO.setSampleFilePath(filePath); aiSampleDO.setSampleName(file.getOriginalFilename()); aiSampleDO.setSampleMineType(file.getContentType()); aiSampleDO.setSampleSize(file.getSize()); aiSampleMapper.insert(aiSampleDO); - urls.add(new AiSampleFileRespVO().setFileUrl(file1).setFileName(file.getOriginalFilename())); + urls.add(new AiSampleFileRespVO().setFileUrl(filePath).setFileName(file.getOriginalFilename())); } // 返回 return urls; @@ -172,7 +171,6 @@ public class AiSampleServiceImpl implements AiSampleService { Object[] tagsId = list.stream().map(AiSampleTagRelateDO::getSampleTagId).toArray(); List list1 = aiSampleTagDOS.stream().filter(a -> ArrayUtil.containsAny(tagsId, a.getId())).toList(); aiSampleDO.setTags(list1); - aiSampleDO.setSampleFilePath(aiSampleDO.getSampleFilePath()); } return new PageResult<>(aiSampleDOPageResult.getRecords(), aiSampleDOPageResult.getTotal()); } diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/model/AiModelService.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/model/AiModelService.java index e756592..9c54da2 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/model/AiModelService.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/model/AiModelService.java @@ -6,6 +6,8 @@ import com.tashow.cloud.ai.dal.dataobject.model.AiModelDO; import com.tashow.cloud.common.pojo.PageResult; import jakarta.validation.Valid; +import java.util.List; + /** * AI模型管理 Service 接口 * @@ -36,12 +38,11 @@ public interface AiModelService { void deleteModel(Long id); /** - * 获得模型 + * 获取所有已启用的模型 * - * @param id 编号 - * @return 模型 + * @return 已启用的模型列表 */ - AiModelDO getModel(Long id); + List getEnabledModels(); /** * 获得模型分页 diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/model/AiModelServiceImpl.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/model/AiModelServiceImpl.java index 2300d04..8389488 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/model/AiModelServiceImpl.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/model/AiModelServiceImpl.java @@ -1,5 +1,6 @@ package com.tashow.cloud.ai.service.model; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.tashow.cloud.ai.controller.admin.model.vo.AiModelPageReqVO; import com.tashow.cloud.ai.controller.admin.model.vo.AiModelSaveReqVO; import com.tashow.cloud.ai.dal.dataobject.model.AiModelDO; @@ -10,6 +11,8 @@ import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.List; + /** * AI模型管理 Service 实现类 * @@ -42,8 +45,11 @@ public class AiModelServiceImpl implements AiModelService { } @Override - public AiModelDO getModel(Long id) { - return modelMapper.selectById(id); + public List getEnabledModels() { + return modelMapper.selectList( + new LambdaQueryWrapper() + .eq(AiModelDO::getStatus, 1) + ); } @Override diff --git a/tashow-module/tashow-module-ai/src/main/resources/application-local.yaml b/tashow-module/tashow-module-ai/src/main/resources/application-local.yaml index 6e9edcc..6ba7c33 100644 --- a/tashow-module/tashow-module-ai/src/main/resources/application-local.yaml +++ b/tashow-module/tashow-module-ai/src/main/resources/application-local.yaml @@ -17,8 +17,5 @@ spring: --- #################### 外部服务配置 #################### -# 文件服务URL前缀 -file-server: http://localhost:48090/admin-api/file/file/get/ - # AI翻译服务URL translate-server: http://43.139.42.137:8000/analyze/audio diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/AbstractFileClient.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/AbstractFileClient.java index 3446b4b..f4ec29c 100644 --- a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/AbstractFileClient.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/AbstractFileClient.java @@ -63,7 +63,7 @@ public abstract class AbstractFileClient implem * @return URL 访问地址 */ protected String formatFileUrl(String domain, String path) { - return StrUtil.format("{}/admin-api/file/{}/get/{}", domain, getId(), path); + return StrUtil.format("/admin-api/file/{}/get/{}", getId(), path); } } diff --git a/tashow-module/tashow-module-file/src/main/resources/application-local.yaml b/tashow-module/tashow-module-file/src/main/resources/application-local.yaml index 7f75503..b3cb4bd 100644 --- a/tashow-module/tashow-module-file/src/main/resources/application-local.yaml +++ b/tashow-module/tashow-module-file/src/main/resources/application-local.yaml @@ -14,4 +14,3 @@ spring: config: # 【注册中心】配置项 namespace: 63caf548-313d-44bb-929c-531bf2f3b1a2 # 命名空间 group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP -