BUGFIX: 批量生成积分扣除有误

This commit is contained in:
2025-07-10 11:24:25 +08:00
parent c7c69417ef
commit eb7f2a1419
5 changed files with 45 additions and 20 deletions

View File

@@ -41,6 +41,8 @@ public interface CreditsService extends IService<CreditsDetail> {
void preInsert(Long accountId, String changeEventName, String taskId, Boolean isPreInsert, String changedCredits);
void preInsert(Long accountId, String changeEventName, String taskId, Boolean isPreInsert, String changedCredits, Integer num);
void updateChangedCredits(String accountId, String taskId);
CreditsDetail queryDetailByTaskId(String taskId);

View File

@@ -326,6 +326,21 @@ public class CreditsServiceImpl extends ServiceImpl<CreditsDetailMapper, Credits
baseMapper.insert(creditsDetail);
}
@Override
public void preInsert(Long accountId, String changeEventName, String taskId, Boolean isPreInsert, String changedCredits, Integer num) {
CreditsDetail creditsDetail = new CreditsDetail();
Account account = accountMapper.selectById(accountId);
creditsDetail.setAccountId(accountId);
creditsDetail.setTaskId(taskId);
creditsDetail.setChangeEvent(changeEventName);
creditsDetail.setNum(num);
creditsDetail.setChangedCredits(isPreInsert ? "-0" : "-" + changedCredits);
creditsDetail.setCredits(account.getCredits());
creditsDetail.setCreateTime(LocalDateTime.now());
baseMapper.insert(creditsDetail);
}
@Override
public void updateChangedCredits(String accountId, String taskId) {
QueryWrapper<CreditsDetail> queryWrapper = new QueryWrapper<>();
@@ -338,7 +353,11 @@ public class CreditsServiceImpl extends ServiceImpl<CreditsDetailMapper, Credits
String credits = "0";
CreditsEventsEnum eventsEnum = CreditsEventsEnum.getByTaskName(changeEvent);
if (Objects.nonNull(eventsEnum)){
credits = eventsEnum.getValue();
if (Objects.nonNull(creditsDetail.getNum()) && creditsDetail.getNum() != 0){
credits = String.valueOf(Long.parseLong(eventsEnum.getValue()) * creditsDetail.getNum());
}else {
credits = eventsEnum.getValue();
}
}
/*if (changeEvent.equals("Logo") ||
changeEvent.equals("Pattern") ||

View File

@@ -2052,11 +2052,13 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
toProductImageResult.setImageStrength(randomFromRange);
toProductImageResultMapper.insert(toProductImageResult);
result.add(toProductImageResult);
// 添加需要扣除的积分到预扣除区
creditsService.addRecordToCreditsDeduction(userHolder.getId(), taskId, CreditsEventsEnum.TO_PRODUCT_IMAGE, cloudTaskDTO.getNums());
i ++;
}
pythonService.toProductImageBatch(batchTaskId, paramList, userHolder.getId().toString());
// 添加需要扣除的积分到预扣除区
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() );
}else {
if (StringUtils.isEmpty(prompt)) {
sb.append(",high quality clothing details,8K realistic,HDR");
@@ -2094,11 +2096,14 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
toProductImageResult.setImageStrength(randomFromRange);
toProductImageResultMapper.insert(toProductImageResult);
result.add(toProductImageResult);
// 添加需要扣除的积分到预扣除区
creditsService.addRecordToCreditsDeduction(userHolder.getId(), taskId, CreditsEventsEnum.TO_PRODUCT_IMAGE, cloudTaskDTO.getNums());
i ++;
}
pythonService.toProductImageBatch(batchTaskId, paramList, userHolder.getId().toString());
// 添加需要扣除的积分到预扣除区
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() );
}
sb = new StringBuilder("The best quality, masterpiece, real image.");
}
@@ -2218,13 +2223,15 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
toProductImageResult.setDirection(toProductImageDTO.getDirection());
toProductImageResultMapper.insert(toProductImageResult);
result.add(toProductImageResult);
// 添加需要扣除的积分到预扣除区
creditsService.addRecordToCreditsDeduction(userHolder.getId(), taskId, CreditsEventsEnum.RELIGHT, cloudTaskDTO.getNums());
i ++;
}
// 走模型
pythonService.relightBatch(batchTaskId, paramList, userHolder.getId().toString());
// 添加需要扣除的积分到预扣除区
creditsService.addRecordToCreditsDeduction(userHolder.getId(), batchTaskId, CreditsEventsEnum.RELIGHT, cloudTaskDTO.getNums());
// 预插入数据到积分变更表
creditsService.preInsert(userHolder.getId(), CreditsEventsEnum.RELIGHT.getValue(), batchTaskId, true, null,cloudTaskDTO.getNums() );
}
}else {
@@ -2261,13 +2268,14 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
toProductImageResult.setDirection(toProductImageDTO.getDirection());
toProductImageResultMapper.insert(toProductImageResult);
result.add(toProductImageResult);
// 添加需要扣除的积分到预扣除区
creditsService.addRecordToCreditsDeduction(userHolder.getId(), taskId, CreditsEventsEnum.RELIGHT, cloudTaskDTO.getNums());
i ++;
}
// 走模型
pythonService.relightBatch(batchTaskId, paramList, userHolder.getId().toString());
// 添加需要扣除的积分到预扣除区
creditsService.addRecordToCreditsDeduction(userHolder.getId(), batchTaskId, CreditsEventsEnum.RELIGHT, cloudTaskDTO.getNums());
// 预插入数据到积分变更表
creditsService.preInsert(userHolder.getId(), CreditsEventsEnum.RELIGHT.getValue(), batchTaskId, true, null,cloudTaskDTO.getNums() );
}
}
return batchTaskId;
@@ -2339,7 +2347,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
// 6、添加预扣除积分到redis
creditsService.addRecordToCreditsDeduction(accountId, uuid, creditsEventsEnum, cloudTaskDTO.getNums());
// 6.1 添加积分扣除记录到db
creditsService.preInsert(accountId, creditsEventsEnum.getName(), uuid, Boolean.TRUE, null);
creditsService.preInsert(accountId, creditsEventsEnum.getName(), uuid, Boolean.TRUE, null, cloudTaskDTO.getNums());
}else {
throw new BusinessException("pose transformation error", ResultEnum.ERROR.getCode());
}

View File

@@ -2797,10 +2797,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
// 4、扣除积分
Boolean b = creditsService.taskCreditsDeduction(accountId, taskId);
// 3、记录积分变更
if (b) creditsService.insertToCreditsDetail(accountId,
CreditsEventsEnum.TO_PRODUCT_IMAGE.getName(),
CreditsEventsEnum.TO_PRODUCT_IMAGE.getValue(),
"negative", null);
if (b) creditsService.updateChangedCredits(String.valueOf(accountId), taskId);
}
}
@@ -2849,10 +2846,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
// 4、扣除积分
Boolean b = creditsService.taskCreditsDeduction(accountId, taskId);
// 3、记录积分变更
if (b) creditsService.insertToCreditsDetail(accountId,
CreditsEventsEnum.RELIGHT.getName(),
CreditsEventsEnum.RELIGHT.getValue(),
"negative", null);
if (b) creditsService.updateChangedCredits(String.valueOf(accountId), taskId);
}
}
}