diff --git a/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfit.java b/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfit.java index 9338d903..8fe281a6 100644 --- a/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfit.java +++ b/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfit.java @@ -30,8 +30,6 @@ public class TDesignPythonOutfit implements Serializable { @ApiModelProperty(value = "ID") @TableId(value = "id", type = IdType.AUTO) private Long id; - - private Long designItemId; /** * designItemId */ diff --git a/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfitDetail.java b/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfitDetail.java index 8c9bbc42..570898e0 100644 --- a/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfitDetail.java +++ b/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfitDetail.java @@ -51,8 +51,6 @@ public class TDesignPythonOutfitDetail implements Serializable { @ApiModelProperty(value = "图层") private String imageCategory; - @ApiModelProperty(value = "图层大小") - private String imageSize; /** * imageSize */ diff --git a/src/main/java/com/ai/da/python/vo/DesignPythonItem.java b/src/main/java/com/ai/da/python/vo/DesignPythonItem.java index cad3e596..4e207cef 100644 --- a/src/main/java/com/ai/da/python/vo/DesignPythonItem.java +++ b/src/main/java/com/ai/da/python/vo/DesignPythonItem.java @@ -86,12 +86,13 @@ public class DesignPythonItem { this.image_id = image_id; } - public DesignPythonItem(String type, String path, String color, DesignPythonItemPrint print, String icon, Long image_id) { + public DesignPythonItem(String type, String path, String color, DesignPythonItemPrint print, String icon, Long businessId, Long image_id) { this.type = type; this.path = path; this.color = color; this.print = print; this.icon = icon; + this.businessId = businessId; this.image_id = image_id; } } diff --git a/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java b/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java index 688ff9cb..6e0e5941 100644 --- a/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java +++ b/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java @@ -12,9 +12,9 @@ public class DesignPythonItemPrint { * print 绝对路径 */ @ApiModelProperty("图片绝对路径") - private String singlePath; + private String path; - private List path; + private List print_path_list; @ApiModelProperty("上传时候对应的类型,一级类型 Printboard ") private String level1Type; @@ -23,7 +23,7 @@ public class DesignPythonItemPrint { * print_scale */ @ApiModelProperty("print_scale") - private Float print_scale; + private Float scale; /** * 是否打点 @@ -36,10 +36,10 @@ public class DesignPythonItemPrint { private List> location; @ApiModelProperty("print的缩放比例 传 [0.2, 0.2]") - private List scale; + private List print_scale_list; @ApiModelProperty("print的旋转角度 传 [0.2, 0.2]") - private List angle; + private List print_angle_list; @JSONField(name="IfSingle") public Boolean getIfSingle() { @@ -48,16 +48,16 @@ public class DesignPythonItemPrint { // todo public DesignPythonItemPrint(String singlePath, String level1Type, Float scale, Boolean ifSingle) { - this.singlePath = singlePath; + this.path = singlePath; this.level1Type = level1Type; - this.print_scale = scale; + this.scale = scale; IfSingle = ifSingle; } public DesignPythonItemPrint() { } - public DesignPythonItemPrint(String singlePath) { - this.singlePath = singlePath; + public DesignPythonItemPrint(String path) { + this.path = path; } } diff --git a/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java b/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java index 182aa990..66053d60 100644 --- a/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java +++ b/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java @@ -34,4 +34,7 @@ public interface ITDesignPythonOutfitDetailService extends IService getDetailByDesignPythonOutfitId(Long designPythonOutfitId); DesignPythonOutfitVO convertToDesignPythonOutfitVO(TDesignPythonOutfitDetail detail); + + void deleteByDesignPythonOutfitId(Long designPythonOutfitId); + } diff --git a/src/main/java/com/ai/da/service/SysFileService.java b/src/main/java/com/ai/da/service/SysFileService.java index 13c97a98..e61e4717 100644 --- a/src/main/java/com/ai/da/service/SysFileService.java +++ b/src/main/java/com/ai/da/service/SysFileService.java @@ -49,11 +49,4 @@ public interface SysFileService extends IService { * @param urlList */ List getByUrlList(List urlList); - - /** - * 根据单条url查询 - * @param url - * @return - */ - SysFileVO getByUrl(String url, String type,String timeZone); } 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 327a1632..7305f4d8 100644 --- a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java @@ -7,6 +7,7 @@ import com.ai.da.common.enums.SingleOverallEnum; import com.ai.da.common.enums.SysFileLevel2TypeEnum; import com.ai.da.common.utils.CopyUtil; import com.ai.da.common.utils.DateUtil; +import com.ai.da.common.utils.MinioUtil; import com.ai.da.mapper.DesignItemMapper; import com.ai.da.mapper.entity.*; import com.ai.da.model.dto.DesignSingleDTO; @@ -25,10 +26,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.Assert; import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; import java.util.stream.Collectors; @@ -63,6 +67,10 @@ public class DesignItemServiceImpl extends ServiceImpl saveDesignSingleItemDetailAndLayers(DesignPythonObjects pythonObjects , Long designId,Long designItemId, Long collectionId, AuthPrincipalVo userInfo - , JSONObject responseJSONObject, String timeZone){ + , JSONObject outfit, String timeZone){ DesignItem designItem = new DesignItem(); String url = pythonObjects.getObjects().get(0).getBasic().getSave_name(); @@ -306,22 +314,24 @@ public class DesignItemServiceImpl extends ServiceImpl list = setTDesignPythonOutfitDetailList(layers, designId, designPythonOutfit.getId(), userInfo.getId()); @@ -331,8 +341,7 @@ public class DesignItemServiceImpl extends ServiceImpl setTDesignPythonOutfitDetailList(JSONArray layers, Long designId, Long designPythonOutfitId, Long userId){ - - // 保存图层信息; + // 设置图层信息; List list = new ArrayList<>(); for (int i = 0; i < layers.size(); i++) { JSONObject jsonObject = layers.getJSONObject(i); @@ -381,18 +390,17 @@ public class DesignItemServiceImpl extends ServiceImpl 不存数据库 submit -> 存数据库 List tDesignPythonOutfitDetails; + JSONObject data = jsonObject.getJSONObject("data"); + // todo 空指针 + JSONObject outfit = data.getJSONObject("0"); if (!designSingleIncludeLayersDTO.getIsPreview()){ - // todo 这里要再想想 + // 更新及保存图层信息 tDesignPythonOutfitDetails = saveDesignSingleItemDetailAndLayers(objects, design.getId(), designSingleIncludeLayersDTO.getDesignItemId(), - design.getCollectionId(), userInfo, jsonObject, designSingleIncludeLayersDTO.getTimeZone()); + design.getCollectionId(), userInfo, outfit, 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()); } @@ -405,7 +413,7 @@ public class DesignItemServiceImpl extends ServiceImpl impleme } designItemDetail.setIconPath(detail.getIcon()); DesignPythonItemPrint printObject = detail.getPrint(); - designItemDetail.setPrintPath(Objects.isNull(printObject)? "" :printObject.getSinglePath()); + designItemDetail.setPrintPath(Objects.isNull(printObject)? "" :printObject.getPath()); designItemDetails.add(designItemDetail); }); designItemDetailService.saveBatch(designItemDetails); @@ -492,7 +491,7 @@ public class DesignServiceImpl extends ServiceImpl impleme } designItemDetail.setIconPath(detail.getIcon()); DesignPythonItemPrint printObject = detail.getPrint(); - designItemDetail.setPrintPath(Objects.isNull(printObject)? "" :printObject.getSinglePath()); + designItemDetail.setPrintPath(Objects.isNull(printObject)? "" :printObject.getPath()); designItemDetails.add(designItemDetail); }); designItemDetailService.saveBatch(designItemDetails); diff --git a/src/main/java/com/ai/da/service/impl/SysFileServiceImpl.java b/src/main/java/com/ai/da/service/impl/SysFileServiceImpl.java index edd14df0..4b6b863c 100644 --- a/src/main/java/com/ai/da/service/impl/SysFileServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/SysFileServiceImpl.java @@ -9,6 +9,7 @@ import com.ai.da.common.utils.*; import com.ai.da.mapper.SysFileMapper; import com.ai.da.mapper.entity.SysFile; import com.ai.da.model.vo.SysFileVO; +import com.ai.da.service.PythonTAllInfoService; import com.ai.da.service.SysFileService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -250,26 +251,4 @@ public class SysFileServiceImpl extends ServiceImpl impl queryWrapper.in("url", urlList); return CopyUtil.copyList(sysFileMapper.selectList(queryWrapper),SysFileVO.class); } - - @Override - public SysFileVO getByUrl(String url, String type,String timeZone){ - QueryWrapper 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)); - } } diff --git a/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java b/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java index 665d18f5..b8286064 100644 --- a/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java @@ -1,6 +1,7 @@ package com.ai.da.service.impl; import com.ai.da.common.utils.CopyUtil; +import com.ai.da.common.utils.MinioUtil; import com.ai.da.mapper.TDesignPythonOutfitDetailMapper; import com.ai.da.mapper.entity.TDesignPythonOutfitDetail; import com.ai.da.model.vo.DesignPythonOutfitVO; @@ -9,9 +10,12 @@ 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 io.netty.util.internal.StringUtil; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; +import javax.annotation.Resource; import java.util.List; import java.util.Objects; @@ -24,6 +28,10 @@ import java.util.Objects; @Service public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl implements ITDesignPythonOutfitDetailService { + @Value("${minio.bucketName2}") + private String bucketName2; + @Resource + private MinioUtil minIoUtil; @Override public IPage selectTDesignPythonOutfitDetailPage(IPage page, TDesignPythonOutfitDetailVO tDesignPythonOutfitDetail) { return page.setRecords(baseMapper.selectTDesignPythonOutfitDetailPage(page, tDesignPythonOutfitDetail)); @@ -37,15 +45,6 @@ public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl) JSON.parse(detail.getPosition())); designPythonOutfitVO.setImageSize((List) JSON.parse(detail.getImageSize())); + designPythonOutfitVO.setImageUrl(StringUtil.isNullOrEmpty(detail.getImageUrl()) ? null : minIoUtil.getPresignedUrl(bucketName2,detail.getImageUrl(),5)); + designPythonOutfitVO.setMaskUrl(StringUtil.isNullOrEmpty(detail.getMaskUrl()) ? null : minIoUtil.getPresignedUrl(bucketName2,detail.getMaskUrl(),5)); return designPythonOutfitVO; } + @Override + public void deleteByDesignPythonOutfitId(Long designPythonOutfitId){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("design_python_outfit_id",designPythonOutfitId); + + TDesignPythonOutfitDetail tDesignPythonOutfitDetail = new TDesignPythonOutfitDetail(); + tDesignPythonOutfitDetail.setIsDeleted(1); + + baseMapper.update(tDesignPythonOutfitDetail,queryWrapper); + } + } diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index 2e5fbafd..e19661d7 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -42,5 +42,12 @@ spring.servlet.multipart.max-request-size= 5MB #access.python.ip=http://18.167.251.121 access.python.ip=http://43.198.80.117 +# minIO服务配置之信息 +minio.endpoint=http://18.167.251.121:9000 +minio.accessKey=minioadmin +minio.secretKey=minioadmin +minio.bucketName=aida-results +minio.bucketName2=aida-clothing +