feat: 使用banana模型生成分镜图片,修复数据库列类型问题
- 修改RealAIService.submitTextToImageTask使用nano-banana/nano-banana-hd模型 - 支持根据hdMode参数选择模型(标准/高清) - 修复数据库列类型:将result_url等字段改为TEXT类型以支持Base64图片 - 添加数据库修复SQL脚本(fix_database_columns.sql, update_database_schema.sql) - 改进StoryboardVideoService的错误处理和空值检查 - 添加GlobalExceptionHandler全局异常处理 - 优化图片URL提取逻辑,支持url和b64_json两种格式 - 改进响应格式验证,确保data字段不为空
This commit is contained in:
@@ -403,30 +403,50 @@ public class PaymentService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据支付金额增加积分
|
||||
* 根据支付信息增加积分
|
||||
*/
|
||||
private void addPointsForPayment(Payment payment) {
|
||||
try {
|
||||
BigDecimal amount = payment.getAmount();
|
||||
String description = payment.getDescription() != null ? payment.getDescription() : "";
|
||||
Integer pointsToAdd = 0;
|
||||
|
||||
// 根据支付金额确定积分奖励
|
||||
if (amount.compareTo(new BigDecimal("59.00")) >= 0 && amount.compareTo(new BigDecimal("259.00")) < 0) {
|
||||
// 标准版订阅 (59-258元) - 200积分
|
||||
// 优先从描述中识别套餐类型
|
||||
if (description.contains("标准版") || description.contains("standard")) {
|
||||
// 标准版订阅 - 200积分
|
||||
pointsToAdd = 200;
|
||||
} else if (amount.compareTo(new BigDecimal("259.00")) >= 0) {
|
||||
// 专业版订阅 (259元以上) - 1000积分
|
||||
logger.info("识别到标准版订阅,奖励 200 积分");
|
||||
} else if (description.contains("专业版") || description.contains("premium")) {
|
||||
// 专业版订阅 - 1000积分
|
||||
pointsToAdd = 1000;
|
||||
logger.info("识别到专业版订阅,奖励 1000 积分");
|
||||
} else {
|
||||
// 如果描述中没有套餐信息,根据金额判断
|
||||
// 标准版订阅 (59-258元) - 200积分
|
||||
if (amount.compareTo(new BigDecimal("59.00")) >= 0 && amount.compareTo(new BigDecimal("259.00")) < 0) {
|
||||
pointsToAdd = 200;
|
||||
logger.info("根据金额 {} 判断为标准版订阅,奖励 200 积分", amount);
|
||||
}
|
||||
// 专业版订阅 (259元以上) - 1000积分
|
||||
else if (amount.compareTo(new BigDecimal("259.00")) >= 0) {
|
||||
pointsToAdd = 1000;
|
||||
logger.info("根据金额 {} 判断为专业版订阅,奖励 1000 积分", amount);
|
||||
} else {
|
||||
logger.warn("支付金额 {} 不在已知套餐范围内,不增加积分", amount);
|
||||
}
|
||||
}
|
||||
|
||||
if (pointsToAdd > 0) {
|
||||
userService.addPoints(payment.getUser().getId(), pointsToAdd);
|
||||
logger.info("用户 {} 支付 {} 元,获得 {} 积分",
|
||||
logger.info("✅ 用户 {} 支付 {} 元,成功获得 {} 积分",
|
||||
payment.getUser().getUsername(), amount, pointsToAdd);
|
||||
} else {
|
||||
logger.warn("⚠️ 用户 {} 支付 {} 元,但未获得积分(描述: {})",
|
||||
payment.getUser().getUsername(), amount, description);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("增加积分失败:", e);
|
||||
logger.error("❌ 增加积分失败:", e);
|
||||
// 不抛出异常,避免影响支付流程
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user