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