1、design single 添加 design elements

2、design single -- print添加level2Type
3、替换部分flask接口 为 fastAPI接口
This commit is contained in:
2024-06-12 10:41:59 +08:00
parent 77f514a03b
commit 1a48527c70
17 changed files with 206 additions and 85 deletions

View File

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
public interface DesignItemDetailPrintService extends IService<DesignItemDetailPrint> {
List<DesignItemDetailPrint> getByDesignItemDetailId(Long designItemDetailId);
List<DesignItemDetailPrint> getByDesignItemDetailId(Long designItemDetailId, String printType);
void deleteByDesignItemDetailId(Long designItemDetailId);
}

View File

@@ -87,6 +87,8 @@ public class ChatRobotServiceImpl implements ChatRobotService {
private String accessPythonIp;
@Value("${access.python.port:''}")
private String accessPythonPort;
@Value("${access.python.address}")
private String fastApiPythonAddress;
@Override
@Transactional(rollbackFor = Exception.class)
public ChatRobotVO sendMessageToChatRobot(ChatSendDTO chatSendDTO) {
@@ -150,7 +152,8 @@ public class ChatRobotServiceImpl implements ChatRobotService {
RequestBody body = RequestBody.create(mediaType, param);
Request request = new Request.Builder()
// .url("http://127.0.0.1:5000/api/chat_stream_test")
.url(accessPythonIp + ":" + accessPythonPort + "/api/chat_stream_test")
// .url(accessPythonIp + ":" + accessPythonPort + "/api/chat_stream_test")
.url(fastApiPythonAddress + "/api/chat_robot")
// .url(accessPythonIp + ":10200/aifda/api/v1.0/generate")
.method("POST", body)
.addHeader("Content-Type", "application/json")

View File

@@ -15,9 +15,10 @@ public class DesignItemDetailPrintServiceImpl extends ServiceImpl<DesignItemDeta
@Override
public List<DesignItemDetailPrint> getByDesignItemDetailId(Long designItemDetailId) {
public List<DesignItemDetailPrint> getByDesignItemDetailId(Long designItemDetailId, String printType) {
QueryWrapper<DesignItemDetailPrint> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("design_item_detail_id", designItemDetailId);
queryWrapper.eq("print_type", printType);
return baseMapper.selectList(queryWrapper);
}

View File

@@ -681,6 +681,7 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
designItemClothesDetailVO.setMinIOPath(singleItem.getPath());
designItemClothesDetailVO.setColor(panToneService.getPantoneByRgb(singleItem.getColor()));
designItemClothesDetailVO.setPrintObject(singleItem.getPrintObject());
designItemClothesDetailVO.setTrims(singleItem.getTrims());
designItemClothesDetailVO.setLayersObject(layersObject.stream().filter(
layers -> (singleItem.getType().toLowerCase().equals(layers.getImageCategory().split("_")[0])
&& (flag ? Boolean.TRUE : singleItem.getPriority().equals(layers.getPriority())))
@@ -704,36 +705,58 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
designSingleItemDTOList.forEach(designSingleItem -> {
// 1、判断有无印花无印花则跳过
DesignSinglePrintDTO printObject = designSingleItem.getPrintObject();
if (printObject.getIfSingle().equals(Boolean.FALSE)
&& CollectionUtil.isEmpty(printObject.getPrints())) {
return;
} else {
// 2、有印花添加到list
printObject.getPrints().forEach(print -> {
// 2.1 判断是否第一次添加印花,是:直接添加
List<DesignItemDetailPrint> designItemDetailPrintList = designItemDetailPrintService.getByDesignItemDetailId(designItemDetailTypeIdMap.get(designSingleItem.getPriority()));
if (!designItemDetailPrintList.isEmpty()) {
// 2.2 否:先删除原始印花,再添加新印花信息
designItemDetailPrintService.deleteByDesignItemDetailId(designItemDetailTypeIdMap.get(designSingleItem.getPriority()));
}
DesignItemDetailPrint designItemDetailPrint = new DesignItemDetailPrint();
designItemDetailPrint.setDesignItemDetailId(designItemDetailTypeIdMap.get(designSingleItem.getPriority()));
designItemDetailPrint.setPath(print.getMinIOPath());
designItemDetailPrint.setScale(print.getScale());
designItemDetailPrint.setSingleOrOverall(printObject.getIfSingle() ? "single" : "overall");
designItemDetailPrint.setCreateDate(LocalDateTime.now(ZoneId.of(timeZone)));
// single、overall模式下都有position、angle和priority
designItemDetailPrint.setPosition(print.getLocation().toString());
designItemDetailPrint.setAngle(print.getAngle());
designItemDetailPrint.setPriority(print.getPriority());
designItemDetailPrints.add(designItemDetailPrint);
});
}
setDesignItemDetailPrintList(designSingleItem, designItemDetailPrints, "print", designItemDetailTypeIdMap, timeZone);
// 2、判断有无装饰配件
setDesignItemDetailPrintList(designSingleItem, designItemDetailPrints, "trims", designItemDetailTypeIdMap, timeZone);
});
return designItemDetailPrints;
}
private void setDesignItemDetailPrintList(DesignSingleItemDTO designSingleItem,
ArrayList<DesignItemDetailPrint> designItemDetailPrints,
String printType,
Map<Integer, Long> designItemDetailTypeIdMap,
String timeZone){
DesignSinglePrintDTO printObject;
if (printType.equals("print")){
printObject = designSingleItem.getPrintObject();
}else {
printObject = designSingleItem.getTrims();
if (Objects.isNull(printObject.getIfSingle())){
printObject.setIfSingle(Boolean.FALSE);
}
}
if (printObject.getIfSingle().equals(Boolean.FALSE)
&& CollectionUtil.isEmpty(printObject.getPrints())) {
return;
} else {
// 2、有印花添加到list
printObject.getPrints().forEach(print -> {
// 2.1 判断是否第一次添加印花,是:直接添加
List<DesignItemDetailPrint> designItemDetailPrintList = designItemDetailPrintService.getByDesignItemDetailId(designItemDetailTypeIdMap.get(designSingleItem.getPriority()), printType);
if (!designItemDetailPrintList.isEmpty()) {
// 2.2 否:先删除原始印花,再添加新印花信息
designItemDetailPrintService.deleteByDesignItemDetailId(designItemDetailTypeIdMap.get(designSingleItem.getPriority()));
}
DesignItemDetailPrint designItemDetailPrint = new DesignItemDetailPrint();
designItemDetailPrint.setDesignItemDetailId(designItemDetailTypeIdMap.get(designSingleItem.getPriority()));
designItemDetailPrint.setPrintType(printType);
designItemDetailPrint.setLevel2Type(print.getLevel2Type());
designItemDetailPrint.setPath(print.getMinIOPath());
designItemDetailPrint.setScale(print.getScale());
designItemDetailPrint.setSingleOrOverall(printType.equals("print") ? printObject.getIfSingle() ? "single" : "overall" : "single");
designItemDetailPrint.setCreateDate(LocalDateTime.now(ZoneId.of(timeZone)));
// single、overall模式下都有position、angle和priority
designItemDetailPrint.setPosition(print.getLocation().toString());
designItemDetailPrint.setAngle(print.getAngle());
designItemDetailPrint.setPriority(print.getPriority());
designItemDetailPrints.add(designItemDetailPrint);
});
}
}
private List<OutfitDetailPythonItem> convertToOutfitDetailPythonItemList(List<DesignPythonOutfitVO> layers) {
List<OutfitDetailPythonItem> composeLayerPythonItem = Arrays.asList(new OutfitDetailPythonItem[layers.size()]);
layers.forEach(layer -> {

View File

@@ -1000,12 +1000,19 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
d.setLevel1Type(converTypeToLevel1(o.getType()));
// d.setGradient(JSONObject.parseObject(o.getGradientString(), Gradient.class));
// 根据designItemDetailId获取印花
List<DesignItemDetailPrint> prints = designItemDetailPrintService.getByDesignItemDetailId(o.getId());
List<DesignItemDetailPrint> prints = designItemDetailPrintService.getByDesignItemDetailId(o.getId(), "print");
// 判断有无印花
if (CollectionUtil.isNotEmpty(prints)) {
// 有印花
d.setPrintObject(convertToDesignSinglePrintDTO(prints));
}
// 根据designItemDetailId获取design elements
List<DesignItemDetailPrint> trims = designItemDetailPrintService.getByDesignItemDetailId(o.getId(), "trims");
// 判断有无装饰 trims
if (CollectionUtil.isNotEmpty(trims)) {
// 有印花
d.setTrims(convertToDesignSinglePrintDTO(trims));
}
}));
//single 和 Models(模特)时候 系统元素为空
List<DesignItemDetail> filterDetail2 = designItemDetails.stream()
@@ -1196,6 +1203,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
DesignItemDetailPrint detailPrint = designItemDetailPrints.get(0);
DesignSinglePrint designSinglePrint = new DesignSinglePrint();
designSinglePrintDTO.setIfSingle(detailPrint.getSingleOrOverall().equals("single") ? Boolean.TRUE : Boolean.FALSE);
designSinglePrint.setLevel2Type(detailPrint.getLevel2Type());
designSinglePrint.setLocation(JSONArray.parseArray(detailPrint.getPosition(), Double.class));
designSinglePrint.setAngle(detailPrint.getAngle());
designSinglePrint.setPriority(detailPrint.getPriority());
@@ -1209,6 +1217,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
designItemDetailPrints.forEach(print -> {
if (print.getSingleOrOverall().equals("single")) {
prints.add(new DesignSinglePrint(
print.getLevel2Type(),
minioUtil.getPresignedUrl(print.getPath(), 24 * 60),
print.getPath(),
JSONArray.parseArray(print.getPosition(), Double.class),
@@ -1216,12 +1225,10 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
print.getAngle(),
print.getPriority()));
}
});
}
designSinglePrintDTO.setPrints(prints);
return designSinglePrintDTO;
}
@Override

View File

@@ -341,6 +341,11 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
throw new BusinessException("gender.cannot.be.empty");
}
}
if (PRINT_BOARD.getRealName().equals(generateLikeDTO.getLevel1Type())) {
if (StringUtil.isNullOrEmpty(generateLikeDTO.getLevel2Type())) {
throw new BusinessException("level2Type.cannot.be.empty");
}
}
// 1.2 判断参数是否真实有效
Long generateDetailId = generateLikeDTO.getGenerateDetailId();
GenerateDetail generateDetail = generateDetailMapper.selectById(generateDetailId);
@@ -496,7 +501,7 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
}
// 将图片上传到图片服务器
String path = minioUtil.base64Upload(generateThroughImageTextDTO.getSloganBase64(), sloganBucket);
String path = minioUtil.base64UploadToPath(generateThroughImageTextDTO.getSloganBase64(), sloganBucket, null);
String name = path.substring(path.lastIndexOf("/") + 1, path.lastIndexOf("."));
// 保存到db,collection-element
CollectionElement collectionElement = new CollectionElement();

View File

@@ -92,6 +92,8 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> impl
private String accessPythonIp;
@Value("${access.python.port:''}")
private String accessPythonPort;
@Value("${access.python.address}")
private String fastApiPythonAddress;
@Resource
private PythonTAllInfoService pythonTAllInfoService;
@@ -367,7 +369,8 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> impl
log.info("processSketchBoards请求python 参数:####{}", param);
RequestBody body = RequestBody.create(mediaType, param);
Request request = new Request.Builder()
.url(accessPythonIp + ":" + accessPythonPort + "/api/design_pre_processing")
// .url(accessPythonIp + ":" + accessPythonPort + "/api/design_pre_processing")
.url(fastApiPythonAddress + "/api/design_pre_processing")
.method("POST", body)
// .addHeader("Authorization", "Basic YWlkbGFiOjEyMw==")
.addHeader("Content-Type", "application/json")