diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/AiSampleTagController.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/AiSampleTagController.java index 0fe0bbf..15be271 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/AiSampleTagController.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/controller/admin/aisample/AiSampleTagController.java @@ -2,6 +2,7 @@ package com.tashow.cloud.ai.controller.admin.aisample; import com.tashow.cloud.ai.controller.admin.aisample.vo.AiSampleTagListRespVO; import com.tashow.cloud.ai.controller.admin.aisample.vo.AiSampleTagPageReqVO; +import com.tashow.cloud.ai.controller.admin.aisample.vo.AiSampleTagGroupRespVO; import com.tashow.cloud.ai.controller.admin.aisample.vo.AiSampleTagSaveReqVO; import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleTagDO; import com.tashow.cloud.ai.service.aisample.AiSampleTagService; @@ -66,6 +67,14 @@ public class AiSampleTagController { return success(BeanUtils.toBean(aiSampleTagService.getAiSampleTagList(), AiSampleTagListRespVO.class)); } + @GetMapping("/group-list-by-tag-id") + @Operation(summary = "根据标签 id 获取分组") + @Parameter(name = "tagId", description = "标签 id", required = true) + @PermitAll + public CommonResult> getGroupListByTagId(@RequestParam("tagId") Long tagId) { + return success(BeanUtils.toBean(aiSampleTagService.getGroupListByTagId(tagId), AiSampleTagGroupRespVO.class)); + } + @GetMapping("/page") @Operation(summary = "获得样本标签库分页") // @PreAuthorize("@ss.hasPermission('ai:sampleTag:query')") @@ -75,4 +84,4 @@ public class AiSampleTagController { return success(pageResult); } -} \ No newline at end of file +} 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 cca4bce..5c14363 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 @@ -47,4 +47,10 @@ public class AiSampleRespVO { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime updateTime; + + @Schema(description = "文件后缀") + private String suffix; + + + } \ No newline at end of file diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/dataobject/aisample/AiSampleDO.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/dataobject/aisample/AiSampleDO.java index de91367..ab1eb1f 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/dataobject/aisample/AiSampleDO.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/dataobject/aisample/AiSampleDO.java @@ -59,5 +59,9 @@ public class AiSampleDO extends BaseDO { * 样本注释 */ private String remark; + /** + *后缀) + */ + private String suffix; } \ No newline at end of file diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/mysql/aisample/AiSampleTagMapper.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/mysql/aisample/AiSampleTagMapper.java index 9056d3d..99aaa13 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/mysql/aisample/AiSampleTagMapper.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/dal/mysql/aisample/AiSampleTagMapper.java @@ -28,6 +28,7 @@ public interface AiSampleTagMapper extends BaseMapperX { "FROM tz_ai_sample_tag t " + "INNER JOIN tz_ai_sample_tag_group_relate r ON t.id = r.sample_tag_id " + "" + + "AND t.deleted =0"+ " " + " AND r.sample_tag_group_id = #{pageReqVO.groupId}" + " " + 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 51a29af..f2a409c 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 @@ -65,11 +65,14 @@ public class AiSampleServiceImpl implements AiSampleService { //保存样本信息 AiSampleDO aiSampleDO = new AiSampleDO(); aiSampleDO.setSampleFilePath(filePath); - aiSampleDO.setSampleName(file.getOriginalFilename()); + String filename = file.getOriginalFilename(); + String displayName = filename.substring(0, filename.lastIndexOf('.')); + aiSampleDO.setSampleName(displayName); + aiSampleDO.setSuffix(filename.substring(filename.lastIndexOf('.') + 1)); aiSampleDO.setSampleMineType(file.getContentType()); aiSampleDO.setSampleSize(file.getSize()); aiSampleMapper.insert(aiSampleDO); - urls.add(new AiSampleFileRespVO().setFileUrl(filePath).setFileName(file.getOriginalFilename())); + urls.add(new AiSampleFileRespVO().setFileUrl(filePath).setFileName(filename).setDisplayName(displayName)); } // 返回 return urls; diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleTagService.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleTagService.java index 2e2a48c..b418b7c 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleTagService.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleTagService.java @@ -3,6 +3,7 @@ package com.tashow.cloud.ai.service.aisample; import com.tashow.cloud.ai.controller.admin.aisample.vo.AiSampleTagPageReqVO; import com.tashow.cloud.ai.controller.admin.aisample.vo.AiSampleTagSaveReqVO; import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleTagDO; +import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleTagGroupDO; import com.tashow.cloud.common.pojo.PageResult; import jakarta.validation.Valid; @@ -58,4 +59,12 @@ public interface AiSampleTagService { * @return */ List getAiSampleTagList(); -} \ No newline at end of file + + /** + * 根据标签 id 获取关联分组列表 + * + * @param tagId 标签 id + * @return 分组列表 + */ + List getGroupListByTagId(Long tagId); +} diff --git a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleTagServiceImpl.java b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleTagServiceImpl.java index 51c2369..dc0538b 100644 --- a/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleTagServiceImpl.java +++ b/tashow-module/tashow-module-ai/src/main/java/com/tashow/cloud/ai/service/aisample/AiSampleTagServiceImpl.java @@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.tashow.cloud.ai.controller.admin.aisample.vo.AiSampleTagPageReqVO; import com.tashow.cloud.ai.controller.admin.aisample.vo.AiSampleTagSaveReqVO; import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleTagDO; +import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleTagGroupDO; import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleTagGroupRelateDO; +import com.tashow.cloud.ai.dal.mysql.aisample.AiSampleTagGroupMapper; import com.tashow.cloud.ai.dal.mysql.aisample.AiSampleTagGroupRelateMapper; import com.tashow.cloud.ai.dal.mysql.aisample.AiSampleTagMapper; import com.tashow.cloud.common.pojo.PageResult; @@ -17,6 +19,7 @@ import org.springframework.validation.annotation.Validated; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * 样本标签库 Service 实现类 @@ -30,6 +33,8 @@ public class AiSampleTagServiceImpl implements AiSampleTagService { @Resource private AiSampleTagMapper aiSampleTagMapper; @Resource + private AiSampleTagGroupMapper aiSampleTagGroupMapper; + @Resource private AiSampleTagGroupRelateMapper tagGroupRelateMapper; @Override @@ -41,7 +46,6 @@ public class AiSampleTagServiceImpl implements AiSampleTagService { List tagGroupRelateDOS = new ArrayList<>(); for (Long groupId : createReqVO.getGroupIds()) { AiSampleTagGroupRelateDO tagGroupRelateDO = new AiSampleTagGroupRelateDO(); - tagGroupRelateDO.setSampleTagId(createReqVO.getId()); tagGroupRelateDO.setSampleTagGroupId(groupId); tagGroupRelateDO.setSampleTagId(aiSampleTag.getId()); tagGroupRelateDOS.add(tagGroupRelateDO); @@ -58,11 +62,13 @@ public class AiSampleTagServiceImpl implements AiSampleTagService { // 更新 AiSampleTagDO updateObj = BeanUtils.toBean(updateReqVO, AiSampleTagDO.class); aiSampleTagMapper.updateById(updateObj); - //删除所有关联 - tagGroupRelateMapper.delete(new LambdaQueryWrapper().eq(AiSampleTagGroupRelateDO::getSampleTagId, updateReqVO.getId())); + List groupIds = updateReqVO.getGroupIds(); + // 删除该标签的所有旧关联 + tagGroupRelateMapper.delete(new LambdaQueryWrapper() + .eq(AiSampleTagGroupRelateDO::getSampleTagId, updateReqVO.getId())); //插入关联 List tagGroupRelateDOS = new ArrayList<>(); - for (Long groupId : updateReqVO.getGroupIds()) { + for (Long groupId : groupIds) { AiSampleTagGroupRelateDO tagGroupRelateDO = new AiSampleTagGroupRelateDO(); tagGroupRelateDO.setSampleTagId(updateReqVO.getId()); tagGroupRelateDO.setSampleTagGroupId(groupId); @@ -100,4 +106,17 @@ public class AiSampleTagServiceImpl implements AiSampleTagService { public List getAiSampleTagList() { return aiSampleTagMapper.selectList(new LambdaQueryWrapper().orderByDesc(AiSampleTagDO::getId)); } -} \ No newline at end of file + + @Override + public List getGroupListByTagId(Long tagId) { + List relateList = tagGroupRelateMapper.selectList( + new LambdaQueryWrapper() + .eq(AiSampleTagGroupRelateDO::getSampleTagId, tagId)); + List groupIds = relateList.stream() + .map(AiSampleTagGroupRelateDO::getSampleTagGroupId) + .distinct() + .collect(Collectors.toList()); + return aiSampleTagGroupMapper.selectList( + new LambdaQueryWrapper().in(AiSampleTagGroupDO::getId, groupIds)); + } +}