修复了管理员无法进后台的问题
This commit is contained in:
@@ -241,9 +241,9 @@ class DashouHuiyuanList(APIView):
|
||||
try:
|
||||
# 1. 检查用户是否是打手(通过反向查询)
|
||||
try:
|
||||
dashou = request.user.dashou_profile
|
||||
dashou = request.user.DashouProfile
|
||||
except UserDashou.DoesNotExist:
|
||||
logger.warning(f"用户{request.user.yonghuid}不是打手,尝试访问打手接口")
|
||||
logger.warning(f"用户{request.user.UserUID}不是打手,尝试访问打手接口")
|
||||
return Response({
|
||||
'code': 400,
|
||||
'message': '用户不是打手,无法访问此接口'
|
||||
@@ -251,7 +251,7 @@ class DashouHuiyuanList(APIView):
|
||||
|
||||
# 2. 检查打手账号状态
|
||||
if dashou.zhanghaozhuangtai != 1:
|
||||
logger.warning(f"打手{request.user.yonghuid}账号状态异常: {dashou.zhanghaozhuangtai}")
|
||||
logger.warning(f"打手{request.user.UserUID}账号状态异常: {dashou.zhanghaozhuangtai}")
|
||||
return Response({
|
||||
'code': 400,
|
||||
'message': '账号状态异常,无法购买会员'
|
||||
@@ -307,7 +307,7 @@ class YajinGoumai(APIView):
|
||||
try:
|
||||
# 1. 验证用户身份和状态
|
||||
try:
|
||||
dashou = request.user.dashou_profile
|
||||
dashou = request.user.DashouProfile
|
||||
except UserDashou.DoesNotExist:
|
||||
return Response({
|
||||
'code': 400,
|
||||
@@ -354,20 +354,20 @@ class YajinGoumai(APIView):
|
||||
chongzhi_jilu = Czjilu.query.create(
|
||||
dingdan_id=dingdanid,
|
||||
zhuangtai=9, # 未支付状态
|
||||
yonghuid=request.user.yonghuid,
|
||||
yonghuid=request.user.UserUID,
|
||||
jine=jine,
|
||||
leixing=2, # 充值类型:2=押金
|
||||
shuoming=settings.YAJIN_PAY_DESCRIPTION
|
||||
)
|
||||
|
||||
logger.info(f"创建押金充值订单: 用户{request.user.yonghuid}, 订单{dingdanid}, 金额{jine}元")
|
||||
logger.info(f"创建押金充值订单: 用户{request.user.UserUID}, 订单{dingdanid}, 金额{jine}元")
|
||||
|
||||
# 5. 生成微信支付参数
|
||||
try:
|
||||
pay_params = self.generate_wechat_pay_params(
|
||||
dingdanid=dingdanid,
|
||||
jine=jine,
|
||||
openid=request.user.openid, # 直接从request.user获取openid
|
||||
openid=request.user.OpenID, # 直接从request.user获取openid
|
||||
pay_type='yajin'
|
||||
)
|
||||
except Exception as e:
|
||||
@@ -647,7 +647,7 @@ class YajinHuitiao(View):
|
||||
dashouid=order.yonghuid,
|
||||
shuoming='押金分红',
|
||||
fenhong=fenhong_jine,
|
||||
avatar=user_main.avatar,
|
||||
avatar=user_main.Avatar,
|
||||
nicheng=dashou.nicheng or '未知打手',
|
||||
fenhong_leixing=2,
|
||||
)
|
||||
@@ -799,7 +799,7 @@ class YajinShibai(APIView):
|
||||
try:
|
||||
order = Czjilu.query.get(
|
||||
dingdan_id=dingdanid,
|
||||
UserUID=request.user.yonghuid
|
||||
UserUID=request.user.UserUID
|
||||
)
|
||||
except Czjilu.DoesNotExist:
|
||||
return Response({
|
||||
@@ -811,7 +811,7 @@ class YajinShibai(APIView):
|
||||
if order.zhuangtai == 9:
|
||||
# 删除订单
|
||||
order.delete()
|
||||
logger.info(f"用户{request.user.yonghuid}删除未支付订单: {dingdanid}")
|
||||
logger.info(f"用户{request.user.UserUID}删除未支付订单: {dingdanid}")
|
||||
|
||||
return Response({
|
||||
'code': 200,
|
||||
@@ -857,7 +857,7 @@ class YajinLunxun(APIView):
|
||||
try:
|
||||
order = Czjilu.query.get(
|
||||
dingdan_id=dingdanid,
|
||||
UserUID=request.user.yonghuid
|
||||
UserUID=request.user.UserUID
|
||||
)
|
||||
except Czjilu.DoesNotExist:
|
||||
return Response({
|
||||
@@ -875,10 +875,10 @@ class YajinLunxun(APIView):
|
||||
|
||||
# 4. 获取打手押金(通过反向查询,最快捷的方式)
|
||||
try:
|
||||
dashou = request.user.dashou_profile
|
||||
dashou = request.user.DashouProfile
|
||||
yajin = float(dashou.yajin) # 转为浮点数方便前端处理
|
||||
|
||||
logger.info(f"轮询成功: 订单{dingdanid}已支付,用户{request.user.yonghuid}押金为{yajin}元")
|
||||
logger.info(f"轮询成功: 订单{dingdanid}已支付,用户{request.user.UserUID}押金为{yajin}元")
|
||||
|
||||
return Response({
|
||||
'code': 200,
|
||||
@@ -887,7 +887,7 @@ class YajinLunxun(APIView):
|
||||
}, status=status.HTTP_200_OK)
|
||||
|
||||
except UserDashou.DoesNotExist:
|
||||
logger.error(f"打手信息不存在: 用户{request.user.yonghuid}")
|
||||
logger.error(f"打手信息不存在: 用户{request.user.UserUID}")
|
||||
return Response({
|
||||
'code': 400,
|
||||
'message': '打手信息不存在'
|
||||
@@ -917,7 +917,7 @@ class JifenBuchong(APIView):
|
||||
try:
|
||||
# 1. 验证用户身份和状态
|
||||
try:
|
||||
dashou = request.user.dashou_profile
|
||||
dashou = request.user.DashouProfile
|
||||
except UserDashou.DoesNotExist:
|
||||
return Response({
|
||||
'code': 400,
|
||||
@@ -950,20 +950,20 @@ class JifenBuchong(APIView):
|
||||
chongzhi_jilu = Czjilu.query.create(
|
||||
dingdan_id=dingdanid,
|
||||
zhuangtai=9, # 未支付状态
|
||||
yonghuid=request.user.yonghuid,
|
||||
yonghuid=request.user.UserUID,
|
||||
jine=jine,
|
||||
leixing=3, # 充值类型:3=积分
|
||||
shuoming=settings.JIFEN_PAY_DESCRIPTION
|
||||
)
|
||||
|
||||
logger.info(f"创建积分充值订单: 用户{request.user.yonghuid}, 订单{dingdanid}, 金额{jine}元")
|
||||
logger.info(f"创建积分充值订单: 用户{request.user.UserUID}, 订单{dingdanid}, 金额{jine}元")
|
||||
|
||||
# 6. 生成微信支付参数(完整版)
|
||||
try:
|
||||
pay_params = self.generate_wechat_pay_params(
|
||||
dingdanid=dingdanid,
|
||||
jine=jine,
|
||||
openid=request.user.openid,
|
||||
openid=request.user.OpenID,
|
||||
pay_type='jifen'
|
||||
)
|
||||
except Exception as e:
|
||||
@@ -1343,7 +1343,7 @@ class JifenShibai(APIView):
|
||||
try:
|
||||
order = Czjilu.query.get(
|
||||
dingdan_id=dingdanid,
|
||||
UserUID=request.user.yonghuid
|
||||
UserUID=request.user.UserUID
|
||||
)
|
||||
except Czjilu.DoesNotExist:
|
||||
return Response({
|
||||
@@ -1362,7 +1362,7 @@ class JifenShibai(APIView):
|
||||
if order.zhuangtai == 9:
|
||||
# 删除订单
|
||||
order.delete()
|
||||
logger.info(f"用户{request.user.yonghuid}删除未支付积分订单: {dingdanid}")
|
||||
logger.info(f"用户{request.user.UserUID}删除未支付积分订单: {dingdanid}")
|
||||
|
||||
return Response({
|
||||
'code': 200,
|
||||
@@ -1408,7 +1408,7 @@ class JifenLunxun(APIView):
|
||||
try:
|
||||
order = Czjilu.query.get(
|
||||
dingdan_id=dingdanid,
|
||||
UserUID=request.user.yonghuid
|
||||
UserUID=request.user.UserUID
|
||||
)
|
||||
except Czjilu.DoesNotExist:
|
||||
return Response({
|
||||
@@ -1433,10 +1433,10 @@ class JifenLunxun(APIView):
|
||||
|
||||
# 5. 获取打手积分(通过反向查询)
|
||||
try:
|
||||
dashou = request.user.dashou_profile
|
||||
dashou = request.user.DashouProfile
|
||||
jifen = dashou.jifen # 直接使用整数
|
||||
|
||||
logger.info(f"积分轮询成功: 订单{dingdanid}已支付,用户{request.user.yonghuid}积分为{jifen}")
|
||||
logger.info(f"积分轮询成功: 订单{dingdanid}已支付,用户{request.user.UserUID}积分为{jifen}")
|
||||
|
||||
return Response({
|
||||
'code': 200,
|
||||
@@ -1445,7 +1445,7 @@ class JifenLunxun(APIView):
|
||||
}, status=status.HTTP_200_OK)
|
||||
|
||||
except UserDashou.DoesNotExist:
|
||||
logger.error(f"打手信息不存在: 用户{request.user.yonghuid}")
|
||||
logger.error(f"打手信息不存在: 用户{request.user.UserUID}")
|
||||
return Response({
|
||||
'code': 400,
|
||||
'message': '打手信息不存在'
|
||||
@@ -1483,7 +1483,7 @@ class HuiyuanGoumai(APIView):
|
||||
|
||||
# 2. 验证用户身份和状态
|
||||
try:
|
||||
dashou = request.user.dashou_profile
|
||||
dashou = request.user.DashouProfile
|
||||
except UserDashou.DoesNotExist:
|
||||
return Response({
|
||||
'code': 400,
|
||||
@@ -1521,7 +1521,7 @@ class HuiyuanGoumai(APIView):
|
||||
chongzhi_jilu = Czjilu.query.create(
|
||||
dingdan_id=dingdanid,
|
||||
zhuangtai=9, # 未支付状态
|
||||
yonghuid=request.user.yonghuid,
|
||||
yonghuid=request.user.UserUID,
|
||||
jine=jine,
|
||||
leixing=1, # 充值类型:1=会员
|
||||
shuoming=shuoming,
|
||||
@@ -1529,14 +1529,14 @@ class HuiyuanGoumai(APIView):
|
||||
)
|
||||
|
||||
logger.info(
|
||||
f"创建会员充值订单: 用户{request.user.yonghuid}, 订单{dingdanid}, 会员{huiyuanid}, 金额{jine}元")
|
||||
f"创建会员充值订单: 用户{request.user.UserUID}, 订单{dingdanid}, 会员{huiyuanid}, 金额{jine}元")
|
||||
|
||||
# 7. 生成微信支付参数
|
||||
try:
|
||||
pay_params = self.generate_wechat_pay_params(
|
||||
dingdanid=dingdanid,
|
||||
jine=jine,
|
||||
openid=request.user.openid,
|
||||
openid=request.user.OpenID,
|
||||
pay_type='huiyuan'
|
||||
)
|
||||
except Exception as e:
|
||||
@@ -1899,7 +1899,7 @@ class HuiyuanHuitiao(View):
|
||||
|
||||
# 获取打手头像和昵称
|
||||
user_main = dashou.user
|
||||
avatar = user_main.avatar
|
||||
avatar = user_main.Avatar
|
||||
nicheng = dashou.nicheng or "未知打手"
|
||||
|
||||
# 查询该打手针对该管事的已分红次数
|
||||
@@ -2145,7 +2145,7 @@ class HuiyuanShibai(APIView):
|
||||
try:
|
||||
order = Czjilu.query.get(
|
||||
dingdan_id=dingdanid,
|
||||
UserUID=request.user.yonghuid
|
||||
UserUID=request.user.UserUID
|
||||
)
|
||||
except Czjilu.DoesNotExist:
|
||||
return Response({
|
||||
@@ -2164,7 +2164,7 @@ class HuiyuanShibai(APIView):
|
||||
if order.zhuangtai == 9:
|
||||
# 删除订单
|
||||
order.delete()
|
||||
logger.info(f"用户{request.user.yonghuid}删除未支付会员订单: {dingdanid}")
|
||||
logger.info(f"用户{request.user.UserUID}删除未支付会员订单: {dingdanid}")
|
||||
|
||||
return Response({
|
||||
'code': 200,
|
||||
@@ -2210,7 +2210,7 @@ class HuiyuanLunxun(APIView):
|
||||
try:
|
||||
order = Czjilu.query.get(
|
||||
dingdan_id=dingdanid,
|
||||
UserUID=request.user.yonghuid
|
||||
UserUID=request.user.UserUID
|
||||
)
|
||||
except Czjilu.DoesNotExist:
|
||||
return Response({
|
||||
@@ -2239,7 +2239,7 @@ class HuiyuanLunxun(APIView):
|
||||
|
||||
# 6. 查询会员购买记录
|
||||
goumai_record = Huiyuangoumai.query.filter(
|
||||
yonghu_id=request.user.yonghuid,
|
||||
yonghu_id=request.user.UserUID,
|
||||
huiyuan_id=order.huiyuan_id
|
||||
).first()
|
||||
|
||||
@@ -2255,9 +2255,9 @@ class HuiyuanLunxun(APIView):
|
||||
# 直接格式化,不使用时区转换
|
||||
daoqi_time = goumai_record.daoqi_time.strftime('%Y-%m-%d %H:%M:%S')
|
||||
current_user = request.user
|
||||
dashou = current_user.dashou_profile
|
||||
dashou = current_user.DashouProfile
|
||||
|
||||
logger.info(f"会员轮询成功: 订单{dingdanid}已支付,用户{request.user.yonghuid}, 会员{order.huiyuan_id}")
|
||||
logger.info(f"会员轮询成功: 订单{dingdanid}已支付,用户{request.user.UserUID}, 会员{order.huiyuan_id}")
|
||||
|
||||
# 8. 返回会员信息(用于更新前端全局变量)
|
||||
return Response({
|
||||
@@ -2304,9 +2304,9 @@ class ShangjiaChongzhi(APIView):
|
||||
try:
|
||||
# 1. 验证用户身份和商家状态
|
||||
try:
|
||||
shangjia = request.user.shop_profile
|
||||
shangjia = request.user.ShopProfile
|
||||
except UserShangjia.DoesNotExist:
|
||||
logger.warning(f"用户{request.user.yonghuid}尝试充值但不是商家")
|
||||
logger.warning(f"用户{request.user.UserUID}尝试充值但不是商家")
|
||||
return Response({
|
||||
'code': 400,
|
||||
'message': '用户不是商家,无法充值'
|
||||
@@ -2355,7 +2355,7 @@ class ShangjiaChongzhi(APIView):
|
||||
chongzhi_jilu = Czjilu.query.create(
|
||||
dingdan_id=dingdanid,
|
||||
zhuangtai=9, # 未支付状态
|
||||
yonghuid=request.user.yonghuid,
|
||||
yonghuid=request.user.UserUID,
|
||||
jine=jine,
|
||||
leixing=4, # 充值类型:4=商家充值
|
||||
shuoming=settings.SHANGJIA_CZ_PAY_DESCRIPTION
|
||||
@@ -2373,7 +2373,7 @@ class ShangjiaChongzhi(APIView):
|
||||
pay_params = self.generate_wechat_pay_params(
|
||||
dingdanid=dingdanid,
|
||||
jine=jine,
|
||||
openid=request.user.openid,
|
||||
openid=request.user.OpenID,
|
||||
pay_type='shangjia'
|
||||
)
|
||||
except Exception as e:
|
||||
@@ -2750,11 +2750,11 @@ class ShangjiaShibai(APIView):
|
||||
try:
|
||||
order = Czjilu.query.get(
|
||||
dingdan_id=dingdanid,
|
||||
UserUID=request.user.yonghuid,
|
||||
UserUID=request.user.UserUID,
|
||||
leixing=4 # 确保是商家充值订单
|
||||
)
|
||||
except Czjilu.DoesNotExist:
|
||||
logger.warning(f"商家订单不存在或不属于当前用户: {dingdanid}, 用户{request.user.yonghuid}")
|
||||
logger.warning(f"商家订单不存在或不属于当前用户: {dingdanid}, 用户{request.user.UserUID}")
|
||||
return Response({
|
||||
'code': 400,
|
||||
'message': '订单不存在或不属于当前用户'
|
||||
@@ -2764,7 +2764,7 @@ class ShangjiaShibai(APIView):
|
||||
if order.zhuangtai == 9:
|
||||
# 删除订单
|
||||
order.delete()
|
||||
logger.info(f"商家{request.user.shop_profile.nicheng}删除未支付订单: {dingdanid}")
|
||||
logger.info(f"商家{request.user.ShopProfile.nicheng}删除未支付订单: {dingdanid}")
|
||||
|
||||
return Response({
|
||||
'code': 200,
|
||||
@@ -2816,11 +2816,11 @@ class ShangjiaChenggong(APIView):
|
||||
try:
|
||||
order = Czjilu.query.get(
|
||||
dingdan_id=dingdanid,
|
||||
UserUID=request.user.yonghuid,
|
||||
UserUID=request.user.UserUID,
|
||||
leixing=4 # 商家充值类型
|
||||
)
|
||||
except Czjilu.DoesNotExist:
|
||||
logger.warning(f"商家订单不存在: {dingdanid}, 用户{request.user.yonghuid}")
|
||||
logger.warning(f"商家订单不存在: {dingdanid}, 用户{request.user.UserUID}")
|
||||
return Response({
|
||||
'code': 400,
|
||||
'message': '订单不存在或不属于当前用户'
|
||||
@@ -2836,7 +2836,7 @@ class ShangjiaChenggong(APIView):
|
||||
|
||||
# 4. 获取商家余额(通过反向查询)
|
||||
try:
|
||||
shangjia = request.user.shop_profile
|
||||
shangjia = request.user.ShopProfile
|
||||
yue = float(shangjia.yue) # 转为浮点数方便前端处理
|
||||
|
||||
logger.info(f"商家轮询成功: 订单{dingdanid}已支付,商家{shangjia.nicheng}余额为{yue}元")
|
||||
@@ -2848,7 +2848,7 @@ class ShangjiaChenggong(APIView):
|
||||
}, status=status.HTTP_200_OK)
|
||||
|
||||
except UserShangjia.DoesNotExist:
|
||||
logger.error(f"商家信息不存在: 用户{request.user.yonghuid}")
|
||||
logger.error(f"商家信息不存在: 用户{request.user.UserUID}")
|
||||
return Response({
|
||||
'code': 400,
|
||||
'message': '商家信息不存在'
|
||||
@@ -2877,7 +2877,7 @@ class GuanshiFenhongListAPI(APIView):
|
||||
def post(self, request):
|
||||
try:
|
||||
# 获取当前管事用户ID
|
||||
yonghuid = request.user.yonghuid
|
||||
yonghuid = request.user.UserUID
|
||||
|
||||
# 获取分页参数
|
||||
page = int(request.data.get('page', 1))
|
||||
@@ -2962,7 +2962,7 @@ class AdGetAllDataView(APIView):
|
||||
zhanghao = request.data.get('zhanghao')
|
||||
|
||||
if not zhanghao:
|
||||
logger.warning(f"管理员接口:未接收到账号参数,请求用户:{request.user.yonghuid}")
|
||||
logger.warning(f"管理员接口:未接收到账号参数,请求用户:{request.user.UserUID}")
|
||||
return Response({
|
||||
'code': 400,
|
||||
'message': '缺少账号参数',
|
||||
@@ -2973,9 +2973,9 @@ class AdGetAllDataView(APIView):
|
||||
current_user = request.user
|
||||
|
||||
# 3. 验证用户类型是否为管理员
|
||||
if current_user.user_type != 'admin':
|
||||
if current_user.UserType != 'admin':
|
||||
logger.warning(
|
||||
f"权限验证失败:用户 {current_user.yonghuid} 的用户类型为 {current_user.user_type},非管理员")
|
||||
f"权限验证失败:用户 {current_user.UserUID} 的用户类型为 {current_user.UserType},非管理员")
|
||||
return Response({
|
||||
'code': 401,
|
||||
'message': '无管理员权限',
|
||||
@@ -2983,9 +2983,9 @@ class AdGetAllDataView(APIView):
|
||||
}, status=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
# 4. 验证手机号与传递的账号是否一致
|
||||
if current_user.phone != zhanghao:
|
||||
if current_user.Phone != zhanghao:
|
||||
logger.warning(
|
||||
f"账号验证失败:用户 {current_user.yonghuid} 的phone={current_user.phone},传递的zhanghao={zhanghao}")
|
||||
f"账号验证失败:用户 {current_user.UserUID} 的phone={current_user.Phone},传递的zhanghao={zhanghao}")
|
||||
return Response({
|
||||
'code': 401,
|
||||
'message': '账号验证失败',
|
||||
@@ -2994,11 +2994,11 @@ class AdGetAllDataView(APIView):
|
||||
|
||||
# 5. 验证管理员扩展表是否存在
|
||||
try:
|
||||
admin_profile = current_user.admin_profile
|
||||
logger.info(f"管理员验证通过:用户 {current_user.yonghuid},手机号 {current_user.phone}")
|
||||
admin_profile = current_user.AdminProfile
|
||||
logger.info(f"管理员验证通过:用户 {current_user.UserUID},手机号 {current_user.Phone}")
|
||||
except AdminProfile.DoesNotExist:
|
||||
logger.error(
|
||||
f"管理员扩展表不存在:用户 {current_user.yonghuid} 虽然user_type=admin,但没有AdminProfile记录")
|
||||
f"管理员扩展表不存在:用户 {current_user.UserUID} 虽然user_type=admin,但没有AdminProfile记录")
|
||||
return Response({
|
||||
'code': 401,
|
||||
'message': '管理员信息不完整',
|
||||
@@ -3124,14 +3124,14 @@ class ShangpinLeixingFabuView(APIView):
|
||||
)
|
||||
|
||||
# 验证账号是否匹配(使用phone字段比较)
|
||||
if user_main.phone != zhanghao:
|
||||
if user_main.Phone != zhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'msg': '账号验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
# 1.2 验证是否为管理员(检查user_type字段)
|
||||
if user_main.user_type != 'admin':
|
||||
if user_main.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'msg': '权限不足', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
@@ -3324,14 +3324,14 @@ class ShangpinZhuanquFabuView(APIView):
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
if user_main.phone != zhanghao:
|
||||
if user_main.Phone != zhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'msg': '账号验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
# 1.2 验证是否为管理员(检查user_type字段)
|
||||
if user_main.user_type != 'admin':
|
||||
if user_main.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'msg': '权限不足', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
@@ -3433,14 +3433,14 @@ class ShangpinFabuView(APIView):
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
if user_main.phone != zhanghao:
|
||||
if user_main.Phone != zhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'msg': '账号验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
# 1.2 验证是否为管理员(检查user_type字段)
|
||||
if user_main.user_type != 'admin':
|
||||
if user_main.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'msg': '权限不足', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
@@ -3737,14 +3737,14 @@ class GuizeTupianShangchuanView(APIView):
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
if user_main.phone != zhanghao:
|
||||
if user_main.Phone != zhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'msg': '账号验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
# 1.2 验证是否为管理员(检查user_type字段)
|
||||
if user_main.user_type != 'admin':
|
||||
if user_main.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'msg': '权限不足', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
@@ -3880,14 +3880,14 @@ class AdHuiyuanHqView(APIView):
|
||||
)
|
||||
|
||||
# 验证账号是否匹配(使用phone字段比较)
|
||||
if user_main.phone != zhanghao:
|
||||
if user_main.Phone != zhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'msg': '权限验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
# 1.2 验证是否为管理员(检查user_type字段)
|
||||
if user_main.user_type != 'admin':
|
||||
if user_main.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'msg': '权限验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
@@ -3987,14 +3987,14 @@ class HuiyuanXiugaiView(APIView):
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
if user_main.phone != zhanghao:
|
||||
if user_main.Phone != zhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'msg': '权限验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
# 1.2 验证是否为管理员(检查user_type字段)
|
||||
if user_main.user_type != 'admin':
|
||||
if user_main.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'msg': '权限验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
@@ -4160,14 +4160,14 @@ class AdHuiyuanFbView(APIView):
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
if user_main.phone != zhanghao:
|
||||
if user_main.Phone != zhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'msg': '权限验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
# 1.2 验证是否为管理员
|
||||
if user_main.user_type != 'admin':
|
||||
if user_main.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'msg': '权限验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
@@ -4339,14 +4339,14 @@ class AdShangpinHuQu(APIView):
|
||||
dangqianyonghu = request.user
|
||||
|
||||
# 3. 验证账号匹配
|
||||
if not hasattr(dangqianyonghu, 'phone') or str(dangqianyonghu.phone) != qianzhanghao:
|
||||
if not hasattr(dangqianyonghu, 'Phone') or str(dangqianyonghu.Phone) != qianzhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
# 4. 验证用户类型为管理员
|
||||
if dangqianyonghu.user_type != 'admin':
|
||||
if dangqianyonghu.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
@@ -4354,7 +4354,7 @@ class AdShangpinHuQu(APIView):
|
||||
|
||||
# 5. 验证管理员扩展表数据
|
||||
try:
|
||||
guanliyuan = dangqianyonghu.admin_profile
|
||||
guanliyuan = dangqianyonghu.AdminProfile
|
||||
except AdminProfile.DoesNotExist:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
@@ -4456,14 +4456,14 @@ class AdGonggaoXiuGai(APIView):
|
||||
dangqianyonghu = request.user
|
||||
|
||||
# 3. 验证账号匹配
|
||||
if not hasattr(dangqianyonghu, 'phone') or str(dangqianyonghu.phone) != qianzhanghao:
|
||||
if not hasattr(dangqianyonghu, 'Phone') or str(dangqianyonghu.Phone) != qianzhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
# 4. 验证用户类型为管理员
|
||||
if dangqianyonghu.user_type != 'admin':
|
||||
if dangqianyonghu.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
@@ -4471,7 +4471,7 @@ class AdGonggaoXiuGai(APIView):
|
||||
|
||||
# 5. 验证管理员扩展表数据
|
||||
try:
|
||||
guanliyuan = dangqianyonghu.admin_profile
|
||||
guanliyuan = dangqianyonghu.AdminProfile
|
||||
except AdminProfile.DoesNotExist:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
@@ -4545,20 +4545,20 @@ class AdZhuanquXiuGai(APIView):
|
||||
|
||||
dangqianyonghu = request.user
|
||||
|
||||
if not hasattr(dangqianyonghu, 'phone') or str(dangqianyonghu.phone) != qianzhanghao:
|
||||
if not hasattr(dangqianyonghu, 'Phone') or str(dangqianyonghu.Phone) != qianzhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
if dangqianyonghu.user_type != 'admin':
|
||||
if dangqianyonghu.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
try:
|
||||
guanliyuan = dangqianyonghu.admin_profile
|
||||
guanliyuan = dangqianyonghu.AdminProfile
|
||||
except AdminProfile.DoesNotExist:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
@@ -4645,20 +4645,20 @@ class AdLunboXiuGai(APIView):
|
||||
|
||||
dangqianyonghu = request.user
|
||||
|
||||
if not hasattr(dangqianyonghu, 'phone') or str(dangqianyonghu.phone) != qianzhanghao:
|
||||
if not hasattr(dangqianyonghu, 'Phone') or str(dangqianyonghu.Phone) != qianzhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
if dangqianyonghu.user_type != 'admin':
|
||||
if dangqianyonghu.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
try:
|
||||
guanliyuan = dangqianyonghu.admin_profile
|
||||
guanliyuan = dangqianyonghu.AdminProfile
|
||||
except AdminProfile.DoesNotExist:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败'},
|
||||
@@ -4802,14 +4802,14 @@ class AdLeixingXiuGai(APIView):
|
||||
return Response({'code': 401, 'message': '身份验证失败'}, status=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
dangqianyonghu = request.user
|
||||
if not hasattr(dangqianyonghu, 'phone') or str(dangqianyonghu.phone) != qianzhanghao:
|
||||
if not hasattr(dangqianyonghu, 'Phone') or str(dangqianyonghu.Phone) != qianzhanghao:
|
||||
return Response({'code': 401, 'message': '身份验证失败'}, status=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
if dangqianyonghu.user_type != 'admin':
|
||||
if dangqianyonghu.UserType != 'admin':
|
||||
return Response({'code': 401, 'message': '身份验证失败'}, status=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
try:
|
||||
guanliyuan = dangqianyonghu.admin_profile
|
||||
guanliyuan = dangqianyonghu.AdminProfile
|
||||
except AdminProfile.DoesNotExist:
|
||||
return Response({'code': 401, 'message': '身份验证失败'}, status=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
@@ -5062,7 +5062,7 @@ class AdShangpinNeiRongHuoQu(APIView):
|
||||
dangqianyonghu = request.user
|
||||
|
||||
# 验证phone字段匹配
|
||||
if not hasattr(dangqianyonghu, 'phone') or str(dangqianyonghu.phone) != qianzhanghao:
|
||||
if not hasattr(dangqianyonghu, 'Phone') or str(dangqianyonghu.Phone) != qianzhanghao:
|
||||
logger.warning(
|
||||
f"账号不匹配: 当前用户phone={getattr(dangqianyonghu, 'phone', '无')}, 前端账号={qianzhanghao}")
|
||||
return Response(
|
||||
@@ -5071,8 +5071,8 @@ class AdShangpinNeiRongHuoQu(APIView):
|
||||
)
|
||||
|
||||
# 验证用户类型
|
||||
if dangqianyonghu.user_type != 'admin':
|
||||
logger.warning(f"非管理员访问: user_type={dangqianyonghu.user_type}")
|
||||
if dangqianyonghu.UserType != 'admin':
|
||||
logger.warning(f"非管理员访问: user_type={dangqianyonghu.UserType}")
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
@@ -5080,7 +5080,7 @@ class AdShangpinNeiRongHuoQu(APIView):
|
||||
|
||||
# 3. 验证管理员扩展表
|
||||
try:
|
||||
guanliyuan = dangqianyonghu.admin_profile
|
||||
guanliyuan = dangqianyonghu.AdminProfile
|
||||
except AdminProfile.DoesNotExist:
|
||||
logger.warning(f"管理员扩展表不存在: user_id={dangqianyonghu.id}")
|
||||
return Response(
|
||||
@@ -5165,20 +5165,20 @@ class AdShangpinXiuGai(APIView):
|
||||
# 验证身份
|
||||
dangqianyonghu = request.user
|
||||
|
||||
if not hasattr(dangqianyonghu, 'phone') or str(dangqianyonghu.phone) != qianzhanghao:
|
||||
if not hasattr(dangqianyonghu, 'Phone') or str(dangqianyonghu.Phone) != qianzhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
if dangqianyonghu.user_type != 'admin':
|
||||
if dangqianyonghu.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
try:
|
||||
guanliyuan = dangqianyonghu.admin_profile
|
||||
guanliyuan = dangqianyonghu.AdminProfile
|
||||
except AdminProfile.DoesNotExist:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败', 'data': None},
|
||||
@@ -5424,20 +5424,20 @@ class AdShangpinGuizeXiuGai(APIView):
|
||||
# 验证身份
|
||||
dangqianyonghu = request.user
|
||||
|
||||
if not hasattr(dangqianyonghu, 'phone') or str(dangqianyonghu.phone) != qianzhanghao:
|
||||
if not hasattr(dangqianyonghu, 'Phone') or str(dangqianyonghu.Phone) != qianzhanghao:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
if dangqianyonghu.user_type != 'admin':
|
||||
if dangqianyonghu.UserType != 'admin':
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败', 'data': None},
|
||||
status=status.HTTP_401_UNAUTHORIZED
|
||||
)
|
||||
|
||||
try:
|
||||
guanliyuan = dangqianyonghu.admin_profile
|
||||
guanliyuan = dangqianyonghu.AdminProfile
|
||||
except AdminProfile.DoesNotExist:
|
||||
return Response(
|
||||
{'code': 401, 'message': '身份验证失败', 'data': None},
|
||||
@@ -5581,7 +5581,7 @@ class HuiyuanTypeListView(APIView):
|
||||
user = request.user
|
||||
|
||||
# 检查是否是管理员
|
||||
if not hasattr(user, 'admin_profile'):
|
||||
if not hasattr(user, 'AdminProfile'):
|
||||
return Response({
|
||||
'code': 401,
|
||||
'message': '无权限访问',
|
||||
@@ -5639,7 +5639,7 @@ class HuiyuanRecordListView(APIView):
|
||||
user = request.user
|
||||
|
||||
# 检查是否是管理员
|
||||
if not hasattr(user, 'admin_profile'):
|
||||
if not hasattr(user, 'AdminProfile'):
|
||||
return Response({
|
||||
'code': 401,
|
||||
'message': '无权限访问',
|
||||
@@ -5871,10 +5871,10 @@ class ZuzhangFenhongView(APIView):
|
||||
fenhong_zonge = zuzhang.fenyong_zonge
|
||||
|
||||
# 3.2 邀请管事数(统计邀请人等于当前用户ID的管事记录)
|
||||
yaoqing_guanshi = UserGuanshi.query.filter(yaoqingren=current_user.yonghuid).count()
|
||||
yaoqing_guanshi = UserGuanshi.query.filter(yaoqingren=current_user.UserUID).count()
|
||||
|
||||
# 3.3 分红次数(总记录数)
|
||||
base_queryset = Gsfenhong.query.filter(zuzhang_id=current_user.yonghuid).order_by('-create_time')
|
||||
base_queryset = Gsfenhong.query.filter(zuzhang_id=current_user.UserUID).order_by('-create_time')
|
||||
fenhong_cishu = base_queryset.count()
|
||||
|
||||
# 4. 分页查询
|
||||
@@ -5947,22 +5947,22 @@ class ZuzhangFenhongView(APIView):
|
||||
|
||||
# 查询用户主表,并预加载 boss_profile
|
||||
users = User.query.filter(UserUID__in=guanshi_ids).select_related(
|
||||
'boss_profile'
|
||||
'BossProfile'
|
||||
).only(
|
||||
'UserUID', 'Avatar',
|
||||
'boss_profile__nickname'
|
||||
'BossProfile__nickname'
|
||||
)
|
||||
|
||||
info = {}
|
||||
for user in users:
|
||||
avatar = user.avatar or ''
|
||||
avatar = user.Avatar or ''
|
||||
# 从 boss_profile 获取昵称
|
||||
if hasattr(user, 'boss_profile') and user.boss_profile:
|
||||
nicheng = user.boss_profile.nickname or ''
|
||||
if hasattr(user, 'BossProfile') and user.BossProfile:
|
||||
nicheng = user.BossProfile.nickname or ''
|
||||
else:
|
||||
# 如果没有 boss_profile,使用默认昵称
|
||||
nicheng = f"用户{user.yonghuid[-4:]}"
|
||||
info[user.yonghuid] = {'avatar': avatar, 'nicheng': nicheng}
|
||||
nicheng = f"用户{user.UserUID[-4:]}"
|
||||
info[user.UserUID] = {'avatar': avatar, 'nicheng': nicheng}
|
||||
|
||||
# 对于未查询到的用户,提供默认值
|
||||
for gid in guanshi_ids:
|
||||
@@ -6009,7 +6009,7 @@ class CzhqdyView(APIView):
|
||||
{
|
||||
'id': 1,
|
||||
'name': '打手佣金抵扣',
|
||||
'profile_attr': 'dashou_profile', # User 的反向 related_name
|
||||
'profile_attr': 'DashouProfile', # User 的反向 related_name
|
||||
'balance_field': 'yue',
|
||||
'rate_key': '5',
|
||||
'model': UserDashou,
|
||||
@@ -6017,7 +6017,7 @@ class CzhqdyView(APIView):
|
||||
{
|
||||
'id': 2,
|
||||
'name': '管事分红抵扣',
|
||||
'profile_attr': 'guanshi_profile',
|
||||
'profile_attr': 'GuanshiProfile',
|
||||
'balance_field': 'yue',
|
||||
'rate_key': '6',
|
||||
'model': UserGuanshi,
|
||||
@@ -6025,7 +6025,7 @@ class CzhqdyView(APIView):
|
||||
{
|
||||
'id': 3,
|
||||
'name': '组长分红抵扣',
|
||||
'profile_attr': 'zuzhang_profile',
|
||||
'profile_attr': 'ZuzhangProfile',
|
||||
'balance_field': 'ketixian_jine',
|
||||
'rate_key': '8',
|
||||
'model': UserZuzhang,
|
||||
@@ -6034,7 +6034,7 @@ class CzhqdyView(APIView):
|
||||
{
|
||||
'id': 4,
|
||||
'name': '打手押金抵扣',
|
||||
'profile_attr': 'dashou_profile', # 与打手佣金共用扩展表
|
||||
'profile_attr': 'DashouProfile', # 与打手佣金共用扩展表
|
||||
'balance_field': 'yajin', # 押金字段
|
||||
'rate_key': '11', # 押金提现费率对应的 Platform
|
||||
'model': UserDashou,
|
||||
@@ -6089,7 +6089,7 @@ class CzhqdyView(APIView):
|
||||
elif leixing == 4:
|
||||
# 罚款缴纳
|
||||
try:
|
||||
fadan = Penalty.query.get(id=fadan_id, PenalizedUserID=user.yonghuid)
|
||||
fadan = Penalty.query.get(id=fadan_id, PenalizedUserID=user.UserUID)
|
||||
target_price = fadan.FineAmount
|
||||
except Penalty.DoesNotExist:
|
||||
return Response({'code': 404, 'msg': '罚单不存在或不属于当前用户'}, status=status.HTTP_404_NOT_FOUND)
|
||||
@@ -6228,7 +6228,7 @@ class DsqrgmdhView(APIView):
|
||||
if not fadan_id:
|
||||
return Response({'code': 400, 'msg': '缺少罚单ID'}, status=status.HTTP_400_BAD_REQUEST)
|
||||
try:
|
||||
fadan_obj = Penalty.query.get(id=fadan_id, PenalizedUserID=request.user.yonghuid)
|
||||
fadan_obj = Penalty.query.get(id=fadan_id, PenalizedUserID=request.user.UserUID)
|
||||
target_price = fadan_obj.FineAmount
|
||||
except Penalty.DoesNotExist:
|
||||
return Response({'code': 404, 'msg': '罚单不存在或不属于当前用户'}, status=status.HTTP_404_NOT_FOUND)
|
||||
@@ -6253,7 +6253,7 @@ class DsqrgmdhView(APIView):
|
||||
return Response({'code': 500, 'msg': f'金额计算错误: {str(e)}'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||
|
||||
user = request.user
|
||||
yonghuid = user.yonghuid
|
||||
yonghuid = user.UserUID
|
||||
|
||||
try:
|
||||
profile = identity['model'].query.get(user=user)
|
||||
|
||||
Reference in New Issue
Block a user