修复了管理员无法进后台的问题
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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. 组装数据
|
||||
|
||||
Reference in New Issue
Block a user