This commit is contained in:
@@ -511,17 +511,38 @@ def payment_finish(request):
|
||||
# Handle Activity Signup
|
||||
if hasattr(order, 'activity') and order.activity:
|
||||
try:
|
||||
# Use string import to avoid circular dependency at module level
|
||||
from community.models import ActivitySignup
|
||||
# Use apps.get_model to avoid circular dependency
|
||||
from django.apps import apps
|
||||
ActivitySignup = apps.get_model('community', 'ActivitySignup')
|
||||
|
||||
signup = ActivitySignup.objects.filter(order=order).first()
|
||||
|
||||
# Fallback: try to find by user and activity if not found by order
|
||||
if not signup and order.wechat_user:
|
||||
print(f"Warning: ActivitySignup not found by order {order.id}, trying by user/activity")
|
||||
signup = ActivitySignup.objects.filter(
|
||||
user=order.wechat_user,
|
||||
activity=order.activity,
|
||||
status='unpaid'
|
||||
).first()
|
||||
if signup:
|
||||
print(f"Found signup {signup.id} by user/activity, linking order...")
|
||||
signup.order = order
|
||||
signup.save()
|
||||
|
||||
if signup:
|
||||
# Determine status based on activity setting
|
||||
new_status = 'confirmed' if signup.activity.auto_confirm else 'pending'
|
||||
signup.status = new_status
|
||||
signup.save()
|
||||
print(f"活动报名状态已更新: {signup.id} -> {new_status}")
|
||||
else:
|
||||
print(f"Error: No ActivitySignup found for paid order {order.id}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"更新活动报名状态失败: {str(e)}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
# 计算佣金 (旧版销售员系统)
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user