修改 design single功能

This commit is contained in:
xupei
2023-09-14 12:58:49 +08:00
parent 165449084b
commit cf771a5b77
31 changed files with 687 additions and 102 deletions

View File

@@ -3,7 +3,6 @@ package com.ai.da.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.context.UserContext;
import com.ai.da.common.enums.CollectionLevel1TypeEnum;
import com.ai.da.common.enums.SingleOverallEnum;
import com.ai.da.common.enums.SysFileLevel2TypeEnum;
import com.ai.da.common.utils.CopyUtil;
@@ -11,6 +10,7 @@ import com.ai.da.common.utils.DateUtil;
import com.ai.da.mapper.DesignItemMapper;
import com.ai.da.mapper.entity.*;
import com.ai.da.model.dto.DesignSingleDTO;
import com.ai.da.model.dto.DesignSingleIncludeLayersDTO;
import com.ai.da.model.dto.DesignSingleItemDTO;
import com.ai.da.model.vo.*;
import com.ai.da.python.PythonService;
@@ -19,21 +19,17 @@ import com.ai.da.python.vo.DesignPythonItemPrint;
import com.ai.da.python.vo.DesignPythonObjects;
import com.ai.da.service.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.mysql.cj.jdbc.result.UpdatableResultSet;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -61,6 +57,12 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
private LibraryService libraryService;
@Resource
private CollectionElementService collectionElementService;
@Resource
private ITDesignPythonOutfitService designPythonOutfitService;
@Resource
private ITDesignPythonOutfitDetailService designPythonOutfitDetailService;
@Resource
private PanToneService panToneService;
@Override
public Long saveOne(DesignItem designItem) {
@@ -256,7 +258,7 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
}
designItemDetail.setIconPath(detail.getIcon());
DesignPythonItemPrint printObject = detail.getPrint();
designItemDetail.setPrintPath(Objects.isNull(printObject)? "" :printObject.getPath());
designItemDetail.setPrintPath(Objects.isNull(printObject)? "" :printObject.getSinglePath());
designItemDetail.setPrintJson(JSON.toJSONString(printObject));
designItemDetails.add(designItemDetail);
});
@@ -270,6 +272,84 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
return response;
}
private List<TDesignPythonOutfitDetail> saveDesignSingleItemDetailAndLayers(DesignPythonObjects pythonObjects
, Long designId,Long designItemId, Long collectionId, AuthPrincipalVo userInfo
, JSONObject responseJSONObject, String timeZone){
DesignItem designItem = new DesignItem();
String url = pythonObjects.getObjects().get(0).getBasic().getSave_name();
designItem.setUpdateDate(DateUtil.getByTimeZone(timeZone));
designItem.setDesignUrl(url);
designItem.setId(designItemId);
//更新item
updateById(designItem);
//删除itemDetail
designItemDetailService.deleteByDesignItemId(designItemId);
List<DesignItemDetail> designItemDetails = Lists.newArrayList();
// 保存designItem
pythonObjects.getObjects().get(0).getItems().forEach(detail ->{
if(null == detail){
return;
}
DesignItemDetail designItemDetail = CopyUtil.copyObject(detail,DesignItemDetail.class);
designItemDetail.setAccountId(userInfo.getId());
designItemDetail.setDesignId(designId);
designItemDetail.setDesignItemId(designItemId);
designItemDetail.setCollectionElementId(detail.getElementId());
designItemDetail.setCreateDate(DateUtil.getByTimeZone(timeZone));
if(SysFileLevel2TypeEnum.BODY.getRealName().equals(detail.getType())){
designItemDetail.setPath(detail.getBody_path());
//BODY不关联businessId
designItemDetail.setBusinessId(0L);
}
designItemDetail.setIconPath(detail.getIcon());
DesignPythonItemPrint printObject = detail.getPrint();
designItemDetail.setPrintPath(Objects.isNull(printObject)? "" :printObject.getSinglePath());
designItemDetail.setPrintJson(JSON.toJSONString(printObject));
designItemDetails.add(designItemDetail);
});
designItemDetailService.saveBatch(designItemDetails);
// 更新
JSONObject data = responseJSONObject.getJSONObject("data");
JSONObject outfit = data.getJSONObject("0");
TDesignPythonOutfit designPythonOutfit = new TDesignPythonOutfit();
designPythonOutfit.setUserId(userInfo.getId());
designPythonOutfit.setDesignId(designId);
designPythonOutfit.setCollectionId(collectionId);
designPythonOutfit.setDesignItemId(designItemId);
designPythonOutfit.setDesignUrl(outfit.getString("synthesis_url"));
designPythonOutfitService.save(designPythonOutfit);
JSONArray layers = outfit.getJSONArray("layers");
List<TDesignPythonOutfitDetail> list = setTDesignPythonOutfitDetailList(layers, designId, designPythonOutfit.getId(), userInfo.getId());
designPythonOutfitDetailService.saveBatch(list);
return list;
}
public List<TDesignPythonOutfitDetail> setTDesignPythonOutfitDetailList(JSONArray layers, Long designId, Long designPythonOutfitId, Long userId){
// 保存图层信息;
List<TDesignPythonOutfitDetail> list = new ArrayList<>();
for (int i = 0; i < layers.size(); i++) {
JSONObject jsonObject = layers.getJSONObject(i);
TDesignPythonOutfitDetail designPythonOutfitDetail = new TDesignPythonOutfitDetail();
designPythonOutfitDetail.setDesignId(designId);
designPythonOutfitDetail.setDesignPythonOutfitId(designPythonOutfitId);
designPythonOutfitDetail.setPosition(jsonObject.getString("position"));
designPythonOutfitDetail.setImageUrl(jsonObject.getString("image_url"));
designPythonOutfitDetail.setImageSize(jsonObject.getString("image_size"));
designPythonOutfitDetail.setImageCategory(jsonObject.getString("image_category"));
designPythonOutfitDetail.setMaskUrl(jsonObject.getString("mask_url"));
designPythonOutfitDetail.setUserId(userId);
list.add(designPythonOutfitDetail);
}
return list;
}
private DesignItem selectById(Long id) {
QueryWrapper<DesignItem> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", id);
@@ -281,4 +361,129 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
queryWrapper.eq("id", id);
return designItemMapper.exists(queryWrapper);
}
@Override
public DesignSingleVO designSingleIncludeLayers(DesignSingleIncludeLayersDTO designSingleIncludeLayersDTO) {
AuthPrincipalVo userInfo = UserContext.getUserHolder();
DesignItem designItem = selectById(designSingleIncludeLayersDTO.getDesignItemId());
Assert.notNull(designItem,"design item does not exists!");
Design design = designService.getById(designItem.getDesignId());
Assert.notNull(design,"design does not exists!");
DesignLibraryModelPointVO designLibraryModelPointVO = null;
// 设置模特
if (Objects.nonNull(design.getTemplateId())){
LibraryModelPoint modelPoint = libraryModelPointService.getById(design.getTemplateId());
Assert.notNull(modelPoint,"template does not exists!");
Library library = libraryService.getById(modelPoint.getLibraryId());
Assert.notNull(library,"template does not exists!");
designLibraryModelPointVO = collectionElementService.calculateTemplatePoint(modelPoint,library.getHigh(),library.getWidth(),library.getUrl());
}
DesignPythonObjects objects =pythonService.covertDesignSingleParam(
designSingleIncludeLayersDTO,design.getSingleOverall(),design.getSwitchCategory(),designLibraryModelPointVO);
// JSONObject jsonObject = pythonService.designNew(objects);
JSONObject jsonObject = getJsonString();
// preview -> 不存数据库 submit -> 存数据库
List<TDesignPythonOutfitDetail> tDesignPythonOutfitDetails;
if (!designSingleIncludeLayersDTO.getIsPreview()){
// todo 这里要再想想
tDesignPythonOutfitDetails = saveDesignSingleItemDetailAndLayers(objects, design.getId(), designSingleIncludeLayersDTO.getDesignItemId(),
design.getCollectionId(), userInfo, jsonObject, designSingleIncludeLayersDTO.getTimeZone());
}else {
JSONObject data = jsonObject.getJSONObject("data");
// todo 空指针
JSONObject outfit = data.getJSONObject("0");
JSONArray layers = outfit.getJSONArray("layers");
tDesignPythonOutfitDetails = setTDesignPythonOutfitDetailList(layers,designItem.getDesignId(),null,userInfo.getId());
}
List<DesignPythonOutfitVO> detailsVO = new ArrayList<>();
tDesignPythonOutfitDetails.forEach(detail -> {
detailsVO.add(designPythonOutfitDetailService.convertToDesignPythonOutfitVO(detail));
});
TDesignPythonOutfit designPythonOutfit = designPythonOutfitService.getByDesignItemId(designSingleIncludeLayersDTO.getDesignItemId());
// todo designPythonOutFit 空指针
return assembleDesignSingleResponse(designItem.getId(),designPythonOutfit.getDesignUrl(),
designSingleIncludeLayersDTO.getDesignSingleItemDTOList(),detailsVO);
}
private DesignSingleVO assembleDesignSingleResponse(Long designItemId,String designItemUrl,
List<DesignSingleItemDTO> designSingleItemDTOList,
List<DesignPythonOutfitVO> layersObject){
DesignSingleVO designSingleVO = new DesignSingleVO();
ArrayList<DesignItemClothesDetailVO> clothes = new ArrayList<>();
designSingleVO.setDesignItemId(designItemId);
designSingleVO.setDesignItemUrl(designItemUrl);
designSingleVO.setClothes(clothes);
designSingleItemDTOList.forEach(singleItem -> {
DesignItemClothesDetailVO designItemClothesDetailVO = new DesignItemClothesDetailVO();
designItemClothesDetailVO.setType(singleItem.getType());
designItemClothesDetailVO.setColor(panToneService.getPantoneByRgb(singleItem.getColor()));
designItemClothesDetailVO.setPrintObject(new DesignPythonItemPrint(singleItem.getPrintObject().getPath()));
designItemClothesDetailVO.setLayersObject(layersObject.stream().filter(
layers -> singleItem.getType().toLowerCase().equals(layers.getImageCategory().split("_")[0])).collect(Collectors.toList()));
clothes.add(designItemClothesDetailVO);
});
return designSingleVO;
}
private JSONObject getJsonString(){
return JSONObject.parseObject("{\n" +
" \"code\": 200,\n" +
" \"data\": {\n" +
" \"0\": {\n" +
" \"layers\": [\n" +
" {\n" +
" \"image_category\": \"blouse_back\",\n" +
" \"image_size\": [\n" +
" 287,\n" +
" 477\n" +
" ],\n" +
" \"image_url\": \"image/image_1694613014.7537637.png\",\n" +
" \"mask_url\": \"mask/mask_1694613014.7537637.png\",\n" +
" \"position\": [\n" +
" 495,\n" +
" 714\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"image_category\": \"body\",\n" +
" \"image_size\": [\n" +
" 1672,\n" +
" 1672\n" +
" ],\n" +
" \"image_url\": \"model_1693218345.2714431.png\",\n" +
" \"mask_url\": null,\n" +
" \"position\": [\n" +
" 0,\n" +
" 0\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"image_category\": \"blouse_front\",\n" +
" \"image_size\": [\n" +
" 287,\n" +
" 477\n" +
" ],\n" +
" \"image_url\": \"image/image_1694613014.687538.png\",\n" +
" \"mask_url\": \"mask/mask_1694613014.687538.png\",\n" +
" \"position\": [\n" +
" 495,\n" +
" 714\n" +
" ]\n" +
" }\n" +
" ],\n" +
" \"synthesis_url\": \"result_1694613014.8975976.png\"\n" +
" }\n" +
" },\n" +
" \"msg\": \"OK!\"\n" +
"}");
}
}

