BUGFIX: 1、积分重复扣除 2、pose transfer没有开始时间,没有项目id
This commit is contained in:
@@ -505,14 +505,16 @@ public class GenerateConsumer {
|
|||||||
try {
|
try {
|
||||||
log.info("task_id : {} start ", generateResult.get("task_id"));
|
log.info("task_id : {} start ", generateResult.get("task_id"));
|
||||||
if (!StringUtils.isEmpty(generateResult.getString("progress"))) {
|
if (!StringUtils.isEmpty(generateResult.getString("progress"))) {
|
||||||
|
String progress = generateResult.getString("progress");
|
||||||
|
String taskId = generateResult.getString("task_id");
|
||||||
|
generateService.processPoseTransformResultBatch(progress, taskId);
|
||||||
|
|
||||||
JSONArray result = generateResult.getJSONArray("result");
|
JSONArray result = generateResult.getJSONArray("result");
|
||||||
if (!StringUtils.isEmpty(result)) {
|
if (!StringUtils.isEmpty(result)) {
|
||||||
JSONObject jsonObject = result.getJSONObject(0);
|
JSONObject jsonObject = result.getJSONObject(0);
|
||||||
String gifUrl = jsonObject.getString("gif_url");
|
String gifUrl = jsonObject.getString("gif_url");
|
||||||
String taskId = generateResult.getString("task_id");
|
|
||||||
String videoUrl = jsonObject.getString("video_url");
|
String videoUrl = jsonObject.getString("video_url");
|
||||||
String imageUrl = jsonObject.getString("first_image_url");
|
String imageUrl = jsonObject.getString("first_image_url");
|
||||||
String progress = generateResult.getString("progress");
|
|
||||||
generateService.processPoseTransformResultBatch(taskId, gifUrl, videoUrl, imageUrl, progress);
|
generateService.processPoseTransformResultBatch(taskId, gifUrl, videoUrl, imageUrl, progress);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -70,6 +70,8 @@ public interface GenerateService extends IService<Generate> {
|
|||||||
|
|
||||||
void processPoseTransformResultBatch(String taskId, String gifUrl, String videoUrl, String imageUrl, String progress);
|
void processPoseTransformResultBatch(String taskId, String gifUrl, String videoUrl, String imageUrl, String progress);
|
||||||
|
|
||||||
|
void processPoseTransformResultBatch(String taskId, String progress);
|
||||||
|
|
||||||
String createAsyncTask(GenerateThroughImageTextDTO generateThroughImageTextDTO);
|
String createAsyncTask(GenerateThroughImageTextDTO generateThroughImageTextDTO);
|
||||||
|
|
||||||
GenerateResultVO getAsyncTaskResult(String taskId);
|
GenerateResultVO getAsyncTaskResult(String taskId);
|
||||||
|
|||||||
@@ -2058,7 +2058,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
// 添加需要扣除的积分到预扣除区
|
// 添加需要扣除的积分到预扣除区
|
||||||
creditsService.addRecordToCreditsDeduction(userHolder.getId(), batchTaskId, CreditsEventsEnum.TO_PRODUCT_IMAGE, cloudTaskDTO.getNums());
|
creditsService.addRecordToCreditsDeduction(userHolder.getId(), batchTaskId, CreditsEventsEnum.TO_PRODUCT_IMAGE, cloudTaskDTO.getNums());
|
||||||
// 预插入数据到积分变更表
|
// 预插入数据到积分变更表
|
||||||
creditsService.preInsert(userHolder.getId(), CreditsEventsEnum.TO_PRODUCT_IMAGE.getValue(), batchTaskId, true, null,cloudTaskDTO.getNums() );
|
creditsService.preInsert(userHolder.getId(), CreditsEventsEnum.TO_PRODUCT_IMAGE.getName(), batchTaskId, true, null,cloudTaskDTO.getNums() );
|
||||||
}else {
|
}else {
|
||||||
if (StringUtils.isEmpty(prompt)) {
|
if (StringUtils.isEmpty(prompt)) {
|
||||||
sb.append(",high quality clothing details,8K realistic,HDR");
|
sb.append(",high quality clothing details,8K realistic,HDR");
|
||||||
@@ -2102,7 +2102,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
// 添加需要扣除的积分到预扣除区
|
// 添加需要扣除的积分到预扣除区
|
||||||
creditsService.addRecordToCreditsDeduction(userHolder.getId(), batchTaskId, CreditsEventsEnum.TO_PRODUCT_IMAGE, cloudTaskDTO.getNums());
|
creditsService.addRecordToCreditsDeduction(userHolder.getId(), batchTaskId, CreditsEventsEnum.TO_PRODUCT_IMAGE, cloudTaskDTO.getNums());
|
||||||
// 预插入数据到积分变更表
|
// 预插入数据到积分变更表
|
||||||
creditsService.preInsert(userHolder.getId(), CreditsEventsEnum.TO_PRODUCT_IMAGE.getValue(), batchTaskId, true, null,cloudTaskDTO.getNums() );
|
creditsService.preInsert(userHolder.getId(), CreditsEventsEnum.TO_PRODUCT_IMAGE.getName(), batchTaskId, true, null,cloudTaskDTO.getNums() );
|
||||||
|
|
||||||
}
|
}
|
||||||
sb = new StringBuilder("The best quality, masterpiece, real image.");
|
sb = new StringBuilder("The best quality, masterpiece, real image.");
|
||||||
@@ -2230,7 +2230,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
// 添加需要扣除的积分到预扣除区
|
// 添加需要扣除的积分到预扣除区
|
||||||
creditsService.addRecordToCreditsDeduction(userHolder.getId(), batchTaskId, CreditsEventsEnum.RELIGHT, cloudTaskDTO.getNums());
|
creditsService.addRecordToCreditsDeduction(userHolder.getId(), batchTaskId, CreditsEventsEnum.RELIGHT, cloudTaskDTO.getNums());
|
||||||
// 预插入数据到积分变更表
|
// 预插入数据到积分变更表
|
||||||
creditsService.preInsert(userHolder.getId(), CreditsEventsEnum.RELIGHT.getValue(), batchTaskId, true, null,cloudTaskDTO.getNums() );
|
creditsService.preInsert(userHolder.getId(), CreditsEventsEnum.RELIGHT.getName(), batchTaskId, true, null,cloudTaskDTO.getNums() );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2275,7 +2275,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
// 添加需要扣除的积分到预扣除区
|
// 添加需要扣除的积分到预扣除区
|
||||||
creditsService.addRecordToCreditsDeduction(userHolder.getId(), batchTaskId, CreditsEventsEnum.RELIGHT, cloudTaskDTO.getNums());
|
creditsService.addRecordToCreditsDeduction(userHolder.getId(), batchTaskId, CreditsEventsEnum.RELIGHT, cloudTaskDTO.getNums());
|
||||||
// 预插入数据到积分变更表
|
// 预插入数据到积分变更表
|
||||||
creditsService.preInsert(userHolder.getId(), CreditsEventsEnum.RELIGHT.getValue(), batchTaskId, true, null,cloudTaskDTO.getNums() );
|
creditsService.preInsert(userHolder.getId(), CreditsEventsEnum.RELIGHT.getName(), batchTaskId, true, null,cloudTaskDTO.getNums() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return batchTaskId;
|
return batchTaskId;
|
||||||
@@ -2288,7 +2288,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
|
|
||||||
Long projectId = cloudTaskDTO.getProjectId();
|
Long projectId = cloudTaskDTO.getProjectId();
|
||||||
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
||||||
if (null == projectId) {
|
if (Objects.isNull(projectId)) {
|
||||||
Project project = new Project();
|
Project project = new Project();
|
||||||
project.setName(DesignProcess.POSE_TRANSFER.getValue() + "_" + cloudTaskDTO.getName());
|
project.setName(DesignProcess.POSE_TRANSFER.getValue() + "_" + cloudTaskDTO.getName());
|
||||||
project.setProcess(DesignProcess.POSE_TRANSFER.name());
|
project.setProcess(DesignProcess.POSE_TRANSFER.name());
|
||||||
@@ -2308,12 +2308,13 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Long accountId = UserContext.getUserHolder().getId();
|
Long accountId = UserContext.getUserHolder().getId();
|
||||||
String taskBatchId = UUID.randomUUID().toString() + "-" + accountId;
|
String taskBatchId = UUID.randomUUID() + "-" + accountId;
|
||||||
|
|
||||||
CloudTask cloudTask = CopyUtil.copyObject(cloudTaskDTO, CloudTask.class);
|
CloudTask cloudTask = CopyUtil.copyObject(cloudTaskDTO, CloudTask.class);
|
||||||
cloudTask.setProjectId(cloudTask.getProjectId());
|
cloudTask.setProjectId(cloudTask.getProjectId());
|
||||||
cloudTask.setTaskId(taskBatchId);
|
cloudTask.setTaskId(taskBatchId);
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
cloudTask.setProjectId(projectId);
|
||||||
cloudTask.setCreateTime(now);
|
cloudTask.setCreateTime(now);
|
||||||
cloudTask.setUpdateTime(now);
|
cloudTask.setUpdateTime(now);
|
||||||
cloudTask.setStatus(0);
|
cloudTask.setStatus(0);
|
||||||
@@ -2593,7 +2594,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
qw.lambda().eq(CloudTask::getTaskId, taskId);
|
qw.lambda().eq(CloudTask::getTaskId, taskId);
|
||||||
List<CloudTask> cloudTaskList = cloudTaskMapper.selectList(qw);
|
List<CloudTask> cloudTaskList = cloudTaskMapper.selectList(qw);
|
||||||
if (((String) progress).startsWith("0/")) {
|
if (((String) progress).startsWith("0/")) {
|
||||||
if (CollectionUtil.isNotEmpty(cloudTaskList) && Objects.nonNull(cloudTaskList.get(0).getStartTime())) {
|
if (CollectionUtil.isNotEmpty(cloudTaskList) && Objects.isNull(cloudTaskList.get(0).getStartTime())) {
|
||||||
CloudTask cloudTask = cloudTaskList.get(0);
|
CloudTask cloudTask = cloudTaskList.get(0);
|
||||||
cloudTask.setStartTime(LocalDateTime.now());
|
cloudTask.setStartTime(LocalDateTime.now());
|
||||||
cloudTask.setUpdateTime(LocalDateTime.now());
|
cloudTask.setUpdateTime(LocalDateTime.now());
|
||||||
@@ -2801,8 +2802,8 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
|||||||
.divide(total, 4, RoundingMode.HALF_UP) // 先计算小数百分比,保留4位防止精度问题
|
.divide(total, 4, RoundingMode.HALF_UP) // 先计算小数百分比,保留4位防止精度问题
|
||||||
.multiply(BigDecimal.valueOf(100)) // 乘以100变成百分比
|
.multiply(BigDecimal.valueOf(100)) // 乘以100变成百分比
|
||||||
.setScale(2, RoundingMode.HALF_UP); // 最终保留2位小数
|
.setScale(2, RoundingMode.HALF_UP); // 最终保留2位小数
|
||||||
|
String percentage = percent.compareTo(new BigDecimal("100")) > 0 ? "100.00" : percent.toPlainString();
|
||||||
cloudTaskVO.setProcess(percent.toPlainString() + "%");
|
cloudTaskVO.setProcess(percentage + "%");
|
||||||
}
|
}
|
||||||
return cloudTaskVO;
|
return cloudTaskVO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ import org.springframework.beans.factory.annotation.Value;
|
|||||||
import org.springframework.dao.DuplicateKeyException;
|
import org.springframework.dao.DuplicateKeyException;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
@@ -1603,11 +1604,7 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
QueryWrapper<CloudTask> cloudTaskQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<CloudTask> cloudTaskQueryWrapper = new QueryWrapper<>();
|
||||||
cloudTaskQueryWrapper.lambda().eq(CloudTask::getTaskId, taskIdBatch);
|
cloudTaskQueryWrapper.lambda().eq(CloudTask::getTaskId, taskIdBatch);
|
||||||
CloudTask cloudTask = cloudTaskMapper.selectOne(cloudTaskQueryWrapper);
|
CloudTask cloudTask = cloudTaskMapper.selectOne(cloudTaskQueryWrapper);
|
||||||
if (Objects.nonNull(cloudTask) && Objects.nonNull(cloudTask.getStartTime())){
|
if (Objects.nonNull(cloudTask)){
|
||||||
cloudTask.setStartTime(LocalDateTime.now());
|
|
||||||
cloudTask.setUpdateTime(LocalDateTime.now());
|
|
||||||
cloudTaskMapper.updateById(cloudTask);
|
|
||||||
}else if (Objects.nonNull(cloudTask)){
|
|
||||||
cloudTask.setUpdateTime(LocalDateTime.now());
|
cloudTask.setUpdateTime(LocalDateTime.now());
|
||||||
cloudTaskMapper.updateById(cloudTask);
|
cloudTaskMapper.updateById(cloudTask);
|
||||||
}
|
}
|
||||||
@@ -1617,10 +1614,6 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
// }else {
|
// }else {
|
||||||
// cloudTask.setCompletedNum(cloudTask.getCompletedNum() + 1);
|
// cloudTask.setCompletedNum(cloudTask.getCompletedNum() + 1);
|
||||||
// }
|
// }
|
||||||
// if (progress.equals("OK")) {
|
|
||||||
// cloudTask.setStatus(1);
|
|
||||||
// cloudTask.setCompletedNum(cloudTask.getNums());
|
|
||||||
// }
|
|
||||||
// cloudTaskMapper.updateById(cloudTask);
|
// cloudTaskMapper.updateById(cloudTask);
|
||||||
// }
|
// }
|
||||||
cloudTaskMapper.increaseCompletedNum(taskIdBatch);
|
cloudTaskMapper.increaseCompletedNum(taskIdBatch);
|
||||||
@@ -1632,13 +1625,42 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
// 2、更新redis
|
// 2、更新redis
|
||||||
redisUtil.addToString(key, new Gson().toJson(poseTransformationVO), CommonConstant.GENERATE_RESULT_EXPIRE_TIME);
|
redisUtil.addToString(key, new Gson().toJson(poseTransformationVO), CommonConstant.GENERATE_RESULT_EXPIRE_TIME);
|
||||||
|
|
||||||
// 3、执行积分扣除
|
/*// 3、执行积分扣除
|
||||||
String accountId = taskId.substring(taskId.lastIndexOf("-") + 1);
|
String accountId = taskId.substring(taskId.lastIndexOf("-") + 1);
|
||||||
String uuid = taskId.substring(0, taskId.lastIndexOf("-"));
|
String uuid = taskId.substring(0, taskId.lastIndexOf("-"));
|
||||||
Boolean flag = creditsService.taskCreditsDeduction(Long.parseLong(accountId), taskIdBatch);
|
Boolean flag = creditsService.taskCreditsDeduction(Long.parseLong(accountId), taskIdBatch);
|
||||||
if (flag) creditsService.updateChangedCredits(accountId, taskIdBatch);
|
if (flag) creditsService.updateChangedCredits(accountId, taskIdBatch);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public void processPoseTransformResultBatch(String progress, String taskId) {
|
||||||
|
// 1、存储模型返回的数据
|
||||||
|
PoseTransformation poseTransformation;
|
||||||
|
QueryWrapper<PoseTransformation> qw = new QueryWrapper<>();
|
||||||
|
qw.eq("unique_id", taskId);
|
||||||
|
List<PoseTransformation> poseTransformations = poseTransformationMapper.selectList(qw);
|
||||||
|
log.info("poseTransformations : {}", poseTransformations);
|
||||||
|
if (poseTransformations != null && poseTransformations.size() > 1) {
|
||||||
|
log.warn("通过taskId {} 查询到的PoseTransformation的结果不止一条", taskId);
|
||||||
|
} else if (poseTransformations == null || poseTransformations.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
poseTransformation = poseTransformations.get(0);
|
||||||
|
String taskIdBatch = poseTransformation.getTaskIdBatch();
|
||||||
|
log.info("progress:{}", progress);
|
||||||
|
log.info("taskIdBatch:{}", taskIdBatch);
|
||||||
|
if (progress.equals("OK")) {
|
||||||
|
if (!StringUtils.isEmpty(taskIdBatch)) {
|
||||||
|
userLikeGroupService.completeTask(taskIdBatch);
|
||||||
|
}
|
||||||
|
}else if (progress.startsWith("0/")) {
|
||||||
|
if (!StringUtils.isEmpty(taskIdBatch)) {
|
||||||
|
userLikeGroupService.startTask(taskIdBatch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 万象专业版
|
* 万象专业版
|
||||||
* 1、MoodBoard t2i
|
* 1、MoodBoard t2i
|
||||||
|
|||||||
@@ -2920,7 +2920,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
|||||||
qw.lambda().eq(CloudTask::getTaskId, batchTaskId);
|
qw.lambda().eq(CloudTask::getTaskId, batchTaskId);
|
||||||
CloudTask cloudTask = cloudTaskMapper.selectOne(qw);
|
CloudTask cloudTask = cloudTaskMapper.selectOne(qw);
|
||||||
cloudTask.setStatus(1);
|
cloudTask.setStatus(1);
|
||||||
cloudTask.setCompletedNum(cloudTask.getNums());
|
// cloudTask.setCompletedNum(cloudTask.getNums());
|
||||||
cloudTask.setUpdateTime(LocalDateTime.now());
|
cloudTask.setUpdateTime(LocalDateTime.now());
|
||||||
cloudTaskMapper.updateById(cloudTask);
|
cloudTaskMapper.updateById(cloudTask);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user