修改异常处理+代码清理

This commit is contained in:
xupei
2023-11-02 15:35:07 +08:00
parent 85a815dddc
commit 0313149ea5
16 changed files with 91 additions and 130 deletions

View File

@@ -11,7 +11,6 @@ import com.tencentcloudapi.ses.v20201002.models.SendEmailRequest;
import com.tencentcloudapi.ses.v20201002.models.SendEmailResponse;
import com.tencentcloudapi.ses.v20201002.models.Template;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.Assert;
import java.util.Date;

View File

@@ -2,7 +2,6 @@ package com.ai.da.controller;
import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.response.Response;
import com.ai.da.common.utils.FileUtil;
import com.ai.da.common.utils.MD5Utils;
import com.ai.da.model.dto.*;
import com.ai.da.model.vo.*;
@@ -13,12 +12,10 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;

View File

@@ -34,7 +34,6 @@ public class GenerateController {
return Response.success(generateService.generateCaption(sketchElementId));
}
@ApiOperation("通过文字、图片生成图片")
@PostMapping("/sketchAndPrint")
public Response<GenerateCollectionVO> generateThroughImageText(@Valid @RequestBody GenerateThroughImageTextDTO generateThroughImageTextDTO) {

View File

@@ -1,7 +1,5 @@
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;
@@ -17,7 +15,6 @@ import com.ai.da.model.vo.*;
import com.ai.da.service.LibraryModelPointService;
import com.ai.da.service.LibraryService;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

View File

@@ -7,7 +7,6 @@ import com.ai.da.mapper.entity.Library;
import com.ai.da.model.dto.ChatFlushDTO;
import com.ai.da.model.dto.ChatRobotLibraryDTO;
import com.ai.da.model.dto.ChatSendDTO;
import com.ai.da.model.vo.ChatRobotLibraryVO;
import com.ai.da.model.vo.ChatRobotVO;
import com.ai.da.model.vo.PythonLibraryVo;
import com.ai.da.model.vo.SysFileVO;
@@ -21,7 +20,6 @@ import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import javax.annotation.Resource;
import java.math.BigDecimal;
@@ -57,15 +55,15 @@ public class PythonController {
return Response.success(pythonService.upload(file, operateType));
}
@ApiOperation(value = "python服务保存多张图片到java服务")
@PostMapping("/saveMultiGeneratePicture")
public Response<List<String>> uploadMultiple(@RequestParam("files") MultipartFile[] files,
@ApiParam("操作类型 generatePrint ->生成印花 " +
"designCollection ->设计collection generateAdvancedDesign ->生成高级design" +
"generateSketch -> 生成草图")
@RequestParam(value = "operateType") String operateType) {
return Response.success(pythonService.upload(files, operateType));
}
// @ApiOperation(value = "python服务保存多张图片到java服务")
// @PostMapping("/saveMultiGeneratePicture")
// public Response<List<String>> uploadMultiple(@RequestParam("files") MultipartFile[] files,
// @ApiParam("操作类型 generatePrint ->生成印花 " +
// "designCollection ->设计collection generateAdvancedDesign ->生成高级design" +
// "generateSketch -> 生成草图")
// @RequestParam(value = "operateType") String operateType) {
// return Response.success(pythonService.upload(files, operateType));
// }
@ApiOperation(value = "通过文件类型获取系统文件")
@GetMapping("/getSysFileByLevel2Type")

View File

@@ -3,12 +3,10 @@ package com.ai.da.controller;
import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.context.UserContext;
import com.ai.da.common.response.PageBaseResponse;
import com.ai.da.common.response.PageResponse;
import com.ai.da.common.response.Response;
import com.ai.da.common.utils.CopyUtil;
import com.ai.da.common.utils.MinioUtil;
import com.ai.da.mapper.entity.Account;
import com.ai.da.mapper.entity.Collection;
import com.ai.da.mapper.entity.UserLikeGroup;
import com.ai.da.model.dto.*;
import com.ai.da.model.vo.*;
@@ -21,15 +19,12 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import java.util.List;
import java.util.Map;

View File

@@ -145,26 +145,26 @@ public class PythonService {
return null;
}
@Transactional
public List<String> upload(MultipartFile[] files, String operateType) {
List<String> paths = new ArrayList<>();
//用户信息
PythonToJavaApiOperationTypeEnum operationType = PythonToJavaApiOperationTypeEnum.uploadOf(operateType);
Assert.notNull(operationType, "unknown operateType " + operateType + "!");
String path = calculateFileUrl(operationType);
for (MultipartFile file : files) {
File generateFile = FileUtil.upload2(file, path);
Assert.notNull(generateFile, "An error occurred while processing the file, please try again later");
String linuxDomain = fileProperties.getLinuxDomain();
if (!StringUtils.isEmpty(linuxDomain)) {
//linux 系统
String oldPath = fileProperties.getSys().getPath();
paths.add(generateFile.getAbsolutePath().replace(oldPath, linuxDomain));
}
}
return paths;
}
// @Transactional
// public List<String> upload(MultipartFile[] files, String operateType) {
// List<String> paths = new ArrayList<>();
// //用户信息
// PythonToJavaApiOperationTypeEnum operationType = PythonToJavaApiOperationTypeEnum.uploadOf(operateType);
// Assert.notNull(operationType, "unknown operateType " + operateType + "!");
// String path = calculateFileUrl(operationType);
// for (MultipartFile file : files) {
// File generateFile = FileUtil.upload2(file, path);
// Assert.notNull(generateFile, "An error occurred while processing the file!");
//
// String linuxDomain = fileProperties.getLinuxDomain();
// if (!StringUtils.isEmpty(linuxDomain)) {
// //linux 系统
// String oldPath = fileProperties.getSys().getPath();
// paths.add(generateFile.getAbsolutePath().replace(oldPath, linuxDomain));
// }
// }
// return paths;
// }
private String calculateFileUrl(PythonToJavaApiOperationTypeEnum operationType) {

View File

@@ -5,14 +5,11 @@ 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.*;
import com.ai.da.common.response.PageBaseResponse;
import com.ai.da.common.utils.*;
import com.ai.da.mapper.CollectionElementMapper;
import com.ai.da.mapper.GenerateDetailMapper;
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.MalePosition;
import com.ai.da.model.enums.ModelType;
import com.ai.da.model.enums.Sex;
import com.ai.da.model.vo.*;
@@ -26,24 +23,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import io.netty.util.internal.StringUtil;
import javafx.scene.chart.ValueAxis;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.LICENSE;
import org.bouncycastle.cms.CMSAuthenticatedGenerator;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.reactive.AbstractReactiveTransactionManager;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import sun.applet.resources.MsgAppletViewer;
import javax.annotation.Resource;
import java.io.File;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collector;
import java.util.stream.Collectors;
/**

View File

@@ -9,17 +9,13 @@ import com.ai.da.common.utils.MinioUtil;
import com.ai.da.mapper.CollectionMapper;
import com.ai.da.mapper.entity.Collection;
import com.ai.da.mapper.entity.CollectionElement;
import com.ai.da.model.dto.CollectionColorDTO;
import com.ai.da.model.vo.CollectionColorVO;
import com.ai.da.model.vo.CollectionElementVO;
import com.ai.da.model.vo.UserLikeCollectionVO;
import com.ai.da.service.CollectionElementService;
import com.ai.da.service.CollectionService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Maps;
import io.netty.util.internal.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

View File

@@ -1,43 +1,15 @@
package com.ai.da.service.impl;
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.CollectionLevel2TypeEnum;
import com.ai.da.common.enums.DesignTypeEnum;
import com.ai.da.common.enums.LibraryLevel1TypeEnum;
import com.ai.da.common.enums.LibraryTopTypeEnum;
import com.ai.da.common.response.PageBaseResponse;
import com.ai.da.common.utils.CopyUtil;
import com.ai.da.common.utils.DateUtil;
import com.ai.da.common.utils.FileUtil;
import com.ai.da.mapper.DesignHistoryMapper;
import com.ai.da.mapper.LibraryMapper;
import com.ai.da.mapper.entity.Design;
import com.ai.da.mapper.entity.DesignHistory;
import com.ai.da.mapper.entity.Library;
import com.ai.da.model.dto.LibraryUpdateDTO;
import com.ai.da.model.dto.LibraryUploadDTO;
import com.ai.da.model.dto.QueryLibraryPageServiceDTO;
import com.ai.da.model.vo.*;
import com.ai.da.service.DesignHistoryService;
import com.ai.da.service.LibraryModelPointService;
import com.ai.da.service.LibraryService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.base.Function;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
/**
* 服务实现类

View File

@@ -25,7 +25,6 @@ import com.google.common.collect.Lists;
import io.netty.util.internal.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.io.IOException;
@@ -414,10 +413,6 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
DesignLibraryModelPointVO designLibraryModelPointVO = null;
// 设置模特
if (Objects.nonNull(design.getTemplateId())) {
// LibraryModelPoint modelPoint = libraryModelPointService.getById(design.getTemplateId());
// Assert.notNull(modelPoint,"template does not exists!");
// Library library = libraryService.getById(modelPoint.getRelationId());
// Assert.notNull(library,"template does not exists!");
String modelUrl;
Integer high;
Integer width;
@@ -479,7 +474,7 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
});
TDesignPythonOutfit designPythonOutfit = designPythonOutfitService.getByDesignItemId(designSingleIncludeLayersDTO.getDesignItemId());
Assert.notNull(designItem, "design item detail layers does not exists!");
// Assert.notNull(designItem, "design item detail layers does not exists!");
return assembleDesignSingleResponse(designItem.getId(),
minioUtil.getPresignedUrl(designPythonOutfit.getDesignUrl(), 24 * 60),
@@ -493,14 +488,22 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
ComposeLayersVO designItemLayer = positionAndScaleVO.getLayers();
// 1、校验designItem是是否存在
DesignItem designItem = selectById(designItemLayer.getDesignItemId());
Assert.notNull(designItem, "designItem does not exists!");
if (Objects.isNull(designItem)){
throw new BusinessException("design.item.does.not.exist");
}
TDesignPythonOutfit designPythonOutfit = designPythonOutfitService.getByDesignItemId(designItemLayer.getDesignItemId());
Assert.notNull(designPythonOutfit, "layers does not exists!");
if (Objects.isNull(designPythonOutfit)){
throw new BusinessException("layers.does.not.exists");
}
// 2、校验layers是否存在
designItemLayer.getLayers().forEach(layer -> {
TDesignPythonOutfitDetail detail = designPythonOutfitDetailService.getById(layer.getId());
Assert.notNull(detail, layer.getImageCategory() + " layer does not exists!");
if (Objects.isNull(detail)){
log.error(layer.getImageCategory() + " layer does not exists!");
throw new BusinessException("layers.does.not.exists");
}
// Assert.notNull(detail, layer.getImageCategory() + " layer does not exists!");
/*layer.setImageUrl(detail.getImageUrl());
layer.setMaskUrl(detail.getMaskUrl());*/

View File

@@ -29,11 +29,9 @@ import com.google.common.collect.Lists;
import io.netty.util.internal.StringUtil;
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
@@ -841,7 +839,9 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
@Override
public String generateHighDesign(GenerateHighDesignDTO generateHighDesignDTO) {
DesignItem designItem = designItemService.getById(generateHighDesignDTO.getDesignItemId());
Assert.notNull(designItem, "design item does not exist!");
if (Objects.isNull(designItem)){
throw new BusinessException("design.item.does.not.exist");
}
String highUrl = pythonService.generateHighDesign(designItem.getDesignUrl());
//存储
designItemService.updateDesignHighUrl(designItem.getId(), highUrl, generateHighDesignDTO.getTimeZone());
@@ -851,7 +851,9 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
@Override
public Boolean deleteHighDesign(GenerateHighDesignDTO generateHighDesignDTO) {
DesignItem designItem = designItemService.getById(generateHighDesignDTO.getDesignItemId());
Assert.notNull(designItem, "design item does not exist!");
if (Objects.isNull(designItem)){
throw new BusinessException("design.item.does.not.exist");
}
if (StringUtils.isEmpty(designItem.getHighDesignUrl())) {
//并发情况 ,不提示 直接返回
return Boolean.TRUE;
@@ -1057,7 +1059,10 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
if (flag) {
// 1、判断designPythonOutfitId查出的图层信息是否为空不允许为空系统内部错误
List<TDesignPythonOutfitDetail> details = designPythonOutfitDetailService.getDetailByDesignPythonOutfitId(designPythonOutfit.getId());
Assert.notEmpty(details, "Some errors occurred, please restart the design");
if (Objects.isNull(details)){
log.error("Layer information is empty! DesignPythonOutfitId is " + designPythonOutfit.getId());
throw new BusinessException("layer.information.not.found");
}
details.forEach(detail -> {
List<Long> offset = new ArrayList<>();
if (StringUtil.isNullOrEmpty(detail.getOffset()) || detail.getOffset().equals("null")) {

View File

@@ -1,8 +1,7 @@
package com.ai.da.service.impl;
import cn.hutool.core.lang.Assert;
import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.context.UserContext;
import com.ai.da.common.enums.CollectionLevel1TypeEnum;
import com.ai.da.common.enums.GenerateModeEnum;
import com.ai.da.common.enums.ModelNameEnum;
import com.ai.da.common.utils.DateUtil;
@@ -55,9 +54,9 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
@Override
public GenerateCaptionVO generateCaption(Long sketchElementId) {
CollectionElement collectionElement = collectionElementMapper.selectById(sketchElementId);
Assert.notNull(collectionElement, "System error!Please reselect the sketch");
Assert.isTrue("Sketchboard".equals(collectionElement.getLevel1Type()) && !StringUtil.isNullOrEmpty(collectionElement.getUrl())
, "System error!Please reselect the sketch");
if (Objects.isNull(collectionElement)){
throw new BusinessException("the.image.does.not.exist.please.reselect");
}
String url = collectionElement.getUrl();
// String caption = pythonService.generateSketchCaption(url);
GenerateCaptionVO recognized_caption = new GenerateCaptionVO("recognized caption");
@@ -127,16 +126,21 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
private void validateGeneraType(Generate generate, String text, Long elementId) {
switch (generate.getGenerateType()) {
case "text":
Assert.notNull(text, "Please input the caption");
if (StringUtil.isNullOrEmpty(text)){
throw new BusinessException("please.input.the.caption");
}
generate.setText(text);
break;
case "image":
Assert.notNull(elementId, "Please choose a image");
if (Objects.isNull(elementId)){
throw new BusinessException("please.choose.an.image");
}
generate.setCollectionElementId(elementId);
break;
case "text-image":
Assert.isTrue(!StringUtil.isNullOrEmpty(text) && Objects.nonNull(elementId),
"Please input the caption and choose a image");
if (StringUtil.isNullOrEmpty(text) || Objects.isNull(elementId)){
throw new BusinessException("please.input.the.caption.and.choose.an.image");
}
generate.setText(text);
generate.setCollectionElementId(elementId);
default:
@@ -148,20 +152,27 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
// 1、判断参数是否正确
// 1.1 必须参数是否非空
if (SKETCH_BOARD.getRealName().equals(generateLikeDTO.getLevel1Type())) {
Assert.isTrue(!StringUtil.isNullOrEmpty(generateLikeDTO.getLevel2Type()), "level2Type cannot be empty");
if (StringUtil.isNullOrEmpty(generateLikeDTO.getLevel2Type())){
throw new BusinessException("level2Type.cannot.be.empty");
}
}
// 1.2 判断参数是否真实有效
Long generateDetailId = generateLikeDTO.getGenerateDetailId();
GenerateDetail generateDetail = generateDetailMapper.selectById(generateDetailId);
Assert.notNull(generateDetail, "generateItem does not exist");
if (Objects.isNull(generateDetail)){
throw new BusinessException("generateItem.does.not.exist");
}
Generate generate = getById(generateDetail.getGenerateId());
Assert.isTrue(generateLikeDTO.getLevel1Type().equals(generate.getLevel1Type()), "level1Type does not match");
if (!generateLikeDTO.getLevel1Type().equals(generate.getLevel1Type())){
throw new BusinessException("level1Type.does.not.match");
}
// 2、将like的图片信息存入library
// 2.1、不能重复喜欢
Library libraryDetail = libraryService.getById(generateDetail.getLibraryId());
Assert.isTrue(Objects.isNull(generateDetail.getLibraryId()) || Objects.isNull(libraryDetail),
"Duplicate likes are not allowed");
if (Objects.nonNull(generateDetail.getLibraryId()) || Objects.nonNull(libraryDetail)){
throw new BusinessException("duplicate.likes.are.not.allowed");
}
// 2.2、添加到library
AuthPrincipalVo userInfo = UserContext.getUserHolder();
Long accountId = userInfo.getId();
@@ -178,7 +189,9 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
public Boolean generateDislike(Long generateDetailId, String timeZone) {
// 1、确定generateDetail中是否有这条记录
GenerateDetail generateDetail = generateDetailMapper.selectById(generateDetailId);
Assert.notNull(generateDetail, "generateItem does not exist");
if (Objects.isNull(generateDetail)){
throw new BusinessException("generateItem.does.not.exist");
}
// 2、修改generateDetail表中的isLike、libraryId字段
updateLikeStatus(generateDetailId, (byte) 0, 0L, timeZone);

View File

@@ -1,22 +1,16 @@
package com.ai.da.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.json.JSONUtil;
import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.enums.LibraryLevel1TypeEnum;
import com.ai.da.common.enums.SingleOverallEnum;
import com.ai.da.common.utils.CopyUtil;
import com.ai.da.common.utils.DateUtil;
import com.ai.da.mapper.LibraryModelPointMapper;
import com.ai.da.mapper.entity.*;
import com.ai.da.model.dto.DesignSingleDTO;
import com.ai.da.model.dto.DesignSingleItemDTO;
import com.ai.da.model.dto.LibraryModelPointDTO;
import com.ai.da.model.dto.ModelsDotDTO;
import com.ai.da.model.enums.ModelType;
import com.ai.da.model.vo.LibraryModelPointVO;
import com.ai.da.model.vo.LibraryUpdateVo;
import com.ai.da.python.PythonService;
import com.ai.da.python.vo.DesignPythonObjects;
import com.ai.da.service.DesignService;
@@ -27,17 +21,13 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.omg.PortableServer.LIFESPAN_POLICY_ID;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 服务实现类

View File

@@ -2,13 +2,10 @@ package com.ai.da.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.context.UserContext;
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.TDesignPythonOutfitMapper;
import com.ai.da.mapper.UserLikeGroupMapper;
import com.ai.da.mapper.entity.Account;
import com.ai.da.mapper.entity.TDesignPythonOutfit;
import com.ai.da.mapper.entity.UserLikeGroup;
import com.ai.da.model.vo.*;
@@ -20,7 +17,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.Date;