|
@@ -354,25 +354,49 @@ class AgentCustomerView(View):
|
|
# 接收分页参数
|
|
# 接收分页参数
|
|
page = int(request_dict.get('page', 1))
|
|
page = int(request_dict.get('page', 1))
|
|
page_size = int(request_dict.get('page_size', 10))
|
|
page_size = int(request_dict.get('page_size', 10))
|
|
|
|
+ search_query = request_dict.get('search_query', '')
|
|
|
|
+ user_id = request_dict.get('user_id', None)
|
|
|
|
+ phone = request_dict.get('phone', None)
|
|
|
|
+ userEmail = request_dict.get('userEmail', None)
|
|
|
|
|
|
- # 查询AgentCustomerInfo表以获取代理商基本信息
|
|
|
|
- agent_infos = AgentCustomerInfo.objects.filter(status=1).values(
|
|
|
|
- 'id', 'user_id', 'company_name'
|
|
|
|
- ).order_by('id')
|
|
|
|
try:
|
|
try:
|
|
- # 使用Paginator进行分页处理
|
|
|
|
|
|
+ # 基础查询条件
|
|
|
|
+ agent_infos_query = AgentCustomerInfo.objects.filter(status=1)
|
|
|
|
+
|
|
|
|
+ # 精确查询条件
|
|
|
|
+ if user_id:
|
|
|
|
+ agent_infos_query = agent_infos_query.filter(user_id=user_id)
|
|
|
|
+
|
|
|
|
+ # 获取所有符合条件的AgentCustomerInfo记录
|
|
|
|
+ agent_infos = agent_infos_query.values('id', 'user_id', 'company_name').order_by('id')
|
|
|
|
+
|
|
|
|
+ # 对结果进行分页
|
|
paginator = Paginator(agent_infos, page_size)
|
|
paginator = Paginator(agent_infos, page_size)
|
|
- # 获取请求页的数据
|
|
|
|
packages_page = paginator.page(page)
|
|
packages_page = paginator.page(page)
|
|
|
|
+
|
|
# 准备最终的代理商列表
|
|
# 准备最终的代理商列表
|
|
agents_list = []
|
|
agents_list = []
|
|
for agent_info in packages_page:
|
|
for agent_info in packages_page:
|
|
- # 查询Device_User表获取用户信息
|
|
|
|
- user_info = Device_User.objects.filter(userID=agent_info['user_id']).values('phone',
|
|
|
|
- 'userEmail').first()
|
|
|
|
- # 查询AgentCustomerCard表获取卡信息
|
|
|
|
- card_info = AgentCustomerCard.objects.filter(ac_id=agent_info['id']).values('name', 'card_no',
|
|
|
|
- 'card_address').first()
|
|
|
|
|
|
+ # 模糊查询
|
|
|
|
+ if search_query:
|
|
|
|
+ card_info_query = AgentCustomerCard.objects.filter(ac_id=agent_info['id'],
|
|
|
|
+ name__icontains=search_query)
|
|
|
|
+ if not card_info_query.exists() and search_query not in agent_info['company_name']:
|
|
|
|
+ continue
|
|
|
|
+ else:
|
|
|
|
+ card_info_query = AgentCustomerCard.objects.filter(ac_id=agent_info['id'])
|
|
|
|
+
|
|
|
|
+ # 获取卡信息
|
|
|
|
+ card_info = card_info_query.values('name', 'card_no', 'card_address').first()
|
|
|
|
+
|
|
|
|
+ # 获取用户信息,根据需要进行精确查询
|
|
|
|
+ user_info_query = Device_User.objects.filter(userID=agent_info['user_id'])
|
|
|
|
+ if phone:
|
|
|
|
+ user_info_query = user_info_query.filter(phone=phone)
|
|
|
|
+ if userEmail:
|
|
|
|
+ user_info_query = user_info_query.filter(userEmail=userEmail)
|
|
|
|
+
|
|
|
|
+ user_info = user_info_query.values('phone', 'userEmail').first()
|
|
|
|
|
|
# 组合信息
|
|
# 组合信息
|
|
agent_record = {
|
|
agent_record = {
|
|
@@ -386,8 +410,15 @@ class AgentCustomerView(View):
|
|
'card_address': card_info.get('card_address') if card_info else None,
|
|
'card_address': card_info.get('card_address') if card_info else None,
|
|
}
|
|
}
|
|
agents_list.append(agent_record)
|
|
agents_list.append(agent_record)
|
|
- return response.json(0, {'page': page, 'page_size': page_size, 'total': paginator.count,
|
|
|
|
- 'num_pages': paginator.num_pages, 'list': agents_list})
|
|
|
|
|
|
+
|
|
|
|
+ # 返回分页后的结果
|
|
|
|
+ return response.json(0, {
|
|
|
|
+ 'page': page,
|
|
|
|
+ 'page_size': page_size,
|
|
|
|
+ 'total': paginator.count,
|
|
|
|
+ 'num_pages': paginator.num_pages,
|
|
|
|
+ 'list': agents_list
|
|
|
|
+ })
|
|
except Exception as e:
|
|
except Exception as e:
|
|
print(e)
|
|
print(e)
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|