diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiOrderServiceImpl.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiOrderServiceImpl.java index d6a9c4f..d06659b 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiOrderServiceImpl.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiOrderServiceImpl.java @@ -9,10 +9,7 @@ import com.ruoyi.ai.domain.AiManager; import com.ruoyi.ai.domain.AiOrder; import com.ruoyi.ai.domain.AiStatistics; import com.ruoyi.ai.mapper.AiOrderMapper; -import com.ruoyi.ai.service.IAiManagerService; -import com.ruoyi.ai.service.IAiOrderService; -import com.ruoyi.ai.service.IAiStatisticsService; -import com.ruoyi.ai.service.IAiUserService; +import com.ruoyi.ai.service.*; import com.ruoyi.common.constant.BalanceChangerConstants; import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.domain.AjaxResult; @@ -59,6 +56,9 @@ public class AiOrderServiceImpl implements IAiOrderService { @Autowired private IAiStatisticsService aiStatisticsService; + @Autowired + private IByteDeptApiKeyService byteDeptApiKeyService; + // 流水表:任务成功时回补 private static final String TASK_SUCCESS_BACK_FILL_REMARK = "order.number.generation.successbackfill"; @@ -194,6 +194,7 @@ public class AiOrderServiceImpl implements IAiOrderService { // 不按aimanager扣减的,等提交任务再按实扣减 aiOrder.setAmount(new BigDecimal(0)); } + aiOrder.setDeptId(byteDeptApiKeyService.resolveSecondLevelDeptId(aiOrder.getUserId())); aiOrder.setStatus(0); aiOrder.setSource(aiUser.getSource()); aiOrderMapper.insert(aiOrder); @@ -220,15 +221,21 @@ public class AiOrderServiceImpl implements IAiOrderService { @Transactional @Override public void orderFailure(AiOrder aiOrder, BigDecimal amount) { + // update前的订单使用积分 + BigDecimal orderAmount = aiOrder.getAmount(); + aiOrder.setIsBackfilled(1); aiOrder.setStatus(2); String remark = MessageUtils.messageByDefaultLocal("order.number.generation.failed", aiOrder.getOrderNum()); aiOrder.setRemark(remark); + // 失败将用量与积分设置成0 + aiOrder.setAmount(new BigDecimal(0)); + aiOrder.setTotalUsage(new BigDecimal(0)); 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); + if (orderAmount != null && !orderAmount.equals(new BigDecimal(0))) { + aiUserService.addUserBalance(aiOrder.getOrderNum(), userId, orderAmount, BalanceChangerConstants.REFUND, remark); } }