修改过滤

This commit is contained in:
jlj 2025-05-22 12:14:03 +08:00
parent a57b8bca2d
commit f4cea66408
2 changed files with 86 additions and 8 deletions

View File

@ -39,15 +39,17 @@ is_monitoring = False
@csrf_exempt @csrf_exempt
@require_http_methods(["POST"]) @require_http_methods(["POST"])
def filter_creators(request): def filter_creators(request):
"""根据过滤条件筛选达人信息POST版""" """根据过滤条件筛选达人信息POST版分页参数在URL中"""
try: try:
import json import json
# 从URL获取分页参数
page = int(request.GET.get('page', 1))
page_size = 10 # 固定页面大小为10条数据
# 解析POST请求体 # 解析POST请求体
data = json.loads(request.body) data = json.loads(request.body)
filter_data = data.get('filter', {}) filter_data = data.get('filter', {})
page = int(data.get('page', 1))
page_size = int(data.get('page_size', 10))
# 基础查询 # 基础查询
query = CreatorProfile.objects.all() query = CreatorProfile.objects.all()
@ -366,7 +368,7 @@ def get_campaigns(request):
@csrf_exempt @csrf_exempt
@require_http_methods(["POST"]) @require_http_methods(["POST"])
def add_to_campaign(request): def add_to_campaign(request):
"""添加达人到营销活动(如有原达人则先删除后添加)""" """添加达人到营销活动(保留原有达人)"""
try: try:
from .models import CreatorProfile, CreatorCampaign from .models import CreatorProfile, CreatorCampaign
from apps.brands.models import Campaign from apps.brands.models import Campaign
@ -407,19 +409,26 @@ def add_to_campaign(request):
'data': None 'data': None
}, json_dumps_params={'ensure_ascii': False}) }, json_dumps_params={'ensure_ascii': False})
# 先删除该活动下之前绑定的所有达人 # 获取已存在的达人关联
deleted_count = CreatorCampaign.objects.filter(campaign=campaign).delete()[0] existing_creators = set(CreatorCampaign.objects.filter(campaign=campaign).values_list('creator_id', flat=True))
logger.info(f"已删除活动 {campaign_id} 下的 {deleted_count} 个原有达人关联") logger.info(f"活动 {campaign_id} 已有 {len(existing_creators)}达人关联")
# 添加新达人到活动 # 添加新达人到活动
added_count = 0 added_count = 0
skipped_count = 0 skipped_count = 0
already_exists_count = 0
added_creators = [] added_creators = []
for creator_id in creator_ids: for creator_id in creator_ids:
try: try:
# 移除is_active检查 # 移除is_active检查
creator = CreatorProfile.objects.get(id=creator_id) creator = CreatorProfile.objects.get(id=creator_id)
# 检查是否已存在关联
if creator.id in existing_creators:
already_exists_count += 1
logger.info(f"达人 {creator_id} 已经存在于活动 {campaign_id}")
continue
# 创建新的关联 # 创建新的关联
creator_campaign = CreatorCampaign.objects.create( creator_campaign = CreatorCampaign.objects.create(
@ -445,7 +454,12 @@ def add_to_campaign(request):
'id': str(campaign.id), 'id': str(campaign.id),
'name': campaign.name 'name': campaign.name
}, },
'added_creators': added_creators 'added_creators': added_creators,
'stats': {
'added': added_count,
'skipped': skipped_count,
'already_exists': already_exists_count
}
} }
}, json_dumps_params={'ensure_ascii': False}) }, json_dumps_params={'ensure_ascii': False})

View File

