TASK:design single中添加单件衣服画布保存
This commit is contained in:
@@ -204,7 +204,7 @@ public class GenerateController {
|
|||||||
|
|
||||||
// @ApiOperation(value = "试用flux")
|
// @ApiOperation(value = "试用flux")
|
||||||
// @GetMapping("/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("type") int type,
|
||||||
@RequestParam(value = "prompt", required = false) String prompt){
|
@RequestParam(value = "prompt", required = false) String prompt){
|
||||||
CreditsEventsEnum typeEnum = CreditsEventsEnum.RELIGHT;
|
CreditsEventsEnum typeEnum = CreditsEventsEnum.RELIGHT;
|
||||||
@@ -215,6 +215,9 @@ public class GenerateController {
|
|||||||
case 2:
|
case 2:
|
||||||
typeEnum = CreditsEventsEnum.IMAGE_TO_SKETCH;
|
typeEnum = CreditsEventsEnum.IMAGE_TO_SKETCH;
|
||||||
break;
|
break;
|
||||||
|
case 3:
|
||||||
|
typeEnum = CreditsEventsEnum.PATTERN;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return Response.success(generateService.flux(typeEnum, prompt, path, false));
|
return Response.success(generateService.flux(typeEnum, prompt, path, false));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -178,8 +178,9 @@ public class SavedCollectionController {
|
|||||||
|
|
||||||
@ApiOperation(value = "exportSave")
|
@ApiOperation(value = "exportSave")
|
||||||
@PostMapping("/exportSave")
|
@PostMapping("/exportSave")
|
||||||
public Response<Boolean> exportSave(@RequestParam("file") MultipartFile file, @RequestParam("projectId") Long projectId, @RequestParam("module") String module) {
|
public Response<Boolean> exportSave(@RequestParam("file") MultipartFile file, @RequestParam(value = "projectId", required = false) Long projectId,
|
||||||
return Response.success(userLikeGroupService.exportSave(file, projectId, module));
|
@RequestParam("module") String module, @RequestParam(value = "designItemDetailId", required = false) Long designItemDetailId) {
|
||||||
|
return Response.success(userLikeGroupService.exportSave(file, projectId, module, designItemDetailId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "exportSearch")
|
@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;
|
package com.ai.da.model.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@ApiModel("查询画布详细")
|
||||||
public class ExportSearchDTO {
|
public class ExportSearchDTO {
|
||||||
// private Long userLikeGroupId;
|
// private Long userLikeGroupId;
|
||||||
|
|
||||||
|
@ApiModelProperty("画布文件id")
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty("画布关联项目id")
|
||||||
private Long projectId;
|
private Long projectId;
|
||||||
|
@ApiModelProperty("画布所属模块。canvas | deReconstruction | designItemDetail")
|
||||||
private String module;
|
private String module;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ public class DesignItemClothesDetailVO {
|
|||||||
@ApiModelProperty("局部design")
|
@ApiModelProperty("局部design")
|
||||||
private PartialDesignDTO partialDesign;
|
private PartialDesignDTO partialDesign;
|
||||||
|
|
||||||
|
@ApiModelProperty("画布文件id")
|
||||||
|
private Long canvasId;
|
||||||
|
|
||||||
public DesignItemClothesDetailVO() {
|
public DesignItemClothesDetailVO() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ai.da.service;
|
package com.ai.da.service;
|
||||||
|
|
||||||
import com.ai.da.mapper.primary.entity.DesignItemDetail;
|
import com.ai.da.mapper.primary.entity.DesignItemDetail;
|
||||||
|
import com.ai.da.mapper.primary.entity.DesignItemDetailCanvas;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -20,4 +21,8 @@ public interface DesignItemDetailService extends IService<DesignItemDetail> {
|
|||||||
List<DesignItemDetail> selectByDesignItemId(Long designItemId);
|
List<DesignItemDetail> selectByDesignItemId(Long designItemId);
|
||||||
|
|
||||||
void setDesignItemDetailPriority(List<DesignItemDetail> designItemDetailList);
|
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);
|
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);
|
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.config.exception.BusinessException;
|
||||||
import com.ai.da.common.enums.LayersPriorityEnum;
|
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.DesignItemDetailMapper;
|
||||||
import com.ai.da.mapper.primary.entity.DesignItemDetail;
|
import com.ai.da.mapper.primary.entity.DesignItemDetail;
|
||||||
|
import com.ai.da.mapper.primary.entity.DesignItemDetailCanvas;
|
||||||
import com.ai.da.service.DesignItemDetailService;
|
import com.ai.da.service.DesignItemDetailService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
@@ -12,7 +14,9 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import static com.ai.da.common.enums.LayersPriorityEnum.BODY;
|
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 {
|
public class DesignItemDetailServiceImpl extends ServiceImpl<DesignItemDetailMapper, DesignItemDetail> implements DesignItemDetailService {
|
||||||
@Resource
|
@Resource
|
||||||
private DesignItemDetailMapper designItemDetailMapper;
|
private DesignItemDetailMapper designItemDetailMapper;
|
||||||
|
@Resource
|
||||||
|
private DesignItemDetailCanvasMapper designItemDetailCanvasMapper;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@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);
|
String preSigned = StringUtil.isNullOrEmpty(o.getPartialDesign()) ? null : minioUtil.getPreSignedUrl(o.getPartialDesign(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME);
|
||||||
d.setPartialDesign(new PartialDesignDTO(o.getPartialDesign(), preSigned));
|
d.setPartialDesign(new PartialDesignDTO(o.getPartialDesign(), preSigned));
|
||||||
|
DesignItemDetailCanvas designItemDetailCanvas = designItemDetailService.getDIDCByDesignItemDetailId(o.getId());
|
||||||
|
if (Objects.nonNull(designItemDetailCanvas)){
|
||||||
|
d.setCanvasId(designItemDetailCanvas.getExportFileId());
|
||||||
|
}
|
||||||
}));
|
}));
|
||||||
//single 和 Models(模特)时候 系统元素为空
|
//single 和 Models(模特)时候 系统元素为空
|
||||||
List<DesignItemDetail> filterDetail2 = designItemDetails.stream()
|
List<DesignItemDetail> filterDetail2 = designItemDetails.stream()
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
@Resource
|
@Resource
|
||||||
private TagsMapper tagsMapper;
|
private TagsMapper tagsMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private DesignItemDetailMapper designItemDetailMapper;
|
private DesignItemDetailService designItemDetailService;
|
||||||
@Resource
|
@Resource
|
||||||
private CollectionElementMapper collectionElementMapper;
|
private CollectionElementMapper collectionElementMapper;
|
||||||
@Resource
|
@Resource
|
||||||
@@ -153,6 +153,8 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
private PoseTransformationMapper poseTransformationMapper;
|
private PoseTransformationMapper poseTransformationMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private ExportFileMapper exportFileMapper;
|
private ExportFileMapper exportFileMapper;
|
||||||
|
@Resource
|
||||||
|
private DesignItemDetailCanvasMapper designItemDetailCanvasMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteUserGroup(Long userGroupId) {
|
public void deleteUserGroup(Long userGroupId) {
|
||||||
@@ -352,13 +354,22 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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();
|
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);
|
String upload = minioUtil.upload("aida-users", userHolder.getId() + "/exportFile", file);
|
||||||
QueryWrapper<ExportFile> qw = new QueryWrapper<>();
|
QueryWrapper<ExportFile> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(ExportFile::getProjectId, projectId);
|
List<ExportFile> exportFiles = null;
|
||||||
qw.lambda().eq(ExportFile::getModule, module);
|
if (Objects.nonNull(projectId)){
|
||||||
List<ExportFile> exportFiles = exportFileMapper.selectList(qw);
|
qw.lambda().eq(ExportFile::getProjectId, projectId);
|
||||||
|
qw.lambda().eq(ExportFile::getModule, module);
|
||||||
|
exportFiles = exportFileMapper.selectList(qw);
|
||||||
|
}
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(exportFiles)) {
|
if (CollectionUtil.isNotEmpty(exportFiles)) {
|
||||||
ExportFile exportFile = exportFiles.get(0);
|
ExportFile exportFile = exportFiles.get(0);
|
||||||
exportFile.setUrl(upload);
|
exportFile.setUrl(upload);
|
||||||
@@ -369,6 +380,9 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
exportFile.setModule(module);
|
exportFile.setModule(module);
|
||||||
exportFile.setUrl(upload);
|
exportFile.setUrl(upload);
|
||||||
exportFileMapper.insert(exportFile);
|
exportFileMapper.insert(exportFile);
|
||||||
|
if (Objects.nonNull(designItemDetailId)){
|
||||||
|
designItemDetailService.saveDesignItemDetailCanvas(designItemDetailId, exportFile.getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
@@ -432,7 +446,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
QueryWrapper<DesignItemDetail> designItemDetailQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<DesignItemDetail> designItemDetailQueryWrapper = new QueryWrapper<>();
|
||||||
designItemDetailQueryWrapper.lambda().eq(DesignItemDetail::getDesignItemId, designItemId);
|
designItemDetailQueryWrapper.lambda().eq(DesignItemDetail::getDesignItemId, designItemId);
|
||||||
designItemDetailQueryWrapper.lambda().ne(DesignItemDetail::getType, "Body");
|
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(","));
|
String collect = designItemDetails.stream().map(DesignItemDetail::getType).collect(Collectors.joining(","));
|
||||||
|
|
||||||
Long designId = tDesignPythonOutfit.getDesignId();
|
Long designId = tDesignPythonOutfit.getDesignId();
|
||||||
@@ -604,7 +618,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
QueryWrapper<DesignItemDetail> designItemDetailQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<DesignItemDetail> designItemDetailQueryWrapper = new QueryWrapper<>();
|
||||||
designItemDetailQueryWrapper.lambda().eq(DesignItemDetail::getDesignItemId, designItemId);
|
designItemDetailQueryWrapper.lambda().eq(DesignItemDetail::getDesignItemId, designItemId);
|
||||||
designItemDetailQueryWrapper.lambda().ne(DesignItemDetail::getType, "Body");
|
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(","));
|
String collect = designItemDetails.stream().map(DesignItemDetail::getType).collect(Collectors.joining(","));
|
||||||
|
|
||||||
Long designId = tDesignPythonOutfit.getDesignId();
|
Long designId = tDesignPythonOutfit.getDesignId();
|
||||||
@@ -842,7 +856,11 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
@Override
|
@Override
|
||||||
public JSONObject exportSearch(ExportSearchDTO exportSearchDTO) {
|
public JSONObject exportSearch(ExportSearchDTO exportSearchDTO) {
|
||||||
QueryWrapper<ExportFile> qw = new QueryWrapper<>();
|
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());
|
qw.lambda().eq(ExportFile::getModule, exportSearchDTO.getModule());
|
||||||
List<ExportFile> exportFiles = exportFileMapper.selectList(qw);
|
List<ExportFile> exportFiles = exportFileMapper.selectList(qw);
|
||||||
if (CollectionUtil.isNotEmpty(exportFiles)) {
|
if (CollectionUtil.isNotEmpty(exportFiles)) {
|
||||||
@@ -1470,7 +1488,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
QueryWrapper<DesignItemDetail> qw = new QueryWrapper<>();
|
QueryWrapper<DesignItemDetail> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(DesignItemDetail::getDesignItemId, designItemId)
|
qw.lambda().eq(DesignItemDetail::getDesignItemId, designItemId)
|
||||||
.ne(DesignItemDetail::getType, "Body");
|
.ne(DesignItemDetail::getType, "Body");
|
||||||
return designItemDetailMapper.selectList(qw);
|
return designItemDetailService.list(qw);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveResultAsPrettyJson(List<List<Map<String, Object>>> result, String filePath) {
|
private void saveResultAsPrettyJson(List<List<Map<String, Object>>> result, String filePath) {
|
||||||
|
|||||||
Reference in New Issue
Block a user