Compare commits
2 Commits
2bd20404ba
...
a8aa2a60fe
| Author | SHA1 | Date | |
|---|---|---|---|
| a8aa2a60fe | |||
| 56656693c3 |
@@ -11,10 +11,12 @@ import io.swagger.v3.oas.annotations.Parameter;
|
|||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.annotation.security.PermitAll;
|
import jakarta.annotation.security.PermitAll;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.tashow.cloud.common.pojo.CommonResult.success;
|
import static com.tashow.cloud.common.pojo.CommonResult.success;
|
||||||
@@ -91,4 +93,13 @@ public class AiSampleController {
|
|||||||
PageResult<AiSampleDO> pageResult = aiSampleService.getAiSamplePage(pageReqVO);
|
PageResult<AiSampleDO> pageResult = aiSampleService.getAiSamplePage(pageReqVO);
|
||||||
return success(BeanUtils.toBean(pageResult, AiSampleRespVO.class));
|
return success(BeanUtils.toBean(pageResult, AiSampleRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/download")
|
||||||
|
@Operation(summary = "批量下载样本")
|
||||||
|
@Parameter(name = "ids", description = "样本ID列表(逗号分隔)", required = true, example = "1,2,3")
|
||||||
|
@PermitAll
|
||||||
|
public void downloadSamples(@RequestParam("ids") String ids, HttpServletResponse response) throws IOException {
|
||||||
|
aiSampleService.downloadSamples(ids, response);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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.AiSampleTagListRespVO;
|
||||||
import com.tashow.cloud.ai.controller.admin.aisample.vo.AiSampleTagPageReqVO;
|
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.controller.admin.aisample.vo.AiSampleTagSaveReqVO;
|
||||||
import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleTagDO;
|
import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleTagDO;
|
||||||
import com.tashow.cloud.ai.service.aisample.AiSampleTagService;
|
import com.tashow.cloud.ai.service.aisample.AiSampleTagService;
|
||||||
@@ -66,6 +67,14 @@ public class AiSampleTagController {
|
|||||||
return success(BeanUtils.toBean(aiSampleTagService.getAiSampleTagList(), AiSampleTagListRespVO.class));
|
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<List<AiSampleTagGroupRespVO>> getGroupListByTagId(@RequestParam("tagId") Long tagId) {
|
||||||
|
return success(BeanUtils.toBean(aiSampleTagService.getGroupListByTagId(tagId), AiSampleTagGroupRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@Operation(summary = "获得样本标签库分页")
|
@Operation(summary = "获得样本标签库分页")
|
||||||
// @PreAuthorize("@ss.hasPermission('ai:sampleTag:query')")
|
// @PreAuthorize("@ss.hasPermission('ai:sampleTag:query')")
|
||||||
|
|||||||
@@ -47,4 +47,10 @@ public class AiSampleRespVO {
|
|||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "文件后缀")
|
||||||
|
private String suffix;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.KeySequence;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
import com.tashow.cloud.common.serializer.ImgJsonSerializer;
|
||||||
import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;
|
import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
@@ -57,5 +59,9 @@ public class AiSampleDO extends BaseDO {
|
|||||||
* 样本注释
|
* 样本注释
|
||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
/**
|
||||||
|
*后缀)
|
||||||
|
*/
|
||||||
|
private String suffix;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -32,7 +32,7 @@ public interface AiSampleMapper extends BaseMapperX<AiSampleDO> {
|
|||||||
"<where>" +
|
"<where>" +
|
||||||
"AND t.deleted =0"+
|
"AND t.deleted =0"+
|
||||||
" <if test=\"pageReqVO.tagIds != null and pageReqVO.tagIds != ''\">" +
|
" <if test=\"pageReqVO.tagIds != null and pageReqVO.tagIds != ''\">" +
|
||||||
" AND FIND_IN_SET(r.sample_tag_id,${pageReqVO.tagIds}) " +
|
" AND FIND_IN_SET(r.sample_tag_id, '${pageReqVO.tagIds}') " +
|
||||||
" </if>" +
|
" </if>" +
|
||||||
" <if test=\"pageReqVO.sampleName != null and pageReqVO.sampleName != ''\">" +
|
" <if test=\"pageReqVO.sampleName != null and pageReqVO.sampleName != ''\">" +
|
||||||
" AND t.sample_name LIKE CONCAT('%',#{pageReqVO.sampleName},'%')" +
|
" AND t.sample_name LIKE CONCAT('%',#{pageReqVO.sampleName},'%')" +
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ public interface AiSampleTagMapper extends BaseMapperX<AiSampleTagDO> {
|
|||||||
"FROM tz_ai_sample_tag t " +
|
"FROM tz_ai_sample_tag t " +
|
||||||
"INNER JOIN tz_ai_sample_tag_group_relate r ON t.id = r.sample_tag_id " +
|
"INNER JOIN tz_ai_sample_tag_group_relate r ON t.id = r.sample_tag_id " +
|
||||||
"<where>" +
|
"<where>" +
|
||||||
|
"AND t.deleted =0"+
|
||||||
" <if test=\"pageReqVO.groupId != null\">" +
|
" <if test=\"pageReqVO.groupId != null\">" +
|
||||||
" AND r.sample_tag_group_id = #{pageReqVO.groupId}" +
|
" AND r.sample_tag_group_id = #{pageReqVO.groupId}" +
|
||||||
" </if>" +
|
" </if>" +
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ package com.tashow.cloud.ai.service.aisample;
|
|||||||
import com.tashow.cloud.ai.controller.admin.aisample.vo.*;
|
import com.tashow.cloud.ai.controller.admin.aisample.vo.*;
|
||||||
import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleDO;
|
import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleDO;
|
||||||
import com.tashow.cloud.common.pojo.PageResult;
|
import com.tashow.cloud.common.pojo.PageResult;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -69,5 +71,12 @@ public interface AiSampleService {
|
|||||||
*/
|
*/
|
||||||
PageResult<AiSampleDO> getAiSamplePage(AiSamplePageReqVO pageReqVO);
|
PageResult<AiSampleDO> getAiSamplePage(AiSamplePageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量下载样本
|
||||||
|
*
|
||||||
|
* @param ids 样本ID列表(逗号分隔)
|
||||||
|
* @param response HTTP响应
|
||||||
|
*/
|
||||||
|
void downloadSamples(String ids, HttpServletResponse response) throws IOException;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,7 @@ package com.tashow.cloud.ai.service.aisample;
|
|||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.http.HttpUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.tashow.cloud.ai.controller.admin.aisample.vo.*;
|
import com.tashow.cloud.ai.controller.admin.aisample.vo.*;
|
||||||
@@ -17,15 +18,20 @@ import com.tashow.cloud.common.util.object.BeanUtils;
|
|||||||
import com.tashow.cloud.fileapi.api.file.FileApi;
|
import com.tashow.cloud.fileapi.api.file.FileApi;
|
||||||
import com.tashow.cloud.mybatis.mybatis.core.util.MyBatisUtils;
|
import com.tashow.cloud.mybatis.mybatis.core.util.MyBatisUtils;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.URLEncoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.zip.ZipEntry;
|
||||||
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 样本库 Service 实现类
|
* 样本库 Service 实现类
|
||||||
@@ -44,7 +50,8 @@ public class AiSampleServiceImpl implements AiSampleService {
|
|||||||
private AiSampleTagRelateMapper aiSampleTagRelateMapper;
|
private AiSampleTagRelateMapper aiSampleTagRelateMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private FileApi fileApi;
|
private FileApi fileApi;
|
||||||
|
@Value("${file-server}")
|
||||||
|
private String fileServer;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@@ -58,11 +65,14 @@ public class AiSampleServiceImpl implements AiSampleService {
|
|||||||
//保存样本信息
|
//保存样本信息
|
||||||
AiSampleDO aiSampleDO = new AiSampleDO();
|
AiSampleDO aiSampleDO = new AiSampleDO();
|
||||||
aiSampleDO.setSampleFilePath(filePath);
|
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.setSampleMineType(file.getContentType());
|
||||||
aiSampleDO.setSampleSize(file.getSize());
|
aiSampleDO.setSampleSize(file.getSize());
|
||||||
aiSampleMapper.insert(aiSampleDO);
|
aiSampleMapper.insert(aiSampleDO);
|
||||||
urls.add(new AiSampleFileRespVO().setFileUrl(filePath).setFileName(file.getOriginalFilename()));
|
urls.add(new AiSampleFileRespVO().setFileUrl(filePath).setFileName(filename).setDisplayName(displayName));
|
||||||
}
|
}
|
||||||
// 返回
|
// 返回
|
||||||
return urls;
|
return urls;
|
||||||
@@ -175,4 +185,30 @@ public class AiSampleServiceImpl implements AiSampleService {
|
|||||||
return new PageResult<>(aiSampleDOPageResult.getRecords(), aiSampleDOPageResult.getTotal());
|
return new PageResult<>(aiSampleDOPageResult.getRecords(), aiSampleDOPageResult.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void downloadSamples(String ids, HttpServletResponse response) throws IOException {
|
||||||
|
List<AiSampleDO> samples = aiSampleMapper.selectBatchIds(Arrays.asList(ids.split(StrUtil.COMMA)));
|
||||||
|
|
||||||
|
if (samples.size() == 1) {
|
||||||
|
// 单个文件直接下载
|
||||||
|
AiSampleDO sample = samples.get(0);
|
||||||
|
byte[] bytes = HttpUtil.downloadBytes(fileServer + sample.getSampleFilePath());
|
||||||
|
response.setContentType(sample.getSampleMineType());
|
||||||
|
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(sample.getSampleName(), "UTF-8"));
|
||||||
|
response.getOutputStream().write(bytes);
|
||||||
|
} else {
|
||||||
|
// 多个文件打包成ZIP
|
||||||
|
response.setContentType("application/zip");
|
||||||
|
response.setHeader("Content-Disposition", "attachment; filename=samples.zip");
|
||||||
|
try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) {
|
||||||
|
for (AiSampleDO sample : samples) {
|
||||||
|
byte[] bytes = HttpUtil.downloadBytes(fileServer + sample.getSampleFilePath());
|
||||||
|
zos.putNextEntry(new ZipEntry(sample.getSampleName()));
|
||||||
|
zos.write(bytes);
|
||||||
|
zos.closeEntry();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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.AiSampleTagPageReqVO;
|
||||||
import com.tashow.cloud.ai.controller.admin.aisample.vo.AiSampleTagSaveReqVO;
|
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.AiSampleTagDO;
|
||||||
|
import com.tashow.cloud.ai.dal.dataobject.aisample.AiSampleTagGroupDO;
|
||||||
import com.tashow.cloud.common.pojo.PageResult;
|
import com.tashow.cloud.common.pojo.PageResult;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
|
|
||||||
@@ -58,4 +59,12 @@ public interface AiSampleTagService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<AiSampleTagDO> getAiSampleTagList();
|
List<AiSampleTagDO> getAiSampleTagList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据标签 id 获取关联分组列表
|
||||||
|
*
|
||||||
|
* @param tagId 标签 id
|
||||||
|
* @return 分组列表
|
||||||
|
*/
|
||||||
|
List<AiSampleTagGroupDO> getGroupListByTagId(Long tagId);
|
||||||
}
|
}
|
||||||
@@ -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.AiSampleTagPageReqVO;
|
||||||
import com.tashow.cloud.ai.controller.admin.aisample.vo.AiSampleTagSaveReqVO;
|
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.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.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.AiSampleTagGroupRelateMapper;
|
||||||
import com.tashow.cloud.ai.dal.mysql.aisample.AiSampleTagMapper;
|
import com.tashow.cloud.ai.dal.mysql.aisample.AiSampleTagMapper;
|
||||||
import com.tashow.cloud.common.pojo.PageResult;
|
import com.tashow.cloud.common.pojo.PageResult;
|
||||||
@@ -17,6 +19,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 样本标签库 Service 实现类
|
* 样本标签库 Service 实现类
|
||||||
@@ -30,6 +33,8 @@ public class AiSampleTagServiceImpl implements AiSampleTagService {
|
|||||||
@Resource
|
@Resource
|
||||||
private AiSampleTagMapper aiSampleTagMapper;
|
private AiSampleTagMapper aiSampleTagMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
private AiSampleTagGroupMapper aiSampleTagGroupMapper;
|
||||||
|
@Resource
|
||||||
private AiSampleTagGroupRelateMapper tagGroupRelateMapper;
|
private AiSampleTagGroupRelateMapper tagGroupRelateMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -41,7 +46,6 @@ public class AiSampleTagServiceImpl implements AiSampleTagService {
|
|||||||
List<AiSampleTagGroupRelateDO> tagGroupRelateDOS = new ArrayList<>();
|
List<AiSampleTagGroupRelateDO> tagGroupRelateDOS = new ArrayList<>();
|
||||||
for (Long groupId : createReqVO.getGroupIds()) {
|
for (Long groupId : createReqVO.getGroupIds()) {
|
||||||
AiSampleTagGroupRelateDO tagGroupRelateDO = new AiSampleTagGroupRelateDO();
|
AiSampleTagGroupRelateDO tagGroupRelateDO = new AiSampleTagGroupRelateDO();
|
||||||
tagGroupRelateDO.setSampleTagId(createReqVO.getId());
|
|
||||||
tagGroupRelateDO.setSampleTagGroupId(groupId);
|
tagGroupRelateDO.setSampleTagGroupId(groupId);
|
||||||
tagGroupRelateDO.setSampleTagId(aiSampleTag.getId());
|
tagGroupRelateDO.setSampleTagId(aiSampleTag.getId());
|
||||||
tagGroupRelateDOS.add(tagGroupRelateDO);
|
tagGroupRelateDOS.add(tagGroupRelateDO);
|
||||||
@@ -58,11 +62,13 @@ public class AiSampleTagServiceImpl implements AiSampleTagService {
|
|||||||
// 更新
|
// 更新
|
||||||
AiSampleTagDO updateObj = BeanUtils.toBean(updateReqVO, AiSampleTagDO.class);
|
AiSampleTagDO updateObj = BeanUtils.toBean(updateReqVO, AiSampleTagDO.class);
|
||||||
aiSampleTagMapper.updateById(updateObj);
|
aiSampleTagMapper.updateById(updateObj);
|
||||||
//删除所有关联
|
List<Long> groupIds = updateReqVO.getGroupIds();
|
||||||
tagGroupRelateMapper.delete(new LambdaQueryWrapper<AiSampleTagGroupRelateDO>().eq(AiSampleTagGroupRelateDO::getSampleTagId, updateReqVO.getId()));
|
// 删除该标签的所有旧关联
|
||||||
|
tagGroupRelateMapper.delete(new LambdaQueryWrapper<AiSampleTagGroupRelateDO>()
|
||||||
|
.eq(AiSampleTagGroupRelateDO::getSampleTagId, updateReqVO.getId()));
|
||||||
//插入关联
|
//插入关联
|
||||||
List<AiSampleTagGroupRelateDO> tagGroupRelateDOS = new ArrayList<>();
|
List<AiSampleTagGroupRelateDO> tagGroupRelateDOS = new ArrayList<>();
|
||||||
for (Long groupId : updateReqVO.getGroupIds()) {
|
for (Long groupId : groupIds) {
|
||||||
AiSampleTagGroupRelateDO tagGroupRelateDO = new AiSampleTagGroupRelateDO();
|
AiSampleTagGroupRelateDO tagGroupRelateDO = new AiSampleTagGroupRelateDO();
|
||||||
tagGroupRelateDO.setSampleTagId(updateReqVO.getId());
|
tagGroupRelateDO.setSampleTagId(updateReqVO.getId());
|
||||||
tagGroupRelateDO.setSampleTagGroupId(groupId);
|
tagGroupRelateDO.setSampleTagGroupId(groupId);
|
||||||
@@ -100,4 +106,17 @@ public class AiSampleTagServiceImpl implements AiSampleTagService {
|
|||||||
public List<AiSampleTagDO> getAiSampleTagList() {
|
public List<AiSampleTagDO> getAiSampleTagList() {
|
||||||
return aiSampleTagMapper.selectList(new LambdaQueryWrapper<AiSampleTagDO>().orderByDesc(AiSampleTagDO::getId));
|
return aiSampleTagMapper.selectList(new LambdaQueryWrapper<AiSampleTagDO>().orderByDesc(AiSampleTagDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AiSampleTagGroupDO> getGroupListByTagId(Long tagId) {
|
||||||
|
List<AiSampleTagGroupRelateDO> relateList = tagGroupRelateMapper.selectList(
|
||||||
|
new LambdaQueryWrapper<AiSampleTagGroupRelateDO>()
|
||||||
|
.eq(AiSampleTagGroupRelateDO::getSampleTagId, tagId));
|
||||||
|
List<Long> groupIds = relateList.stream()
|
||||||
|
.map(AiSampleTagGroupRelateDO::getSampleTagGroupId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
return aiSampleTagGroupMapper.selectList(
|
||||||
|
new LambdaQueryWrapper<AiSampleTagGroupDO>().in(AiSampleTagGroupDO::getId, groupIds));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user