修正了 property 直接取值的问题

This commit is contained in:
2026-06-18 02:49:04 +08:00
parent 7ce545fedb
commit f80ce51859
5 changed files with 27 additions and 22 deletions

View File

@@ -685,7 +685,7 @@ class KefuGetDashouListView(APIView):
# 关键词筛选用户ID或昵称 # 关键词筛选用户ID或昵称
if keyword: if keyword:
dashou_qs = dashou_qs.filter( dashou_qs = dashou_qs.filter(
Q(user__yonghuid__icontains=keyword) | Q(user__UserUID__icontains=keyword) |
Q(nicheng__icontains=keyword) Q(nicheng__icontains=keyword)
) )
@@ -693,7 +693,7 @@ class KefuGetDashouListView(APIView):
total_dashou = dashou_qs.count() total_dashou = dashou_qs.count()
# 6. 统计有效打手数(有会员且未过期) # 6. 统计有效打手数(有会员且未过期)
dashou_user_ids = dashou_qs.values_list('user__yonghuid', flat=True) dashou_user_ids = dashou_qs.values_list('user__UserUID', flat=True)
now = timezone.now() now = timezone.now()
valid_user_ids = Huiyuangoumai.query.filter( valid_user_ids = Huiyuangoumai.query.filter(
yonghu_id__in=dashou_user_ids, yonghu_id__in=dashou_user_ids,
@@ -1395,7 +1395,7 @@ class KefuGetShangjiaListView(APIView):
# 关键词筛选用户ID或昵称 # 关键词筛选用户ID或昵称
if keyword: if keyword:
shangjia_qs = shangjia_qs.filter( shangjia_qs = shangjia_qs.filter(
Q(user__yonghuid__icontains=keyword) | Q(user__UserUID__icontains=keyword) |
Q(nicheng__icontains=keyword) Q(nicheng__icontains=keyword)
) )
@@ -3552,7 +3552,7 @@ class GetZuzhangListView(APIView):
# 6. 应用筛选条件(使用 ORM 安全过滤) # 6. 应用筛选条件(使用 ORM 安全过滤)
if keyword: if keyword:
queryset = queryset.filter( queryset = queryset.filter(
Q(user__yonghuid__icontains=keyword) | Q(user__UserUID__icontains=keyword) |
Q(user__boss_profile__nickname__icontains=keyword) Q(user__boss_profile__nickname__icontains=keyword)
) )

View File

@@ -320,6 +320,11 @@ class User(QModel):
def is_authenticated(self): def is_authenticated(self):
return self.IsAuthenticated return self.IsAuthenticated
@property
def id(self):
"""兼容旧代码的 id 属性,返回 UserUUID"""
return self.UserUUID
@property @property
def yonghuid(self): def yonghuid(self):
"""兼容旧代码的 yonghuid 属性""" """兼容旧代码的 yonghuid 属性"""

View File

@@ -3033,10 +3033,10 @@ class DashouDingdanHuoquView(APIView):
UserUID__in=zhiding_ids UserUID__in=zhiding_ids
).select_related('dashou_profile').annotate( ).select_related('dashou_profile').annotate(
nicheng=F('dashou_profile__nicheng') nicheng=F('dashou_profile__nicheng')
).values('yonghuid', 'avatar', 'nicheng') ).values('UserUID', 'Avatar', 'nicheng')
zhiding_info = { zhiding_info = {
item['yonghuid']: { item['UserUID']: {
'avatar': item['avatar'] or '', 'avatar': item['Avatar'] or '',
'nicheng': item['nicheng'] or '' 'nicheng': item['nicheng'] or ''
} }
for item in dashou_query for item in dashou_query
@@ -3079,12 +3079,12 @@ class DashouDingdanHuoquView(APIView):
if sj['shangjia_id']: if sj['shangjia_id']:
yonghuid_set.add(sj['shangjia_id']) yonghuid_set.add(sj['shangjia_id'])
# 将 yonghuid 字符串转换为 User 的主键 id # 将 yonghuid 字符串转换为 User 的主键 UserUUID
user_id_map = {} user_id_map = {}
if yonghuid_set: if yonghuid_set:
users = User.query.filter(UserUID__in=yonghuid_set).values('id', 'yonghuid') users = User.query.filter(UserUID__in=yonghuid_set).values('UserUUID', 'UserUID')
for u in users: for u in users:
user_id_map[u['yonghuid']] = u['id'] user_id_map[u['UserUID']] = u['UserUUID']
user_main_ids = list(user_id_map.values()) user_main_ids = list(user_id_map.values())
user_tags_map = {} user_tags_map = {}

View File

@@ -5949,7 +5949,7 @@ class ZuzhangFenhongView(APIView):
users = User.query.filter(UserUID__in=guanshi_ids).select_related( users = User.query.filter(UserUID__in=guanshi_ids).select_related(
'boss_profile' 'boss_profile'
).only( ).only(
'yonghuid', 'avatar', 'UserUID', 'Avatar',
'boss_profile__nickname' 'boss_profile__nickname'
) )

View File

@@ -1490,7 +1490,7 @@ class GuanshiYaoqingDashouListView(APIView):
# 5. 应用筛选条件 # 5. 应用筛选条件
if keyword: if keyword:
base_qs = base_qs.filter( base_qs = base_qs.filter(
Q(nicheng__icontains=keyword) | Q(user__yonghuid__icontains=keyword) Q(nicheng__icontains=keyword) | Q(user__UserUID__icontains=keyword)
) )
if zhanghaozhuangtai is not None: if zhanghaozhuangtai is not None:
try: try:
@@ -3136,7 +3136,7 @@ class AdGuanLiYongHu(APIView):
if keyword: if keyword:
queryset = queryset.filter( queryset = queryset.filter(
Q(user__yonghuid__icontains=keyword) | Q(user__UserUID__icontains=keyword) |
Q(nickname__icontains=keyword) Q(nickname__icontains=keyword)
) )
@@ -3178,7 +3178,7 @@ class AdGuanLiYongHu(APIView):
if keyword: if keyword:
queryset = queryset.filter( queryset = queryset.filter(
Q(user__yonghuid__icontains=keyword) | Q(user__UserUID__icontains=keyword) |
Q(nicheng__icontains=keyword) | Q(nicheng__icontains=keyword) |
Q(chenghao__icontains=keyword) Q(chenghao__icontains=keyword)
) )
@@ -3224,7 +3224,7 @@ class AdGuanLiYongHu(APIView):
if keyword: if keyword:
queryset = queryset.filter( queryset = queryset.filter(
Q(user__yonghuid__icontains=keyword) Q(user__UserUID__icontains=keyword)
) )
# 获取总数 # 获取总数
@@ -3266,7 +3266,7 @@ class AdGuanLiYongHu(APIView):
if keyword: if keyword:
queryset = queryset.filter( queryset = queryset.filter(
Q(user__yonghuid__icontains=keyword) | Q(user__UserUID__icontains=keyword) |
Q(nicheng__icontains=keyword) Q(nicheng__icontains=keyword)
) )
@@ -7074,7 +7074,7 @@ class KefuGetOrderListView(APIView):
nickname_map = {} nickname_map = {}
if laoban_ids: if laoban_ids:
users = User.query.filter(UserUID__in=laoban_ids).select_related('boss_profile').only( users = User.query.filter(UserUID__in=laoban_ids).select_related('boss_profile').only(
'yonghuid', 'boss_profile__nickname' 'UserUID', 'boss_profile__nickname'
) )
for user in users: for user in users:
nickname_map[user.yonghuid] = user.boss_profile.nickname or '' if hasattr(user, 'boss_profile') else '' nickname_map[user.yonghuid] = user.boss_profile.nickname or '' if hasattr(user, 'boss_profile') else ''
@@ -7205,7 +7205,7 @@ class KefuGetShangjiaOrderListView(APIView):
# 通过商家扩展表关联 UserShangjia 的昵称 # 通过商家扩展表关联 UserShangjia 的昵称
q_conditions &= Q(shangjia_kuozhan__shangjia_id__in=User.query.filter( q_conditions &= Q(shangjia_kuozhan__shangjia_id__in=User.query.filter(
shop_profile__nicheng__icontains=shangjia_nicheng shop_profile__nicheng__icontains=shangjia_nicheng
).values_list('yonghuid', flat=True)) ).values_list('UserUID', flat=True))
# ---------- 统计(仅按发单平台,非跨平台) ---------- # ---------- 统计(仅按发单平台,非跨平台) ----------
stats = Dingdan.query.filter(fadan_pingtai=2).aggregate( stats = Dingdan.query.filter(fadan_pingtai=2).aggregate(
@@ -7243,7 +7243,7 @@ class KefuGetShangjiaOrderListView(APIView):
nickname_map = {} nickname_map = {}
if shangjia_ids: if shangjia_ids:
users = User.query.filter(UserUID__in=shangjia_ids).select_related('shop_profile').only( users = User.query.filter(UserUID__in=shangjia_ids).select_related('shop_profile').only(
'yonghuid', 'shop_profile__nicheng' 'UserUID', 'shop_profile__nicheng'
) )
for user in users: for user in users:
nickname_map[user.yonghuid] = user.shop_profile.nicheng or '' if hasattr(user, 'shop_profile') else '' nickname_map[user.yonghuid] = user.shop_profile.nicheng or '' if hasattr(user, 'shop_profile') else ''
@@ -8396,7 +8396,7 @@ class KefuGetDashouListView(APIView):
if keyword: if keyword:
# 搜索用户ID或打手昵称 # 搜索用户ID或打手昵称
queryset = queryset.filter( queryset = queryset.filter(
Q(user__yonghuid__icontains=keyword) | Q(user__UserUID__icontains=keyword) |
Q(nicheng__icontains=keyword) Q(nicheng__icontains=keyword)
) )
@@ -10411,9 +10411,9 @@ class AdKfglView(APIView):
if keyword: if keyword:
queryset = queryset.filter( queryset = queryset.filter(
#Q(user__yonghuid__icontains=keyword) | #Q(user__UserUID__icontains=keyword) |
Q(nicheng__icontains=keyword) | Q(nicheng__icontains=keyword) |
Q(user__phone__icontains=keyword) Q(user__Phone__icontains=keyword)
) )
# 4. 构建返回数据 # 4. 构建返回数据