@ -29,3 +29,67 @@ ERROR 2025-05-20 17:40:33,375 offer_status_service <20><>ȡ̸<C8A1><CCB8>״̬ʧ<CCAC><CAA7>:
ERROR 2025-05-20 17:41:03,425 offer_status_service <20><>ȡ̸<C8A1><CCB8>״̬ʧ<CCAC><CAA7>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>idΪ14<31><34><EFBFBD><EFBFBD>ƷidΪ241a67e0-1c99-44de-a5dd-40622ffa23b6<62><36≯<EFBFBD><CCB8> ERROR 2025-05-20 17:41:03,425 offer_status_service <20><>ȡ̸<C8A1><CCB8>״̬ʧ<CCAC><CAA7>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>idΪ14<31><34><EFBFBD><EFBFBD>ƷidΪ241a67e0-1c99-44de-a5dd-40622ffa23b6<62><36≯<EFBFBD><CCB8>
ERROR 2025-05-20 17:41:33,477 offer_status_service <20><>ȡ̸<C8A1><CCB8>״̬ʧ<CCAC><CAA7>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>idΪ14<31><34><EFBFBD><EFBFBD>ƷidΪ241a67e0-1c99-44de-a5dd-40622ffa23b6<62><36≯<EFBFBD><CCB8> ERROR 2025-05-20 17:41:33,477 offer_status_service <20><>ȡ̸<C8A1><CCB8>״̬ʧ<CCAC><CAA7>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>idΪ14<31><34><EFBFBD><EFBFBD>ƷidΪ241a67e0-1c99-44de-a5dd-40622ffa23b6<62><36≯<EFBFBD><CCB8>
ERROR 2025-05-20 17:42:03,529 offer_status_service <20><>ȡ̸<C8A1><CCB8>״̬ʧ<CCAC><CAA7>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>idΪ14<31><34><EFBFBD><EFBFBD>ƷidΪ241a67e0-1c99-44de-a5dd-40622ffa23b6<62><36≯<EFBFBD><CCB8> ERROR 2025-05-20 17:42:03,529 offer_status_service <20><>ȡ̸<C8A1><CCB8>״̬ʧ<CCAC><CAA7>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>idΪ14<31><34><EFBFBD><EFBFBD>ƷidΪ241a67e0-1c99-44de-a5dd-40622ffa23b6<62><36≯<EFBFBD><CCB8>
WARNING 2025-05-21 17:26:51,505 consumers 未提供token
ERROR 2025-05-21 17:26:51,506 consumers WebSocket连接未授权缺少有效token: None
INFO 2025-05-21 17:26:51,509 consumers WebSocket连接已断开: None, 关闭代码: 1006
WARNING 2025-05-21 17:27:15,503 consumers Token认证失败: 无效或过期的token
ERROR 2025-05-21 17:27:15,504 consumers WebSocket连接未授权缺少有效token: 61cd850bfe59f44601d952212e31557257e02a08
INFO 2025-05-21 17:27:15,508 consumers WebSocket连接已断开: None, 关闭代码: 1006
WARNING 2025-05-21 17:27:42,197 consumers Token认证失败: 无效或过期的token
ERROR 2025-05-21 17:27:42,198 consumers WebSocket连接未授权缺少有效token: 61cd850bfe59f44601d952212e31557257e02a08
INFO 2025-05-21 17:27:42,201 consumers WebSocket连接已断开: None, 关闭代码: 1006
INFO 2025-05-21 17:28:35,839 offer_status_service 发送状态查询请求: URL=http://81.69.223.133:58099/api/operation/negotiations/offer_status/, 参数={'creator_id': '14', 'product_id': '241a67e0-1c99-44de-a5dd-40622ffa23b6'}
ERROR 2025-05-21 17:28:54,885 offer_status_service 获取谈判状态时发生错误: HTTPConnectionPool(host='81.69.223.133', port=58099): Max retries exceeded with url: /api/operation/negotiations/offer_status/ (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000002898B1192A0>, 'Connection to 81.69.223.133 timed out. (connect timeout=None)'))
INFO 2025-05-21 17:28:54,894 offer_status_service 发送状态查询请求: URL=http://81.69.223.133:58099/api/operation/negotiations/offer_status/, 参数={'creator_id': '14', 'product_id': '241a67e0-1c99-44de-a5dd-40622ffa23b6'}
INFO 2025-05-21 17:28:54,894 status_polling_service 已启动活动 1 的状态轮询,间隔 30 秒
INFO 2025-05-21 17:28:54,895 consumers 已启动活动 1 的状态轮询,包含 1 个产品和 1 个达人
INFO 2025-05-21 17:28:54,895 consumers WebSocket连接已建立: campaign_1
INFO 2025-05-21 17:29:08,509 consumers WebSocket连接已断开: campaign_1, 关闭代码: None
ERROR 2025-05-21 17:29:15,442 offer_status_service 获取谈判状态时发生错误: HTTPConnectionPool(host='81.69.223.133', port=58099): Max retries exceeded with url: /api/operation/negotiations/offer_status/ (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000002898AFE4FA0>, 'Connection to 81.69.223.133 timed out. (connect timeout=None)'))
INFO 2025-05-21 17:29:31,673 status_polling_service 正在停止活动 1 的状态轮询...
INFO 2025-05-21 17:29:31,673 status_polling_service 活动 1 的轮询线程已成功停止
INFO 2025-05-21 17:29:31,674 status_polling_service 已停止活动 1 的状态轮询
INFO 2025-05-21 17:29:40,106 status_polling_service 正在停止所有轮询任务,活动数量: 0
INFO 2025-05-21 17:29:40,107 status_polling_service 已停止 0/0 个轮询任务
INFO 2025-05-22 10:45:00,597 views 尝试查找活动ID: 2
INFO 2025-05-22 10:45:00,619 views 找到活动: SUNLINK 台灯灯13, Active: True
INFO 2025-05-22 10:45:00,634 views 已删除活动 2 下的 1 个原有达人关联
INFO 2025-05-22 10:46:08,511 views 尝试查找活动ID: 2
INFO 2025-05-22 10:46:08,517 views 找到活动: SUNLINK 台灯灯13, Active: True
INFO 2025-05-22 10:46:08,555 views 已删除活动 2 下的 1 个原有达人关联
INFO 2025-05-22 11:06:23,943 offer_status_service 发送状态查询请求: URL=http://81.69.223.133:58099/api/operation/negotiations/offer_status/, 参数={'creator_id': '14', 'product_id': '241a67e0-1c99-44de-a5dd-40622ffa23b6'}
INFO 2025-05-22 11:06:23,996 offer_status_service 接收状态查询响应: 状态码=200
INFO 2025-05-22 11:06:23,997 offer_status_service 状态查询响应内容: {'code': 404, 'message': '不存在与用户id为14和商品id为241a67e0-1c99-44de-a5dd-40622ffa23b6的谈判', 'data': None}
ERROR 2025-05-22 11:06:23,998 offer_status_service 获取谈判状态失败: 不存在与用户id为14和商品id为241a67e0-1c99-44de-a5dd-40622ffa23b6的谈判
INFO 2025-05-22 11:06:24,019 offer_status_service 发送状态查询请求: URL=http://81.69.223.133:58099/api/operation/negotiations/offer_status/, 参数={'creator_id': '14', 'product_id': '241a67e0-1c99-44de-a5dd-40622ffa23b6'}
INFO 2025-05-22 11:06:24,019 status_polling_service 已启动活动 1 的状态轮询,间隔 30 秒
INFO 2025-05-22 11:06:24,020 consumers 已启动活动 1 的状态轮询,包含 1 个产品和 1 个达人
INFO 2025-05-22 11:06:24,021 consumers WebSocket连接已建立: campaign_1
INFO 2025-05-22 11:06:24,057 offer_status_service 接收状态查询响应: 状态码=200
INFO 2025-05-22 11:06:24,058 offer_status_service 状态查询响应内容: {'code': 404, 'message': '不存在与用户id为14和商品id为241a67e0-1c99-44de-a5dd-40622ffa23b6的谈判', 'data': None}
ERROR 2025-05-22 11:06:24,059 offer_status_service 获取谈判状态失败: 不存在与用户id为14和商品id为241a67e0-1c99-44de-a5dd-40622ffa23b6的谈判
INFO 2025-05-22 11:06:54,066 offer_status_service 发送状态查询请求: URL=http://81.69.223.133:58099/api/operation/negotiations/offer_status/, 参数={'creator_id': '14', 'product_id': '241a67e0-1c99-44de-a5dd-40622ffa23b6'}
INFO 2025-05-22 11:06:54,142 offer_status_service 接收状态查询响应: 状态码=200
INFO 2025-05-22 11:06:54,143 offer_status_service 状态查询响应内容: {'code': 404, 'message': '不存在与用户id为14和商品id为241a67e0-1c99-44de-a5dd-40622ffa23b6的谈判', 'data': None}
ERROR 2025-05-22 11:06:54,143 offer_status_service 获取谈判状态失败: 不存在与用户id为14和商品id为241a67e0-1c99-44de-a5dd-40622ffa23b6的谈判
INFO 2025-05-22 11:07:16,388 consumers WebSocket连接已断开: campaign_1, 关闭代码: None
INFO 2025-05-22 11:07:24,152 offer_status_service 发送状态查询请求: URL=http://81.69.223.133:58099/api/operation/negotiations/offer_status/, 参数={'creator_id': '14', 'product_id': '241a67e0-1c99-44de-a5dd-40622ffa23b6'}
INFO 2025-05-22 11:07:24,194 offer_status_service 接收状态查询响应: 状态码=200
INFO 2025-05-22 11:07:24,195 offer_status_service 状态查询响应内容: {'code': 404, 'message': '不存在与用户id为14和商品id为241a67e0-1c99-44de-a5dd-40622ffa23b6的谈判', 'data': None}
ERROR 2025-05-22 11:07:24,195 offer_status_service 获取谈判状态失败: 不存在与用户id为14和商品id为241a67e0-1c99-44de-a5dd-40622ffa23b6的谈判
INFO 2025-05-22 11:07:53,576 status_polling_service 正在停止所有轮询任务,活动数量: 1
INFO 2025-05-22 11:07:53,576 status_polling_service 正在停止活动 1 的状态轮询...
INFO 2025-05-22 11:07:53,576 status_polling_service 活动 1 的轮询线程已成功停止
INFO 2025-05-22 11:07:53,578 status_polling_service 已停止活动 1 的状态轮询
INFO 2025-05-22 11:07:53,578 status_polling_service 已停止 1/1 个轮询任务
INFO 2025-05-22 11:26:27,501 views 尝试查找活动ID: 2
INFO 2025-05-22 11:26:27,632 views 找到活动: SUNLINK 台灯灯13, Active: True
INFO 2025-05-22 11:26:27,635 views 活动 2 已有 1 个达人关联
INFO 2025-05-22 11:26:27,640 views 达人 17 已经存在于活动 2 中
INFO 2025-05-22 11:26:35,449 views 尝试查找活动ID: 2
INFO 2025-05-22 11:26:35,454 views 找到活动: SUNLINK 台灯灯13, Active: True
INFO 2025-05-22 11:26:35,457 views 活动 2 已有 1 个达人关联
INFO 2025-05-22 11:26:35,463 views 达人 17 已经存在于活动 2 中
INFO 2025-05-22 11:27:08,046 views 尝试查找活动ID: 2
INFO 2025-05-22 11:27:08,050 views 找到活动: SUNLINK 台灯灯13, Active: True
INFO 2025-05-22 11:27:08,055 views 活动 2 已有 1 个达人关联