更新功能和文档: 增强支付系统、任务队列管理、用户作品管理等功能

This commit is contained in:
AIGC Developer
2025-10-29 10:16:03 +08:00
parent 8c55f9f376
commit 6f72386523
64 changed files with 1529 additions and 339 deletions

View File

@@ -1,13 +1,5 @@
package com.example.demo.service;
import com.example.demo.model.*;
import com.example.demo.repository.PaymentRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.HashMap;
@@ -15,6 +7,22 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.example.demo.model.Order;
import com.example.demo.model.OrderItem;
import com.example.demo.model.OrderStatus;
import com.example.demo.model.OrderType;
import com.example.demo.model.Payment;
import com.example.demo.model.PaymentMethod;
import com.example.demo.model.PaymentStatus;
import com.example.demo.model.User;
import com.example.demo.repository.PaymentRepository;
@Service
@Transactional
public class PaymentService {
@@ -291,11 +299,15 @@ public class PaymentService {
*/
public Payment createPayment(String username, String orderId, String amountStr, String method) {
try {
logger.info("创建支付 - 用户名: {}, 订单ID: {}, 金额: {}, 支付方式: {}", username, orderId, amountStr, method);
logger.info("创建支付 - 用户名: '{}', 订单ID: {}, 金额: {}, 支付方式: {}", username, orderId, amountStr, method);
User user = userService.findByUsername(username);
if (user == null) {
logger.error("用户不存在: {}", username);
User user;
try {
logger.info("PaymentService - 尝试查找用户: '{}'", username);
user = userService.findByUsername(username);
logger.info("PaymentService - 用户查找结果: {}", user != null ? "找到用户 '" + user.getUsername() + "'" : "未找到用户");
} catch (Exception e) {
logger.error("PaymentService - 用户查找异常: {}", username, e);
// 如果是匿名用户,创建一个临时用户记录
if (username.startsWith("anonymous_")) {
user = createAnonymousUser(username);
@@ -315,6 +327,7 @@ public class PaymentService {
payment.setUser(user);
payment.setOrderId(orderId);
payment.setAmount(amount);
payment.setCurrency("CNY"); // 设置默认货币为人民币
payment.setPaymentMethod(paymentMethod);
payment.setStatus(PaymentStatus.PENDING);
payment.setCreatedAt(LocalDateTime.now());
@@ -325,10 +338,12 @@ public class PaymentService {
// 根据支付方式调用相应的支付服务
if (paymentMethod == PaymentMethod.ALIPAY) {
try {
String paymentUrl = alipayService.createPayment(savedPayment);
savedPayment.setPaymentUrl(paymentUrl);
Map<String, Object> paymentResult = alipayService.createPayment(savedPayment);
if (paymentResult.containsKey("qrCode")) {
savedPayment.setPaymentUrl(paymentResult.get("qrCode").toString());
}
save(savedPayment);
logger.info("支付宝支付URL生成成功: {}", paymentUrl);
logger.info("支付宝二维码生成成功: {}", paymentResult.get("qrCode"));
} catch (Exception e) {
logger.error("调用支付宝支付接口失败:", e);
// 不抛出异常,让前端处理