彻底解决了 create_time 的问题,将所有字段都改为了 CreateTime

This commit is contained in:
2026-06-19 19:19:22 +08:00
parent 90e0bde7f1
commit e64697b64a
35 changed files with 4803 additions and 4872 deletions

View File

@@ -370,8 +370,8 @@ class GetAdminUserListView(APIView):
'nicheng': user.KefuProfile.nicheng,
'roles': roles_data,
'status': user.KefuProfile.zhuangtai,
'create_time': user.UserCreateTime.strftime('%Y-%m-%d %H:%M:%S') if hasattr(user, 'UserCreateTime') else '',
'update_time': user.update_time.strftime('%Y-%m-%d %H:%M:%S') if hasattr(user, 'update_time') else '',
'CreateTime': user.UserCreateTime.strftime('%Y-%m-%d %H:%M:%S') if hasattr(user, 'UserCreateTime') else '',
'UpdateTime': user.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if hasattr(user, 'UpdateTime') else '',
})
return Response({
@@ -452,7 +452,7 @@ class GetAdminRolesView(APIView):
users = users.filter(phone__in=user_ids_with_role)
# 排序
users = users.order_by('-create_time')
users = users.order_by('-CreateTime')
# 分页
paginator = Paginator(users, page_size)
@@ -469,8 +469,8 @@ class GetAdminRolesView(APIView):
'nicheng': user.KefuProfile.nicheng,
'roles': roles_data,
'status': user.KefuProfile.zhuangtai,
'create_time': user.UserCreateTime.strftime('%Y-%m-%d %H:%M:%S'),
'update_time': user.update_time.strftime('%Y-%m-%d %H:%M:%S'),
'CreateTime': user.UserCreateTime.strftime('%Y-%m-%d %H:%M:%S'),
'UpdateTime': user.UpdateTime.strftime('%Y-%m-%d %H:%M:%S'),
})
return Response({
@@ -737,7 +737,7 @@ class KefuGetDashouListView(APIView):
# 7. 分页
offset = (page - 1) * page_size
dashou_list = dashou_qs.order_by('-create_time')[offset:offset + page_size]
dashou_list = dashou_qs.order_by('-CreateTime')[offset:offset + page_size]
# 8. 构建返回数据
result = []
@@ -821,7 +821,7 @@ class KefuGetDashouDetailView(APIView):
'dianhua': '',
'wechat': '',
'phone': user_main.Phone or '',
'create_time': user_main.UserCreateTime,
'CreateTime': user_main.UserCreateTime,
'ip': user_main.IP or '',
'jiedanzongliang': 0,
'chengjiaozongliang': 0,
@@ -861,7 +861,7 @@ class KefuGetDashouDetailView(APIView):
'dianhua': dashou.dianhua or '',
'wechat': dashou.wechat or '',
'phone': user_main.Phone or '',
'create_time': user_main.UserCreateTime,
'CreateTime': user_main.UserCreateTime,
'ip': user_main.IP or '',
'jiedanzongliang': dashou.jiedanzongliang,
'chengjiaozongliang': dashou.chengjiaozongliang,
@@ -880,7 +880,7 @@ class KefuGetDashouDetailView(APIView):
# 6. 查询打手已拥有的会员(未过期)
member_records = Huiyuangoumai.query.filter(
yonghu_id=uid
).order_by('-create_time')
).order_by('-CreateTime')
member_list = []
for record in member_records:
# 检查是否过期
@@ -980,7 +980,7 @@ class KefuGetDashouDetailView(APIView):
'dianhua': '',
'wechat': '',
'phone': user_main.Phone or '',
'create_time': user_main.UserCreateTime,
'CreateTime': user_main.UserCreateTime,
'ip': user_main.IP or '',
'jiedanzongliang': 0,
'chengjiaozongliang': 0,
@@ -1016,7 +1016,7 @@ class KefuGetDashouDetailView(APIView):
'dianhua': dashou.dianhua or '',
'wechat': dashou.wechat or '',
'phone': user_main.Phone or '',
'create_time': user_main.UserCreateTime,
'CreateTime': user_main.UserCreateTime,
'ip': user_main.IP or '',
'jiedanzongliang': dashou.jiedanzongliang,
'chengjiaozongliang': dashou.chengjiaozongliang,
@@ -1035,7 +1035,7 @@ class KefuGetDashouDetailView(APIView):
# 5. 查询打手会员信息(仅未过期)
member_records = Huiyuangoumai.query.filter(
yonghu_id=uid
).order_by('-create_time')
).order_by('-CreateTime')
member_list = []
for record in member_records:
@@ -1473,7 +1473,7 @@ class KefuGetShangjiaListView(APIView):
# 6. 分页
offset = (page - 1) * page_size
shangjia_list = shangjia_qs.order_by('-create_time')[offset:offset + page_size]
shangjia_list = shangjia_qs.order_by('-CreateTime')[offset:offset + page_size]
# 7. 构建返回数据
result = []
@@ -1560,7 +1560,7 @@ class KefuGetShangjiaDetailView(APIView):
'jinriliushui': str(shangjia.jinriliushui),
'jinyuedingdan': shangjia.jinyuedingdan,
'jinyueliushui': str(shangjia.jinyueliushui),
'create_time': shangjia.create_time.isoformat() if shangjia.create_time else None,
'CreateTime': shangjia.CreateTime.isoformat() if shangjia.CreateTime else None,
}
return Response({'code': 0, 'data': data})
@@ -1850,7 +1850,7 @@ class GetProductListView(APIView):
else:
qs = qs.order_by(f'-{sort_field}')
else:
qs = qs.order_by('-create_time') # 默认按创建时间倒序
qs = qs.order_by('-CreateTime') # 默认按创建时间倒序
# 分页
total = qs.count()
@@ -2052,7 +2052,7 @@ class GetProductListView(APIView):
else:
qs = qs.order_by(f'-{sort_field}')
else:
qs = qs.order_by('-create_time') # 默认按创建时间倒序
qs = qs.order_by('-CreateTime') # 默认按创建时间倒序
# 分页
total = qs.count()
@@ -2465,7 +2465,7 @@ class GetProductDetailView(APIView):
'tupian_url': product.tupian_url,
'kaioi_ewai_PlayerCommission': product.kaioi_ewai_dashou_fencheng,
'ewai_PlayerCommission': str(product.ewai_dashou_fencheng) if product.ewai_dashou_fencheng is not None else '0',
'create_time': product.create_time.isoformat() if product.create_time else None,
'CreateTime': product.CreateTime.isoformat() if product.CreateTime else None,
'shenhezhuangtai': product.shenhezhuangtai,
}
@@ -2685,7 +2685,7 @@ class GetMemberListView(APIView):
if '3300a' not in permissions:
return Response({'code': 403, 'msg': '无权限查看会员列表'})
members = Huiyuan.query.all().order_by('-create_time')
members = Huiyuan.query.all().order_by('-CreateTime')
member_list = []
for m in members:
member_list.append({
@@ -2696,8 +2696,8 @@ class GetMemberListView(APIView):
'guanshifc': str(m.guanshifc),
'zuzhangfc': str(m.zuzhangfc),
'goumai_cishu': m.goumai_cishu,
'create_time': m.create_time.isoformat() if m.create_time else None,
'update_time': m.update_time.isoformat() if m.update_time else None,
'CreateTime': m.CreateTime.isoformat() if m.CreateTime else None,
'UpdateTime': m.UpdateTime.isoformat() if m.UpdateTime else None,
})
return Response({'code': 0, 'data': {'list': member_list}})
@@ -3034,7 +3034,7 @@ class GetGuanliDetailView(APIView):
'jinrichongzhi': guanshi.jinrichongzhi,
'jinyuechongzhi': guanshi.jinyuechongzhi,
'chongzhifenrun': str(guanshi.chongzhifenrun),
'create_time': guanshi.create_time.isoformat() if guanshi.create_time else None,
'CreateTime': guanshi.CreateTime.isoformat() if guanshi.CreateTime else None,
}
# 余额提现相关
@@ -3726,7 +3726,7 @@ class GetZuzhangDetailView(APIView):
'jinri_fenyong': str(zuzhang.jinri_fenyong),
'jinyue_fenyong': str(zuzhang.jinyue_fenyong),
'fenyong_zonge': str(zuzhang.fenyong_zonge),
'create_time': zuzhang.create_time.isoformat() if zuzhang.create_time else None,
'CreateTime': zuzhang.CreateTime.isoformat() if zuzhang.CreateTime else None,
}
# 余额提现相关
@@ -5567,8 +5567,8 @@ class ProductListView(APIView):
'yongjin': p.yongjin,
'kaioi_ewai_PlayerCommission': p.kaioi_ewai_dashou_fencheng,
'ewai_PlayerCommission': p.ewai_dashou_fencheng,
'create_time': p.create_time.isoformat() if p.create_time else '',
'update_time': p.update_time.isoformat() if p.update_time else '',
'CreateTime': p.CreateTime.isoformat() if p.CreateTime else '',
'UpdateTime': p.UpdateTime.isoformat() if p.UpdateTime else '',
'paixu': p.paixu,
'dianpu_id': p.dianpu_id,
'dianpu_name': p.dianpu.dianpu_mingcheng if p.dianpu else '',
@@ -5873,7 +5873,7 @@ class FaKuanLieBiaoView(APIView):
'zhengju_tupian': zhengju_map.get(r.id, []),
'shensu_tupian': shensu_map.get(r.id, []),
'creat_time': r.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if r.CreateTime else '',
'update_time': r.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if r.UpdateTime else '',
'UpdateTime': r.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if r.UpdateTime else '',
})
return Response({
@@ -6278,7 +6278,7 @@ class HqbkxxView(APIView):
bankuai_list.append({
'bankuai_id': bk.bankuai_id,
'mingcheng': bk.mingcheng,
'create_time': bk.create_time.strftime('%Y-%m-%d %H:%M:%S') if bk.create_time else ''
'CreateTime': bk.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if bk.CreateTime else ''
})
# 6. 查询所有商品类型
@@ -6514,8 +6514,8 @@ class CaiwuView(APIView):
# 今日充值会员充值leixing=1, zhuangtai=3
today_chongzhi = Czjilu.query.filter(
create_time__gte=today_start,
create_time__lt=today_end,
CreateTime__gte=today_start,
CreateTime__lt=today_end,
leixing=1,
zhuangtai=3
)
@@ -6524,8 +6524,8 @@ class CaiwuView(APIView):
# 今日新增会员:从购买记录表统计今天创建的用户(去重)
new_huiyuan_user_ids = Huiyuangoumai.query.filter(
create_time__gte=today_start,
create_time__lt=today_end
CreateTime__gte=today_start,
CreateTime__lt=today_end
).values_list('yonghu_id', flat=True).distinct()
today_new_huiyuan = len(new_huiyuan_user_ids)
@@ -6533,8 +6533,8 @@ class CaiwuView(APIView):
today_new_huiyuan_amount = 0.0
if new_huiyuan_user_ids:
amount_sum = Czjilu.query.filter(
create_time__gte=today_start,
create_time__lt=today_end,
CreateTime__gte=today_start,
CreateTime__lt=today_end,
UserUID__in=new_huiyuan_user_ids,
leixing=1,
zhuangtai=3
@@ -6685,7 +6685,7 @@ class HybkjtsjView(APIView):
end_date = date(year + 1, 1, 1)
else:
end_date = date(year, month + 1, 1)
trunc_func = TruncDate('create_time')
trunc_func = TruncDate('CreateTime')
if not summary_date:
summary_date = now.strftime('%Y-%m-%d')
summary_q = datetime.strptime(summary_date, '%Y-%m-%d').date()
@@ -6694,7 +6694,7 @@ class HybkjtsjView(APIView):
return Response({'code': 1, 'msg': '按月统计需要年份'}, status=400)
start_date = date(year, 1, 1)
end_date = date(year + 1, 1, 1)
trunc_func = TruncMonth('create_time')
trunc_func = TruncMonth('CreateTime')
if not summary_date:
summary_date = now.strftime('%Y-%m')
summary_q = datetime.strptime(summary_date + '-01', '%Y-%m-%d').date()
@@ -6702,7 +6702,7 @@ class HybkjtsjView(APIView):
year = year or now.year
start_date = date(year, 1, 1)
end_date = date(year + 1, 1, 1)
trunc_func = TruncYear('create_time')
trunc_func = TruncYear('CreateTime')
if not summary_date:
summary_date = str(year)
summary_q = date(year, 1, 1)
@@ -6718,15 +6718,15 @@ class HybkjtsjView(APIView):
'huiyuan_id': huiyuan_id, # 会员ID筛选
'leixing': 1,
'zhuangtai': 3,
'create_time__gte': start_dt,
'create_time__lt': end_dt
'CreateTime__gte': start_dt,
'CreateTime__lt': end_dt
}
# ---------- 分红过滤 ----------
fenhong_filter = {
'huiyuan_id': huiyuan_id, # 分红表会员ID筛选
'create_time__gte': start_dt,
'create_time__lt': end_dt
'CreateTime__gte': start_dt,
'CreateTime__lt': end_dt
}
# 充值分组查询
@@ -6787,12 +6787,12 @@ class HybkjtsjView(APIView):
# ---------- 汇总数据 ----------
summary_chongzhi_filter = chongzhi_filter.copy()
if granularity == 'day':
summary_chongzhi_filter['create_time__date'] = summary_q
summary_chongzhi_filter['CreateTime__date'] = summary_q
elif granularity == 'month':
summary_chongzhi_filter['create_time__year'] = summary_q.year
summary_chongzhi_filter['create_time__month'] = summary_q.month
summary_chongzhi_filter['CreateTime__year'] = summary_q.year
summary_chongzhi_filter['CreateTime__month'] = summary_q.month
else:
summary_chongzhi_filter['create_time__year'] = summary_q.year
summary_chongzhi_filter['CreateTime__year'] = summary_q.year
summary_chongzhi = Czjilu.query.filter(**summary_chongzhi_filter).aggregate(
total_count=Count('id'),
@@ -6806,12 +6806,12 @@ class HybkjtsjView(APIView):
if include_guanshi or include_zuzhang:
summary_fenhong_filter = fenhong_filter.copy()
if granularity == 'day':
summary_fenhong_filter['create_time__date'] = summary_q
summary_fenhong_filter['CreateTime__date'] = summary_q
elif granularity == 'month':
summary_fenhong_filter['create_time__year'] = summary_q.year
summary_fenhong_filter['create_time__month'] = summary_q.month
summary_fenhong_filter['CreateTime__year'] = summary_q.year
summary_fenhong_filter['CreateTime__month'] = summary_q.month
else:
summary_fenhong_filter['create_time__year'] = summary_q.year
summary_fenhong_filter['CreateTime__year'] = summary_q.year
fenhong_agg = {}
if include_guanshi:
@@ -7261,7 +7261,7 @@ class CwqtczhqView(APIView):
return Response({'code': 1, 'msg': '按日统计需要年份和月份'}, status=400)
start_date = date(year, month, 1)
end_date = date(year, month + 1, 1) if month < 12 else date(year + 1, 1, 1)
trunc_func = TruncDate('create_time')
trunc_func = TruncDate('CreateTime')
# 默认汇总日期
if not summary_date:
summary_date = now.strftime('%Y-%m-%d')
@@ -7271,7 +7271,7 @@ class CwqtczhqView(APIView):
return Response({'code': 1, 'msg': '按月统计需要年份'}, status=400)
start_date = date(year, 1, 1)
end_date = date(year + 1, 1, 1)
trunc_func = TruncMonth('create_time')
trunc_func = TruncMonth('CreateTime')
if not summary_date:
summary_date = now.strftime('%Y-%m')
summary_q = datetime.strptime(summary_date + '-01', '%Y-%m-%d').date()
@@ -7279,7 +7279,7 @@ class CwqtczhqView(APIView):
year = year or now.year
start_date = date(year, 1, 1)
end_date = date(year + 1, 1, 1)
trunc_func = TruncYear('create_time')
trunc_func = TruncYear('CreateTime')
if not summary_date:
summary_date = str(year)
summary_q = date(year, 1, 1)
@@ -7301,8 +7301,8 @@ class CwqtczhqView(APIView):
cz_types = [t for t in types if t in [2, 3, 4, 5]]
if cz_types:
cz_qs = Czjilu.query.filter(
create_time__gte=start_dt,
create_time__lt=end_dt,
CreateTime__gte=start_dt,
CreateTime__lt=end_dt,
leixing__in=cz_types,
zhuangtai=3 # 只统计支付成功的
).annotate(
@@ -7382,12 +7382,12 @@ class CwqtczhqView(APIView):
'zhuangtai': 3,
}
if granularity == 'day':
filter_kwargs['create_time__date'] = summary_q
filter_kwargs['CreateTime__date'] = summary_q
elif granularity == 'month':
filter_kwargs['create_time__year'] = summary_q.year
filter_kwargs['create_time__month'] = summary_q.month
filter_kwargs['CreateTime__year'] = summary_q.year
filter_kwargs['CreateTime__month'] = summary_q.month
else:
filter_kwargs['create_time__year'] = summary_q.year
filter_kwargs['CreateTime__year'] = summary_q.year
agg = Czjilu.query.filter(**filter_kwargs).aggregate(count=Count('id'), amount=Sum('jine'))
count = agg['count'] or 0
amount = float(agg['amount'] or 0)
@@ -7496,7 +7496,7 @@ class CwqtczhqView(APIView):
return Response({'code': 1, 'msg': '按日统计需要年份和月份'}, status=400)
start_date = date(year, month, 1)
end_date = date(year, month + 1, 1) if month < 12 else date(year + 1, 1, 1)
trunc_func = TruncDate('create_time')
trunc_func = TruncDate('CreateTime')
# 默认汇总日期
if not summary_date:
summary_date = now.strftime('%Y-%m-%d')
@@ -7506,7 +7506,7 @@ class CwqtczhqView(APIView):
return Response({'code': 1, 'msg': '按月统计需要年份'}, status=400)
start_date = date(year, 1, 1)
end_date = date(year + 1, 1, 1)
trunc_func = TruncMonth('create_time')
trunc_func = TruncMonth('CreateTime')
if not summary_date:
summary_date = now.strftime('%Y-%m')
summary_q = datetime.strptime(summary_date + '-01', '%Y-%m-%d').date()
@@ -7514,7 +7514,7 @@ class CwqtczhqView(APIView):
year = year or now.year
start_date = date(year, 1, 1)
end_date = date(year + 1, 1, 1)
trunc_func = TruncYear('create_time')
trunc_func = TruncYear('CreateTime')
if not summary_date:
summary_date = str(year)
summary_q = date(year, 1, 1)
@@ -7536,8 +7536,8 @@ class CwqtczhqView(APIView):
cz_types = [t for t in types if t in [2, 3, 4, 5]]
if cz_types:
cz_qs = Czjilu.query.filter(
create_time__gte=start_dt,
create_time__lt=end_dt,
CreateTime__gte=start_dt,
CreateTime__lt=end_dt,
leixing__in=cz_types,
zhuangtai=3 # 只统计支付成功的
).annotate(
@@ -7639,12 +7639,12 @@ class CwqtczhqView(APIView):
'zhuangtai': 3,
}
if granularity == 'day':
filter_kwargs['create_time__date'] = summary_q
filter_kwargs['CreateTime__date'] = summary_q
elif granularity == 'month':
filter_kwargs['create_time__year'] = summary_q.year
filter_kwargs['create_time__month'] = summary_q.month
filter_kwargs['CreateTime__year'] = summary_q.year
filter_kwargs['CreateTime__month'] = summary_q.month
else:
filter_kwargs['create_time__year'] = summary_q.year
filter_kwargs['CreateTime__year'] = summary_q.year
agg = Czjilu.query.filter(**filter_kwargs).aggregate(count=Count('id'), amount=Sum('jine'))
count = agg['count'] or 0
amount = float(agg['amount'] or 0)
@@ -7760,7 +7760,7 @@ class KhpzhqView(APIView):
'bankuai_id': ch.bankuai_id,
'tubiao_url': ch.tubiao_url or '',
'texiao_miaoshu': ch.texiao_miaoshu or '',
'create_time': ch.create_time.strftime('%Y-%m-%d %H:%M:%S') if ch.create_time else '',
'CreateTime': ch.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if ch.CreateTime else '',
'kaohe_guize': ch.kaohe_guize or '',
'kaioi_jinpai': ch.kaioi_jinpai,
'feiyong': feiyong_dict, # {1:100.0, 2:200.0}
@@ -8016,7 +8016,7 @@ class KhgglView(APIView):
total = queryset.count()
start = (page - 1) * page_size
end = start + page_size
shenheguan_list = queryset.order_by('-create_time')[start:end]
shenheguan_list = queryset.order_by('-CreateTime')[start:end]
# ---------- 预计算每个板块的打手数量 ----------
bankuai_dashou_count_map = {}
@@ -8074,8 +8074,8 @@ class KhgglView(APIView):
'tongguo_zongshu': sg.tongguo_zongshu,
'yue': float(sg.yue),
'zonge': float(sg.zonge),
'create_time': sg.create_time.strftime('%Y-%m-%d %H:%M:%S') if sg.create_time else '',
'update_time': sg.update_time.strftime('%Y-%m-%d %H:%M:%S') if sg.update_time else '',
'CreateTime': sg.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if sg.CreateTime else '',
'UpdateTime': sg.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if sg.UpdateTime else '',
'bankuai': bankuai_info,
'nicheng': dashou_nick,
'is_renzheng': sg.is_renzheng,