修改过滤
This commit is contained in:
parent
a57b8bca2d
commit
f4cea66408
@ -39,15 +39,17 @@ is_monitoring = False
|
||||
@csrf_exempt
|
||||
@require_http_methods(["POST"])
|
||||
def filter_creators(request):
|
||||
"""根据过滤条件筛选达人信息(POST版)"""
|
||||
"""根据过滤条件筛选达人信息(POST版,分页参数在URL中)"""
|
||||
try:
|
||||
import json
|
||||
|
||||
# 从URL获取分页参数
|
||||
page = int(request.GET.get('page', 1))
|
||||
page_size = 10 # 固定页面大小为10条数据
|
||||
|
||||
# 解析POST请求体
|
||||
data = json.loads(request.body)
|
||||
filter_data = data.get('filter', {})
|
||||
page = int(data.get('page', 1))
|
||||
page_size = int(data.get('page_size', 10))
|
||||
|
||||
# 基础查询
|
||||
query = CreatorProfile.objects.all()
|
||||
@ -366,7 +368,7 @@ def get_campaigns(request):
|
||||
@csrf_exempt
|
||||
@require_http_methods(["POST"])
|
||||
def add_to_campaign(request):
|
||||
"""添加达人到营销活动(如有原达人则先删除后添加)"""
|
||||
"""添加达人到营销活动(保留原有达人)"""
|
||||
try:
|
||||
from .models import CreatorProfile, CreatorCampaign
|
||||
from apps.brands.models import Campaign
|
||||
@ -407,13 +409,14 @@ def add_to_campaign(request):
|
||||
'data': None
|
||||
}, json_dumps_params={'ensure_ascii': False})
|
||||
|
||||
# 先删除该活动下之前绑定的所有达人
|
||||
deleted_count = CreatorCampaign.objects.filter(campaign=campaign).delete()[0]
|
||||
logger.info(f"已删除活动 {campaign_id} 下的 {deleted_count} 个原有达人关联")
|
||||
# 获取已存在的达人关联
|
||||
existing_creators = set(CreatorCampaign.objects.filter(campaign=campaign).values_list('creator_id', flat=True))
|
||||
logger.info(f"活动 {campaign_id} 已有 {len(existing_creators)} 个达人关联")
|
||||
|
||||
# 添加新达人到活动
|
||||
added_count = 0
|
||||
skipped_count = 0
|
||||
already_exists_count = 0
|
||||
added_creators = []
|
||||
|
||||
for creator_id in creator_ids:
|
||||
@ -421,6 +424,12 @@ def add_to_campaign(request):
|
||||
# 移除is_active检查
|
||||
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=creator,
|
||||
@ -445,7 +454,12 @@ def add_to_campaign(request):
|
||||
'id': str(campaign.id),
|
||||
'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})
|
||||
|
||||
|
64
logs/app.log
64
logs/app.log
@ -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: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>
|
||||
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 个达人关联
|
||||
|
Loading…
Reference in New Issue
Block a user