View File

@@ -350,7 +350,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
}
designItemDetail.setIconPath(detail.getIcon());
DesignPythonItemPrint printObject = detail.getPrint();
designItemDetail.setPrintPath(Objects.isNull(printObject)? "" :printObject.getPath());
designItemDetail.setPrintPath(Objects.isNull(printObject)? "" :printObject.getSinglePath());
designItemDetails.add(designItemDetail);
});
designItemDetailService.saveBatch(designItemDetails);
@@ -423,7 +423,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
}
designItemDetail.setIconPath(detail.getIcon());
DesignPythonItemPrint printObject = detail.getPrint();
designItemDetail.setPrintPath(Objects.isNull(printObject)? "" :printObject.getPath());
designItemDetail.setPrintPath(Objects.isNull(printObject)? "" :printObject.getSinglePath());
designItemDetails.add(designItemDetail);
});
designItemDetailService.saveBatch(designItemDetails);
@@ -682,7 +682,8 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
}));
//single 和 Models(模特)时候 系统元素为空
List<DesignItemDetail> filterDetail2 =designItemDetails.stream()
.filter(f -> SYS_HAIRSTYLE_SHOES.contains(f.getType()) )
// .filter(f -> SYS_HAIRSTYLE_SHOES.contains(f.getType()) )
.filter(f -> SYS_HAIRSTYLE_SHOES_BODY.contains(f.getType()) )
.collect(Collectors.toList());
response.setOthers(CopyUtil.copyList(filterDetail2,DesignItemOthersDetailVO.class,(o,d)->{
d.setId(o.getBusinessId());
@@ -728,12 +729,6 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
return design.getId();
}
/**
*
* @param designItemDetails
* @param designItemDetailVO
* @return
*/
private DesignItemDetailVO editResponseColor(List<DesignItemDetail> designItemDetails,DesignItemDetailVO designItemDetailVO){
/*designItemDetails.forEach(d -> {
if (!StringUtil.isNullOrEmpty(d.getColor())){
@@ -778,25 +773,40 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
}
private DesignItemDetailVO editDesignItemLayer(Boolean flag,TDesignPythonOutfit designPythonOutfit,String designItemId,DesignItemDetailVO designItemDetailVO){
DesignPythonOutfitVO designPythonOutfitVO = new DesignPythonOutfitVO();
private DesignItemDetailVO editDesignItemLayer(Boolean flag,TDesignPythonOutfit designPythonOutfit,String designItemUrl,DesignItemDetailVO designItemDetailVO){
ArrayList<DesignPythonOutfitVO> detailsVO = new ArrayList<>();
if (flag){
// 1、判断designPythonOutfitId查出的图层信息是否为空不允许为空系统内部错误
List<TDesignPythonOutfitDetail> details = designPythonOutfitDetailService.getDetailByDesignPythonOutfitId(designPythonOutfit.getId());
Assert.notEmpty(details,"Some errors occurred, please restart the design");
details.forEach(detail -> {
detailsVO.add(designPythonOutfitDetailService.convertToDesignPythonOutfitVO(detail));
});
// 2、将查询出的图层信息填充到designItemDetailVO中
designPythonOutfitVO.setDesignPythonOutfitId(designPythonOutfit.getId());
designPythonOutfitVO.setDesignPythonOutfitUrl(designPythonOutfit.getDesignUrl());
designPythonOutfitVO.setDesignItemDetailLayers(details);
}else{
designPythonOutfitVO.setDesignPythonOutfitUrl(designItemId);
}
designItemDetailVO.setDesignItemUrl(designPythonOutfit.getDesignUrl());
// 2.1 填充clothes
designItemDetailVO.getClothes().forEach(c -> {
String type = c.getType().toLowerCase();
List<DesignPythonOutfitVO> outfitVOS = detailsVO.stream().filter(detail -> detail.getImageCategory().equals(type + "_back") ||
detail.getImageCategory().equals(type + "_front")).collect(Collectors.toList());
designItemDetailVO.setDesignItemUrl(designPythonOutfitVO);
c.setLayersObject(outfitVOS);
});
// 2.2 填充others
designItemDetailVO.getOthers().forEach(o -> {
String type = o.getType().toLowerCase();
List<DesignPythonOutfitVO> outfitVOS = detailsVO.stream().filter(detail -> detail.getImageCategory().equals(type + "_back") ||
detail.getImageCategory().equals(type + "_front") ||
detail.getImageCategory().equals("body")).collect(Collectors.toList());
o.setLayersObject(outfitVOS);
});
}else{
designItemDetailVO.setDesignItemUrl(designItemUrl);
}
return designItemDetailVO;
}
}

View File

@@ -3,7 +3,7 @@ package com.ai.da.service.impl;
import cn.hutool.core.lang.Assert;
import com.ai.da.common.context.UserContext;
import com.ai.da.common.enums.CollectionLevel1TypeEnum;
import com.ai.da.common.enums.GenerateTypeEnum;
import com.ai.da.common.enums.GenerateModeEnum;
import com.ai.da.common.enums.ModelNameEnum;
import com.ai.da.common.utils.DateUtil;
import com.ai.da.common.utils.MD5Utils;
@@ -83,10 +83,12 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper,Generate> im
save(generate);
// 4、向模型发起请求
int mode = GenerateTypeEnum.TEXT.getValue().equals(generate.getGenerateType()) ? GenerateTypeEnum.TEXT.getCode() : GenerateTypeEnum.TEXT_IMAGE.getCode();
// String generatedSketchUrl = pythonService.generateSketchOrPrint(collectionElement.getUrl(),text,mode,generateThroughImageTextDTO.getVersion());
int mode = GenerateModeEnum.TEXT.getValue().equals(generate.getGenerateType()) ? GenerateModeEnum.TEXT.getCode() : GenerateModeEnum.TEXT_IMAGE.getCode();
String category = generateThroughImageTextDTO.getLevel1Type().equals(CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName()) ? "sketch" :
generateThroughImageTextDTO.getLevel1Type().equals(CollectionLevel1TypeEnum.PRINT_BOARD.getRealName()) ? "print" : "moodboard";
List<String> generatedSketchUrl = pythonService.generateSketchOrPrint(accountId,collectionElement.getUrl(),category,text,mode,generateThroughImageTextDTO.getVersion());
List<String> generatedSketchUrl = Arrays.asList("testUrl1","testUrl2","testUrl3","testUrl4");
// List<String> generatedSketchUrl = Arrays.asList("testUrl1","testUrl2","testUrl3","testUrl4");
// 5、处理模型返回的数据
// 5.1 将相应的url保存到数据库

View File

@@ -5,18 +5,9 @@ import com.ai.da.common.config.FileProperties;
import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.enums.SysFileLevel1TypeEnum;
import com.ai.da.common.enums.SysFileLevel2TypeEnum;
import com.ai.da.common.response.PageBaseResponse;
import com.ai.da.common.response.Response;
import com.ai.da.common.utils.CopyUtil;
import com.ai.da.common.utils.FileUtil;
import com.ai.da.common.utils.LocalCacheUtils;
import com.ai.da.common.utils.MD5Utils;
import com.ai.da.common.utils.*;
import com.ai.da.mapper.SysFileMapper;
import com.ai.da.mapper.entity.Collection;
import com.ai.da.mapper.entity.Library;
import com.ai.da.mapper.entity.SysFile;
import com.ai.da.mapper.entity.UserLikeGroup;
import com.ai.da.model.vo.LibraryVo;
import com.ai.da.model.vo.SysFileVO;
import com.ai.da.service.SysFileService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -26,7 +17,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.est.CACertsResponse;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -36,6 +26,7 @@ import javax.annotation.Resource;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@@ -259,4 +250,26 @@ public class SysFileServiceImpl extends ServiceImpl<SysFileMapper, SysFile> impl
queryWrapper.in("url", urlList);
return CopyUtil.copyList(sysFileMapper.selectList(queryWrapper),SysFileVO.class);
}
@Override
public SysFileVO getByUrl(String url, String type,String timeZone){
QueryWrapper<SysFile> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("url", url);
SysFile sysFile = sysFileMapper.selectOne(queryWrapper);
// 如果当前url不存在先将其插入表中
if (Objects.isNull(sysFile)){
sysFile = setSysFileEntity(url,type,timeZone);
sysFileMapper.insert(sysFile);
}
return CopyUtil.copyObject(sysFile,SysFileVO.class);
}
private SysFile setSysFileEntity(String url,String type,String timeZone){
InputStream originFile = FileUtil.getOriginFile(url);
String[] arr = url.split("/");
String level1Type = SysFileLevel2TypeEnum.ACCESSORIES_LIST.contains(type) ? SysFileLevel1TypeEnum.ACCESSORIES.getRealName() :
SysFileLevel2TypeEnum.IMAGES_LIST.contains(type) ? SysFileLevel1TypeEnum.IMAGES.getRealName() : SysFileLevel1TypeEnum.ICON_C.getRealName();
return new SysFile(level1Type, type, arr[arr.length - 1], MD5Utils.encryptFile(originFile), url, DateUtil.getByTimeZone(timeZone));
}
}

View File

@@ -1,15 +1,19 @@
package com.ai.da.service.impl;
import com.ai.da.common.utils.CopyUtil;
import com.ai.da.mapper.TDesignPythonOutfitDetailMapper;
import com.ai.da.mapper.entity.TDesignPythonOutfitDetail;
import com.ai.da.model.vo.DesignPythonOutfitVO;
import com.ai.da.model.vo.TDesignPythonOutfitDetailVO;
import com.ai.da.service.ITDesignPythonOutfitDetailService;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import java.util.Objects;
/**
* design item详情表 服务实现类
@@ -31,7 +35,18 @@ public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl<TDesignPyt
queryWrapper.eq("design_python_outfit_id",designPythonOutfitId);
return baseMapper.selectList(queryWrapper);
}
@Override
public DesignPythonOutfitVO convertToDesignPythonOutfitVO(TDesignPythonOutfitDetail detail){
if (Objects.isNull(detail)) {
return null;
}
DesignPythonOutfitVO designPythonOutfitVO = CopyUtil.copyObject(detail,DesignPythonOutfitVO.class);
designPythonOutfitVO.setPosition((List<Long>) JSON.parse(detail.getPosition()));
designPythonOutfitVO.setImageSize((List<Long>) JSON.parse(detail.getImageSize()));
return designPythonOutfitVO;
}
}

View File

@@ -4,6 +4,7 @@ import com.ai.da.mapper.TDesignPythonOutfitMapper;
import com.ai.da.mapper.entity.TDesignPythonOutfit;
import com.ai.da.model.vo.TDesignPythonOutfitVO;
import com.ai.da.service.ITDesignPythonOutfitService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -22,4 +23,12 @@ public class TDesignPythonOutfitServiceImpl extends ServiceImpl<TDesignPythonOut
return page.setRecords(baseMapper.selectTDesignPythonOutfitPage(page, tDesignPythonOutfit));
}
@Override
public TDesignPythonOutfit getByDesignItemId(Long designItemId){
QueryWrapper<TDesignPythonOutfit> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("design_item_id",designItemId);
return getOne(queryWrapper);
}
}