BUGFIX:
This commit is contained in:
@@ -31,6 +31,8 @@ public interface CreditsService extends IService<CreditsDetail> {
|
||||
|
||||
void addRecordToCreditsDeduction(Long accountId, String taskId, CreditsEventsEnum creditsEventsEnum, Integer num);
|
||||
|
||||
void deleteCreditsDeduction(Long accountId, String taskId);
|
||||
|
||||
Boolean taskCreditsDeduction(Long accountId, String taskId);
|
||||
|
||||
CreditsDetail getByAccountIdAndChangeEvent(Long accountId, String changeEvent, String changedCredits);
|
||||
|
||||
@@ -1266,12 +1266,12 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
|
||||
static {
|
||||
HikariConfig config = new HikariConfig();
|
||||
// config.setJdbcUrl("jdbc:mysql://code-create.com.hk:3306/db1nfvsgmjp3b8");
|
||||
// config.setUsername("uafqtz4gsvfrw");
|
||||
// config.setPassword("aida123456.");
|
||||
config.setJdbcUrl("jdbc:mysql://localhost:3306/code-create-local?serverTimezone=UTC");
|
||||
config.setUsername("root");
|
||||
config.setPassword("root");
|
||||
config.setJdbcUrl("jdbc:mysql://code-create.com.hk:3306/db1nfvsgmjp3b8");
|
||||
config.setUsername("uafqtz4gsvfrw");
|
||||
config.setPassword("aida123456.");
|
||||
// config.setJdbcUrl("jdbc:mysql://localhost:3306/code-create-local?serverTimezone=UTC");
|
||||
// config.setUsername("root");
|
||||
// config.setPassword("root");
|
||||
config.addDataSourceProperty("cachePrepStmts", "true");
|
||||
config.addDataSourceProperty("prepStmtCacheSize", "250");
|
||||
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
|
||||
|
||||
@@ -82,7 +82,7 @@ public class AffiliateServiceImpl extends ServiceImpl<AffiliateMapper, Affiliate
|
||||
// 邮件通知审批者
|
||||
String merchantEmail = "kimwong@code-create.com.hk";
|
||||
String developer = "xupei3360@163.com";
|
||||
String[] receiverEmail = {/*merchantEmail, */developer};
|
||||
String[] receiverEmail = {merchantEmail, developer};
|
||||
SendEmailUtil.affiliateEmailReminder(receiverEmail, new AffiliateEmailParamsDTO(userHolder.getUsername(), promotionMethod), "new");
|
||||
// emailService.affiliateEmailReminder(Arrays.asList(/*merchantEmail,*/ developer), new AffiliateEmailParamsDTO(userHolder.getUsername(), promotionMethod), "new");
|
||||
}else {
|
||||
@@ -387,7 +387,7 @@ public class AffiliateServiceImpl extends ServiceImpl<AffiliateMapper, Affiliate
|
||||
|
||||
String merchantEmail = "kimwong@code-create.com.hk";
|
||||
String developer = "xupei3360@163.com";
|
||||
String[] receiverEmail = {/*merchantEmail,*/ developer};
|
||||
String[] receiverEmail = {merchantEmail, developer};
|
||||
// 邮件通知
|
||||
SendEmailUtil.affiliateEmailReminder(receiverEmail, affiliateEmailParamsDTO, "summary");
|
||||
// emailService.affiliateEmailReminder(Arrays.asList(/*merchantEmail,*/ developer), affiliateEmailParamsDTO, "summary");
|
||||
|
||||
@@ -235,6 +235,12 @@ public class CreditsServiceImpl extends ServiceImpl<CreditsDetailMapper, Credits
|
||||
redisUtil.addToString(creditsDeduction + ":" + accountId + ":" + taskId, String.valueOf(Long.parseLong(creditsEventsEnum.getValue()) * num), CommonConstant.CREDITS_EXPIRE_TIME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteCreditsDeduction(Long accountId, String taskId) {
|
||||
// 5、添加当前任务的预扣积分到redis 任务有效期一天,若待扣积分两天还没被移除,说明任务已经失败,待扣积分自动失效
|
||||
redisUtil.removeFromString(creditsDeduction + ":" + accountId + ":" + taskId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行扣除积分,更新数据库
|
||||
*/
|
||||
|
||||
@@ -958,7 +958,7 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
|
||||
|
||||
// 对印花类型为Generate的图片路径进行特殊处理
|
||||
private void setUriToMinioPath(DesignSinglePrint print){
|
||||
if (print.getDesignType().equals("Generate")){
|
||||
if (!StringUtil.isNullOrEmpty(print.getDesignType()) && print.getDesignType().equals("Generate")){
|
||||
if (!StringUtil.isNullOrEmpty(print.getPath())){
|
||||
try {
|
||||
URI uri = new URI(print.getPath());
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ai.da.service.impl;
|
||||
|
||||
import com.ai.da.common.RabbitMQ.MQPublisher;
|
||||
import com.ai.da.common.config.exception.BusinessException;
|
||||
import com.ai.da.common.constant.CommonConstant;
|
||||
import com.ai.da.common.response.ResultEnum;
|
||||
import com.ai.da.common.utils.DateUtil;
|
||||
import com.ai.da.common.utils.MailUtil;
|
||||
@@ -178,7 +179,8 @@ public class EmailServiceImpl implements EmailService {
|
||||
EmailLog emailLog = new EmailLog();
|
||||
emailLog.setTemplateId(emailTemplate.getId());
|
||||
if (Objects.nonNull(jsonObject)) emailLog.setParameter(jsonObject.toString());
|
||||
emailLog.setSender("info@aida.com.hk");
|
||||
// emailLog.setSender("info@aida.com.hk");
|
||||
emailLog.setSender(CommonConstant.senderEmail);
|
||||
emailLog.setRecipients(mailTo.toString());
|
||||
emailLog.setSubject(title);
|
||||
emailLog.setCreateTime(LocalDateTime.now());
|
||||
@@ -584,7 +586,7 @@ public class EmailServiceImpl implements EmailService {
|
||||
try {
|
||||
String merchantEmail = "kimwong@code-create.com.hk";
|
||||
String developer = "xupei3360@163.com";
|
||||
List<String> merchantReceiver = Arrays.asList(/*merchantEmail, */developer);
|
||||
List<String> merchantReceiver = Arrays.asList(merchantEmail, developer);
|
||||
|
||||
String merchantSubject = null;
|
||||
String merchantTemplate = null;
|
||||
@@ -704,7 +706,7 @@ public class EmailServiceImpl implements EmailService {
|
||||
jsonObject.put("quantity", quantity);
|
||||
jsonObject.put("totalFee", amount);
|
||||
|
||||
sendEmail(Arrays.asList(/*merchantEmail,*/developerEmail), jsonObject, CREDITS_PURCHASE_MERCHANT, "New Credit Purchase Order", null, null);
|
||||
sendEmail(Arrays.asList(merchantEmail,developerEmail), jsonObject, CREDITS_PURCHASE_MERCHANT, "New Credit Purchase Order", null, null);
|
||||
}
|
||||
|
||||
private final static String COMMON_EXCEPTION_REMINDER = "135279_common-exception-reminder.html";
|
||||
|
||||
@@ -635,6 +635,9 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
||||
* 处理wx模型生成
|
||||
*/
|
||||
private PrepareForGenerateVO handleWxModelGeneration(GenerateThroughImageTextDTO generateDTO) {
|
||||
// 校验积分是否足够
|
||||
validateCredits(CreditsEventsEnum.WX_TEXT2IMG);
|
||||
// 创建生成任务
|
||||
String taskId = createAsyncTask(generateDTO);
|
||||
processCreditDeduction(generateDTO.getUserId(), taskId, CreditsEventsEnum.WX_TEXT2IMG);
|
||||
return new PrepareForGenerateVO(Collections.singletonList(taskId), 200);
|
||||
@@ -653,6 +656,9 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
||||
* 处理flux pattern生成
|
||||
*/
|
||||
private PrepareForGenerateVO handleFluxPatternGeneration(GenerateThroughImageTextDTO generateDTO) {
|
||||
// 校验积分是否足够
|
||||
validateCredits(CreditsEventsEnum.FLUX_IMG2IMG);
|
||||
|
||||
// 获取图片路径
|
||||
String imagePath = getImagePathForFlux(generateDTO);
|
||||
|
||||
@@ -2507,6 +2513,7 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
||||
} else {
|
||||
throw new BusinessException("unknown motion task");
|
||||
}
|
||||
Long accountId = poseTransformation.getAccountId();
|
||||
PoseTransformationVO poseTransformationVO = new PoseTransformationVO();
|
||||
WangXiangTaskStatusEnum statusEnum = WangXiangTaskStatusEnum.fromName(status);
|
||||
switch (statusEnum) {
|
||||
@@ -2528,7 +2535,6 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
||||
poseTransformationVO.setFirstFrameUrl(minioUtil.getPreSignedUrl(poseTransformation.getFirstFrameUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME));
|
||||
}
|
||||
// 执行积分扣除
|
||||
Long accountId = poseTransformation.getAccountId();
|
||||
Boolean flag = creditsService.taskCreditsDeduction(accountId, taskId);
|
||||
if (flag) creditsService.updateChangedCredits(String.valueOf(accountId), taskId);
|
||||
|
||||
@@ -2539,11 +2545,15 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
||||
case FAILED:
|
||||
AccessLimitUtils.validateOut("animation");
|
||||
updatePoseTransferStatus(taskId, "Fail", poseTransformation);
|
||||
// 将积分暂扣区的积分移除
|
||||
creditsService.deleteCreditsDeduction(accountId, taskId);
|
||||
throw new BusinessException(output.getStr("message"), ResultEnum.PROMPT.getCode());
|
||||
case UNKNOWN_W:
|
||||
AccessLimitUtils.validateOut("animation");
|
||||
poseTransformationVO.setStatus("Fail");
|
||||
updatePoseTransferStatus(taskId, "Fail", poseTransformation);
|
||||
// 将积分暂扣区的积分移除
|
||||
creditsService.deleteCreditsDeduction(accountId, taskId);
|
||||
break;
|
||||
case RUNNING:
|
||||
case PENDING_W:
|
||||
@@ -2555,6 +2565,8 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
||||
log.info("未知状态: {}", status);
|
||||
poseTransformationVO.setStatus("Fail");
|
||||
updatePoseTransferStatus(taskId, "Fail", poseTransformation);
|
||||
// 将积分暂扣区的积分移除
|
||||
creditsService.deleteCreditsDeduction(accountId, taskId);
|
||||
}
|
||||
poseTransformationVO.setTaskId(taskId);
|
||||
|
||||
@@ -2968,9 +2980,14 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
||||
String fluxResult = getFluxResult(taskId, objectName);
|
||||
if (Objects.isNull(generateDetail)) {
|
||||
if (StringUtil.isNullOrEmpty(fluxResult)) {
|
||||
// 将积分暂扣区的积分移除
|
||||
creditsService.deleteCreditsDeduction(accountId, taskId);
|
||||
return new GenerateResultVO(taskId, "Fail");
|
||||
} else if (fluxResult.equals("Fail") || fluxResult.equals("Pending")) {
|
||||
String status = fluxResult.equals("Fail") ? "Fail" : "Executing";
|
||||
if (status.equals("Fail")){
|
||||
creditsService.deleteCreditsDeduction(accountId, taskId);
|
||||
}
|
||||
return new GenerateResultVO(taskId, status);
|
||||
}
|
||||
generateDetail = new GenerateDetail(generate.getId(), fluxResult,
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.ai.da.mapper.primary.*;
|
||||
import com.ai.da.mapper.primary.entity.*;
|
||||
import com.ai.da.mapper.primary.entity.Collection;
|
||||
import com.ai.da.model.dto.*;
|
||||
import com.ai.da.model.enums.DesignProcess;
|
||||
import com.ai.da.model.enums.Position;
|
||||
import com.ai.da.model.enums.Sex;
|
||||
import com.ai.da.model.vo.*;
|
||||
@@ -699,12 +700,15 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
|
||||
if (workspace.getPosition().equals(Position.OVERALL.getValue())) {
|
||||
design.setSingleOverall("overall");
|
||||
design.setSwitchCategory("");
|
||||
project.setProcess(DesignProcess.SERIES_DESIGN.name());
|
||||
} else {
|
||||
design.setSingleOverall("single");
|
||||
design.setSwitchCategory(workspace.getPosition());
|
||||
project.setProcess(DesignProcess.SINGLE_DESIGN.name());
|
||||
}
|
||||
design.setCreateDate(new Date());
|
||||
designMapper.insert(design);
|
||||
projectMapper.updateById(project);
|
||||
|
||||
for (CollectionElement element : collectionElementListOld) {
|
||||
element.setCollectionId(collectionIdNew);
|
||||
|
||||
@@ -771,6 +771,10 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
Boolean flag = creditsService.taskCreditsDeduction(project.getAccountId(), taskId);
|
||||
if (flag) creditsService.updateChangedCredits(String.valueOf(project.getAccountId()), taskId);
|
||||
}
|
||||
// 将积分暂扣区的积分移除
|
||||
if (toProductImageResult.getStatus().equals("Fail")){
|
||||
creditsService.deleteCreditsDeduction(project.getAccountId(), taskId);
|
||||
}
|
||||
// 在这个stream中不再继续往后执行
|
||||
return;
|
||||
}
|
||||
@@ -1287,6 +1291,11 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
Boolean flag = creditsService.taskCreditsDeduction(project.getAccountId(), taskId);
|
||||
if (flag) creditsService.updateChangedCredits(String.valueOf(project.getAccountId()), taskId);
|
||||
}
|
||||
// 将积分暂扣区的积分移除
|
||||
if (toProductImageResult.getStatus().equals("Fail")){
|
||||
creditsService.deleteCreditsDeduction(project.getAccountId(), taskId);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user