From 16167f3111436fb88bbaa61096324755c046e3cd Mon Sep 17 00:00:00 2001 From: wangzhiwei Date: Wed, 14 Jan 2026 11:28:40 +0800 Subject: [PATCH] =?UTF-8?q?refactor(billing):=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=9B=9E=E8=B0=83=E4=B8=AD=E7=9A=84=E5=86=97?= =?UTF-8?q?=E4=BD=99=E5=AD=97=E6=AE=B5=E5=92=8C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了TaskRecord中parentCreateTime、taskRootId、parentTaskId等换哒新表补充字段 - 注释掉了chargeType相关变量和逻辑处理 - 移除了TaskRecordHistoryDO的创建和插入操作 - 移除了ConsumptionHistoryDO的创建和插入操作 - 移除了数据库余额查询和扣费相关逻辑 - 移除了taskRecordId返回值以简化回调响应 - 移除了TaskCallbackReq中taskId、parentTaskId、parentCreateTime、taskRootId等字段的验证注解 --- .../business/model/req/TaskCallbackReq.java | 16 +-- .../service/impl/BillingServiceImpl.java | 109 ++++++++---------- 2 files changed, 57 insertions(+), 68 deletions(-) diff --git a/continew-admin-business/src/main/java/top/continew/admin/business/model/req/TaskCallbackReq.java b/continew-admin-business/src/main/java/top/continew/admin/business/model/req/TaskCallbackReq.java index 8368b73..229e9ae 100644 --- a/continew-admin-business/src/main/java/top/continew/admin/business/model/req/TaskCallbackReq.java +++ b/continew-admin-business/src/main/java/top/continew/admin/business/model/req/TaskCallbackReq.java @@ -32,7 +32,7 @@ public class TaskCallbackReq { * 任务订单号 */ @Schema(description = "任务订单号") - @NotBlank(message = "任务订单号不能为空") + // @NotBlank(message = "任务订单号不能为空") private String taskId; /** @@ -117,14 +117,14 @@ public class TaskCallbackReq { @Schema(description = "文件类型") private String fileType; - @Schema(description = "父任务ID") - private String parentTaskId; + // @Schema(description = "父任务ID") + // private String parentTaskId; - @Schema(description = "父任务创建时间") - private String parentCreateTime; + // @Schema(description = "父任务创建时间") + // private String parentCreateTime; - @Schema(description = "根任务ID") - @NotBlank(message = "根任务ID不能为空") - private String taskRootId; + // @Schema(description = "根任务ID") + // @NotBlank(message = "根任务ID不能为空") + // private String taskRootId; } \ No newline at end of file diff --git a/continew-admin-business/src/main/java/top/continew/admin/business/service/impl/BillingServiceImpl.java b/continew-admin-business/src/main/java/top/continew/admin/business/service/impl/BillingServiceImpl.java index 5793328..ca2cd3c 100644 --- a/continew-admin-business/src/main/java/top/continew/admin/business/service/impl/BillingServiceImpl.java +++ b/continew-admin-business/src/main/java/top/continew/admin/business/service/impl/BillingServiceImpl.java @@ -326,13 +326,6 @@ public class BillingServiceImpl implements BillingService { taskRecord.setPlatformCode(req.getPlatformCode()); taskRecord.setAccountType(deductSource); - //换哒新表补充字段 - taskRecord.setParentCreateTime(extractDateTime(req.getParentCreateTime())); - taskRecord.setTaskRootId(req.getTaskRootId()); - if (req.getParentTaskId() != null) { - taskRecord.setParentTaskId(req.getParentTaskId()); - } - // 设置文件路径或文字内容 if (req.getTaskType() == 0 || !StringUtils.hasText(req.getFileUrl())) { // token类型或文字类型 taskRecord.setResult(req.getResult()); @@ -789,7 +782,7 @@ public class BillingServiceImpl implements BillingService { TaskPreDeductDO preDeductRecord, Long userId) { String deductSource = preDeductRecord.getDeductSource(); - Integer chargeType = req.getChargeType(); + // Integer chargeType = req.getChargeType(); // 使用第三方平台传入的实际消费金额 Long actualConsumptionPoints = req.getActualAmount(); @@ -800,53 +793,53 @@ public class BillingServiceImpl implements BillingService { log.info("使用第三方传入的实际消费金额, actualAmount: {}", actualConsumptionPoints); // 2. 创建任务记录 - TaskRecordHistoryDO taskRecord = new TaskRecordHistoryDO(); - taskRecord.setUserId(userId); - taskRecord.setPlatformId(req.getPlatformId()); - taskRecord.setTaskId(req.getTaskId()); - taskRecord.setTitle(req.getTitle()); - taskRecord.setTaskType(req.getTaskType()); - taskRecord.setChargeType(req.getChargeType()); - taskRecord.setModelName(req.getModelName()); - taskRecord.setConsumptionPoints(actualConsumptionPoints); - taskRecord.setPlatformCode(req.getPlatformCode()); - taskRecord.setAccountType(deductSource); + // TaskRecordHistoryDO taskRecord = new TaskRecordHistoryDO(); + // taskRecord.setUserId(userId); + // taskRecord.setPlatformId(req.getPlatformId()); + // taskRecord.setTaskId(req.getTaskId()); + // taskRecord.setTitle(req.getTitle()); + // taskRecord.setTaskType(req.getTaskType()); + // taskRecord.setChargeType(req.getChargeType()); + // taskRecord.setModelName(req.getModelName()); + // taskRecord.setConsumptionPoints(actualConsumptionPoints); + // taskRecord.setPlatformCode(req.getPlatformCode()); + // taskRecord.setAccountType(deductSource); //换哒新表补充字段 - taskRecord.setParentCreateTime(extractDateTime(req.getParentCreateTime())); - taskRecord.setTaskRootId(req.getTaskRootId()); - if (req.getParentTaskId() != null) { - taskRecord.setParentTaskId(req.getParentTaskId()); - } - - // 设置文件路径或文字内容 - if (req.getTaskType() == 0 || !StringUtils.hasText(req.getFileUrl())) { // token类型或文字类型 - taskRecord.setResult(req.getResult()); - taskRecord.setTokens(req.getTokens()); - taskRecordHistoryMapper.insert(taskRecord); - } else { // 音视频图片类型(2,3,4,5) - addTaskRecordHistory(taskRecord, req); - } + // taskRecord.setParentCreateTime(extractDateTime(req.getParentCreateTime())); + // taskRecord.setTaskRootId(req.getTaskRootId()); + // if (req.getParentTaskId() != null) { + // taskRecord.setParentTaskId(req.getParentTaskId()); + // } + // + // // 设置文件路径或文字内容 + // if (req.getTaskType() == 0 || !StringUtils.hasText(req.getFileUrl())) { // token类型或文字类型 + // taskRecord.setResult(req.getResult()); + // taskRecord.setTokens(req.getTokens()); + // taskRecordHistoryMapper.insert(taskRecord); + // } else { // 音视频图片类型(2,3,4,5) + // addTaskRecordHistory(taskRecord, req); + // } // 3. 创建消费记录 - ConsumptionHistoryDO consumption = new ConsumptionHistoryDO(); - consumption.setUserId(userId); - consumption.setPlatformId(req.getPlatformId()); - consumption.setTaskType(req.getTaskType()); - consumption.setChargePoints(actualConsumptionPoints); + // ConsumptionHistoryDO consumption = new ConsumptionHistoryDO(); + // consumption.setUserId(userId); + // consumption.setPlatformId(req.getPlatformId()); + // consumption.setTaskType(req.getTaskType()); + // consumption.setChargePoints(actualConsumptionPoints); // 4. 根据扣减来源进行实际扣费和清零预扣减 if (deductSource != null && deductSource.startsWith("sub_account_")) { // 子账户扣费(chargeType特定的子账户) Integer extractedChargeType = Integer.parseInt(deductSource.substring("sub_account_".length())); - PlantformBalanceDO balance = plantformBalanceMapper.selectOne(new LambdaQueryWrapper() - .eq(PlantformBalanceDO::getUserId, userId) - .eq(PlantformBalanceDO::getChargeType, extractedChargeType)); + // PlantformBalanceDO balance = plantformBalanceMapper.selectOne(new LambdaQueryWrapper() + // .eq(PlantformBalanceDO::getUserId, userId) + // .eq(PlantformBalanceDO::getChargeType, extractedChargeType)); - consumption.setRemainingPoints(balance.getBalance() - actualConsumptionPoints); - consumption.setType(req.getType()); // 消费类型 - consumption.setAccountType(1); // 1子账号 + // consumption.setRemainingPoints(balance.getBalance() - actualConsumptionPoints); + // consumption.setType(req.getType()); // 消费类型 + // consumption.setAccountType(1); // 1子账号 // 扣减实际金额并清零预扣减 plantformBalanceMapper.update(null, new LambdaUpdateWrapper() @@ -858,13 +851,13 @@ public class BillingServiceImpl implements BillingService { log.info("子账户扣费完成(第三方金额), chargeType: {}, actualConsumption: {}", extractedChargeType, actualConsumptionPoints); } else if ("kexuedou_account".equals(deductSource)) { // 可学豆子账户扣费(chargeType=11的子账户) - PlantformBalanceDO balance = plantformBalanceMapper.selectOne(new LambdaQueryWrapper() - .eq(PlantformBalanceDO::getUserId, userId) - .eq(PlantformBalanceDO::getChargeType, 11)); + // PlantformBalanceDO balance = plantformBalanceMapper.selectOne(new LambdaQueryWrapper() + // .eq(PlantformBalanceDO::getUserId, userId) + // .eq(PlantformBalanceDO::getChargeType, 11)); - consumption.setRemainingPoints(balance.getBalance() - actualConsumptionPoints); - consumption.setType(req.getType()); // 消费类型 - consumption.setAccountType(1); // 1子账号 + // consumption.setRemainingPoints(balance.getBalance() - actualConsumptionPoints); + // consumption.setType(req.getType()); // 消费类型 + // consumption.setAccountType(1); // 1子账号 // 扣减实际金额并清零预扣减 plantformBalanceMapper.update(null, new LambdaUpdateWrapper() @@ -876,10 +869,10 @@ public class BillingServiceImpl implements BillingService { log.info("可学豆子账户扣费完成(第三方金额), actualConsumption: {}", actualConsumptionPoints); } else if ("main_account".equals(deductSource)) { // 主账户sys_beans扣费 - UserDO user = userMapper.selectById(userId); - consumption.setRemainingPoints(user.getSysBeans().longValue() - actualConsumptionPoints); - consumption.setType(req.getType()); // 消费类型 - consumption.setAccountType(0); // 0主账号 + // UserDO user = userMapper.selectById(userId); + // consumption.setRemainingPoints(user.getSysBeans().longValue() - actualConsumptionPoints); + // consumption.setType(req.getType()); // 消费类型 + // consumption.setAccountType(0); // 0主账号 // 原子操作:扣减实际金额并清零预扣减 单位为分 int updateResult = userMapper.deductActualAndClearPreDeduct(userId, preDeductRecord @@ -894,7 +887,7 @@ public class BillingServiceImpl implements BillingService { throw new RuntimeException("未知的扣减来源: " + deductSource); } - consumptionHistoryMapper.insert(consumption); + // consumptionHistoryMapper.insert(consumption); // 5. 更新预扣减记录状态 preDeductRecord.setStatus(1); // 1: 已完成 @@ -903,11 +896,7 @@ public class BillingServiceImpl implements BillingService { log.info("任务成功回调完成(第三方金额), taskId: {}, userId: {}, platformCode: {}, preDeduct: {}, actual: {}", req .getTaskId(), userId, req.getPlatformCode(), preDeductRecord.getPreDeductAmount(), actualConsumptionPoints); - return TaskCallbackResp.builder() - .success(true) - .message("任务成功,扣费完成(第三方金额)") - .taskRecordId(taskRecord.getId()) - .build(); + return TaskCallbackResp.builder().success(true).message("任务成功,扣费完成(第三方金额)").build(); } // 过滤非法文件名字符(Windows/Linux兼容)