TASK:design single中添加单件衣服画布保存
This commit is contained in:
@@ -204,7 +204,7 @@ public class GenerateController {
|
||||
|
||||
// @ApiOperation(value = "试用flux")
|
||||
// @GetMapping("/flux")
|
||||
public Response<String> flux(@RequestParam("path") String path,
|
||||
public Response<String> flux(@RequestParam(value = "path", required = false) String path,
|
||||
@RequestParam("type") int type,
|
||||
@RequestParam(value = "prompt", required = false) String prompt){
|
||||
CreditsEventsEnum typeEnum = CreditsEventsEnum.RELIGHT;
|
||||
@@ -215,6 +215,9 @@ public class GenerateController {
|
||||
case 2:
|
||||
typeEnum = CreditsEventsEnum.IMAGE_TO_SKETCH;
|
||||
break;
|
||||
case 3:
|
||||
typeEnum = CreditsEventsEnum.PATTERN;
|
||||
break;
|
||||
}
|
||||
return Response.success(generateService.flux(typeEnum, prompt, path, false));
|
||||
}
|
||||
|
||||
@@ -178,8 +178,9 @@ public class SavedCollectionController {
|
||||
|
||||
@ApiOperation(value = "exportSave")
|
||||
@PostMapping("/exportSave")
|
||||
public Response<Boolean> exportSave(@RequestParam("file") MultipartFile file, @RequestParam("projectId") Long projectId, @RequestParam("module") String module) {
|
||||
return Response.success(userLikeGroupService.exportSave(file, projectId, module));
|
||||
public Response<Boolean> exportSave(@RequestParam("file") MultipartFile file, @RequestParam(value = "projectId", required = false) Long projectId,
|
||||
@RequestParam("module") String module, @RequestParam(value = "designItemDetailId", required = false) Long designItemDetailId) {
|
||||
return Response.success(userLikeGroupService.exportSave(file, projectId, module, designItemDetailId));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "exportSearch")
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.ai.da.mapper.primary;
|
||||
|
||||
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
||||
import com.ai.da.mapper.primary.entity.DesignItemDetailCanvas;
|
||||
|
||||
public interface DesignItemDetailCanvasMapper extends CommonMapper<DesignItemDetailCanvas> {
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.ai.da.mapper.primary.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@TableName("t_design_item_detail_canvas")
|
||||
public class DesignItemDetailCanvas extends BaseEntity{
|
||||
|
||||
private Long designItemDetailId;
|
||||
|
||||
private Long exportFileId;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,11 +1,18 @@
|
||||
package com.ai.da.model.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@ApiModel("查询画布详细")
|
||||
public class ExportSearchDTO {
|
||||
// private Long userLikeGroupId;
|
||||
|
||||
@ApiModelProperty("画布文件id")
|
||||
private Long id;
|
||||
@ApiModelProperty("画布关联项目id")
|
||||
private Long projectId;
|
||||
@ApiModelProperty("画布所属模块。canvas | deReconstruction | designItemDetail")
|
||||
private String module;
|
||||
}
|
||||
|
||||
@@ -65,6 +65,9 @@ public class DesignItemClothesDetailVO {
|
||||
@ApiModelProperty("局部design")
|
||||
private PartialDesignDTO partialDesign;
|
||||
|
||||
@ApiModelProperty("画布文件id")
|
||||
private Long canvasId;
|
||||
|
||||
public DesignItemClothesDetailVO() {
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.ai.da.service;
|
||||
|
||||
import com.ai.da.mapper.primary.entity.DesignItemDetail;
|
||||
import com.ai.da.mapper.primary.entity.DesignItemDetailCanvas;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
@@ -20,4 +21,8 @@ public interface DesignItemDetailService extends IService<DesignItemDetail> {
|
||||
List<DesignItemDetail> selectByDesignItemId(Long designItemId);
|
||||
|
||||
void setDesignItemDetailPriority(List<DesignItemDetail> designItemDetailList);
|
||||
|
||||
void saveDesignItemDetailCanvas(Long designItemDetailId, Long exportFileId);
|
||||
|
||||
DesignItemDetailCanvas getDIDCByDesignItemDetailId(Long designItemDetailId);
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ public interface UserLikeGroupService extends IService<UserLikeGroup> {
|
||||
|
||||
void updateDate(Long id,String timeZone);
|
||||
|
||||
Boolean exportSave(MultipartFile file, Long projectId, String module);
|
||||
Boolean exportSave(MultipartFile file, Long projectId, String module, Long designItemDetailId);
|
||||
|
||||
List<ToProductImageResultVO> toProduct(ToProductImageDTO toProductImageDTO);
|
||||
|
||||
|
||||
@@ -2,8 +2,10 @@ package com.ai.da.service.impl;
|
||||
|
||||
import com.ai.da.common.config.exception.BusinessException;
|
||||
import com.ai.da.common.enums.LayersPriorityEnum;
|
||||
import com.ai.da.mapper.primary.DesignItemDetailCanvasMapper;
|
||||
import com.ai.da.mapper.primary.DesignItemDetailMapper;
|
||||
import com.ai.da.mapper.primary.entity.DesignItemDetail;
|
||||
import com.ai.da.mapper.primary.entity.DesignItemDetailCanvas;
|
||||
import com.ai.da.service.DesignItemDetailService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
@@ -12,7 +14,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.ai.da.common.enums.LayersPriorityEnum.BODY;
|
||||
|
||||
@@ -27,6 +31,8 @@ import static com.ai.da.common.enums.LayersPriorityEnum.BODY;
|
||||
public class DesignItemDetailServiceImpl extends ServiceImpl<DesignItemDetailMapper, DesignItemDetail> implements DesignItemDetailService {
|
||||
@Resource
|
||||
private DesignItemDetailMapper designItemDetailMapper;
|
||||
@Resource
|
||||
private DesignItemDetailCanvasMapper designItemDetailCanvasMapper;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -96,4 +102,32 @@ public class DesignItemDetailServiceImpl extends ServiceImpl<DesignItemDetailMap
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveDesignItemDetailCanvas(Long designItemDetailId, Long exportFileId){
|
||||
// 1. 每件单品只会有一张画布信息
|
||||
DesignItemDetailCanvas didc = getDIDCByDesignItemDetailId(designItemDetailId);
|
||||
// 2. 没有,则新增一条
|
||||
if (Objects.isNull(didc)){
|
||||
didc = new DesignItemDetailCanvas();
|
||||
didc.setDesignItemDetailId(designItemDetailId);
|
||||
didc.setExportFileId(exportFileId);
|
||||
didc.setCreateTime(LocalDateTime.now());
|
||||
designItemDetailCanvasMapper.insert(didc);
|
||||
}
|
||||
// 3. 有,则更新
|
||||
else if (Objects.nonNull(didc.getExportFileId()) && !didc.getExportFileId().equals(exportFileId)){
|
||||
didc.setExportFileId(exportFileId);
|
||||
didc.setUpdateTime(LocalDateTime.now());
|
||||
designItemDetailCanvasMapper.updateById(didc);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DesignItemDetailCanvas getDIDCByDesignItemDetailId(Long designItemDetailId){
|
||||
QueryWrapper<DesignItemDetailCanvas> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(DesignItemDetailCanvas::getDesignItemDetailId, designItemDetailId);
|
||||
|
||||
return designItemDetailCanvasMapper.selectOne(qw);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1438,6 +1438,10 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
}
|
||||
String preSigned = StringUtil.isNullOrEmpty(o.getPartialDesign()) ? null : minioUtil.getPreSignedUrl(o.getPartialDesign(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME);
|
||||
d.setPartialDesign(new PartialDesignDTO(o.getPartialDesign(), preSigned));
|
||||
DesignItemDetailCanvas designItemDetailCanvas = designItemDetailService.getDIDCByDesignItemDetailId(o.getId());
|
||||
if (Objects.nonNull(designItemDetailCanvas)){
|
||||
d.setCanvasId(designItemDetailCanvas.getExportFileId());
|
||||
}
|
||||
}));
|
||||
//single 和 Models(模特)时候 系统元素为空
|
||||
List<DesignItemDetail> filterDetail2 = designItemDetails.stream()
|
||||
|
||||
@@ -95,7 +95,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
@Resource
|
||||
private TagsMapper tagsMapper;
|
||||
@Resource
|
||||
private DesignItemDetailMapper designItemDetailMapper;
|
||||
private DesignItemDetailService designItemDetailService;
|
||||
@Resource
|
||||
private CollectionElementMapper collectionElementMapper;
|
||||
@Resource
|
||||
@@ -153,6 +153,8 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
private PoseTransformationMapper poseTransformationMapper;
|
||||
@Resource
|
||||
private ExportFileMapper exportFileMapper;
|
||||
@Resource
|
||||
private DesignItemDetailCanvasMapper designItemDetailCanvasMapper;
|
||||
|
||||
@Override
|
||||
public void deleteUserGroup(Long userGroupId) {
|
||||
@@ -352,13 +354,22 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean exportSave(MultipartFile file, Long projectId, String module) {
|
||||
public Boolean exportSave(MultipartFile file, Long projectId, String module, Long designItemDetailId) {
|
||||
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
||||
if (Objects.isNull(projectId) && !module.equals("designItemDetail")){
|
||||
log.warn("用户 {} 保存 {} 模块的画布时, projectId为空", userHolder.getId(), module);
|
||||
throw new BusinessException("project id cannot be empty", ResultEnum.PROMPT.getCode());
|
||||
}
|
||||
|
||||
String upload = minioUtil.upload("aida-users", userHolder.getId() + "/exportFile", file);
|
||||
QueryWrapper<ExportFile> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(ExportFile::getProjectId, projectId);
|
||||
qw.lambda().eq(ExportFile::getModule, module);
|
||||
List<ExportFile> exportFiles = exportFileMapper.selectList(qw);
|
||||
List<ExportFile> exportFiles = null;
|
||||
if (Objects.nonNull(projectId)){
|
||||
qw.lambda().eq(ExportFile::getProjectId, projectId);
|
||||
qw.lambda().eq(ExportFile::getModule, module);
|
||||
exportFiles = exportFileMapper.selectList(qw);
|
||||
}
|
||||
|
||||
if (CollectionUtil.isNotEmpty(exportFiles)) {
|
||||
ExportFile exportFile = exportFiles.get(0);
|
||||
exportFile.setUrl(upload);
|
||||
@@ -369,6 +380,9 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
exportFile.setModule(module);
|
||||
exportFile.setUrl(upload);
|
||||
exportFileMapper.insert(exportFile);
|
||||
if (Objects.nonNull(designItemDetailId)){
|
||||
designItemDetailService.saveDesignItemDetailCanvas(designItemDetailId, exportFile.getId());
|
||||
}
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
@@ -432,7 +446,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
QueryWrapper<DesignItemDetail> designItemDetailQueryWrapper = new QueryWrapper<>();
|
||||
designItemDetailQueryWrapper.lambda().eq(DesignItemDetail::getDesignItemId, designItemId);
|
||||
designItemDetailQueryWrapper.lambda().ne(DesignItemDetail::getType, "Body");
|
||||
List<DesignItemDetail> designItemDetails = designItemDetailMapper.selectList(designItemDetailQueryWrapper);
|
||||
List<DesignItemDetail> designItemDetails = designItemDetailService.list(designItemDetailQueryWrapper);
|
||||
String collect = designItemDetails.stream().map(DesignItemDetail::getType).collect(Collectors.joining(","));
|
||||
|
||||
Long designId = tDesignPythonOutfit.getDesignId();
|
||||
@@ -604,7 +618,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
QueryWrapper<DesignItemDetail> designItemDetailQueryWrapper = new QueryWrapper<>();
|
||||
designItemDetailQueryWrapper.lambda().eq(DesignItemDetail::getDesignItemId, designItemId);
|
||||
designItemDetailQueryWrapper.lambda().ne(DesignItemDetail::getType, "Body");
|
||||
List<DesignItemDetail> designItemDetails = designItemDetailMapper.selectList(designItemDetailQueryWrapper);
|
||||
List<DesignItemDetail> designItemDetails = designItemDetailService.list(designItemDetailQueryWrapper);
|
||||
String collect = designItemDetails.stream().map(DesignItemDetail::getType).collect(Collectors.joining(","));
|
||||
|
||||
Long designId = tDesignPythonOutfit.getDesignId();
|
||||
@@ -842,7 +856,11 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
@Override
|
||||
public JSONObject exportSearch(ExportSearchDTO exportSearchDTO) {
|
||||
QueryWrapper<ExportFile> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(ExportFile::getProjectId, exportSearchDTO.getProjectId());
|
||||
if (Objects.nonNull(exportSearchDTO.getProjectId())){
|
||||
qw.lambda().eq(ExportFile::getProjectId, exportSearchDTO.getProjectId());
|
||||
} else if (Objects.nonNull(exportSearchDTO.getId())){
|
||||
qw.lambda().eq(ExportFile::getId, exportSearchDTO.getId());
|
||||
}
|
||||
qw.lambda().eq(ExportFile::getModule, exportSearchDTO.getModule());
|
||||
List<ExportFile> exportFiles = exportFileMapper.selectList(qw);
|
||||
if (CollectionUtil.isNotEmpty(exportFiles)) {
|
||||
@@ -1470,7 +1488,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
QueryWrapper<DesignItemDetail> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(DesignItemDetail::getDesignItemId, designItemId)
|
||||
.ne(DesignItemDetail::getType, "Body");
|
||||
return designItemDetailMapper.selectList(qw);
|
||||
return designItemDetailService.list(qw);
|
||||
}
|
||||
|
||||
private void saveResultAsPrettyJson(List<List<Map<String, Object>>> result, String filePath) {
|
||||
|
||||
Reference in New Issue
Block a user