彻底解决了 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

@@ -33,8 +33,8 @@ class Migration(migrations.Migration):
('ip', models.CharField(blank=True, max_length=50, null=True, verbose_name='来访用户ip')),
('last_login_time', models.DateTimeField(blank=True, null=True, verbose_name='最后登录时间')),
('user_type', models.CharField(choices=[('normal', '普通用户'), ('dashou', '打手'), ('shop', '商家'), ('guanshi', '管事'), ('admin', '管理员')], default='normal', max_length=10, verbose_name='用户类型')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('UpdateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '用户主表',
@@ -112,8 +112,8 @@ class Migration(migrations.Migration):
('huiyuants', models.IntegerField(default=0, verbose_name='添加会员天数')),
('huiyuan_id', models.CharField(blank=True, max_length=6, null=True, verbose_name='会员ID')),
('qitashuoming', models.TextField(blank=True, null=True, verbose_name='其他说明')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('UpdateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '修改记录表',
@@ -139,8 +139,8 @@ class Migration(migrations.Migration):
('kaioi_ewai_tixian', models.BooleanField(default=False, verbose_name='开启额外提现')),
('kaioi_ewai_fenhong', models.BooleanField(default=False, verbose_name='开启额外分红')),
('ewai_fenhong_jine', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='额外分红金额(元)')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('UpdateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('user', models.OneToOneField(db_column='UserUUID', on_delete=django.db.models.deletion.CASCADE, related_name='ZuzhangProfile', to=settings.AUTH_USER_MODEL, verbose_name='关联用户')),
],
options={
@@ -160,8 +160,8 @@ class Migration(migrations.Migration):
('tongguo_zongshu', models.IntegerField(default=0, verbose_name='通过总数')),
('yue', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='可提现余额')),
('zonge', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='赚取总额')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('UpdateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('user', models.OneToOneField(db_column='UserUUID', on_delete=django.db.models.deletion.CASCADE, related_name='ShenheguanProfile', to=settings.AUTH_USER_MODEL, verbose_name='关联用户')),
],
options={
@@ -186,7 +186,7 @@ class Migration(migrations.Migration):
('jinriliushui', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='商家今日流水')),
('jinyuedingdan', models.IntegerField(default=0, verbose_name='商家今月订单总量')),
('jinyueliushui', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='商家今月流水')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('user', models.OneToOneField(db_column='UserUUID', on_delete=django.db.models.deletion.CASCADE, related_name='ShopProfile', to=settings.AUTH_USER_MODEL, verbose_name='关联用户')),
],
options={
@@ -203,8 +203,8 @@ class Migration(migrations.Migration):
('zhifu', models.CharField(blank=True, max_length=500, null=True, verbose_name='收款码图片')),
('skzhanghao', models.CharField(blank=True, max_length=11, null=True, verbose_name='收款账号')),
('shoujihao_renzheng', models.BooleanField(default=False, verbose_name='手机号是否已认证')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('UpdateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('user_uuid', models.OneToOneField(db_column='user_uuid_id', on_delete=django.db.models.deletion.CASCADE, related_name='sensitive_data', to=settings.AUTH_USER_MODEL, verbose_name='关联用户')),
],
options={
@@ -223,8 +223,8 @@ class Migration(migrations.Migration):
('jinrichuli', models.IntegerField(default=0, verbose_name='今日处理订单数')),
('jinyuechuli', models.IntegerField(default=0, verbose_name='本月处理订单数')),
('zongchuli', models.IntegerField(default=0, verbose_name='累计处理订单数')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('UpdateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('user', models.OneToOneField(db_column='UserUUID', on_delete=django.db.models.deletion.CASCADE, related_name='KefuProfile', to=settings.AUTH_USER_MODEL, verbose_name='关联用户')),
],
options={
@@ -248,7 +248,7 @@ class Migration(migrations.Migration):
('jinyuechongzhi', models.IntegerField(default=0, verbose_name='今月充值打手数量')),
('chongzhifenrun', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='充值分佣总额')),
('yue', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='可提现余额')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('fenhong_yici', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='首次分红金额')),
('fenghong_erci_enabled', models.BooleanField(default=False, verbose_name='开启二次分红')),
('fenghong_erci', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='二次分红金额')),
@@ -288,7 +288,7 @@ class Migration(migrations.Migration):
('jinyueshouyi', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='今月收益金额')),
('jifen', models.IntegerField(default=0, verbose_name='打手积分')),
('yajin', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='打手押金')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('last_tixian_date', models.DateField(blank=True, null=True, verbose_name='最近提现日期')),
('jinritixian_jine', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='今日已提现金额')),
('kaioi_ewai_xiane', models.BooleanField(default=False, verbose_name='是否开启额外提现限额')),
@@ -309,7 +309,7 @@ class Migration(migrations.Migration):
('zonge', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='消费总额')),
('alldingdan', models.IntegerField(default=0, verbose_name='订单总数')),
('alltui', models.IntegerField(default=0, verbose_name='退款总数')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('user', models.OneToOneField(db_column='UserUUID', on_delete=django.db.models.deletion.CASCADE, related_name='BossProfile', to=settings.AUTH_USER_MODEL, verbose_name='关联用户')),
],
options={
@@ -337,8 +337,8 @@ class Migration(migrations.Migration):
('tixian_auto_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='最近一次打款单号(非唯一,重试收款会更新)')),
('fail_reason', models.TextField(blank=True, null=True, verbose_name='微信打款失败原因')),
('dakuan_mode', models.PositiveSmallIntegerField(db_index=True, default=1, verbose_name='打款方式(1手动2自动)')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('UpdateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '提现审核记录',
@@ -365,8 +365,8 @@ class Migration(migrations.Migration):
('bhliyou', models.TextField(blank=True, null=True, verbose_name='驳回理由')),
('shenhe_jilu_id', models.IntegerField(blank=True, db_index=True, null=True, verbose_name='关联提现审核记录ID(TixianShenheJilu.id)')),
('shenhe_danhao', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='关联提现审核单号')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('UpdateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '提现记录表',
@@ -391,8 +391,8 @@ class Migration(migrations.Migration):
('wechat_package', models.TextField(blank=True, null=True, verbose_name='微信返回的package_info(JSON)')),
('fail_reason', models.TextField(blank=True, null=True, verbose_name='失败原因')),
('shenhe_danhao', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='关联审核单号')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('UpdateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '自动提现记录',
@@ -430,7 +430,7 @@ class Migration(migrations.Migration):
('password', models.CharField(max_length=255, verbose_name='密码')),
('wechat', models.CharField(blank=True, max_length=50, verbose_name='管理员微信')),
('yaoqingma', models.CharField(db_index=True, max_length=20, null=True, verbose_name='管理员邀请码')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('CreateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('user', models.OneToOneField(db_column='UserUUID', on_delete=django.db.models.deletion.CASCADE, related_name='AdminProfile', to=settings.AUTH_USER_MODEL, verbose_name='关联用户')),
],
options={

View File

@@ -43,8 +43,8 @@ class UserMain(AbstractBaseUser, QModel):
# 状态和时间字段
#is_active = models.BooleanField(default=True, verbose_name='是否激活')
#last_login = models.DateTimeField(blank=True, null=True, verbose_name='最后登录时间')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
# 邀请码字段
#yaoqingma = models.CharField(max_length=20, blank=True, null=True, verbose_name='邀请码')
@@ -63,7 +63,7 @@ class UserMain(AbstractBaseUser, QModel):
models.Index(fields=['openid']),
#models.Index(fields=['phone']),
models.Index(fields=['user_type']),
#models.Index(fields=['create_time']),
#models.Index(fields=['CreateTime']),
]
def __str__(self):
@@ -97,7 +97,7 @@ class UserBoss(QModel):
zonge = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='消费总额')
alldingdan = models.IntegerField(default=0, verbose_name='订单总数')
alltui = models.IntegerField(default=0, verbose_name='退款总数')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
class Meta:
db_table = 'user_boss'
@@ -130,7 +130,7 @@ class UserDashou(QModel):
jinyueshouyi = models.DecimalField(max_digits=10, decimal_places=2, default=0.00, verbose_name='今月收益金额')
jifen = models.IntegerField(default=0, verbose_name='打手积分')
yajin= models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='打手押金')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
last_tixian_date = models.DateField(null=True, blank=True, verbose_name='最近提现日期') # 用于重置今日提现金额
jinritixian_jine = models.DecimalField(max_digits=10, decimal_places=2, default=0.00, verbose_name='今日已提现金额')
@@ -167,7 +167,7 @@ class UserShangjia(QModel):
jinriliushui = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='商家今日流水')
jinyuedingdan = models.IntegerField(default=0, verbose_name='商家今月订单总量')
jinyueliushui = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='商家今月流水')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
class Meta:
db_table = 'user_shangjia'
@@ -194,7 +194,7 @@ class UserGuanshi(QModel):
jinyuechongzhi = models.IntegerField(default=0, verbose_name='今月充值打手数量')
chongzhifenrun = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='充值分佣总额')
yue = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='可提现余额')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
# 新增:首次分红金额(针对特殊用户)
fenhong_yici = models.DecimalField(max_digits=10,decimal_places=2,default=0.00,verbose_name='首次分红金额')
@@ -260,9 +260,9 @@ class UserZuzhang(QModel):
# 额外分红金额
ewai_fenhong_jine = models.DecimalField(max_digits=10, decimal_places=2, default=0.00, verbose_name='额外分红金额(元)')
# 创建时间
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
# 更新时间
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'user_zuzhang'
@@ -286,8 +286,8 @@ class UserShenheguan(QModel):
tongguo_zongshu = models.IntegerField(default=0, verbose_name='通过总数')
yue = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='可提现余额')
zonge = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='赚取总额')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'user_shenheguan'
@@ -303,7 +303,7 @@ class AdminProfile(QModel):
password = models.CharField(max_length=255, verbose_name='密码')
wechat = models.CharField(max_length=50, blank=True, verbose_name='管理员微信')
yaoqingma = models.CharField(max_length=20, null=True, db_index=True,verbose_name='管理员邀请码') # 🟢 新增字段
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
class Meta:
db_table = 'admin_profile'
@@ -320,8 +320,8 @@ class UserKefu(QModel):
jinrichuli = models.IntegerField(default=0, verbose_name='今日处理订单数')
jinyuechuli = models.IntegerField(default=0, verbose_name='本月处理订单数')
zongchuli = models.IntegerField(default=0, verbose_name='累计处理订单数')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'user_kefu'
@@ -362,8 +362,8 @@ class Tixianjilu(QModel):
max_length=32, null=True, blank=True, db_index=True,
verbose_name='关联提现审核单号'
)
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'tixianjilu'
@@ -425,8 +425,8 @@ class TixianShenheJilu(QModel):
dakuan_mode = models.PositiveSmallIntegerField(
default=1, db_index=True, verbose_name='打款方式(1手动2自动)'
)
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'tixian_shenhe_jilu'
@@ -481,8 +481,8 @@ class TixianAutoRecord(QModel):
shenhe_danhao = models.CharField(
max_length=32, null=True, blank=True, db_index=True, verbose_name='关联审核单号'
)
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'tixian_auto_record'
@@ -536,8 +536,8 @@ class Xiugaijilu(QModel):
# 其他字段
qitashuoming = models.TextField(null=True, blank=True, verbose_name='其他说明')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'xiugaijilu'
@@ -614,8 +614,8 @@ class UserSensitiveData(QModel):
zhifu = models.CharField(max_length=500, null=True, blank=True, verbose_name='收款码图片')
skzhanghao = models.CharField(max_length=11, blank=True, null=True, verbose_name='收款账号')
shoujihao_renzheng = models.BooleanField(default=False, verbose_name='手机号是否已认证')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'user_sensitive_data'

