修复了管理员无法进后台的问题

This commit is contained in:
2026-06-19 01:58:34 +08:00
parent 5b9436b994
commit d71a81f279
22 changed files with 4396 additions and 4295 deletions

View File

@@ -160,7 +160,7 @@ def create_shenhe_jilu(user, tag_id, game_nick, remark, reapply, jilu_id=None, s
# 3. 检查是否有进行中的审核记录(待审核、审核中)
has_pending = ShenheJilu.objects.filter(
shenqingren_id=user.yonghuid,
shenqingren_id=user.UserUID,
chenghao=chenghao,
zhuangtai__in=[0, 3]
).exists()
@@ -175,7 +175,7 @@ def create_shenhe_jilu(user, tag_id, game_nick, remark, reapply, jilu_id=None, s
# 查询原记录(未通过状态)
last_record = ShenheJilu.objects.filter(
jilu_id=jilu_id,
shenqingren_id=user.yonghuid,
shenqingren_id=user.UserUID,
zhuangtai=2
).first()
if not last_record:
@@ -215,7 +215,7 @@ def create_shenhe_jilu(user, tag_id, game_nick, remark, reapply, jilu_id=None, s
else:
# 首次申请
max_cishu = ShenheJilu.objects.filter(
shenqingren_id=user.yonghuid,
shenqingren_id=user.UserUID,
chenghao=chenghao,
zhuangtai__in=[1, 2]
).aggregate(max=Max('cishu'))['max'] or 0
@@ -229,7 +229,7 @@ def create_shenhe_jilu(user, tag_id, game_nick, remark, reapply, jilu_id=None, s
initial_zhuangtai = 0 if shenheguan_id else 3 # 指定→审核中,否则待审核
record = ShenheJilu.objects.create(
jilu_id=new_jilu_id,
shenqingren_id=user.yonghuid,
shenqingren_id=user.UserUID,
zhuangtai=initial_zhuangtai,
bankuai=bankuai,
chenghao=chenghao,
@@ -281,23 +281,23 @@ def create_shenhe_jilu_from_temp(user, temp_data):
"""
try:
logger.info(f"开始从临时表创建审核记录: 用户={user.yonghuid}, 订单={temp_data.dingdan_id}")
logger.info(f"开始从临时表创建审核记录: 用户={user.UserUID}, 订单={temp_data.dingdan_id}")
chenghao = Chenghao.objects.get(id=temp_data.tag_id)
logger.info(f"获取标签成功: {chenghao.mingcheng}")
# 检查是否已拥有标签
if YonghuChenghao.objects.filter(yonghu=user, chenghao=chenghao).exists():
logger.warning(f"用户 {user.yonghuid} 已拥有标签 {chenghao.mingcheng}")
logger.warning(f"用户 {user.UserUID} 已拥有标签 {chenghao.mingcheng}")
return False, '您已拥有该标签,无需重复考核', None
# 检查是否有进行中的审核
if ShenheJilu.objects.filter(
shenqingren_id=user.yonghuid,
shenqingren_id=user.UserUID,
chenghao=chenghao,
zhuangtai__in=[0, 3]
).exists():
logger.warning(f"用户 {user.yonghuid} 有未完成的考核申请")
logger.warning(f"用户 {user.UserUID} 有未完成的考核申请")
return False, '您有未完成的考核申请,请等待结果', None
# 使用临时表中预计算好的次数和费用
@@ -316,7 +316,7 @@ def create_shenhe_jilu_from_temp(user, temp_data):
return False, '再次申请必须提供原记录ID', None
last = ShenheJilu.objects.filter(
jilu_id=jilu_id,
shenqingren_id=user.yonghuid,
shenqingren_id=user.UserUID,
zhuangtai=2
).first()
if not last:
@@ -364,7 +364,7 @@ def create_shenhe_jilu_from_temp(user, temp_data):
record = ShenheJilu.objects.create(
jilu_id=new_jilu_id,
shenqingren_id=user.yonghuid,
shenqingren_id=user.UserUID,
zhuangtai=initial_zhuangtai,
bankuai=bankuai,
chenghao=chenghao,

View File

@@ -139,7 +139,7 @@ class KaoheguanRegisterView(APIView):
return Response({'code': 500, 'msg': '服务器内部错误'})
def _build_data(self, kg):
bankuai_qs = KaoheguanBankuai.objects.filter(kaoheguan_id=kg.user.yonghuid).select_related('bankuai')
bankuai_qs = KaoheguanBankuai.objects.filter(kaoheguan_id=kg.user.UserUID).select_related('bankuai')
bankuai_list = [{'bankuai_id': b.bankuai.bankuai_id, 'mingcheng': b.bankuai.mingcheng} for b in bankuai_qs]
return {
'zhuangtai': kg.zhuangtai,
@@ -174,12 +174,12 @@ class KaoheguanRefreshView(APIView):
return Response({'code': 200, 'data': {'zhuangtai': kg.zhuangtai, 'kaoheguanstatus': 0}})
# 查询所属板块
bankuai_qs = KaoheguanBankuai.objects.filter(kaoheguan_id=kg.user.yonghuid).select_related('bankuai')
bankuai_qs = KaoheguanBankuai.objects.filter(kaoheguan_id=kg.user.UserUID).select_related('bankuai')
bankuai_list = [{'bankuai_id': b.bankuai.bankuai_id, 'mingcheng': b.bankuai.mingcheng} for b in bankuai_qs]
# 统计待审核 / 审核中的记录数量
pending_count = ShenheJilu.objects.filter(
shenheguan_id=yonghu.yonghuid,
shenheguan_id=yonghu.UserUID,
zhuangtai=0 # 审核中
).count()
@@ -210,7 +210,7 @@ class ShenheDatingModuleView(APIView):
def post(self, request):
try:
yonghu = request.user
related_ids = set(KaoheguanBankuai.objects.filter(kaoheguan_id=yonghu.yonghuid)
related_ids = set(KaoheguanBankuai.objects.filter(kaoheguan_id=yonghu.UserUID)
.values_list('bankuai_id', flat=True))
bankuai_list = []
@@ -250,7 +250,7 @@ class ShenheDatingDataView(APIView):
records = []
for jl in jilu_list:
user = User.objects.filter(UserUID=jl.shenqingren_id).first()
avatar = user.avatar if user else ''
avatar = user.Avatar if user else ''
texiao_json = {}
if jl.chenghao and jl.chenghao.texiao_miaoshu:
try:
@@ -304,7 +304,7 @@ class ShenheQiangdanView(APIView):
# 2. 检查是否有正在审核中的记录zhuangtai=0防止同时审核多个
ongoing = ShenheJilu.objects.filter(
shenheguan_id=yonghu.yonghuid, zhuangtai=0
shenheguan_id=yonghu.UserUID, zhuangtai=0
).exists()
if ongoing:
return Response({'code': 400, 'msg': '您有正在审核中的任务,请完成后再接新任务'})
@@ -320,12 +320,12 @@ class ShenheQiangdanView(APIView):
return Response({'code': 400, 'msg': '该审核任务已被接走、状态变更或不存在'})
# 4. 不能审核自己
if jilu.shenqingren_id == yonghu.yonghuid:
if jilu.shenqingren_id == yonghu.UserUID:
return Response({'code': 400, 'msg': '不能审核自己提交的申请'})
# 5. 板块权限:考核官必须属于该板块
is_related = KaoheguanBankuai.objects.filter(
kaoheguan_id=yonghu.yonghuid,
kaoheguan_id=yonghu.UserUID,
bankuai=jilu.bankuai
).exists()
if not is_related:
@@ -338,7 +338,7 @@ class ShenheQiangdanView(APIView):
# 7. 更新审核记录:分配给当前考核官,状态变为审核中
jilu.zhuangtai = 0 # 审核中
jilu.shenheguan_id = yonghu.yonghuid
jilu.shenheguan_id = yonghu.UserUID
jilu.save()
# 8. 更新考核官扩展表:审核总数 +1审核状态置为审核中1
@@ -379,7 +379,7 @@ class ShenheXiangqingView(APIView):
# 查询当前考核官名下状态为“审核中”的记录
base_query = ShenheJilu.objects.filter(
shenheguan_id=yonghu.yonghuid,
shenheguan_id=yonghu.UserUID,
zhuangtai=0
).select_related('bankuai', 'chenghao')
total = base_query.count()
@@ -389,7 +389,7 @@ class ShenheXiangqingView(APIView):
records = []
for jl in jilu_list:
user = User.objects.filter(UserUID=jl.shenqingren_id).first()
avatar = user.avatar if user else ''
avatar = user.Avatar if user else ''
texiao_json = {}
if jl.chenghao and jl.chenghao.texiao_miaoshu:
try:
@@ -469,7 +469,7 @@ class ShenheCaozuoView(APIView):
# 2. 锁定审核记录,确保属于当前考核官且状态为审核中(0)
jilu = ShenheJilu.objects.select_for_update().filter(
jilu_id=jilu_id,
shenheguan_id=yonghu.yonghuid,
shenheguan_id=yonghu.UserUID,
zhuangtai=0
).first()
if not jilu:
@@ -526,7 +526,7 @@ class ShenheCaozuoView(APIView):
KaoheJujueJilu.objects.create(
jilu=jilu,
cishu=jilu.cishu,
shenheguan_id=yonghu.yonghuid,
shenheguan_id=yonghu.UserUID,
yuanyin=yuanyin
)
@@ -634,8 +634,8 @@ class KaoheJinpaiTagsView(APIView):
# 新增:返回所有在职考核官信息(用于指定考核官)
kaoheguan_list = []
for kg in UserShenheguan.objects.filter(zhuangtai=1).select_related('user'):
uid = kg.user.yonghuid
avatar = kg.user.avatar or ''
uid = kg.user.UserUID
avatar = kg.user.Avatar or ''
# 获取考核官的打手昵称(从打手扩展表)
dashou_nick = ''
dashou_prof = UserDashou.objects.filter(user=kg.user).first()
@@ -675,12 +675,12 @@ class KaoheJiluView(APIView):
if status == 'pending':
# 进行中/未通过:审核中(0)、待审核(3)、未通过(2)
query = ShenheJilu.objects.filter(
shenqingren_id=user.yonghuid,
shenqingren_id=user.UserUID,
zhuangtai__in=[0, 2, 3]
)
else:
query = ShenheJilu.objects.filter(
shenqingren_id=user.yonghuid,
shenqingren_id=user.UserUID,
zhuangtai=1 # 已通过
)
@@ -700,7 +700,7 @@ class KaoheJiluView(APIView):
# 考核官头像
kg_user = User.objects.filter(UserUID=jl.shenheguan_id).first()
kg_avatar = kg_user.avatar if kg_user else ''
kg_avatar = kg_user.Avatar if kg_user else ''
data.append({
'jilu_id': jl.jilu_id,
@@ -762,14 +762,14 @@ class KaoheFreeApplyView(APIView):
# 计算本次次数
if reapply and jilu_id:
last_record = ShenheJilu.objects.filter(
jilu_id=jilu_id, shenqingren_id=user.yonghuid, zhuangtai=2
jilu_id=jilu_id, shenqingren_id=user.UserUID, zhuangtai=2
).first()
if not last_record:
return Response({'code': 400, 'msg': '原记录不存在或状态不是未通过'})
new_cishu = last_record.cishu + 1
else:
max_cishu = ShenheJilu.objects.filter(
shenqingren_id=user.yonghuid, chenghao=chenghao, zhuangtai__in=[1,2]
shenqingren_id=user.UserUID, chenghao=chenghao, zhuangtai__in=[1,2]
).aggregate(max=models.Max('cishu'))['max'] or 0
new_cishu = max_cishu + 1
@@ -830,7 +830,7 @@ class KaoheJiluListView(APIView):
page_size = int(request.data.get('page_size', 5))
# 3. 构建查询条件:只查当前考核官审核的记录
base_query = ShenheJilu.objects.filter(shenheguan_id=yonghu.yonghuid)
base_query = ShenheJilu.objects.filter(shenheguan_id=yonghu.UserUID)
# 板块筛选
if bankuai_id and int(bankuai_id) > 0:
@@ -882,18 +882,18 @@ class KaoheJiluListView(APIView):
applicant_ids = {j.shenqingren_id for j in jilu_list}
user_map = {}
if applicant_ids:
users = User.objects.filter(UserUID__in=applicant_ids).select_related('dashou_profile')
users = User.objects.filter(UserUID__in=applicant_ids).select_related('DashouProfile')
for u in users:
avatar = u.avatar or ''
avatar = u.Avatar or ''
nicheng = ''
try:
# 打手扩展表可能有 nicheng
nicheng = u.dashou_profile.nicheng if u.dashou_profile else ''
nicheng = u.DashouProfile.nicheng if getattr(u, 'DashouProfile', None) else ''
except UserDashou.DoesNotExist:
pass
user_map[u.yonghuid] = {
user_map[u.UserUID] = {
'avatar': avatar,
'nicheng': nicheng or f'用户{u.yonghuid}'
'nicheng': nicheng or f'用户{u.UserUID}'
}
# 7. 组装数据