Compare commits

..

4 Commits

8 changed files with 38 additions and 30 deletions

View File

@ -181,6 +181,7 @@ export default {
})
this.username = ""
this.password = ""
this.$router.replace({ name: 'video-gen' })
this.$emit('cancel')
})
} else {

View File

@ -47,7 +47,7 @@ export const constantRoutes = [{
path: '/',
component: Layout,
redirect: {
name: 'index'
name: 'video-gen'
},
children: [{
path: 'index',

View File

@ -1201,6 +1201,7 @@ export default {
this.$message.warning('任务已完成但未返回视频地址,请稍后重试或联系管理员')
}
this.destroyInterval()
this.$store.dispatch('user/getInfo').catch(() => {})
this.refreshChatFirstPage()
return
}

View File

@ -4,7 +4,6 @@ import com.ruoyi.ai.domain.*;
import com.ruoyi.ai.service.*;
import com.ruoyi.api.request.ByteApiRequest;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.constant.BalanceChangerConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.request.video.dto.VideoTaskCallBackRequest;
@ -12,7 +11,6 @@ import com.ruoyi.common.core.response.video.GetVideoGenerationTaskResponse;
import com.ruoyi.common.enums.AiOrderStatusType;
import com.ruoyi.common.enums.VideoTaskStatusType;
import com.ruoyi.common.utils.RandomStringUtil;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.TencentCosUtil;
import io.swagger.annotations.Api;
@ -20,12 +18,12 @@ import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;

View File

@ -263,7 +263,7 @@ public class PortalVideoController extends BaseController {
private AjaxResult submitOrderAndCreate(PortalVideoGenRequest req, String mode, ByteBodyReq byteBodyReq) {
String functionType = resolveFunctionType(req);
// 判断余额是否足够aimanager里配置了最低限额创建订单
AiOrder aiOrder = aiOrderService.getAiOrder(functionType, false);
AiOrder aiOrder = aiOrderService.getAiOrder(functionType);
if (aiOrder == null) {
return AjaxResult.error(-1, "You have a low balance, please recharge");
}
@ -285,30 +285,33 @@ public class PortalVideoController extends BaseController {
aiOrder.setVideoGenRequestId(byteBodyRes.getRequestId());
// aiOrderService.orderSuccess(aiOrder);
aiOrderService.updateAiOrder(aiOrder);
// 逻辑暂时停用先不预扣 start !!!!!
// 查询任务详情按字节返回的预扣数量扣减
GetVideoGenerationTaskResponse task = byteService.getVideoGenerationTasks(thirdPartyOrderNumId, key);
if (task == null || task.getUsage() == null || task.getUsage().getTotalTokens() == null) {
return AjaxResult.error(-2, "generation failed, byte task's usage is null");
}
if (task.getUsage().getTotalTokens() <= 0) {
return AjaxResult.error(-2, "generation failed, byte task's totalTokens <= 0");
}
BigDecimal totalTokens = new BigDecimal(task.getUsage().getTotalTokens());
// 同步设置aiOrder以防在抛异常时数值没变
aiOrder.setPreDeductAmount(totalTokens);
aiOrder.setAmount(totalTokens);
// GetVideoGenerationTaskResponse task = byteService.getVideoGenerationTasks(thirdPartyOrderNumId, key);
// if (task == null || task.getUsage() == null || task.getUsage().getTotalTokens() == null) {
// return AjaxResult.error(-2, "generation failed, byte task's usage is null");
// }
// if (task.getUsage().getTotalTokens() <= 0) {
// return AjaxResult.error(-2, "generation failed, byte task's totalTokens <= 0");
// }
// BigDecimal totalTokens = new BigDecimal(task.getUsage().getTotalTokens());
// // 同步设置aiOrder以防在抛异常时数值没变
// aiOrder.setPreDeductAmount(totalTokens);
// aiOrder.setAmount(totalTokens);
// 设置订单信息
AiOrder updAiOrder = new AiOrder();
updAiOrder.setId(aiOrder.getId());
updAiOrder.setOrderNum(aiOrder.getOrderNum());
updAiOrder.setPreDeductAmount(totalTokens);
// AiOrder updAiOrder = new AiOrder();
// updAiOrder.setId(aiOrder.getId());
// updAiOrder.setOrderNum(aiOrder.getOrderNum());
// updAiOrder.setPreDeductAmount(totalTokens);
// 先设置成预扣数量等收到回调再改过来这样后续报表会比较准确
updAiOrder.setAmount(totalTokens);
aiOrderService.updateAiOrder(updAiOrder);
// updAiOrder.setAmount(totalTokens);
// aiOrderService.updateAiOrder(updAiOrder);
// 扣减余额
aiUserService.addUserBalance(aiOrder.getOrderNum(), SecurityUtils.getAiUserId()
, NumberUtil.mul(-1, totalTokens), aiOrderService.getChangerType(functionType));
// aiUserService.addUserBalance(aiOrder.getOrderNum(), SecurityUtils.getAiUserId()
// , NumberUtil.mul(-1, totalTokens), aiOrderService.getChangerType(functionType));
// 逻辑暂时停用先不预扣 start !!!!!
return AjaxResult.success(byteBodyRes);
} catch (Exception e) {
aiOrderService.orderFailure(aiOrder);

View File

@ -242,9 +242,6 @@ volcengine:
ak: AKLTNmYyN2VhZTcyMDcxNDNlNzg3OGVlMDVmZjRhNWQwY2M
sk: Tm1ZeU1UTmlORFk1WmpKa05HUmpaRGcxTWpjMFpqUmpOVE01TUdJME5URQ==
projectAesKeyBase64: "gJajABVfQJ9xA94Q9IvQi68fqqhSIkfcKlG7pjGFt2U="
url: https://ark.ap-southeast.bytepluses.com/api/v3
apiKey: 3e33e034-7e25-4228-8864-b51b2a7a8f97
callBackUrl: http://47.86.170.114:5173/
# 门户视频生成页:模型 / 比例 / 时长 / 分辨率均由此处维护,前后端不写死业务枚举
portal:

View File

@ -23,7 +23,7 @@ import java.util.UUID;
/**
* AWS S3 文件上传工具类
*/
@Component
//@Component
public class AwsS3Util {
// -------------------------- 配置参数需根据实际环境修改--------------------------

View File

@ -219,8 +219,10 @@ public class AiOrderServiceImpl implements IAiOrderService {
aiOrder.setRemark(remark);
aiOrderMapper.updateById(aiOrder);
Long userId = aiOrder.getUserId() != null ? aiOrder.getUserId() : SecurityUtils.getAiUserId();
// 变更值为0则不改余额没有流水
if (aiOrder.getAmount() != null && !aiOrder.getAmount().equals(new BigDecimal(0))) {
aiUserService.addUserBalance(aiOrder.getOrderNum(), userId, amount, BalanceChangerConstants.REFUND, remark);
}
}
@Override
@ -308,6 +310,7 @@ public class AiOrderServiceImpl implements IAiOrderService {
order.setAmount(realAmount);
// 订单状态
order.setStatus(AiOrderStatusType.FINISH.ordinal());
// 已回补
order.setIsBackfilled(1);
orderSuccess(order);
@ -322,6 +325,11 @@ public class AiOrderServiceImpl implements IAiOrderService {
BalanceChangerConstants.REFUND, TASK_SUCCESS_BALANCE_REMARK);
}
}
// 按实际用量扣减
// BigDecimal reduceAmount = NumberUtil.mul(-1, realAmount);
// aiUserService.addUserBalance(order.getOrderNum(), order.getUserId(), reduceAmount,
// BalanceChangerConstants.QUICK_VIDEO_GENERATION, TASK_SUCCESS_BALANCE_REMARK);
return AjaxResult.success("callback success");
}
}