View File

@@ -439,7 +439,7 @@ def _get_active_auto_record(shenhe_danhao):
shenhe_danhao=shenhe_danhao,
zhuangtai__in=[0, 1],
)
.order_by('-create_time')
.order_by('-CreateTime')
.first()
)
@@ -731,7 +731,7 @@ def _quota_already_reserved_for_record(auto_record):
other_sum = TixianAutoRecord.query.filter(
leixing=auto_record.leixing,
zhuangtai__in=[0, 1],
create_time__date=today,
CreateTime__date=today,
).exclude(tixian_id=auto_record.tixian_id).aggregate(
total=Sum('shijidaozhang'),
)['total'] or decimal.Decimal('0.00')
@@ -912,7 +912,7 @@ def sync_audit_and_jilu_status(audit, new_status, **extra_fields):
setattr(audit, k, v)
audit.save()
if audit.tixianjilu_id:
update_fields = {'zhuangtai': new_status, 'update_time': timezone.now()}
update_fields = {'zhuangtai': new_status, 'UpdateTime': timezone.now()}
if 'bhliyou' in extra_fields:
update_fields['bhliyou'] = extra_fields['bhliyou']
Tixianjilu.query.filter(id=audit.tixianjilu_id).update(**update_fields)
@@ -925,7 +925,7 @@ def _close_auto_record_failed(auto_record, fail_reason):
reason = (fail_reason or '打款失败')[:500]
auto_record.zhuangtai = 2
auto_record.fail_reason = reason
auto_record.save(update_fields=['zhuangtai', 'fail_reason', 'update_time'])
auto_record.save(update_fields=['zhuangtai', 'fail_reason', 'UpdateTime'])
release_collect_quota_for_record(auto_record)
@@ -1059,7 +1059,7 @@ def mark_transfer_success(auto_record, *, wechat_transfer_no=None, with_accounti
return False
ar.zhuangtai = 1
update_fields = ['zhuangtai', 'update_time']
update_fields = ['zhuangtai', 'UpdateTime']
if wechat_transfer_no:
ar.wechat_transfer_no = wechat_transfer_no
update_fields.append('wechat_transfer_no')
@@ -1087,7 +1087,7 @@ def mark_transfer_success(auto_record, *, wechat_transfer_no=None, with_accounti
def _sync_record_from_wx_query(auto_record, wx_data):
"""根据微信查单结果修正本地打款记录,返回 (action, payload)"""
if wx_data.get('_not_found'):
age = timezone.now() - auto_record.create_time
age = timezone.now() - auto_record.CreateTime
if auto_record.zhuangtai == 0 and age < timedelta(minutes=PENDING_QUERY_GRACE_MINUTES):
return RECONCILE_PENDING, {
'msg': '有收款处理中,请稍后再试',
@@ -1096,7 +1096,7 @@ def _sync_record_from_wx_query(auto_record, wx_data):
if auto_record.zhuangtai == 0:
auto_record.zhuangtai = 2
auto_record.fail_reason = '微信未找到该打款单,请重新发起收款'
auto_record.save(update_fields=['zhuangtai', 'fail_reason', 'update_time'])
auto_record.save(update_fields=['zhuangtai', 'fail_reason', 'UpdateTime'])
release_collect_quota_for_record(auto_record)
return RECONCILE_ALLOW_NEW, {}
@@ -1118,7 +1118,7 @@ def _sync_record_from_wx_query(auto_record, wx_data):
}
if auto_record.zhuangtai == 0:
auto_record.wechat_package = json.dumps(package, ensure_ascii=False)
auto_record.save(update_fields=['wechat_package', 'update_time'])
auto_record.save(update_fields=['wechat_package', 'UpdateTime'])
wx_cfg = settings.WECHAT_PAY_V3_CONFIG
return RECONCILE_WAIT_CONFIRM, {
'tixian_id': auto_record.tixian_id,
@@ -1143,7 +1143,7 @@ def _sync_record_from_wx_query(auto_record, wx_data):
if auto_record.zhuangtai != 1:
auto_record.zhuangtai = 2
auto_record.fail_reason = fail_reason
auto_record.save(update_fields=['zhuangtai', 'fail_reason', 'update_time'])
auto_record.save(update_fields=['zhuangtai', 'fail_reason', 'UpdateTime'])
release_collect_quota_for_record(auto_record)
if auto_record.shenhe_danhao:
try:
@@ -1171,14 +1171,14 @@ def get_auto_record_for_collect(shenhe_danhao):
"""
pending = (
TixianAutoRecord.query.filter(shenhe_danhao=shenhe_danhao, zhuangtai=0)
.order_by('-create_time')
.order_by('-CreateTime')
.first()
)
if pending:
return pending
return (
TixianAutoRecord.query.filter(shenhe_danhao=shenhe_danhao)
.order_by('-create_time')
.order_by('-CreateTime')
.first()
)
@@ -1190,7 +1190,7 @@ def reconcile_shenhe_wechat_bills(shenhe_danhao):
返回 (action, payload)
"""
records = list(
TixianAutoRecord.query.filter(shenhe_danhao=shenhe_danhao).order_by('-create_time')
TixianAutoRecord.query.filter(shenhe_danhao=shenhe_danhao).order_by('-CreateTime')
)
if any(r.zhuangtai == 1 for r in records):

View File

@@ -91,7 +91,7 @@ def _mark_auto_record_failed(tixian_id, fail_reason):
TixianAutoRecord.query.filter(tixian_id=tixian_id, zhuangtai=0).update(
zhuangtai=2,
fail_reason=(fail_reason or '打款失败')[:500],
update_time=timezone.now(),
UpdateTime=timezone.now(),
)
@@ -307,7 +307,7 @@ def process_audit_collect(request):
shenhe_danhao=shenhe_danhao,
)
audit.tixian_auto_id = tixian_id
audit.save(update_fields=['tixian_auto_id', 'update_time'])
audit.save(update_fields=['tixian_auto_id', 'UpdateTime'])
body = _build_wx_transfer_body(
wx_cfg, tixian_id, user_main.OpenID, yonghuid, leixing, shijidaozhang,

View File

@@ -1512,7 +1512,7 @@ class GuanshiYaoqingDashouListView(APIView):
pass
# 6. 排序和分页
base_qs = base_qs.order_by('-create_time')
base_qs = base_qs.order_by('-CreateTime')
paginator = Paginator(base_qs, page_size)
try:
page_obj = paginator.page(page)
@@ -1980,7 +1980,7 @@ class TixianShenqingView(APIView):
'jine': str(jine.quantize(decimal.Decimal('0.01'))),
'fangshi': fangshi,
'zhuangtai': 1,
'create_time': tixian_record.create_time.strftime('%Y-%m-%d %H:%M:%S'),
'CreateTime': tixian_record.CreateTime.strftime('%Y-%m-%d %H:%M:%S'),
'current_rate': str(current_rate.quantize(decimal.Decimal('0.0000'))),
'shouxufei': str(shouxufei.quantize(decimal.Decimal('0.01'))),
'shijidaozhang': str(shijidaozhang.quantize(decimal.Decimal('0.01'))),
@@ -2175,10 +2175,10 @@ class TixianJiluHuoquViewV2(APIView):
# 自动提现含新审核关联记录zhuangtai>0 时按状态筛选
if zhuangtai_filter > 0:
qs = qs.filter(zhuangtai=zhuangtai_filter)
qs = qs.order_by('-create_time')
qs = qs.order_by('-CreateTime')
records_queryset = qs.values(
'id', 'leixing', 'jine', 'zhuangtai', 'create_time', 'fangshi',
'id', 'leixing', 'jine', 'zhuangtai', 'CreateTime', 'fangshi',
'phone', 'skzhanghao', 'zhifu', 'bhliyou',
'shenhe_jilu_id', 'shenhe_danhao',
)[offset:offset + limit + 1]
@@ -2202,7 +2202,7 @@ class TixianJiluHuoquViewV2(APIView):
if danhao_list:
for ar in TixianAutoRecord.query.filter(
shenhe_danhao__in=danhao_list, zhuangtai=2
).order_by('-create_time').values('shenhe_danhao', 'fail_reason'):
).order_by('-CreateTime').values('shenhe_danhao', 'fail_reason'):
if ar['shenhe_danhao'] not in auto_fail_map:
auto_fail_map[ar['shenhe_danhao']] = ar['fail_reason']
@@ -2227,7 +2227,7 @@ class TixianJiluHuoquViewV2(APIView):
'leixing': record['leixing'],
'jine': jine_val,
'zhuangtai': record['zhuangtai'],
'create': record['create_time'].strftime('%Y-%m-%d %H:%M:%S'),
'create': record['CreateTime'].strftime('%Y-%m-%d %H:%M:%S'),
'fangshi': record['fangshi'],
'txdianhua': record['phone'] or '',
'txzh': record['skzhanghao'] or '',
@@ -2484,7 +2484,7 @@ class AdminFinancialDataView(APIView):
# 如果需要汇总多条记录可以使用aggregate进行聚合查询
# 方法1获取最新的一条记录假设表中只有一条汇总记录
shouzhijilu = Szjilu.query.order_by('-create_time').first()
shouzhijilu = Szjilu.query.order_by('-CreateTime').first()
# 方法2如果表中可能有多条记录需要汇总可以使用以下方式
# from django.db.models Sum
@@ -3150,7 +3150,7 @@ class AdGuanLiYongHu(APIView):
total_count = queryset.count()
# 获取当前页的数据
users = list(queryset.order_by('-create_time')[offset:offset + limit])
users = list(queryset.order_by('-CreateTime')[offset:offset + limit])
# 计算是否有更多数据
current_count = len(users)
@@ -3193,7 +3193,7 @@ class AdGuanLiYongHu(APIView):
total_count = queryset.count()
# 获取当前页的数据
dashou_list = list(queryset.order_by('-create_time')[offset:offset + limit])
dashou_list = list(queryset.order_by('-CreateTime')[offset:offset + limit])
# 计算是否有更多数据
current_count = len(dashou_list)
@@ -3237,7 +3237,7 @@ class AdGuanLiYongHu(APIView):
total_count = queryset.count()
# 获取当前页的数据
guanshi_list = list(queryset.order_by('-create_time')[offset:offset + limit])
guanshi_list = list(queryset.order_by('-CreateTime')[offset:offset + limit])
# 计算是否有更多数据
current_count = len(guanshi_list)
@@ -3280,7 +3280,7 @@ class AdGuanLiYongHu(APIView):
total_count = queryset.count()
# 获取当前页的数据
shangjia_list = list(queryset.order_by('-create_time')[offset:offset + limit])
shangjia_list = list(queryset.order_by('-CreateTime')[offset:offset + limit])
# 计算是否有更多数据
current_count = len(shangjia_list)
@@ -3487,8 +3487,8 @@ class CfGuanLi(APIView):
'bhliyou': chufa.RejectReason,
'jifen': chufa.DeductedPoints,
'dingdan_id': chufa.OrderID,
'create_time': chufa.create_time,
'update_time': chufa.update_time,
'CreateTime': chufa.CreateTime,
'UpdateTime': chufa.UpdateTime,
# 🔴【新增】申诉理由字段
'ssliyou': chufa.AppealReason or '',
# 🔴【新增】商家证据图片
@@ -3863,8 +3863,8 @@ class AdckyhxqView(APIView):
'avatar': user_main.Avatar,
'phone': user_main.Phone,
'ip': user_main.IP,
'create_time': user_main.UserCreateTime,
'update_time': user_main.UserCreateTime,
'CreateTime': user_main.UserCreateTime,
'UpdateTime': user_main.UserCreateTime,
'user_type': user_type
}
@@ -3879,7 +3879,7 @@ class AdckyhxqView(APIView):
'zonge': boss_profile.zonge,
'alldingdan': boss_profile.alldingdan,
'alltui': boss_profile.alltui,
'create_time_boss': boss_profile.create_time
'CreateTime_boss': boss_profile.CreateTime
})
elif user_type == 2: # 打手
@@ -3910,14 +3910,14 @@ class AdckyhxqView(APIView):
'jinyueshouyi': dashou_profile.jinyueshouyi,
'jifen': dashou_profile.jifen,
'yajin': dashou_profile.yajin,
'create_time_dashou': dashou_profile.create_time
'CreateTime_dashou': dashou_profile.CreateTime
})
# 查询打手的会员信息(只返回未过期的)
# 使用select_related预取huiyuan信息如果有关联的话
member_records = Huiyuangoumai.query.filter(
yonghu_id=uid
).order_by('-create_time')
).order_by('-CreateTime')
member_list = []
for record in member_records:
@@ -3936,7 +3936,7 @@ class AdckyhxqView(APIView):
'huiyuan_name': huiyuan.jieshao,
'daoqi_time': record.daoqi_time,
'is_active': record.huiyuan_zhuangtai == 1,
'create_time': record.create_time
'CreateTime': record.CreateTime
})
response_data['member_list'] = member_list
@@ -3957,7 +3957,7 @@ class AdckyhxqView(APIView):
'jinyuechongzhi': guanshi_profile.jinyuechongzhi,
'chongzhifenrun': guanshi_profile.chongzhifenrun,
'yue': guanshi_profile.yue, # 管事可提现余额
'create_time_guanshi': guanshi_profile.create_time
'CreateTime_guanshi': guanshi_profile.CreateTime
})
elif user_type == 4: # 商家
@@ -3978,7 +3978,7 @@ class AdckyhxqView(APIView):
'jinriliushui': shop_profile.jinriliushui,
'jinyuedingdan': shop_profile.jinyuedingdan,
'jinyueliushui': shop_profile.jinyueliushui,
'create_time_shop': shop_profile.create_time
'CreateTime_shop': shop_profile.CreateTime
})
# 获取所有会员列表(用于前端下拉选择)
@@ -4092,7 +4092,7 @@ class AdcjxgView(APIView):
'xiugaiid': zhanghao,
'leixing': user_type,
'qitashuoming': '',
'create_time': timezone.now()
'CreateTime': timezone.now()
}
# 标记是否有敏感字段被修改
@@ -4499,7 +4499,7 @@ class AddtxshView(APIView):
query &= Q(yonghuid=search_uid)
# 🔴【修改】排序改为按申请时间升序(最早申请排最前)
queryset = Tixianjilu.query.filter(query).order_by('create_time')
queryset = Tixianjilu.query.filter(query).order_by('CreateTime')
# 🔴【修改】分页逻辑:如果是搜索模式,不分页,返回所有匹配记录
if search_uid:
@@ -4541,8 +4541,8 @@ class AddtxshView(APIView):
'fangshi': record.fangshi,
'shenheid': record.shenheid,
'bhliyou': record.bhliyou,
'create_time': record.create_time,
'update_time': record.update_time
'CreateTime': record.CreateTime,
'UpdateTime': record.UpdateTime
})
return Response({
@@ -4628,7 +4628,7 @@ class AdtixianqkView(APIView):
if result == 3: # 拒绝
withdrawal.bhliyou = reason
withdrawal.update_time = timezone.now()
withdrawal.UpdateTime = timezone.now()
withdrawal.save()
# 🟢 新增如果同意提现result=2更新收支记录表
@@ -4646,7 +4646,7 @@ class AdtixianqkView(APIView):
szjilu_record.TotalIncome -= tixian_jine # 总收益减去提现金额
szjilu_record.TotalExpense += tixian_jine # 总支出加上提现金额
szjilu_record.DailyExpense += tixian_jine # 今日支出加上提现金额
szjilu_record.update_time = timezone.now()
szjilu_record.UpdateTime = timezone.now()
szjilu_record.save()
except Szjilu.DoesNotExist:
@@ -4668,7 +4668,7 @@ class AdtixianqkView(APIView):
'id': withdrawal.id,
'zhuangtai': withdrawal.zhuangtai,
'shenheid': withdrawal.shenheid,
'update_time': withdrawal.update_time
'UpdateTime': withdrawal.UpdateTime
}
}, status=status.HTTP_200_OK)
@@ -6224,8 +6224,8 @@ class ChufaJiluHuoquView(APIView):
'sqzhuangtai': record.ApplyStatus or 0,
'ssliyou': record.AppealReason or '',
'jifen': record.DeductedPoints or 0,
'create_time': record.create_time.strftime('%Y-%m-%d %H:%M:%S') if record.create_time else '',
'update_time': record.update_time.strftime('%Y-%m-%d %H:%M:%S') if record.update_time else '',
'CreateTime': record.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if record.CreateTime else '',
'UpdateTime': record.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if record.UpdateTime else '',
'zhengju_tupian': zhengju_tupian, # 商家上传的证据图片
'shensu_tupian': shensu_tupian, # 打手上传的申诉图片
}
@@ -6402,8 +6402,8 @@ class DashouShensuView(APIView):
'shensu_liyou': shensu_liyou,
'shensu_tupian_urls': saved_tupian_urls,
'sqzhuangtai': chufa_record.ApplyStatus,
'update_time': chufa_record.update_time.strftime(
'%Y-%m-%d %H:%M:%S') if chufa_record.update_time else ''
'UpdateTime': chufa_record.UpdateTime.strftime(
'%Y-%m-%d %H:%M:%S') if chufa_record.UpdateTime else ''
}
# 记录操作日志
@@ -6652,8 +6652,8 @@ class ShangjiaChufaJiluHuoquView(APIView):
'sqzhuangtai': record.ApplyStatus or 0,
'ssliyou': record.AppealReason or '',
'jifen': record.DeductedPoints or 0,
'create_time': record.create_time.strftime('%Y-%m-%d %H:%M:%S') if record.create_time else '',
'update_time': record.update_time.strftime('%Y-%m-%d %H:%M:%S') if record.update_time else '',
'CreateTime': record.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if record.CreateTime else '',
'UpdateTime': record.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if record.UpdateTime else '',
'zhengju_tupian': zhengju_tupian, # 商家自己上传的证据图片
'shensu_tupian': shensu_tupian, # 打手上传的申诉图片
}
@@ -8481,7 +8481,7 @@ class KefuGetDashouListView(APIView):
# 4. 计算总数并分页
total = queryset.count()
offset = (page - 1) * page_size
dashou_list = queryset.order_by('-create_time')[offset:offset + page_size]
dashou_list = queryset.order_by('-CreateTime')[offset:offset + page_size]
# 5. 构建返回数据(只取需要的字段)
result = []
@@ -8584,7 +8584,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,
@@ -8620,7 +8620,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,
@@ -8639,7 +8639,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:
@@ -9047,8 +9047,8 @@ class KefuPunishmentListView(APIView):
'qingqiuid': item.ApplicantID,
'cfliyou': item.PenaltyReason,
'sqzhuangtai': item.ApplyStatus,
'create_time': item.CreateTime,
'update_time': item.UpdateTime,
'CreateTime': item.CreateTime,
'UpdateTime': item.UpdateTime,
# 其他字段按需添加
})
@@ -9282,8 +9282,8 @@ class KefuPunishmentDetailView(APIView):
'ssliyou': record.AppealReason or '',
'zhengju_tupian': zhengju_images,
'shensu_tupian': shensu_images,
'create_time': record.CreateTime,
'update_time': record.UpdateTime,
'CreateTime': record.CreateTime,
'UpdateTime': record.UpdateTime,
}
return Response({'code': 0, 'data': data})
@@ -9619,7 +9619,7 @@ if not kefu_txsh_list_logger.handlers:
_TIXIAN_LIST_BASE_FIELDS = (
'id', 'yonghuid', 'avatar', 'phone', 'nicheng', 'leixing',
'zhifu', 'skzhanghao', 'jine', 'zhuangtai', 'fangshi',
'shenheid', 'bhliyou', 'create_time', 'update_time',
'shenheid', 'bhliyou', 'CreateTime', 'UpdateTime',
)
_TIXIAN_LIST_AUDIT_FIELDS = ('shenhe_jilu_id', 'shenhe_danhao')
@@ -9773,7 +9773,7 @@ class KefuWithdrawListView(APIView):
q &= Q(yonghuid=search_uid)
if date_filter:
q &= Q(update_time__date=date_filter)
q &= Q(UpdateTime__date=date_filter)
if min_amount is not None and str(min_amount).strip() != '':
try:
@@ -9821,7 +9821,7 @@ class KefuWithdrawListView(APIView):
'total_amount': str(round(float(total_amount), 2)),
}
queryset = base_qs.order_by('create_time')
queryset = base_qs.order_by('CreateTime')
total = queryset.count()
records = list(queryset[(page - 1) * page_size: page * page_size])
@@ -9865,8 +9865,8 @@ class KefuWithdrawListView(APIView):
'dakuan_mode': self._resolve_row_dakuan_mode(item, audit_mode_map, shenhe_field_ok),
'shenheid': item.shenheid or '',
'bhliyou': item.bhliyou or '',
'create_time': item.create_time.strftime('%Y-%m-%d %H:%M:%S') if item.create_time else '',
'update_time': item.update_time.strftime('%Y-%m-%d %H:%M:%S') if item.update_time else '',
'CreateTime': item.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if item.CreateTime else '',
'UpdateTime': item.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if item.UpdateTime else '',
})
return Response({
@@ -9973,8 +9973,8 @@ class KefuWithdrawDetailView(APIView):
'fangshi': record.fangshi,
'shenheid': record.shenheid or '',
'bhliyou': record.bhliyou or '',
'create_time': record.create_time,
'update_time': record.update_time,
'CreateTime': record.CreateTime,
'UpdateTime': record.UpdateTime,
}
# 根据提现类型添加扩展信息
@@ -10145,11 +10145,11 @@ class KefuWithdrawActionView(APIView):
refund_balance(user, audit.leixing, audit.shijidaozhang)
tixian.shenheid = kefu_user.UserUID
tixian.bhliyou = limit_msg
tixian.save(update_fields=['shenheid', 'bhliyou', 'update_time'])
tixian.save(update_fields=['shenheid', 'bhliyou', 'UpdateTime'])
raise ValueError(f'提现记录{tixian_id}{limit_msg},已自动驳回并退款')
sync_audit_and_jilu_status(audit, 6, shenhe_ren_id=kefu_user.UserUID)
tixian.shenheid = kefu_user.UserUID
tixian.save(update_fields=['shenheid', 'update_time'])
tixian.save(update_fields=['shenheid', 'UpdateTime'])
else:
sync_audit_and_jilu_status(
audit, 5,
@@ -10160,7 +10160,7 @@ class KefuWithdrawActionView(APIView):
refund_balance(user, audit.leixing, audit.shijidaozhang)
tixian.shenheid = kefu_user.UserUID
tixian.bhliyou = reason
tixian.save(update_fields=['shenheid', 'bhliyou', 'update_time'])
tixian.save(update_fields=['shenheid', 'bhliyou', 'UpdateTime'])
def _process_manual_item(self, item, action, reason, phone):
"""手动打款单条处理(原逻辑,须在 transaction.atomic 内调用)"""
@@ -10195,7 +10195,7 @@ class KefuWithdrawActionView(APIView):
szjilu.TotalIncome -= tixian.jine
szjilu.TotalExpense += tixian.jine
szjilu.DailyExpense += tixian.jine
szjilu.update_time = timezone.now()
szjilu.UpdateTime = timezone.now()
szjilu.save()
except Exception as e:
logger.error(f'更新收支记录失败: {e}')
@@ -10208,7 +10208,7 @@ class KefuWithdrawActionView(APIView):
tixian.bhliyou = reason
tixian.shenheid = phone
tixian.update_time = timezone.now()
tixian.UpdateTime = timezone.now()
tixian.save()
def post(self, request):
@@ -11482,7 +11482,7 @@ class DaShouFaKuanLieBiaoView(APIView):
yingxiang_qiangdan, shensuliyou, bohuiliyou,
zhengju_tupian: [...], // 证据图片yongtu=1
shensu_tupian: [...], // 申诉图片yongtu=2
create_time, update_time
CreateTime, UpdateTime
}],
has_more, page, page_size
}
@@ -11565,8 +11565,8 @@ class DaShouFaKuanLieBiaoView(APIView):
'bohuiliyou': r.RejectReason or '',
'zhengju_tupian': zhengju_map.get(rid, []), # 证据图片
'shensu_tupian': shensu_map.get(rid, []), # 申诉图片
'create_time': r.create_time.strftime('%Y-%m-%d %H:%M:%S') if r.create_time else '',
'update_time': r.update_time.strftime('%Y-%m-%d %H:%M:%S') if r.update_time else '',
'CreateTime': r.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if r.CreateTime else '',
'UpdateTime': r.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if r.UpdateTime else '',
}
chufa_list.append(item)