Merge remote-tracking branch 'origin/dev/dev' into dev/dev
# Conflicts: # src/main/java/com/ai/da/python/PythonService.java
This commit is contained in:
@@ -7,10 +7,12 @@ import com.ai.da.mapper.primary.entity.Collection;
|
|||||||
import com.ai.da.mapper.secondary.AttributeRetrievalMapper;
|
import com.ai.da.mapper.secondary.AttributeRetrievalMapper;
|
||||||
import com.ai.da.model.dto.CollectionSketchDTO;
|
import com.ai.da.model.dto.CollectionSketchDTO;
|
||||||
import com.ai.da.model.dto.DesignCollectionDTO;
|
import com.ai.da.model.dto.DesignCollectionDTO;
|
||||||
|
import com.ai.da.model.enums.DesignProcess;
|
||||||
import com.ai.da.model.vo.ValidateElementVO;
|
import com.ai.da.model.vo.ValidateElementVO;
|
||||||
import com.ai.da.python.PythonService;
|
import com.ai.da.python.PythonService;
|
||||||
import com.ai.da.python.vo.DesignPythonObjects;
|
import com.ai.da.python.vo.DesignPythonObjects;
|
||||||
import com.ai.da.service.CollectionElementService;
|
import com.ai.da.service.CollectionElementService;
|
||||||
|
import com.ai.da.service.UserLikeGroupService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -20,6 +22,7 @@ import org.apache.poi.ss.usermodel.Workbook;
|
|||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
@@ -27,9 +30,12 @@ import javax.annotation.Resource;
|
|||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -51,6 +57,7 @@ public class MyTaskScheduler {
|
|||||||
// saveUserLikedSketchDataToRedis(4L);
|
// saveUserLikedSketchDataToRedis(4L);
|
||||||
// runComparisonAndRecordResults(5);
|
// runComparisonAndRecordResults(5);
|
||||||
// saveDataToNumpyFormat();
|
// saveDataToNumpyFormat();
|
||||||
|
// projectDataCreate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
@@ -61,6 +68,13 @@ public class MyTaskScheduler {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DesignMapper designMapper;
|
private DesignMapper designMapper;
|
||||||
|
@Resource
|
||||||
|
private ProjectMapper projectMapper;
|
||||||
|
@Resource
|
||||||
|
private WorkspaceMapper workspaceMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private UserLikeGroupService userLikeGroupService;
|
||||||
|
|
||||||
// 定时任务,每十五天执行一次
|
// 定时任务,每十五天执行一次
|
||||||
// @Scheduled(cron = "0 0 0 ? * MON")
|
// @Scheduled(cron = "0 0 0 ? * MON")
|
||||||
@@ -199,6 +213,9 @@ public class MyTaskScheduler {
|
|||||||
@Resource
|
@Resource
|
||||||
private ToProductImageResultMapper toProductImageResultMapper;
|
private ToProductImageResultMapper toProductImageResultMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ToProductImageRecordMapper toProductImageRecordMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private MinioUtil minioUtil;
|
private MinioUtil minioUtil;
|
||||||
public void clearMinio() {
|
public void clearMinio() {
|
||||||
@@ -563,21 +580,21 @@ public class MyTaskScheduler {
|
|||||||
allUserLikes.addAll(userLikes);
|
allUserLikes.addAll(userLikes);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据时间排序
|
// // 根据时间排序
|
||||||
allUserLikes.sort(Comparator.comparing(UserLike::getCreateDate));
|
// allUserLikes.sort(Comparator.comparing(UserLike::getCreateDate));
|
||||||
|
//
|
||||||
// 计算 80% 和 20% 的分割
|
// // 计算 80% 和 20% 的分割
|
||||||
int totalLikesSize = allUserLikes.size();
|
// int totalLikesSize = allUserLikes.size();
|
||||||
int splitIndexLikes = (int) Math.ceil(totalLikesSize * 0.8);
|
// int splitIndexLikes = (int) Math.ceil(totalLikesSize * 0.8);
|
||||||
|
//
|
||||||
// 分割用户喜欢的集合
|
// // 分割用户喜欢的集合
|
||||||
List<UserLike> first80PercentLikes = allUserLikes.subList(0, splitIndexLikes);
|
// List<UserLike> first80PercentLikes = allUserLikes.subList(0, splitIndexLikes);
|
||||||
List<UserLike> last20PercentLikes = allUserLikes.subList(splitIndexLikes, totalLikesSize);
|
// List<UserLike> last20PercentLikes = allUserLikes.subList(splitIndexLikes, totalLikesSize);
|
||||||
|
|
||||||
// 分别处理前 80% 和后 20% 的数据
|
// 分别处理前 80% 和后 20% 的数据
|
||||||
|
|
||||||
// 处理前 80%
|
// 处理前 80%
|
||||||
for (UserLike userLike : first80PercentLikes) {
|
for (UserLike userLike : allUserLikes) {
|
||||||
Long designItemId = userLike.getDesignItemId();
|
Long designItemId = userLike.getDesignItemId();
|
||||||
QueryWrapper<DesignItemDetail> designItemDetailQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<DesignItemDetail> designItemDetailQueryWrapper = new QueryWrapper<>();
|
||||||
designItemDetailQueryWrapper.lambda().eq(DesignItemDetail::getDesignItemId, designItemId);
|
designItemDetailQueryWrapper.lambda().eq(DesignItemDetail::getDesignItemId, designItemId);
|
||||||
@@ -598,32 +615,32 @@ public class MyTaskScheduler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 处理后 20%
|
// 处理后 20%
|
||||||
if (last20PercentLikes.size() == 0) {
|
// if (last20PercentLikes.size() == 0) {
|
||||||
// 输出没有记录的用户 ID
|
// // 输出没有记录的用户 ID
|
||||||
log.info("用户 ID: " + accountId + " 在后 20% 的 userLike 列表为空");
|
// log.info("用户 ID: " + accountId + " 在后 20% 的 userLike 列表为空");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
for (UserLike userLike : last20PercentLikes) {
|
// for (UserLike userLike : last20PercentLikes) {
|
||||||
Long designItemId = userLike.getDesignItemId();
|
// Long designItemId = userLike.getDesignItemId();
|
||||||
QueryWrapper<DesignItemDetail> designItemDetailQueryWrapper = new QueryWrapper<>();
|
// QueryWrapper<DesignItemDetail> designItemDetailQueryWrapper = new QueryWrapper<>();
|
||||||
designItemDetailQueryWrapper.lambda().eq(DesignItemDetail::getDesignItemId, designItemId);
|
// designItemDetailQueryWrapper.lambda().eq(DesignItemDetail::getDesignItemId, designItemId);
|
||||||
List<DesignItemDetail> designItemDetails = designItemDetailMapper.selectList(designItemDetailQueryWrapper);
|
// List<DesignItemDetail> designItemDetails = designItemDetailMapper.selectList(designItemDetailQueryWrapper);
|
||||||
for (DesignItemDetail designItemDetail : designItemDetails) {
|
// for (DesignItemDetail designItemDetail : designItemDetails) {
|
||||||
|
//
|
||||||
if (designItemDetail.getType().equals("Body") || !designItemDetail.getPath().contains("aida-sys-image")) {
|
// if (designItemDetail.getType().equals("Body") || !designItemDetail.getPath().contains("aida-sys-image")) {
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
UserPreferenceLogPrediction userPreferenceLogPrediction = new UserPreferenceLogPrediction();
|
// UserPreferenceLogPrediction userPreferenceLogPrediction = new UserPreferenceLogPrediction();
|
||||||
userPreferenceLogPrediction.setPath(designItemDetail.getPath());
|
// userPreferenceLogPrediction.setPath(designItemDetail.getPath());
|
||||||
userPreferenceLogPrediction.setAccountId(accountId);
|
// userPreferenceLogPrediction.setAccountId(accountId);
|
||||||
userPreferenceLogPrediction.setUserLikeGroupId(userLike.getUserLikeGroupId());
|
// userPreferenceLogPrediction.setUserLikeGroupId(userLike.getUserLikeGroupId());
|
||||||
userPreferenceLogPrediction.setDataTime(designItemDetail.getCreateDate().toInstant()
|
// userPreferenceLogPrediction.setDataTime(designItemDetail.getCreateDate().toInstant()
|
||||||
.atZone(ZoneId.systemDefault())
|
// .atZone(ZoneId.systemDefault())
|
||||||
.toLocalDateTime());
|
// .toLocalDateTime());
|
||||||
userPreferenceLogPredictionMapper.insert(userPreferenceLogPrediction);
|
// userPreferenceLogPredictionMapper.insert(userPreferenceLogPrediction);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1315,4 +1332,87 @@ public class MyTaskScheduler {
|
|||||||
System.err.println("保存目标数据时发生错误: " + e.getMessage());
|
System.err.println("保存目标数据时发生错误: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public void projectDataCreate() {
|
||||||
|
// QueryWrapper<UserLikeGroup> qw = new QueryWrapper<>();
|
||||||
|
// qw.lambda().ne(UserLikeGroup::getAccountId, -1);
|
||||||
|
// List<UserLikeGroup> userLikeGroups = userLikeGroupMapper.selectList(qw);
|
||||||
|
// for (UserLikeGroup userLikeGroup : userLikeGroups) {
|
||||||
|
// Project project = new Project();
|
||||||
|
// project.setAccountId(userLikeGroup.getAccountId());
|
||||||
|
// project.setName(userLikeGroup.getName());
|
||||||
|
// project.setCreateTime(LocalDateTime.ofInstant(userLikeGroup.getCreateDate().toInstant(), ZoneId.systemDefault()));
|
||||||
|
// project.setUpdateTime(LocalDateTime.ofInstant(userLikeGroup.getUpdateDate().toInstant(), ZoneId.systemDefault()));
|
||||||
|
// QueryWrapper<Design> designQueryWrapper = new QueryWrapper<>();
|
||||||
|
// designQueryWrapper.lambda().eq(Design::getCollectionId, userLikeGroup.getCollectionId());
|
||||||
|
// Design design = designMapper.selectOne(designQueryWrapper);
|
||||||
|
// if (Objects.isNull(design)) {
|
||||||
|
// System.out.println(userLikeGroup.getCollectionId());
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// if (design.getSingleOverall().equals("overall")) {
|
||||||
|
// project.setProcess(DesignProcess.SERIES_DESIGN.name());
|
||||||
|
// }else {
|
||||||
|
// project.setProcess(DesignProcess.SINGLE_DESIGN.name());
|
||||||
|
// }
|
||||||
|
// projectMapper.insert(project);
|
||||||
|
// Long accountId = userLikeGroup.getAccountId();
|
||||||
|
// QueryWrapper<Workspace> workspaceQueryWrapper = new QueryWrapper<>();
|
||||||
|
// workspaceQueryWrapper.lambda().eq(Workspace::getAccountId, accountId);
|
||||||
|
// workspaceQueryWrapper.lambda().eq(Workspace::getIsLastIndex, 1);
|
||||||
|
// Workspace workspace = workspaceMapper.selectOne(workspaceQueryWrapper);
|
||||||
|
// if (Objects.isNull(workspace)) {
|
||||||
|
// System.out.println(accountId);
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// workspace.setIsLastIndex(0);
|
||||||
|
// workspace.setProjectId(project.getId());
|
||||||
|
//// workspace.setSystemDesignerPercentage(design.getSystemScale().multiply(new BigDecimal("100")).setScale(0, RoundingMode.HALF_UP).intValueExact());
|
||||||
|
// if (!design.getSingleOverall().equals("overall")) {
|
||||||
|
// workspace.setPosition(design.getSwitchCategory());
|
||||||
|
// }
|
||||||
|
// workspace.setId(null);
|
||||||
|
// workspaceMapper.insert(workspace);
|
||||||
|
//
|
||||||
|
// QueryWrapper<CollectionElement> collectionElementQueryWrapper = new QueryWrapper<>();
|
||||||
|
// collectionElementQueryWrapper.lambda().eq(CollectionElement::getCollectionId, userLikeGroup.getCollectionId());
|
||||||
|
// List<CollectionElement> collectionElements = collectionElementMapper.selectList(collectionElementQueryWrapper);
|
||||||
|
// for (CollectionElement collectionElement : collectionElements) {
|
||||||
|
// collectionElement.setProjectId(project.getId());
|
||||||
|
// collectionElementMapper.updateById(collectionElement);
|
||||||
|
// }
|
||||||
|
// Collection collection = collectionMapper.selectById(userLikeGroup.getCollectionId());
|
||||||
|
// if (collection.getMoodTemplateId() != null) {
|
||||||
|
// CollectionElement collectionElement = collectionElementMapper.selectById(collection.getMoodTemplateId());
|
||||||
|
// collectionElement.setProjectId(userLikeGroup.getProjectId());
|
||||||
|
// collectionElementMapper.updateById(collectionElement);
|
||||||
|
// }
|
||||||
|
// userLikeGroup.setProjectId(project.getId());
|
||||||
|
// userLikeGroupMapper.updateById(userLikeGroup);
|
||||||
|
// }
|
||||||
|
QueryWrapper<Project> projectQueryWrapper = new QueryWrapper<>();
|
||||||
|
List<Project> projects = projectMapper.selectList(projectQueryWrapper);
|
||||||
|
for (Project project : projects) {
|
||||||
|
UserLikeGroup userLikeGroup = userLikeGroupService.getByProjectId(project.getId());
|
||||||
|
if (Objects.nonNull(userLikeGroup)) {
|
||||||
|
Long userLikeGroupId = userLikeGroup.getId();
|
||||||
|
QueryWrapper<ToProductImageRecord> toProductImageRecordQueryWrapper = new QueryWrapper<>();
|
||||||
|
toProductImageRecordQueryWrapper.lambda().eq(ToProductImageRecord::getUserLikeGroupId, userLikeGroupId);
|
||||||
|
List<ToProductImageRecord> toProductImageRecords = toProductImageRecordMapper.selectList(toProductImageRecordQueryWrapper);
|
||||||
|
for (ToProductImageRecord toProductImageRecord : toProductImageRecords) {
|
||||||
|
toProductImageRecord.setProjectId(project.getId());
|
||||||
|
toProductImageRecordMapper.updateById(toProductImageRecord);
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryWrapper<ToProductImageResult> toProductImageResultQueryWrapper = new QueryWrapper<>();
|
||||||
|
toProductImageResultQueryWrapper.lambda().eq(ToProductImageResult::getUserLikeGroupId, userLikeGroupId);
|
||||||
|
List<ToProductImageResult> toProductImageResults = toProductImageResultMapper.selectList(toProductImageResultQueryWrapper);
|
||||||
|
for (ToProductImageResult toProductImageResult : toProductImageResults) {
|
||||||
|
toProductImageResult.setProjectId(project.getId());
|
||||||
|
toProductImageResultMapper.updateById(toProductImageResult);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,6 +78,6 @@ public class AccountTask {
|
|||||||
// 每月初刷新所有用户用户名剩余修改次数
|
// 每月初刷新所有用户用户名剩余修改次数
|
||||||
public void resetUsernameModifyTimes(){
|
public void resetUsernameModifyTimes(){
|
||||||
log.info("重置所有用户的用户名修改次数");
|
log.info("重置所有用户的用户名修改次数");
|
||||||
// redisUtil.batchDeleteKeysWithSamePrefix(RedisUtil.NICKNAME_MODIFY_TIMES);
|
redisUtil.batchDeleteKeysWithSamePrefix(RedisUtil.NICKNAME_MODIFY_TIMES);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -492,4 +492,12 @@ public class RedisUtil {
|
|||||||
|
|
||||||
|
|
||||||
public final static String STRIPE_EXCEPTION_LOG = "StripeException:";
|
public final static String STRIPE_EXCEPTION_LOG = "StripeException:";
|
||||||
|
|
||||||
|
public void batchDeleteKeysWithSamePrefix(String prefix){
|
||||||
|
Set<String> keys = redisTemplate.keys(prefix + "*");
|
||||||
|
assert keys != null;
|
||||||
|
if (!keys.isEmpty()){
|
||||||
|
redisTemplate.delete(keys);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class ProjectController {
|
|||||||
@PostMapping("/saveOrUpdate")
|
@PostMapping("/saveOrUpdate")
|
||||||
@ApiOperationSupport(order = 1)
|
@ApiOperationSupport(order = 1)
|
||||||
@ApiOperation(value = "新增或编辑", notes = "传入project")
|
@ApiOperation(value = "新增或编辑", notes = "传入project")
|
||||||
public Response<Long> saveOrUpdateProject(@Valid @RequestBody ProjectDTO projectDTO) {
|
public Response<SaveOrUpdateProjectVO> saveOrUpdateProject(@Valid @RequestBody ProjectDTO projectDTO) {
|
||||||
return Response.success(workspaceService.saveOrUpdateProject(projectDTO));
|
return Response.success(workspaceService.saveOrUpdateProject(projectDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ public class ProjectController {
|
|||||||
@PostMapping("/getMannequinDetail")
|
@PostMapping("/getMannequinDetail")
|
||||||
@ApiOperationSupport(order = 7)
|
@ApiOperationSupport(order = 7)
|
||||||
@ApiOperation(value = "获取模特详情", notes = "传入mannequinId")
|
@ApiOperation(value = "获取模特详情", notes = "传入mannequinId")
|
||||||
public Response<LibraryModelPoint> getMannequinDetail(@Valid @RequestBody MannequinDTO mannequinDTO) {
|
public Response<QueryLibraryPageVO> getMannequinDetail(@Valid @RequestBody MannequinDTO mannequinDTO) {
|
||||||
return Response.success(userLikeGroupService.getMannequinDetail(mannequinDTO));
|
return Response.success(userLikeGroupService.getMannequinDetail(mannequinDTO));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -192,8 +193,8 @@ public class SavedCollectionController {
|
|||||||
|
|
||||||
@ApiOperation(value = "toProductImageElementUpload")
|
@ApiOperation(value = "toProductImageElementUpload")
|
||||||
@PostMapping("/toProductImageElementUpload")
|
@PostMapping("/toProductImageElementUpload")
|
||||||
public Response<ToProductElementVO> toProductImageElementUpload(@RequestParam("file") MultipartFile file, @RequestParam(value = "userlikeGroupId") Long userLikeGroupId) {
|
public Response<ToProductElementVO> toProductImageElementUpload(@RequestParam("file") MultipartFile file, @RequestParam(value = "projectId") Long projectId) {
|
||||||
return Response.success(userLikeGroupService.toProductImageElementUpload(file, userLikeGroupId));
|
return Response.success(userLikeGroupService.toProductImageElementUpload(file, projectId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "productImageLike")
|
@ApiOperation(value = "productImageLike")
|
||||||
@@ -257,4 +258,22 @@ public class SavedCollectionController {
|
|||||||
public Response<Boolean> productImageUpload(@Valid @RequestBody ProductImageInitializeDTO productImageInitializeDTO) {
|
public Response<Boolean> productImageUpload(@Valid @RequestBody ProductImageInitializeDTO productImageInitializeDTO) {
|
||||||
return Response.success(userLikeGroupService.productImageInitialize(productImageInitializeDTO));
|
return Response.success(userLikeGroupService.productImageInitialize(productImageInitializeDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "brandDNASaveOrUpdate")
|
||||||
|
@PostMapping("/brandDNASaveOrUpdate")
|
||||||
|
public Response<Boolean> brandDNASaveOrUpdate(@Valid @RequestBody BrandDNADTO brandDNADTO) {
|
||||||
|
return Response.success(userLikeGroupService.brandDNASaveOrUpdate(brandDNADTO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "brandLogoUpload")
|
||||||
|
@PostMapping("/brandLogoUpload")
|
||||||
|
public Response<String> brandDNASaveOrUpdate(@RequestParam("file") MultipartFile file) {
|
||||||
|
return Response.success(userLikeGroupService.brandLogoUpload(file));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "brandDNAUpload")
|
||||||
|
@PostMapping("/brandDNAUpload")
|
||||||
|
public Response<String> brandDNAUpload(@RequestParam("file") MultipartFile file, @RequestParam("brandId") Long brandId) throws IOException {
|
||||||
|
return Response.success(userLikeGroupService.brandDNAUpload(file, brandId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.BrandDNA;
|
||||||
|
|
||||||
|
public interface BrandDNAMapper extends CommonMapper<BrandDNA> {
|
||||||
|
}
|
||||||
@@ -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.BrandRelLibrary;
|
||||||
|
|
||||||
|
public interface BrandRelLibraryMapper extends CommonMapper<BrandRelLibrary> {
|
||||||
|
}
|
||||||
37
src/main/java/com/ai/da/mapper/primary/entity/BrandDNA.java
Normal file
37
src/main/java/com/ai/da/mapper/primary/entity/BrandDNA.java
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@TableName("brand")
|
||||||
|
public class BrandDNA implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private Long accountId;
|
||||||
|
|
||||||
|
private String brandName;
|
||||||
|
|
||||||
|
private String brandSlogan;
|
||||||
|
|
||||||
|
private String brandLogo;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.ai.da.mapper.primary.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@TableName("brand_rel_library")
|
||||||
|
public class BrandRelLibrary implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private Long brandId;
|
||||||
|
private Long libraryId;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -19,6 +19,8 @@ public class ToProductElement implements Serializable {
|
|||||||
@ApiModelProperty(value = "userLikeGroupId")
|
@ApiModelProperty(value = "userLikeGroupId")
|
||||||
private Long userLikeGroupId;
|
private Long userLikeGroupId;
|
||||||
|
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
@ApiModelProperty(value = "url")
|
@ApiModelProperty(value = "url")
|
||||||
private String url;
|
private String url;
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ public class ToProductImageRecord implements Serializable {
|
|||||||
@ApiModelProperty(value = "userLikeGroupId")
|
@ApiModelProperty(value = "userLikeGroupId")
|
||||||
private Long userLikeGroupId;
|
private Long userLikeGroupId;
|
||||||
|
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
@ApiModelProperty(value = "prompt")
|
@ApiModelProperty(value = "prompt")
|
||||||
private String prompt;
|
private String prompt;
|
||||||
|
|
||||||
|
|||||||
@@ -49,4 +49,6 @@ public class ToProductImageResult implements Serializable {
|
|||||||
private BigDecimal imageStrength;
|
private BigDecimal imageStrength;
|
||||||
|
|
||||||
private String direction;
|
private String direction;
|
||||||
|
|
||||||
|
private Long projectId;
|
||||||
}
|
}
|
||||||
|
|||||||
13
src/main/java/com/ai/da/model/dto/BrandDNADTO.java
Normal file
13
src/main/java/com/ai/da/model/dto/BrandDNADTO.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package com.ai.da.model.dto;
|
||||||
|
|
||||||
|
import com.ai.da.mapper.primary.entity.BrandDNA;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
//@AllArgsConstructor
|
||||||
|
//@NoArgsConstructor
|
||||||
|
public class BrandDNADTO extends BrandDNA {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -26,4 +26,6 @@ public class DesignLikeDTO {
|
|||||||
@NotBlank(message = "timeZone.cannot.be.empty")
|
@NotBlank(message = "timeZone.cannot.be.empty")
|
||||||
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
|
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
|
||||||
private String timeZone;
|
private String timeZone;
|
||||||
|
|
||||||
|
private Long projectId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,4 +10,5 @@ import lombok.NoArgsConstructor;
|
|||||||
public class MannequinDTO {
|
public class MannequinDTO {
|
||||||
private Long id;
|
private Long id;
|
||||||
private String type;
|
private String type;
|
||||||
|
// private String modelType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,4 +7,6 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
public class ProductImageInitializeDTO {
|
public class ProductImageInitializeDTO {
|
||||||
private List<Long> libraryIds;
|
private List<Long> libraryIds;
|
||||||
|
|
||||||
|
private Long brandId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import java.util.List;
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class ToProductImageDTO {
|
public class ToProductImageDTO {
|
||||||
private Long userLikeGroupId;
|
private Long projectId;
|
||||||
private List<ToProductImageVO> toProductImageVOList;
|
private List<ToProductImageVO> toProductImageVOList;
|
||||||
private String prompt;
|
private String prompt;
|
||||||
private BigDecimal imageStrength;
|
private BigDecimal imageStrength;
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ public class ModuleChooseVO {
|
|||||||
private List<ToProductImageResultVO> relight;
|
private List<ToProductImageResultVO> relight;
|
||||||
|
|
||||||
private CavasModuleChooseVO canvas;
|
private CavasModuleChooseVO canvas;
|
||||||
|
|
||||||
|
private List<CollectionSketchVO> boundingBox;
|
||||||
// private moodBoardModuleChooseVO poseTransfer;
|
// private moodBoardModuleChooseVO poseTransfer;
|
||||||
// private moodBoardModuleChooseVO patternMaking3D;
|
// private moodBoardModuleChooseVO patternMaking3D;
|
||||||
// private moodBoardModuleChooseVO deReconstruction;
|
// private moodBoardModuleChooseVO deReconstruction;
|
||||||
|
|||||||
14
src/main/java/com/ai/da/model/vo/SaveOrUpdateProjectVO.java
Normal file
14
src/main/java/com/ai/da/model/vo/SaveOrUpdateProjectVO.java
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
package com.ai.da.model.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class SaveOrUpdateProjectVO {
|
||||||
|
private Long id;
|
||||||
|
private WorkspaceVO workspaceVO;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3920,9 +3920,9 @@ public class PythonService {
|
|||||||
// accessPythonPort,
|
// accessPythonPort,
|
||||||
// userHolder.getId(),
|
// userHolder.getId(),
|
||||||
// category);
|
// category);
|
||||||
String url = String.format("%s:%s/recommend/%d/%s/1",
|
String url = String.format("%s:%s/api/recommend/%d/%s/1",
|
||||||
"127.0.0.1",
|
"http://18.167.251.121",
|
||||||
"8000",
|
"9994",
|
||||||
userHolder.getId(),
|
userHolder.getId(),
|
||||||
category);
|
category);
|
||||||
|
|
||||||
@@ -3966,6 +3966,56 @@ public class PythonService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JSONObject segProduct(String url) {
|
||||||
|
OkHttpClient client = new OkHttpClient().newBuilder()
|
||||||
|
.connectTimeout(30, TimeUnit.SECONDS)
|
||||||
|
.pingInterval(5, TimeUnit.SECONDS)//websocket轮训间隔(单位:秒)
|
||||||
|
.readTimeout(60, TimeUnit.SECONDS)//读取超时(单位:秒)
|
||||||
|
.writeTimeout(60, TimeUnit.SECONDS)//写入超时(单位:秒)
|
||||||
|
.build();
|
||||||
|
MediaType mediaType = MediaType.parse("application/json");
|
||||||
|
//关闭FastJson的引用检测 防止出现$ref 现象
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
map.put("image_url", url);
|
||||||
|
map.put("is_brand_dna", Boolean.TRUE);
|
||||||
|
log.info("bright请求python 参数:####{}", map);
|
||||||
|
String param = JSON.toJSONString(map, SerializerFeature.WriteNullStringAsEmpty);
|
||||||
|
log.info(param);
|
||||||
|
RequestBody body = RequestBody.create(mediaType, param);
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
// .url(accessPythonIp + ":" + accessPythonPort + "/api/generate_product_image")
|
||||||
|
// .url(accessPythonIp + ":9996/api/generate_product_image")
|
||||||
|
.url(accessPythonIp + ":" + accessPythonPort + "/api/seg_product")
|
||||||
|
.method("POST", body)
|
||||||
|
.addHeader("Authorization", "Basic YWlkbGFiOjEyMw==")
|
||||||
|
.addHeader("Content-Type", "application/json")
|
||||||
|
.build();
|
||||||
|
Response response;
|
||||||
|
String responseBody;
|
||||||
|
try {
|
||||||
|
response = client.newCall(request).execute();
|
||||||
|
} catch (IOException ioException) {
|
||||||
|
log.error("PythonService##bright异常###{}", ExceptionUtil.getThrowableList(ioException));
|
||||||
|
throw new BusinessException("segProduct.interface.exception");
|
||||||
|
}
|
||||||
|
if (response.isSuccessful()) {
|
||||||
|
try {
|
||||||
|
if (Objects.nonNull(response.body())) {
|
||||||
|
responseBody = response.body().string();
|
||||||
|
JSONObject responseObject = JSON.parseObject(responseBody);
|
||||||
|
log.info("PythonService##responseObject###{}", responseObject);
|
||||||
|
return responseObject;
|
||||||
|
}
|
||||||
|
throw new BusinessException("segProduct.interface.exception");
|
||||||
|
} catch (IOException | JSONException e) {
|
||||||
|
log.error("PythonService##segProduct异常###{}", e.getMessage());
|
||||||
|
throw new BusinessException("segProduct.interface.exception");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
log.error("PythonService##segProduct异常response###{}", response);
|
||||||
|
//生成失败
|
||||||
|
throw new BusinessException("segProduct.interface.exception");
|
||||||
|
}
|
||||||
public Boolean poseTransformation(String productImage, int poseId, String taskId) {
|
public Boolean poseTransformation(String productImage, int poseId, String taskId) {
|
||||||
OkHttpClient client = new OkHttpClient().newBuilder()
|
OkHttpClient client = new OkHttpClient().newBuilder()
|
||||||
.connectTimeout(30, TimeUnit.SECONDS)
|
.connectTimeout(30, TimeUnit.SECONDS)
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
package com.ai.da.service;
|
package com.ai.da.service;
|
||||||
|
|
||||||
import com.ai.da.common.response.PageBaseResponse;
|
|
||||||
import com.ai.da.mapper.primary.entity.*;
|
import com.ai.da.mapper.primary.entity.*;
|
||||||
import com.ai.da.model.dto.*;
|
import com.ai.da.model.dto.*;
|
||||||
import com.ai.da.model.vo.*;
|
import com.ai.da.model.vo.*;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -24,7 +23,7 @@ public interface UserLikeGroupService extends IService<UserLikeGroup> {
|
|||||||
|
|
||||||
HistoryUpdateVO updateUserGroupName(Long userGroupId, String userGroupName, String timeZone);
|
HistoryUpdateVO updateUserGroupName(Long userGroupId, String userGroupName, String timeZone);
|
||||||
|
|
||||||
Long insertUserGroup(Long userId, Long collectionId, String timeZone);
|
Long insertUserGroup(Long userId, Long collectionId, String timeZone, Long projectId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* choose
|
* choose
|
||||||
@@ -36,6 +35,8 @@ public interface UserLikeGroupService extends IService<UserLikeGroup> {
|
|||||||
|
|
||||||
ProjectChooseVO choose(ProjectDTO projectDTO);
|
ProjectChooseVO choose(ProjectDTO projectDTO);
|
||||||
|
|
||||||
|
UserLikeGroup getByProjectId(Long projectId);
|
||||||
|
|
||||||
void deleteTrialData(Long id);
|
void deleteTrialData(Long id);
|
||||||
|
|
||||||
void updateDate(Long id,String timeZone);
|
void updateDate(Long id,String timeZone);
|
||||||
@@ -46,7 +47,7 @@ public interface UserLikeGroupService extends IService<UserLikeGroup> {
|
|||||||
|
|
||||||
void toProduct(String taskId);
|
void toProduct(String taskId);
|
||||||
|
|
||||||
ToProductElementVO toProductImageElementUpload(MultipartFile file, Long userLikeGroupId);
|
ToProductElementVO toProductImageElementUpload(MultipartFile file, Long projectId);
|
||||||
|
|
||||||
Boolean productImageLike(ProductImageLikeDTO productImageLikeDTO);
|
Boolean productImageLike(ProductImageLikeDTO productImageLikeDTO);
|
||||||
|
|
||||||
@@ -78,5 +79,11 @@ public interface UserLikeGroupService extends IService<UserLikeGroup> {
|
|||||||
|
|
||||||
ModuleChooseVO saveModuleContent(ModuleSaveDTO moduleSaveDTO);
|
ModuleChooseVO saveModuleContent(ModuleSaveDTO moduleSaveDTO);
|
||||||
|
|
||||||
LibraryModelPoint getMannequinDetail(MannequinDTO mannequinDTO);
|
QueryLibraryPageVO getMannequinDetail(MannequinDTO mannequinDTO);
|
||||||
|
|
||||||
|
String brandLogoUpload(MultipartFile file);
|
||||||
|
|
||||||
|
Boolean brandDNASaveOrUpdate(BrandDNADTO brandDNADTO);
|
||||||
|
|
||||||
|
String brandDNAUpload(MultipartFile file, Long brandId) throws IOException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.ai.da.model.dto.WorkspaceDTO;
|
|||||||
import com.ai.da.model.dto.WorkspaceSaveDTO;
|
import com.ai.da.model.dto.WorkspaceSaveDTO;
|
||||||
import com.ai.da.model.enums.BizJson;
|
import com.ai.da.model.enums.BizJson;
|
||||||
import com.ai.da.model.vo.ModelsVO;
|
import com.ai.da.model.vo.ModelsVO;
|
||||||
|
import com.ai.da.model.vo.SaveOrUpdateProjectVO;
|
||||||
import com.ai.da.model.vo.StyleVO;
|
import com.ai.da.model.vo.StyleVO;
|
||||||
import com.ai.da.model.vo.WorkspaceVO;
|
import com.ai.da.model.vo.WorkspaceVO;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@@ -59,7 +60,7 @@ public interface WorkspaceService extends IService<Workspace> {
|
|||||||
List<StyleVO> styleList();
|
List<StyleVO> styleList();
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
Long saveOrUpdateProject(ProjectDTO projectDTO);
|
SaveOrUpdateProjectVO saveOrUpdateProject(ProjectDTO projectDTO);
|
||||||
|
|
||||||
Long getByProjectId(Long projectId);
|
Long getByProjectId(Long projectId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1129,16 +1129,16 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
// if (CollectionUtil.isEmpty(oldElements)) {
|
// if (CollectionUtil.isEmpty(oldElements)) {
|
||||||
// throw new BusinessException("old.elements.not.found");
|
// throw new BusinessException("old.elements.not.found");
|
||||||
// }
|
// }
|
||||||
List<DesignItemDetail> designItemDetails = designItemDetailService.selectByDesignItemId(designLikeDTO.getDesignItemId());
|
// List<DesignItemDetail> designItemDetails = designItemDetailService.selectByDesignItemId(designLikeDTO.getDesignItemId());
|
||||||
if (CollectionUtil.isEmpty(designItemDetails)) {
|
// if (CollectionUtil.isEmpty(designItemDetails)) {
|
||||||
throw new BusinessException("new.designItemDetails.not.found");
|
// throw new BusinessException("new.designItemDetails.not.found");
|
||||||
}
|
// }
|
||||||
//判断老的element合并到新的是否满足 数量不超过15
|
//判断老的element合并到新的是否满足 数量不超过15
|
||||||
List<Long> newElementIds = validateMergeElement(oldElements, designItemDetails);
|
// List<Long> newElementIds = validateMergeElement(oldElements, designItemDetails);
|
||||||
//合并,关联新的element到collection
|
//合并,关联新的element到collection
|
||||||
collectionElementService.relationCollection(newElementIds, userLikeGroup.getCollectionId());
|
// collectionElementService.relationCollection(newElementIds, userLikeGroup.getCollectionId());
|
||||||
//处理关联关系,修复element覆盖得情况
|
//处理关联关系,修复element覆盖得情况
|
||||||
handleCollectionElementRelation(userLikeGroup.getCollectionId(), false, newElementIds);
|
// handleCollectionElementRelation(userLikeGroup.getCollectionId(), false, newElementIds);
|
||||||
|
|
||||||
QueryWrapper<TDesignPythonOutfit> qw = new QueryWrapper<>();
|
QueryWrapper<TDesignPythonOutfit> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(TDesignPythonOutfit::getDesignItemId, designLikeDTO.getDesignItemId());
|
qw.lambda().eq(TDesignPythonOutfit::getDesignItemId, designLikeDTO.getDesignItemId());
|
||||||
@@ -1151,7 +1151,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
//第一次like
|
//第一次like
|
||||||
userGroupId = userLikeGroupService.insertUserGroup(userInfo.getId(), designItem.getCollectionId(), designLikeDTO.getTimeZone());
|
userGroupId = userLikeGroupService.insertUserGroup(userInfo.getId(), designItem.getCollectionId(), designLikeDTO.getTimeZone(), designLikeDTO.getProjectId());
|
||||||
QueryWrapper<TDesignPythonOutfit> qw = new QueryWrapper<>();
|
QueryWrapper<TDesignPythonOutfit> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(TDesignPythonOutfit::getDesignItemId, designLikeDTO.getDesignItemId());
|
qw.lambda().eq(TDesignPythonOutfit::getDesignItemId, designLikeDTO.getDesignItemId());
|
||||||
List<TDesignPythonOutfit> tDesignPythonOutfits = designPythonOutfitMapper.selectList(qw);
|
List<TDesignPythonOutfit> tDesignPythonOutfits = designPythonOutfitMapper.selectList(qw);
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ import com.ai.da.common.context.UserContext;
|
|||||||
import com.ai.da.common.enums.CollectionLevel1TypeEnum;
|
import com.ai.da.common.enums.CollectionLevel1TypeEnum;
|
||||||
import com.ai.da.common.enums.CreditsEventsEnum;
|
import com.ai.da.common.enums.CreditsEventsEnum;
|
||||||
import com.ai.da.common.enums.DesignTypeEnum;
|
import com.ai.da.common.enums.DesignTypeEnum;
|
||||||
import com.ai.da.common.response.PageBaseResponse;
|
|
||||||
import com.ai.da.common.response.Response;
|
|
||||||
import com.ai.da.common.response.ResultEnum;
|
import com.ai.da.common.response.ResultEnum;
|
||||||
import com.ai.da.common.utils.*;
|
import com.ai.da.common.utils.*;
|
||||||
import com.ai.da.mapper.primary.*;
|
import com.ai.da.mapper.primary.*;
|
||||||
@@ -109,6 +107,12 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
private PortfolioService portfolioService;
|
private PortfolioService portfolioService;
|
||||||
@Resource
|
@Resource
|
||||||
private LibraryModelPointMapper libraryModelPointMapper;
|
private LibraryModelPointMapper libraryModelPointMapper;
|
||||||
|
@Resource
|
||||||
|
private LibraryService libraryService;
|
||||||
|
@Resource
|
||||||
|
private BrandDNAMapper brandDNAMapper;
|
||||||
|
@Resource
|
||||||
|
private BrandRelLibraryMapper brandRelLibraryMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteUserGroup(Long userGroupId) {
|
public void deleteUserGroup(Long userGroupId) {
|
||||||
@@ -153,7 +157,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long insertUserGroup(Long userId, Long collectionId, String timeZone) {
|
public Long insertUserGroup(Long userId, Long collectionId, String timeZone, Long projectId) {
|
||||||
UserLikeGroup userLikeGroup = new UserLikeGroup();
|
UserLikeGroup userLikeGroup = new UserLikeGroup();
|
||||||
//默认当前时间
|
//默认当前时间
|
||||||
userLikeGroup.setName(DateUtil.dateToStr(new Date(), DateUtil.YYYY_MM_DD_HH_MM_SS));
|
userLikeGroup.setName(DateUtil.dateToStr(new Date(), DateUtil.YYYY_MM_DD_HH_MM_SS));
|
||||||
@@ -162,6 +166,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
userLikeGroup.setAccountId(userId);
|
userLikeGroup.setAccountId(userId);
|
||||||
userLikeGroup.setCollectionId(collectionId);
|
userLikeGroup.setCollectionId(collectionId);
|
||||||
userLikeGroup.setOriginal(1);
|
userLikeGroup.setOriginal(1);
|
||||||
|
userLikeGroup.setProjectId(projectId);
|
||||||
userLikeGroupMapper.insertUserLikeGroup(userLikeGroup);
|
userLikeGroupMapper.insertUserLikeGroup(userLikeGroup);
|
||||||
return userLikeGroup.getId();
|
return userLikeGroup.getId();
|
||||||
}
|
}
|
||||||
@@ -309,7 +314,8 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
return new ProjectChooseVO(projectDTO.getId(), workspaceVO, process);
|
return new ProjectChooseVO(projectDTO.getId(), workspaceVO, process);
|
||||||
}
|
}
|
||||||
|
|
||||||
private UserLikeGroup getByProjectId(Long projectId) {
|
@Override
|
||||||
|
public UserLikeGroup getByProjectId(Long projectId) {
|
||||||
QueryWrapper<UserLikeGroup> qw = new QueryWrapper<>();
|
QueryWrapper<UserLikeGroup> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(UserLikeGroup::getProjectId, projectId);
|
qw.lambda().eq(UserLikeGroup::getProjectId, projectId);
|
||||||
List<UserLikeGroup> userLikeGroupList = userLikeGroupMapper.selectList(qw);
|
List<UserLikeGroup> userLikeGroupList = userLikeGroupMapper.selectList(qw);
|
||||||
@@ -387,9 +393,16 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
}
|
}
|
||||||
|
|
||||||
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
||||||
Long userLikeGroupId = toProductImageDTO.getUserLikeGroupId();
|
Long projectId = toProductImageDTO.getProjectId();
|
||||||
|
UserLikeGroup userLikeGroup = getByProjectId(projectId);
|
||||||
|
Long userLikeGroupId = null;
|
||||||
ToProductImageRecord toProductImageRecord = new ToProductImageRecord();
|
ToProductImageRecord toProductImageRecord = new ToProductImageRecord();
|
||||||
toProductImageRecord.setUserLikeGroupId(userLikeGroupId);
|
toProductImageRecord.setProjectId(projectId);
|
||||||
|
if (Objects.nonNull(userLikeGroup)) {
|
||||||
|
userLikeGroupId = userLikeGroup.getId();
|
||||||
|
toProductImageRecord.setUserLikeGroupId(userLikeGroupId);
|
||||||
|
}
|
||||||
|
|
||||||
toProductImageRecord.setCreateTime(LocalDateTime.now());
|
toProductImageRecord.setCreateTime(LocalDateTime.now());
|
||||||
if (!StringUtils.isEmpty(toProductImageDTO.getPrompt())) {
|
if (!StringUtils.isEmpty(toProductImageDTO.getPrompt())) {
|
||||||
toProductImageRecord.setPrompt(toProductImageDTO.getPrompt());
|
toProductImageRecord.setPrompt(toProductImageDTO.getPrompt());
|
||||||
@@ -450,7 +463,10 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
// toProductImageResult.setUrl(productImageUrl);
|
// toProductImageResult.setUrl(productImageUrl);
|
||||||
toProductImageResult.setIsLike(0);
|
toProductImageResult.setIsLike(0);
|
||||||
toProductImageResult.setTaskId(taskId);
|
toProductImageResult.setTaskId(taskId);
|
||||||
toProductImageResult.setUserLikeGroupId(userLikeGroupId);
|
toProductImageResult.setProjectId(projectId);
|
||||||
|
if (userLikeGroupId != null) {
|
||||||
|
toProductImageResult.setUserLikeGroupId(userLikeGroupId);
|
||||||
|
}
|
||||||
toProductImageResult.setImageStrength(toProductImageDTO.getImageStrength());
|
toProductImageResult.setImageStrength(toProductImageDTO.getImageStrength());
|
||||||
toProductImageResultMapper.insert(toProductImageResult);
|
toProductImageResultMapper.insert(toProductImageResult);
|
||||||
// toProductImageResult.setUrl(minioUtil.getPresignedUrl(toProductImageResult.getUrl(), 24 * 60));
|
// toProductImageResult.setUrl(minioUtil.getPresignedUrl(toProductImageResult.getUrl(), 24 * 60));
|
||||||
@@ -474,7 +490,10 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
// toProductImageResult.setUrl(productImageUrl);
|
// toProductImageResult.setUrl(productImageUrl);
|
||||||
toProductImageResult.setIsLike(0);
|
toProductImageResult.setIsLike(0);
|
||||||
toProductImageResult.setTaskId(taskId);
|
toProductImageResult.setTaskId(taskId);
|
||||||
toProductImageResult.setUserLikeGroupId(userLikeGroupId);
|
toProductImageResult.setProjectId(projectId);
|
||||||
|
if (userLikeGroupId != null) {
|
||||||
|
toProductImageResult.setUserLikeGroupId(userLikeGroupId);
|
||||||
|
}
|
||||||
toProductImageResult.setImageStrength(toProductImageDTO.getImageStrength());
|
toProductImageResult.setImageStrength(toProductImageDTO.getImageStrength());
|
||||||
toProductImageResultMapper.insert(toProductImageResult);
|
toProductImageResultMapper.insert(toProductImageResult);
|
||||||
// toProductImageResult.setUrl(minioUtil.getPresignedUrl(toProductImageResult.getUrl(), 24 * 60));
|
// toProductImageResult.setUrl(minioUtil.getPresignedUrl(toProductImageResult.getUrl(), 24 * 60));
|
||||||
@@ -554,19 +573,20 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public ToProductElementVO toProductImageElementUpload(MultipartFile file, Long userLikeGroupId) {
|
public ToProductElementVO toProductImageElementUpload(MultipartFile file, Long projectId) {
|
||||||
if (null == file || StringUtils.isEmpty(file.getOriginalFilename())) {
|
if (null == file || StringUtils.isEmpty(file.getOriginalFilename())) {
|
||||||
throw new BusinessException("file.cannot.be.empty");
|
throw new BusinessException("file.cannot.be.empty");
|
||||||
}
|
}
|
||||||
if (userLikeGroupId == null) {
|
if (projectId == null) {
|
||||||
throw new BusinessException("userLikeGroupId.cannot.be.empty");
|
throw new BusinessException("projectId.cannot.be.empty");
|
||||||
}
|
}
|
||||||
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
||||||
String bucketName = "aida-users";
|
String bucketName = "aida-users";
|
||||||
String minioUrl = minioUtil.upload(bucketName, userHolder.getId() + "/toProductImageElement", file);
|
String minioUrl = minioUtil.upload(bucketName, userHolder.getId() + "/toProductImageElement", file);
|
||||||
ToProductElement toProductElement = new ToProductElement();
|
ToProductElement toProductElement = new ToProductElement();
|
||||||
toProductElement.setUrl(minioUrl);
|
toProductElement.setUrl(minioUrl);
|
||||||
toProductElement.setUserLikeGroupId(userLikeGroupId);
|
// toProductElement.setUserLikeGroupId(userLikeGroupId);
|
||||||
|
toProductElement.setProjectId(projectId);
|
||||||
toProductElement.setCreateTime(LocalDateTime.now());
|
toProductElement.setCreateTime(LocalDateTime.now());
|
||||||
toProductElementMapper.insert(toProductElement);
|
toProductElementMapper.insert(toProductElement);
|
||||||
ToProductElementVO toProductElementVO = CopyUtil.copyObject(toProductElement, ToProductElementVO.class);
|
ToProductElementVO toProductElementVO = CopyUtil.copyObject(toProductElement, ToProductElementVO.class);
|
||||||
@@ -674,7 +694,12 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
public List<ToProductImageResultVO> productImageLikeList(ToProductImageDTO toProductImageDTO) {
|
public List<ToProductImageResultVO> productImageLikeList(ToProductImageDTO toProductImageDTO) {
|
||||||
QueryWrapper<ToProductImageResult> qw = new QueryWrapper<>();
|
QueryWrapper<ToProductImageResult> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(ToProductImageResult::getIsLike, 1);
|
qw.lambda().eq(ToProductImageResult::getIsLike, 1);
|
||||||
qw.lambda().eq(ToProductImageResult::getUserLikeGroupId, toProductImageDTO.getUserLikeGroupId());
|
|
||||||
|
Long projectId = toProductImageDTO.getProjectId();
|
||||||
|
// UserLikeGroup userLikeGroup = getByProjectId(projectId);
|
||||||
|
// Long userLikeGroupId = null;
|
||||||
|
|
||||||
|
qw.lambda().eq(ToProductImageResult::getProjectId, projectId);
|
||||||
List<ToProductImageResult> toProductImageResults = toProductImageResultMapper.selectList(qw);
|
List<ToProductImageResult> toProductImageResults = toProductImageResultMapper.selectList(qw);
|
||||||
for (ToProductImageResult toProductImageResult : toProductImageResults) {
|
for (ToProductImageResult toProductImageResult : toProductImageResults) {
|
||||||
toProductImageResult.setUrl(minioUtil.getPreSignedUrl(toProductImageResult.getUrl(), 24 * 60));
|
toProductImageResult.setUrl(minioUtil.getPreSignedUrl(toProductImageResult.getUrl(), 24 * 60));
|
||||||
@@ -758,9 +783,17 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
}
|
}
|
||||||
|
|
||||||
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
||||||
Long userLikeGroupId = toProductImageDTO.getUserLikeGroupId();
|
Long projectId = toProductImageDTO.getProjectId();
|
||||||
|
UserLikeGroup userLikeGroup = getByProjectId(projectId);
|
||||||
|
Long userLikeGroupId = null;
|
||||||
|
|
||||||
ToProductImageRecord toProductImageRecord = new ToProductImageRecord();
|
ToProductImageRecord toProductImageRecord = new ToProductImageRecord();
|
||||||
toProductImageRecord.setUserLikeGroupId(userLikeGroupId);
|
toProductImageRecord.setProjectId(projectId);
|
||||||
|
if (Objects.nonNull(userLikeGroup)) {
|
||||||
|
userLikeGroupId = userLikeGroup.getId();
|
||||||
|
toProductImageRecord.setUserLikeGroupId(userLikeGroupId);
|
||||||
|
}
|
||||||
|
|
||||||
toProductImageRecord.setCreateTime(LocalDateTime.now());
|
toProductImageRecord.setCreateTime(LocalDateTime.now());
|
||||||
if (!StringUtils.isEmpty(toProductImageDTO.getPrompt())) {
|
if (!StringUtils.isEmpty(toProductImageDTO.getPrompt())) {
|
||||||
toProductImageRecord.setPrompt(toProductImageDTO.getPrompt());
|
toProductImageRecord.setPrompt(toProductImageDTO.getPrompt());
|
||||||
@@ -803,7 +836,10 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
// toProductImageResult.setUrl(productImageUrl);
|
// toProductImageResult.setUrl(productImageUrl);
|
||||||
toProductImageResult.setIsLike(0);
|
toProductImageResult.setIsLike(0);
|
||||||
toProductImageResult.setTaskId(taskId);
|
toProductImageResult.setTaskId(taskId);
|
||||||
toProductImageResult.setUserLikeGroupId(userLikeGroupId);
|
toProductImageResult.setProjectId(projectId);
|
||||||
|
if (null != userLikeGroupId) {
|
||||||
|
toProductImageResult.setUserLikeGroupId(userLikeGroupId);
|
||||||
|
}
|
||||||
if (toProductImageDTO.getBrightenValue() != null) {
|
if (toProductImageDTO.getBrightenValue() != null) {
|
||||||
toProductImageResult.setBrightenValue(toProductImageDTO.getBrightenValue());
|
toProductImageResult.setBrightenValue(toProductImageDTO.getBrightenValue());
|
||||||
}
|
}
|
||||||
@@ -823,7 +859,10 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
// toProductImageResult.setUrl(productImageUrl);
|
// toProductImageResult.setUrl(productImageUrl);
|
||||||
toProductImageResult.setIsLike(0);
|
toProductImageResult.setIsLike(0);
|
||||||
toProductImageResult.setTaskId(taskId);
|
toProductImageResult.setTaskId(taskId);
|
||||||
toProductImageResult.setUserLikeGroupId(userLikeGroupId);
|
toProductImageResult.setProjectId(projectId);
|
||||||
|
if (null != userLikeGroupId) {
|
||||||
|
toProductImageResult.setUserLikeGroupId(userLikeGroupId);
|
||||||
|
}
|
||||||
if (toProductImageDTO.getBrightenValue() != null) {
|
if (toProductImageDTO.getBrightenValue() != null) {
|
||||||
toProductImageResult.setBrightenValue(toProductImageDTO.getBrightenValue());
|
toProductImageResult.setBrightenValue(toProductImageDTO.getBrightenValue());
|
||||||
}
|
}
|
||||||
@@ -1086,15 +1125,23 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public Boolean productImageInitialize(ProductImageInitializeDTO productImageInitializeDTO) {
|
public Boolean productImageInitialize(ProductImageInitializeDTO productImageInitializeDTO) {
|
||||||
|
|
||||||
|
Long brandId = productImageInitializeDTO.getBrandId();
|
||||||
|
QueryWrapper<BrandRelLibrary> brandRelLibraryQueryWrapper = new QueryWrapper<>();
|
||||||
|
brandRelLibraryQueryWrapper.lambda().eq(BrandRelLibrary::getBrandId, brandId);
|
||||||
|
List<BrandRelLibrary> brandRelLibraries = brandRelLibraryMapper.selectList(brandRelLibraryQueryWrapper);
|
||||||
|
Set<Long> collect = brandRelLibraries.stream().map(BrandRelLibrary::getLibraryId).collect(Collectors.toSet());
|
||||||
|
|
||||||
AuthPrincipalVo authPrincipalVo = UserContext.getUserHolder();
|
AuthPrincipalVo authPrincipalVo = UserContext.getUserHolder();
|
||||||
accountService.getById(authPrincipalVo.getId());
|
accountService.getById(authPrincipalVo.getId());
|
||||||
|
|
||||||
for (Long libraryId : productImageInitializeDTO.getLibraryIds()) {
|
for (Long libraryId : collect) {
|
||||||
Library library = libraryMapper.selectById(libraryId);
|
Library library = libraryMapper.selectById(libraryId);
|
||||||
String url = library.getUrl();
|
String url = library.getUrl();
|
||||||
String gender = library.getLevel2Type();
|
String gender = library.getLevel2Type();
|
||||||
|
|
||||||
|
// 提取sketch
|
||||||
|
JSONObject sketchList = pythonService.segProduct(url);
|
||||||
String clothCategory = pythonService.getClothCategory(url, gender);
|
String clothCategory = pythonService.getClothCategory(url, gender);
|
||||||
JSONObject attributeRecognition = pythonService.getAttributeRecognition(url, clothCategory, gender);
|
JSONObject attributeRecognition = pythonService.getAttributeRecognition(url, clothCategory, gender);
|
||||||
JSONObject data = attributeRecognition.getJSONObject("data");
|
JSONObject data = attributeRecognition.getJSONObject("data");
|
||||||
@@ -1347,6 +1394,23 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
list.add(collectionElementVO);
|
list.add(collectionElementVO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
List<CollectionSketchVO> voList = new ArrayList<>();
|
||||||
|
for (CollectionElement collectionElement : collectionElements) {
|
||||||
|
CollectionSketchVO vo = CopyUtil.copyObject(collectionElement, CollectionSketchVO.class);
|
||||||
|
String url = collectionElement.getUrl();
|
||||||
|
if (url.contains(".")) {
|
||||||
|
String[] split = url.split("\\.");
|
||||||
|
vo.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(split[0] + "-show." + split[1], 24 * 60, true));
|
||||||
|
}else {
|
||||||
|
vo.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(url + "-show", 24 * 60, true));
|
||||||
|
}
|
||||||
|
vo.setIsPin(collectionElement.getHasPin());
|
||||||
|
vo.setLevel2Type(collectionElement.getLevel2Type());
|
||||||
|
vo.setDesignType("Collection");
|
||||||
|
vo.setSketchBoardId(collectionElement.getId());
|
||||||
|
voList.add(vo);
|
||||||
|
}
|
||||||
|
moduleChooseVO.setBoundingBox(voList);
|
||||||
moduleChooseVO.setSketchBoard(list);
|
moduleChooseVO.setSketchBoard(list);
|
||||||
}else if (module.equals(Module.design.name())) {
|
}else if (module.equals(Module.design.name())) {
|
||||||
DesignModuleChooseVO vo = new DesignModuleChooseVO();
|
DesignModuleChooseVO vo = new DesignModuleChooseVO();
|
||||||
@@ -1426,12 +1490,13 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
vo.setPortfolioDTO(portfolioDTO);
|
vo.setPortfolioDTO(portfolioDTO);
|
||||||
moduleChooseVO.setCanvas(vo);
|
moduleChooseVO.setCanvas(vo);
|
||||||
}else if (module.equals(Module.toProduct.name())) {
|
}else if (module.equals(Module.toProduct.name())) {
|
||||||
UserLikeGroup userLikeGroup = getByProjectId(projectDTO.getId());
|
Long projectId = projectDTO.getId();
|
||||||
Long userLikeGroupId = userLikeGroup.getId();
|
// UserLikeGroup userLikeGroup = getByProjectId(projectDTO.getId());
|
||||||
|
// Long userLikeGroupId = userLikeGroup.getId();
|
||||||
|
|
||||||
QueryWrapper<ToProductImageResult> qw = new QueryWrapper<>();
|
QueryWrapper<ToProductImageResult> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(ToProductImageResult::getIsLike, 1);
|
qw.lambda().eq(ToProductImageResult::getIsLike, 1);
|
||||||
qw.lambda().eq(ToProductImageResult::getUserLikeGroupId, userLikeGroupId);
|
qw.lambda().eq(ToProductImageResult::getProjectId, projectId);
|
||||||
qw.lambda().eq(ToProductImageResult::getResultType, "ToProductImage");
|
qw.lambda().eq(ToProductImageResult::getResultType, "ToProductImage");
|
||||||
List<ToProductImageResult> toProductImageResults = toProductImageResultMapper.selectList(qw);
|
List<ToProductImageResult> toProductImageResults = toProductImageResultMapper.selectList(qw);
|
||||||
for (ToProductImageResult toProductImageResult : toProductImageResults) {
|
for (ToProductImageResult toProductImageResult : toProductImageResults) {
|
||||||
@@ -1452,12 +1517,13 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
}
|
}
|
||||||
moduleChooseVO.setToProduct(toProductImageResultVOS);
|
moduleChooseVO.setToProduct(toProductImageResultVOS);
|
||||||
}else if (module.equals(Module.relight.name())) {
|
}else if (module.equals(Module.relight.name())) {
|
||||||
UserLikeGroup userLikeGroup = getByProjectId(projectDTO.getId());
|
Long projectId = projectDTO.getId();
|
||||||
Long userLikeGroupId = userLikeGroup.getId();
|
// UserLikeGroup userLikeGroup = getByProjectId(projectDTO.getId());
|
||||||
|
// Long userLikeGroupId = userLikeGroup.getId();
|
||||||
|
|
||||||
QueryWrapper<ToProductImageResult> qw = new QueryWrapper<>();
|
QueryWrapper<ToProductImageResult> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(ToProductImageResult::getIsLike, 1);
|
qw.lambda().eq(ToProductImageResult::getIsLike, 1);
|
||||||
qw.lambda().eq(ToProductImageResult::getUserLikeGroupId, userLikeGroupId);
|
qw.lambda().eq(ToProductImageResult::getProjectId, projectId);
|
||||||
qw.lambda().eq(ToProductImageResult::getResultType, "Relight");
|
qw.lambda().eq(ToProductImageResult::getResultType, "Relight");
|
||||||
List<ToProductImageResult> toProductImageResults = toProductImageResultMapper.selectList(qw);
|
List<ToProductImageResult> toProductImageResults = toProductImageResultMapper.selectList(qw);
|
||||||
for (ToProductImageResult toProductImageResult : toProductImageResults) {
|
for (ToProductImageResult toProductImageResult : toProductImageResults) {
|
||||||
@@ -1476,7 +1542,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
toProductImageResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductImageResult1.getUrl(), 24 * 60));
|
toProductImageResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductImageResult1.getUrl(), 24 * 60));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
moduleChooseVO.setToProduct(toProductImageResultVOS);
|
moduleChooseVO.setRelight(toProductImageResultVOS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return moduleChooseVO;
|
return moduleChooseVO;
|
||||||
@@ -1485,8 +1551,10 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public ModuleChooseVO saveModuleContent(ModuleSaveDTO moduleSaveDTO) {
|
public ModuleChooseVO saveModuleContent(ModuleSaveDTO moduleSaveDTO) {
|
||||||
|
ModuleChooseVO result = new ModuleChooseVO();
|
||||||
Long accountId = UserContext.getUserHolder().getId();
|
Long accountId = UserContext.getUserHolder().getId();
|
||||||
Long projectId = moduleSaveDTO.getProjectId();
|
Long projectId = moduleSaveDTO.getProjectId();
|
||||||
|
boolean boundingBox = false;
|
||||||
if (Objects.nonNull(moduleSaveDTO.getMoodBoard())) {
|
if (Objects.nonNull(moduleSaveDTO.getMoodBoard())) {
|
||||||
MoodBoardModuleSaveDTO moodBoard = moduleSaveDTO.getMoodBoard();
|
MoodBoardModuleSaveDTO moodBoard = moduleSaveDTO.getMoodBoard();
|
||||||
if (moodBoard.getMoodTemplateId() != null) {
|
if (moodBoard.getMoodTemplateId() != null) {
|
||||||
@@ -1562,7 +1630,9 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
collectionElementMapper.deleteBatchIds(old);
|
if (!CollectionUtils.isEmpty(old)) {
|
||||||
|
collectionElementMapper.deleteBatchIds(old);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(moduleSaveDTO.getPrintBoard())){
|
if (!CollectionUtils.isEmpty(moduleSaveDTO.getPrintBoard())){
|
||||||
@@ -1617,7 +1687,9 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
collectionElementMapper.deleteBatchIds(old);
|
if (!CollectionUtils.isEmpty(old)) {
|
||||||
|
collectionElementMapper.deleteBatchIds(old);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(moduleSaveDTO.getColorBoard())){
|
if (!CollectionUtils.isEmpty(moduleSaveDTO.getColorBoard())){
|
||||||
List<CollectionColorDTO> colorBoards = moduleSaveDTO.getColorBoard();
|
List<CollectionColorDTO> colorBoards = moduleSaveDTO.getColorBoard();
|
||||||
@@ -1634,7 +1706,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
CollectionElement collectionElement = new CollectionElement();
|
CollectionElement collectionElement = new CollectionElement();
|
||||||
collectionElement.setAccountId(accountId);
|
collectionElement.setAccountId(accountId);
|
||||||
collectionElement.setProjectId(projectId);
|
collectionElement.setProjectId(projectId);
|
||||||
collectionElement.setLevel2Type(CollectionLevel1TypeEnum.COLOR_BOARD.getRealName());
|
collectionElement.setLevel1Type(CollectionLevel1TypeEnum.COLOR_BOARD.getRealName());
|
||||||
collectionElement.setName(board.getName());
|
collectionElement.setName(board.getName());
|
||||||
collectionElement.setHasPin((byte) 0);
|
collectionElement.setHasPin((byte) 0);
|
||||||
collectionElement.setColorRgb(board.getRgbValue());
|
collectionElement.setColorRgb(board.getRgbValue());
|
||||||
@@ -1644,9 +1716,12 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
collectionElementMapper.insert(collectionElement);
|
collectionElementMapper.insert(collectionElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
collectionElementMapper.deleteBatchIds(old);
|
if (!CollectionUtils.isEmpty(old)) {
|
||||||
|
collectionElementMapper.deleteBatchIds(old);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(moduleSaveDTO.getSketchBoard())){
|
if (!CollectionUtils.isEmpty(moduleSaveDTO.getSketchBoard())){
|
||||||
|
boundingBox = true;
|
||||||
QueryWrapper<CollectionElement> qw = new QueryWrapper<>();
|
QueryWrapper<CollectionElement> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(CollectionElement::getProjectId, projectId);
|
qw.lambda().eq(CollectionElement::getProjectId, projectId);
|
||||||
qw.lambda().eq(CollectionElement::getLevel1Type, CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName());
|
qw.lambda().eq(CollectionElement::getLevel1Type, CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName());
|
||||||
@@ -1659,7 +1734,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
CollectionElement collectionElement = new CollectionElement();
|
CollectionElement collectionElement = new CollectionElement();
|
||||||
collectionElement.setAccountId(accountId);
|
collectionElement.setAccountId(accountId);
|
||||||
collectionElement.setProjectId(projectId);
|
collectionElement.setProjectId(projectId);
|
||||||
collectionElement.setLevel1Type(CollectionLevel1TypeEnum.PRINT_BOARD.getRealName());
|
collectionElement.setLevel1Type(CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName());
|
||||||
collectionElement.setLevel2Type(board.getLevel2Type());
|
collectionElement.setLevel2Type(board.getLevel2Type());
|
||||||
collectionElement.setName(library.getName());
|
collectionElement.setName(library.getName());
|
||||||
collectionElement.setUrl(library.getUrl());
|
collectionElement.setUrl(library.getUrl());
|
||||||
@@ -1672,7 +1747,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
CollectionElement collectionElement = new CollectionElement();
|
CollectionElement collectionElement = new CollectionElement();
|
||||||
collectionElement.setAccountId(accountId);
|
collectionElement.setAccountId(accountId);
|
||||||
collectionElement.setProjectId(projectId);
|
collectionElement.setProjectId(projectId);
|
||||||
collectionElement.setLevel1Type(CollectionLevel1TypeEnum.PRINT_BOARD.getRealName());
|
collectionElement.setLevel1Type(CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName());
|
||||||
collectionElement.setLevel2Type(board.getLevel2Type());
|
collectionElement.setLevel2Type(board.getLevel2Type());
|
||||||
// collectionElement.setName(generateDetail.get());
|
// collectionElement.setName(generateDetail.get());
|
||||||
collectionElement.setUrl(generateDetail.getUrl());
|
collectionElement.setUrl(generateDetail.getUrl());
|
||||||
@@ -1698,13 +1773,56 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
collectionElementMapper.deleteBatchIds(old);
|
if (!CollectionUtils.isEmpty(old)) {
|
||||||
|
collectionElementMapper.deleteBatchIds(old);
|
||||||
}
|
}
|
||||||
return null;
|
}
|
||||||
|
if (boundingBox) {
|
||||||
|
QueryWrapper<CollectionElement> qw = new QueryWrapper<>();
|
||||||
|
qw.lambda().eq(CollectionElement::getLevel1Type, CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName());
|
||||||
|
qw.lambda().eq(CollectionElement::getProjectId, projectId);
|
||||||
|
List<CollectionElement> collectionElements = collectionElementMapper.selectList(qw);
|
||||||
|
|
||||||
|
List<CollectionSketchVO> voList = new ArrayList<>();
|
||||||
|
for (CollectionElement collectionElement : collectionElements) {
|
||||||
|
CollectionSketchVO vo = CopyUtil.copyObject(collectionElement, CollectionSketchVO.class);
|
||||||
|
String url = collectionElement.getUrl();
|
||||||
|
libraryService.processSketchBoards(url, collectionElement.getLevel2Type());
|
||||||
|
if (url.contains(".")) {
|
||||||
|
String[] split = url.split("\\.");
|
||||||
|
vo.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(split[0] + "-show." + split[1], 24 * 60, true));
|
||||||
|
}else {
|
||||||
|
vo.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(url + "-show", 24 * 60, true));
|
||||||
|
}
|
||||||
|
vo.setIsPin(collectionElement.getHasPin());
|
||||||
|
vo.setLevel2Type(collectionElement.getLevel2Type());
|
||||||
|
vo.setDesignType("Collection");
|
||||||
|
vo.setSketchBoardId(collectionElement.getId());
|
||||||
|
voList.add(vo);
|
||||||
|
}
|
||||||
|
result.setBoundingBox(voList);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LibraryModelPoint getMannequinDetail(MannequinDTO mannequinDTO) {
|
public QueryLibraryPageVO getMannequinDetail(MannequinDTO mannequinDTO) {
|
||||||
|
QueryLibraryPageVO vo = new QueryLibraryPageVO();
|
||||||
|
if (mannequinDTO.getType().equals("System")) {
|
||||||
|
SysFile sysFile = sysFileMapper.selectById(mannequinDTO.getId());
|
||||||
|
vo.setDesignType("System");
|
||||||
|
vo.setLevel1Type(sysFile.getLevel1Type());
|
||||||
|
vo.setLevel2Type(sysFile.getLevel2Type());
|
||||||
|
vo.setName(sysFile.getName());
|
||||||
|
vo.setMinIOPath(minioUtil.getPreSignedUrl(sysFile.getUrl(), 24 * 60));
|
||||||
|
}else {
|
||||||
|
Library library = libraryMapper.selectById(mannequinDTO.getId());
|
||||||
|
vo.setDesignType("Library");
|
||||||
|
vo.setLevel1Type(library.getLevel1Type());
|
||||||
|
vo.setLevel2Type(library.getLevel2Type());
|
||||||
|
vo.setName(library.getName());
|
||||||
|
vo.setMinIOPath(minioUtil.getPreSignedUrl(library.getUrl(), 24 * 60));
|
||||||
|
}
|
||||||
QueryWrapper<LibraryModelPoint> qw = new QueryWrapper<>();
|
QueryWrapper<LibraryModelPoint> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(LibraryModelPoint::getRelationId, mannequinDTO.getId());
|
qw.lambda().eq(LibraryModelPoint::getRelationId, mannequinDTO.getId());
|
||||||
qw.lambda().eq(LibraryModelPoint::getModelType, mannequinDTO.getType());
|
qw.lambda().eq(LibraryModelPoint::getModelType, mannequinDTO.getType());
|
||||||
@@ -1712,6 +1830,51 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
if (CollectionUtil.isEmpty(libraryModelPoints)) {
|
if (CollectionUtil.isEmpty(libraryModelPoints)) {
|
||||||
throw new BusinessException("No model doting information available.");
|
throw new BusinessException("No model doting information available.");
|
||||||
}
|
}
|
||||||
return libraryModelPoints.get(0);
|
LibraryModelPoint libraryModelPoint = libraryModelPoints.get(0);
|
||||||
|
LibraryModelPointVO libraryModelPointVO = CopyUtil.copyObject(libraryModelPoint, LibraryModelPointVO.class);
|
||||||
|
libraryModelPointVO.setTemplateId(libraryModelPoint.getId());
|
||||||
|
vo.setLibraryModelPoint(libraryModelPointVO);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String brandLogoUpload(MultipartFile file) {
|
||||||
|
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
||||||
|
String path = userHolder.getId().toString() + "/brandLogo";
|
||||||
|
return minioUtil.upload("aida-users",path,file);
|
||||||
|
// return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean brandDNASaveOrUpdate(BrandDNADTO brandDNADTO) {
|
||||||
|
if (brandDNADTO.getId() != null) {
|
||||||
|
BrandDNA brandDNA = CopyUtil.copyObject(brandDNADTO, BrandDNA.class);
|
||||||
|
brandDNAMapper.updateById(brandDNA);
|
||||||
|
}else {
|
||||||
|
BrandDNA brandDNA = CopyUtil.copyObject(brandDNADTO, BrandDNA.class);
|
||||||
|
brandDNAMapper.insert(brandDNA);
|
||||||
|
}
|
||||||
|
return Boolean.TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String brandDNAUpload(MultipartFile file, Long brandId) throws IOException {
|
||||||
|
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
||||||
|
String path = userHolder.getId().toString() + "/brandLogo";
|
||||||
|
String upload = minioUtil.upload("aida-users", path, file);
|
||||||
|
Library library = new Library();
|
||||||
|
library.setAccountId(userHolder.getId());
|
||||||
|
library.setLevel1Type("BrandDNA");
|
||||||
|
library.setName(file.getOriginalFilename());
|
||||||
|
library.setUrl(upload);
|
||||||
|
library.setMd5(MD5Utils.encryptFile(file.getInputStream()));
|
||||||
|
library.setCreateDate(new Date());
|
||||||
|
|
||||||
|
BrandRelLibrary brandRelLibrary = new BrandRelLibrary();
|
||||||
|
brandRelLibrary.setLibraryId(library.getId());
|
||||||
|
brandRelLibrary.setBrandId(brandId);
|
||||||
|
brandRelLibraryMapper.insert(brandRelLibrary);
|
||||||
|
|
||||||
|
return upload;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,6 +76,8 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private SysFileService sysFileService;
|
private SysFileService sysFileService;
|
||||||
|
@Resource
|
||||||
|
private WorkspaceService workspaceService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -365,10 +367,15 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
|
|||||||
vo.setMalePresignedUrl(minioUtil.getPreSignedUrl(libraryMapper.selectById(vo.getMannequinMaleId()).getUrl(), 24 * 60));
|
vo.setMalePresignedUrl(minioUtil.getPreSignedUrl(libraryMapper.selectById(vo.getMannequinMaleId()).getUrl(), 24 * 60));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Sex sex = Sex.getSex(vo.getSex());
|
if (!StringUtils.isEmpty(vo.getSex())) {
|
||||||
Position position = Position.getPosition(vo.getPosition());
|
Sex sex = Sex.getSex(vo.getSex());
|
||||||
vo.setSexEnum(new BizJson(sex.getValue(), sex.name(), BusinessException.getMessageFromResource(sex.name())));
|
vo.setSexEnum(new BizJson(sex.getValue(), sex.name(), BusinessException.getMessageFromResource(sex.name())));
|
||||||
vo.setPositionEnum(new BizJson(position.getValue(), position.name(), BusinessException.getMessageFromResource(position.name())));
|
|
||||||
|
}
|
||||||
|
if (!StringUtils.isEmpty(vo.getPosition())) {
|
||||||
|
Position position = Position.getPosition(vo.getPosition());
|
||||||
|
vo.setPositionEnum(new BizJson(position.getValue(), position.name(), BusinessException.getMessageFromResource(position.name())));
|
||||||
|
}
|
||||||
QueryWrapper<WorkspaceRelStyle> qw = new QueryWrapper<>();
|
QueryWrapper<WorkspaceRelStyle> qw = new QueryWrapper<>();
|
||||||
qw.lambda().eq(WorkspaceRelStyle::getWorkspaceId, vo.getId());
|
qw.lambda().eq(WorkspaceRelStyle::getWorkspaceId, vo.getId());
|
||||||
List<WorkspaceRelStyle> workspaceRelStyles = workspaceRelStyleMapper.selectList(qw);
|
List<WorkspaceRelStyle> workspaceRelStyles = workspaceRelStyleMapper.selectList(qw);
|
||||||
@@ -647,7 +654,8 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public Long saveOrUpdateProject(ProjectDTO projectDTO) {
|
public SaveOrUpdateProjectVO saveOrUpdateProject(ProjectDTO projectDTO) {
|
||||||
|
SaveOrUpdateProjectVO vo = new SaveOrUpdateProjectVO();
|
||||||
AuthPrincipalVo userInfo = UserContext.getUserHolder();
|
AuthPrincipalVo userInfo = UserContext.getUserHolder();
|
||||||
if (projectDTO.getId() != null) {
|
if (projectDTO.getId() != null) {
|
||||||
Long projectId = projectDTO.getId();
|
Long projectId = projectDTO.getId();
|
||||||
@@ -695,7 +703,11 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
|
|||||||
workspaceRelStyleMapper.deleteBatchIds(workspaceRelStyles);
|
workspaceRelStyleMapper.deleteBatchIds(workspaceRelStyles);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return projectId;
|
Long workspaceId = workspaceService.getByProjectId(projectId);
|
||||||
|
WorkspaceVO byIdForProject = workspaceService.getByIdForProject(workspaceId);
|
||||||
|
vo.setId(projectId);
|
||||||
|
vo.setWorkspaceVO(byIdForProject);
|
||||||
|
return vo;
|
||||||
}else {
|
}else {
|
||||||
Project project = CopyUtil.copyObject(projectDTO, Project.class);
|
Project project = CopyUtil.copyObject(projectDTO, Project.class);
|
||||||
project.setAccountId(userInfo.getId());
|
project.setAccountId(userInfo.getId());
|
||||||
@@ -711,7 +723,7 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
|
|||||||
workspace.setCreateTime(LocalDateTime.now());
|
workspace.setCreateTime(LocalDateTime.now());
|
||||||
workspace.setUpdateTime(LocalDateTime.now());
|
workspace.setUpdateTime(LocalDateTime.now());
|
||||||
|
|
||||||
if (projectDTO.getProcess().equals(DesignProcess.SERIES_DESIGN.name())) {
|
if (projectDTO.getProcess().equals(DesignProcess.SERIES_DESIGN.name()) || projectDTO.getProcess().equals(DesignProcess.SKETCH_COLLAGE_PROCESS.name())) {
|
||||||
SysFile sysFile = sysFileService.getOneBySex(projectDTO.getStyleId(), projectDTO.getWorkspace().getSex());
|
SysFile sysFile = sysFileService.getOneBySex(projectDTO.getStyleId(), projectDTO.getWorkspace().getSex());
|
||||||
|
|
||||||
if (projectDTO.getWorkspace().getSex().equals(Sex.FEMALE.getValue())) {
|
if (projectDTO.getWorkspace().getSex().equals(Sex.FEMALE.getValue())) {
|
||||||
@@ -731,7 +743,10 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
|
|||||||
rel.setStyleId(projectDTO.getStyleId());
|
rel.setStyleId(projectDTO.getStyleId());
|
||||||
workspaceRelStyleMapper.insert(rel);
|
workspaceRelStyleMapper.insert(rel);
|
||||||
}
|
}
|
||||||
return project.getId();
|
WorkspaceVO byIdForProject = workspaceService.getByIdForProject(workspace.getId());
|
||||||
|
vo.setId(project.getId());
|
||||||
|
vo.setWorkspaceVO(byIdForProject);
|
||||||
|
return vo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user