diff --git a/src/main/java/com/ai/da/controller/LibraryController.java b/src/main/java/com/ai/da/controller/LibraryController.java index bb76d9f7..58e0f3dd 100644 --- a/src/main/java/com/ai/da/controller/LibraryController.java +++ b/src/main/java/com/ai/da/controller/LibraryController.java @@ -3,6 +3,7 @@ package com.ai.da.controller; import cn.hutool.core.lang.Assert; import cn.hutool.system.UserInfo; import com.ai.da.common.config.FileProperties; +import com.ai.da.common.config.exception.BusinessException; import com.ai.da.common.context.UserContext; import com.ai.da.common.enums.LibraryLevel1TypeEnum; import com.ai.da.common.response.PageBaseResponse; @@ -68,17 +69,25 @@ public class LibraryController { @ApiParam("二级类型 争对 Sketchboard; 有 Outwear Dress Blouse Skirt Trousers") @RequestParam(value = "level2Type",required = false) String level2Type, @ApiParam("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") - @RequestParam(value = "timeZone") String timeZone) { + @RequestParam(value = "timeZone") String timeZone, + @RequestParam(value = "modelType") String modelType, + @RequestParam(value = "sex") String sex) { Assert.isTrue(!StringUtils.isEmpty(file.getOriginalFilename()),"Please select a file!"); Integer high =null; Integer width =null; if(level1Type.equals(LibraryLevel1TypeEnum.MODELS.getRealName())){ + if (StringUtils.isEmpty(modelType)) { + throw new BusinessException("modelType can't be null"); + } + if (StringUtils.isEmpty(sex)) { + throw new BusinessException("sex can't be null"); + } FileVO fileVO = FileUtil.getFileSize(file); high = fileVO.getHigh(); width = fileVO.getWidth(); } return Response.success(libraryService.upload(new LibraryUploadDTO(file, level1Type,level2Type, - timeZone, MD5Utils.encryptFile(file),high,width))); + timeZone, MD5Utils.encryptFile(file),high,width,modelType,sex))); } @ApiOperation(value = "保存或者编辑template打点") @PostMapping("/saveOrEditTemplatePoint") diff --git a/src/main/java/com/ai/da/controller/WorkspaceController.java b/src/main/java/com/ai/da/controller/WorkspaceController.java index 622dcd58..950860f0 100644 --- a/src/main/java/com/ai/da/controller/WorkspaceController.java +++ b/src/main/java/com/ai/da/controller/WorkspaceController.java @@ -94,8 +94,8 @@ public class WorkspaceController { @GetMapping("/getMannequins") @ApiOperationSupport(order = 6) @ApiOperation(value = "获取模特") - public Response> getMannequins() { - List modelsVO = workspaceService.getMannequins(); + public Response> getMannequins(@RequestParam("sex") String sex) { + List modelsVO = workspaceService.getMannequins(sex); return Response.success(modelsVO); } diff --git a/src/main/java/com/ai/da/mapper/entity/Design.java b/src/main/java/com/ai/da/mapper/entity/Design.java index 72778eca..8c990b6f 100644 --- a/src/main/java/com/ai/da/mapper/entity/Design.java +++ b/src/main/java/com/ai/da/mapper/entity/Design.java @@ -44,6 +44,8 @@ public class Design implements Serializable { */ private Long templateId; + private String modelType; + /** * system scale值 */ diff --git a/src/main/java/com/ai/da/mapper/entity/LibraryModelPoint.java b/src/main/java/com/ai/da/mapper/entity/LibraryModelPoint.java index f460295b..01adf7b7 100644 --- a/src/main/java/com/ai/da/mapper/entity/LibraryModelPoint.java +++ b/src/main/java/com/ai/da/mapper/entity/LibraryModelPoint.java @@ -31,9 +31,14 @@ public class LibraryModelPoint implements Serializable { private Long id; /** - * 关联的 libraryId + * modelType */ - private Long libraryId; + private String modelType; + + /** + * 关联的 library或sys Id + */ + private Long relationId; /** * 左肩 diff --git a/src/main/java/com/ai/da/model/dto/DesignCollectionDTO.java b/src/main/java/com/ai/da/model/dto/DesignCollectionDTO.java index 29fdeb2b..0c1df4ea 100644 --- a/src/main/java/com/ai/da/model/dto/DesignCollectionDTO.java +++ b/src/main/java/com/ai/da/model/dto/DesignCollectionDTO.java @@ -34,6 +34,8 @@ public class DesignCollectionDTO { @ApiModelProperty("系统取图比列") private BigDecimal systemScale; + private String modelType; + @ApiModelProperty("templateId") private Long templateId; diff --git a/src/main/java/com/ai/da/model/dto/LibraryModelPointDTO.java b/src/main/java/com/ai/da/model/dto/LibraryModelPointDTO.java index 57eda2f4..cb7d8cfe 100644 --- a/src/main/java/com/ai/da/model/dto/LibraryModelPointDTO.java +++ b/src/main/java/com/ai/da/model/dto/LibraryModelPointDTO.java @@ -25,7 +25,9 @@ public class LibraryModelPointDTO implements Serializable { @NotNull(message = "libraryId cannot be empty!") @ApiModelProperty("libraryId") - private Long libraryId; + private Long relationId; + + private String modelType; @ApiModelProperty("templateId") private Long templateId; diff --git a/src/main/java/com/ai/da/model/dto/LibraryUploadDTO.java b/src/main/java/com/ai/da/model/dto/LibraryUploadDTO.java index a965a401..91ebf076 100644 --- a/src/main/java/com/ai/da/model/dto/LibraryUploadDTO.java +++ b/src/main/java/com/ai/da/model/dto/LibraryUploadDTO.java @@ -36,4 +36,8 @@ public class LibraryUploadDTO { */ private Integer width; + private String modelType; + + private String modelSex; + } diff --git a/src/main/java/com/ai/da/model/enums/ModelType.java b/src/main/java/com/ai/da/model/enums/ModelType.java new file mode 100644 index 00000000..ebffb760 --- /dev/null +++ b/src/main/java/com/ai/da/model/enums/ModelType.java @@ -0,0 +1,28 @@ +package com.ai.da.model.enums; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * @Author: SHAHAIBO + * @Date: 2023/08/01 17:21 + * @Description: 模特类型枚举类 + */ +public enum ModelType implements IEnumDisplay { + + SYSTEM("System"), + + LIBRARY("Library") + ; + + private String value; + + ModelType(String value) { + this.value = value; + } + + @Override + @JsonValue + public String getValue() { + return this.value; + } +} diff --git a/src/main/java/com/ai/da/model/vo/LibraryUpdateVo.java b/src/main/java/com/ai/da/model/vo/LibraryUpdateVo.java index b41a87f9..3b104be4 100644 --- a/src/main/java/com/ai/da/model/vo/LibraryUpdateVo.java +++ b/src/main/java/com/ai/da/model/vo/LibraryUpdateVo.java @@ -24,6 +24,8 @@ public class LibraryUpdateVo implements Serializable { @TableId(value = "id", type = IdType.AUTO) private Long id; + private String modelType; + @ApiModelProperty("用户ID") private Long accountId; diff --git a/src/main/java/com/ai/da/service/WorkspaceService.java b/src/main/java/com/ai/da/service/WorkspaceService.java index ad123563..007d7891 100644 --- a/src/main/java/com/ai/da/service/WorkspaceService.java +++ b/src/main/java/com/ai/da/service/WorkspaceService.java @@ -37,7 +37,7 @@ public interface WorkspaceService extends IService { Workspace getByIdNew(Long id); - List getMannequins(); + List getMannequins(String sex); void systemFileCopy(); } diff --git a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java index dabc4555..e97ba994 100644 --- a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java @@ -11,6 +11,7 @@ import com.ai.da.mapper.CollectionElementMapper; import com.ai.da.mapper.entity.*; import com.ai.da.mapper.entity.Collection; import com.ai.da.model.dto.*; +import com.ai.da.model.enums.ModelType; import com.ai.da.model.vo.*; import com.ai.da.python.PythonService; import com.ai.da.python.vo.DesignPythonItem; @@ -441,14 +442,24 @@ public class CollectionElementServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); + qw.lambda().eq(LibraryModelPoint::getModelType, ModelType.LIBRARY.getValue()); + qw.lambda().eq(LibraryModelPoint::getRelationId, byId.getId()); + LibraryModelPoint modelPoint = libraryModelPointService.getOne(qw); + if (Objects.isNull(modelPoint)) { + throw new BusinessException("error modelPoint get"); + } + elementVO.setDesignLibraryModelPoint(calculateTemplatePointTemplate(modelPoint,1654,1170,byId.getUrl())); + } + } +// elementVO.setDesignLibraryModelPoint(calculateTemplatePointTemplate(null,1654,1170,null)); return elementVO; } @Override diff --git a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java index 30082302..75812d8a 100644 --- a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java @@ -164,7 +164,7 @@ public class DesignItemServiceImpl extends ServiceImpl selectByLibraryIds(List libraryIds) { QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(LibraryModelPoint::getModelType, ModelType.LIBRARY.getValue()); queryWrapper.in("library_id", libraryIds); List libraryModelPoints = libraryModelPointMapper.selectList(queryWrapper); if(CollectionUtils.isEmpty(libraryModelPoints)){ diff --git a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java index f098e5af..6efb0be3 100644 --- a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java @@ -10,8 +10,10 @@ import com.ai.da.common.utils.DateUtil; import com.ai.da.common.utils.FileUtil; import com.ai.da.common.utils.MinioUtil; import com.ai.da.mapper.LibraryMapper; +import com.ai.da.mapper.SysFileMapper; import com.ai.da.mapper.entity.*; import com.ai.da.model.dto.*; +import com.ai.da.model.enums.ModelType; import com.ai.da.model.vo.*; import com.ai.da.service.LibraryModelPointService; import com.ai.da.service.LibraryService; @@ -44,6 +46,8 @@ public class LibraryServiceImpl extends ServiceImpl impl @Resource private LibraryMapper libraryMapper; @Resource + private SysFileMapper sysFileMapper; + @Resource private FileProperties fileProperties; @Resource private LibraryModelPointService libraryModelPointService; @@ -157,34 +161,53 @@ public class LibraryServiceImpl extends ServiceImpl impl bucketName = users; break; case MARKETING_SKETCH: - break; + throw new BusinessException("MARKETING_SKETCH type have been removed"); default: throw new BusinessException("unknown level1_type"); } String filePath = minioUtil.upload(bucketName, path, libraryUploadDTO.getFile()); //保存element元素 - Library library = resolveData(libraryUploadDTO, userInfo, filePath); - LibraryUpdateVo libraryUpdateVo = CopyUtil.copyObject(library, LibraryUpdateVo.class); - libraryUpdateVo.setMinIOPath(libraryUpdateVo.getUrl()); - libraryUpdateVo.setUrl(minioUtil.getPresignedUrl(filePath, 480)); - return libraryUpdateVo; + if (libraryUploadDTO.getModelType().equals(ModelType.LIBRARY.getValue())) { + Library library = resolveData(libraryUploadDTO, userInfo, filePath); + LibraryUpdateVo libraryUpdateVo = CopyUtil.copyObject(library, LibraryUpdateVo.class); + libraryUpdateVo.setMinIOPath(libraryUpdateVo.getUrl()); + libraryUpdateVo.setUrl(minioUtil.getPresignedUrl(filePath, 480)); + return libraryUpdateVo; + }else if (libraryUploadDTO.getModelType().equals(ModelType.SYSTEM.getValue())) { + Library library = resolveData(libraryUploadDTO, userInfo, filePath); + return null; + } + return null; } private Library resolveData(LibraryUploadDTO uploadDTO, AuthPrincipalVo userInfo, String filePath) { - Library library = CopyUtil.copyObject(uploadDTO, Library.class); - library.setAccountId(userInfo.getId()); - library.setName(DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD)); - library.setUrl(filePath); - //按时区计算 - library.setCreateDate(DateUtil.getByTimeZone(uploadDTO.getTimeZone())); + if (uploadDTO.getModelType().equals(ModelType.LIBRARY.getValue())) { + Library library = CopyUtil.copyObject(uploadDTO, Library.class); + library.setAccountId(userInfo.getId()); + library.setName(DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD)); + library.setUrl(filePath); + //按时区计算 + library.setCreateDate(DateUtil.getByTimeZone(uploadDTO.getTimeZone())); // String linuxDomain = fileProperties.getLinuxDomain(); // if (!StringUtils.isEmpty(linuxDomain)) { // //linux 系统 // String oldPath = fileProperties.getSys().getPath(); // library.setUrl(file.getAbsolutePath().replace(oldPath, linuxDomain)); // } - libraryMapper.insert(library); - return library; + libraryMapper.insert(library); + return library; + }else if (uploadDTO.getModelType().equals(ModelType.SYSTEM.getValue())) { + SysFile sysFile = new SysFile(); + sysFile.setName(DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD)); + sysFile.setLevel1Type("Models"); + sysFile.setLevel2Type(uploadDTO.getModelSex()); + sysFile.setUrl(filePath); + sysFile.setMd5(uploadDTO.getMd5()); + sysFileMapper.insert(sysFile); + return null; + }else { + throw new BusinessException("unknown model type"); + } } private String calculateFileUrl(LibraryLevel1TypeEnum level1TypeEnum, String level2Type, Long userId) { diff --git a/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java b/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java index 80b5c774..a4798107 100644 --- a/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java @@ -184,7 +184,7 @@ public class WorkspaceServiceImpl extends ServiceImpl getMannequins() { + public List getMannequins(String sex) { AuthPrincipalVo userInfo = UserContext.getUserHolder(); List result = new ArrayList<>(); QueryWrapper libraryQueryWrapper = new QueryWrapper<>(); @@ -197,11 +197,7 @@ public class WorkspaceServiceImpl extends ServiceImpl sysFileQueryWrapper = new QueryWrapper<>(); - sysFileQueryWrapper.lambda().eq(SysFile::getLevel1Type, SysFileLevel1TypeEnum.ACCESSORIES.getRealName()); - sysFileQueryWrapper.lambda().eq(SysFile::getLevel2Type, SysFileLevel2TypeEnum.BODY.getRealName()); +// sysFileQueryWrapper.lambda().eq(SysFile::getLevel1Type, SysFileLevel1TypeEnum.ACCESSORIES.getRealName()); +// sysFileQueryWrapper.lambda().eq(SysFile::getLevel2Type, SysFileLevel2TypeEnum.BODY.getRealName()); + sysFileQueryWrapper.lambda().eq(SysFile::getLevel1Type, "Models"); + sysFileQueryWrapper.lambda().eq(SysFile::getLevel2Type, sex); List sysFileList = sysFileMapper.selectList(sysFileQueryWrapper); if (!CollectionUtils.isEmpty(sysFileList)) { List modelVOList = new ArrayList<>(); @@ -219,11 +217,7 @@ public class WorkspaceServiceImpl extends ServiceImpl