bugfix: delete collection;

This commit is contained in:
shahaibo
2025-06-19 11:50:39 +08:00
parent d6285781f2
commit ea235b0d5c
10 changed files with 190 additions and 44 deletions

View File

@@ -110,7 +110,7 @@ public interface UserLikeGroupService extends IService<UserLikeGroup> {
Boolean brandDNADelete(BrandDNADTO brandDNADTO);
void toProductBatch(String taskId, String url, String progress);
void toProductBatch(String taskId, String url, String progress) throws InterruptedException;
void relightBatch(String taskId, String url, String progress);
@@ -119,4 +119,8 @@ public interface UserLikeGroupService extends IService<UserLikeGroup> {
Boolean toProductImageElementDelete(Long id);
ToProductElementVO convertRelightElement(Long id);
void startTask(String batchTaskId);
void completeTask(String batchTaskId);
}

View File

@@ -1380,6 +1380,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
for (CollectionSort likeSort : userLikeSorts) {
if (Objects.equals(likeSort.getId(), userLikeSortId)) {
collectionSortMapper.deleteById(likeSort);
deleteByParentId(likeSort.getId());
break;
}else {
likeSort.setSort(likeSort.getSort() - 1);
@@ -1389,10 +1390,16 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
}
}
@Override
public CollectionSort getUserLikeSortByUserLikeId(Long userLikeId, String relationType, Long projectId) {
private void deleteByParentId(Long parentId) {
QueryWrapper<CollectionSort> qw = new QueryWrapper<>();
qw.lambda().eq(CollectionSort::getRelationId, userLikeId);
qw.lambda().eq(CollectionSort::getParentId, parentId);
collectionSortMapper.delete(qw);
}
@Override
public CollectionSort getUserLikeSortByUserLikeId(Long relationId, String relationType, Long projectId) {
QueryWrapper<CollectionSort> qw = new QueryWrapper<>();
qw.lambda().eq(CollectionSort::getRelationId, relationId);
qw.lambda().eq(CollectionSort::getRelationType, relationType);
qw.lambda().eq(CollectionSort::getProjectId, projectId);
CollectionSort userLikeSort = collectionSortMapper.selectOne(qw);
@@ -1915,6 +1922,15 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
}
}
}
CloudTask cloudTask = CopyUtil.copyObject(cloudTaskDTO, CloudTask.class);
cloudTask.setProjectId(projectId);
cloudTask.setTaskId(batchTaskId);
LocalDateTime now = LocalDateTime.now();
cloudTask.setCreateTime(now);
cloudTask.setUpdateTime(now);
cloudTask.setStatus(0);
cloudTask.setAccountId(userInfo.getId());
cloudTaskMapper.insert(cloudTask);
UserLikeGroup userLikeGroup = userLikeGroupService.getByProjectId(projectId);
Long userLikeGroupId = null;
ToProductImageRecord toProductImageRecord = new ToProductImageRecord();
@@ -2052,16 +2068,6 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
}
sb = new StringBuilder("The best quality, masterpiece, real image.");
}
CloudTask cloudTask = CopyUtil.copyObject(cloudTaskDTO, CloudTask.class);
cloudTask.setProjectId(projectId);
cloudTask.setTaskId(batchTaskId);
LocalDateTime now = LocalDateTime.now();
cloudTask.setCreateTime(now);
cloudTask.setUpdateTime(now);
cloudTask.setStatus(0);
cloudTask.setAccountId(userInfo.getId());
cloudTaskMapper.insert(cloudTask);
return batchTaskId;
}else if (cloudTaskDTO.getBuildType().equals(BuildType.RELIGHT.getValue())) {
ToProductImageDTO toProductImageDTO = cloudTaskDTO.getToProductImage();
@@ -2093,6 +2099,16 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
}
}
}
CloudTask cloudTask = CopyUtil.copyObject(cloudTaskDTO, CloudTask.class);
cloudTask.setProjectId(projectId);
cloudTask.setTaskId(batchTaskId);
LocalDateTime now = LocalDateTime.now();
cloudTask.setCreateTime(now);
cloudTask.setUpdateTime(now);
cloudTask.setStatus(0);
cloudTaskMapper.insert(cloudTask);
UserLikeGroup userLikeGroup = userLikeGroupService.getByProjectId(projectId);
Long userLikeGroupId = null;
@@ -2215,14 +2231,6 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
pythonService.relightBatch(batchTaskId, paramList, userHolder.getId().toString());
}
}
CloudTask cloudTask = CopyUtil.copyObject(cloudTaskDTO, CloudTask.class);
cloudTask.setProjectId(projectId);
cloudTask.setTaskId(batchTaskId);
LocalDateTime now = LocalDateTime.now();
cloudTask.setCreateTime(now);
cloudTask.setUpdateTime(now);
cloudTask.setStatus(0);
cloudTaskMapper.insert(cloudTask);
return batchTaskId;
} else if (cloudTaskDTO.getBuildType().equals(BuildType.POSE_TRANSFORM.getValue())) {
Long projectId = cloudTaskDTO.getProjectId();
@@ -2247,13 +2255,23 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
}
}
Long accountId = UserContext.getUserHolder().getId();
String taskBatchId = UUID.randomUUID().toString() + "-" + accountId;
CloudTask cloudTask = CopyUtil.copyObject(cloudTaskDTO, CloudTask.class);
cloudTask.setProjectId(cloudTask.getProjectId());
cloudTask.setTaskId(taskBatchId);
LocalDateTime now = LocalDateTime.now();
cloudTask.setCreateTime(now);
cloudTask.setUpdateTime(now);
cloudTask.setStatus(0);
cloudTaskMapper.insert(cloudTask);
Boolean preDeduction = creditsService.creditsPreDeduction(Integer.parseInt(CreditsEventsEnum.POSE_TRANSFORMATION.getValue()) * cloudTaskDTO.getNums());
if (!preDeduction) {
throw new BusinessException("Your remaining credits are insufficient for this generation. Please recharge.", ResultEnum.WARNING.getCode());
}
List<PoseTransformBatchDTO> poseTransformList = cloudTaskDTO.getPoseTransform();
if (CollectionUtil.isNotEmpty(poseTransformList)) {
String taskBatchId = UUID.randomUUID().toString() + "-" + accountId;
for (PoseTransformBatchDTO poseTransformBatchDTO : poseTransformList) {
// 1、判断用户当前积分是否够本次生成消耗
CreditsEventsEnum creditsEventsEnum = CreditsEventsEnum.POSE_TRANSFORMATION;
@@ -2282,14 +2300,6 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
throw new BusinessException("pose transformation error", ResultEnum.ERROR.getCode());
}
}
CloudTask cloudTask = CopyUtil.copyObject(cloudTaskDTO, CloudTask.class);
cloudTask.setProjectId(cloudTask.getProjectId());
cloudTask.setTaskId(taskBatchId);
LocalDateTime now = LocalDateTime.now();
cloudTask.setCreateTime(now);
cloudTask.setUpdateTime(now);
cloudTask.setStatus(0);
cloudTaskMapper.insert(cloudTask);
return taskBatchId;
}
}
@@ -2918,7 +2928,12 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
libraryService.processSketchBoards(url, collectionElement.getLevel2Type());
}else if (receiveCollectionElement.getLevel1Type().equals(CollectionLevel1TypeEnum.COLOR_BOARD.getRealName())) {
String color = receiveCollectionElement.getHsv();
int[] hsv = Arrays.stream(color.split("\\s+")).mapToInt(Integer::parseInt).toArray();
String[] parts = color.split("\\s+");
int h = Math.round(Float.parseFloat(parts[0]));
int s = Math.round(Float.parseFloat(parts[1])); // 关键修改
int v = Math.round(Float.parseFloat(parts[2]));
int[] hsv = {h, s, v};
// int[] hsv = Arrays.stream(color.split("\\s+")).mapToInt(Integer::parseInt).toArray();
int value = (hsv[0] * 101 * 101) + (hsv[1] * 101) + hsv[2];
ColorLookupTable colorLookupTable = colorLoopUpTableService.getByColorValue(value);
if (Objects.isNull(colorLookupTable)) {

View File

@@ -332,6 +332,7 @@ public class LLMServiceImpl implements LLMService {
ReceiveDesignParam receiveDesignParam = JSONObject.parseObject(JSONObject.toJSONString(toolsData), ReceiveDesignParam.class);
receiveDesignParam.setProjectId(projectId);
designService.receiveDesignParams(receiveDesignParam);
String contentSave = JSONObject.toJSONString(receiveDesignParam.getReceiveCollectionElementList());
for (ReceiveCollectionElement receiveCollectionElement : receiveDesignParam.getReceiveCollectionElementList()) {
if (!StringUtils.isEmpty(receiveCollectionElement.getUrl())) {
color = false;
@@ -350,7 +351,7 @@ public class LLMServiceImpl implements LLMService {
systemImage.setProjectId(projectId);
systemImage.setSeq(getNextSeq(projectId));
systemImage.setCreateTime(LocalDateTime.now());
systemImage.setContent(JSONObject.toJSONString(receiveDesignParam.getReceiveCollectionElementList()));
systemImage.setContent(contentSave);
systemImage.setAccountId(accountId);
chatMessageMapper.insert(systemImage);
}

View File

@@ -58,7 +58,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
@Override
public Set<Long> getChildProjectIdSet(Long projectId) {
QueryWrapper<Project> qw = new QueryWrapper<>();
qw.lambda().eq(Project::getParentId, projectId);
// qw.lambda().eq(Project::getParentId, projectId);
List<Project> projectList = projectMapper.selectList(qw);
if (CollectionUtil.isNotEmpty(projectList)) {
return projectList.stream().map(Project::getId).collect(Collectors.toSet());

View File

@@ -38,6 +38,7 @@ import io.netty.util.internal.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
@@ -2532,8 +2533,8 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
}
@Override
@Transactional
public void toProductBatch(String taskId, String url, String progress) {
@Transactional(isolation = Isolation.SERIALIZABLE)
public void toProductBatch(String taskId, String url, String progress) throws InterruptedException {
QueryWrapper<ToProductImageResult> qw = new QueryWrapper<>();
qw.lambda().eq(ToProductImageResult::getTaskId, taskId);
ToProductImageResult toProductImageResult = toProductImageResultMapper.selectOne(qw);
@@ -2544,7 +2545,9 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
log.info("toProductImage云生成 batchTaskId:" + taskIdBatch + " 完成数+1");
CloudTask task = cloudTaskMapper.selectForUpdate(taskIdBatch);
cloudTaskMapper.increaseCompletedNum(taskIdBatch);
log.info("排查完成数量" + task.getCompletedNum());
task.setCompletedNum(task.getCompletedNum() + 1);
cloudTaskMapper.updateById(task);
String key = toProductImageResultKey + ":" + taskId;
String imageName = url.substring(url.lastIndexOf("/") + 1);
@@ -2670,4 +2673,23 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
toProductElementVO.setUrl(minioUtil.getPreSignedUrl(toProductElementVO.getUrl(), 24 * 60));
return toProductElementVO;
}
@Override
public void startTask(String batchTaskId) {
QueryWrapper<CloudTask> qw = new QueryWrapper<>();
qw.lambda().eq(CloudTask::getTaskId, batchTaskId);
CloudTask cloudTask = cloudTaskMapper.selectOne(qw);
cloudTask.setStartTime(LocalDateTime.now());
cloudTaskMapper.updateById(cloudTask);
}
@Override
public void completeTask(String batchTaskId) {
QueryWrapper<CloudTask> qw = new QueryWrapper<>();
qw.lambda().eq(CloudTask::getTaskId, batchTaskId);
CloudTask cloudTask = cloudTaskMapper.selectOne(qw);
cloudTask.setStatus(1);
cloudTask.setCompletedNum(cloudTask.getNums());
cloudTaskMapper.updateById(cloudTask);
}
}