进行了 GVSDSDK 迁移,可能存在诸多问题

This commit is contained in:
2026-06-17 20:37:47 +08:00
parent 72770ad73b
commit d00f0d08e5
132 changed files with 161593 additions and 4827 deletions

View File

@@ -1,205 +1,454 @@
# Generated by Django 5.2.10 on 2026-01-14 19:59
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Lilubiao',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('lilu', models.DecimalField(decimal_places=4, max_digits=5, null=True, verbose_name='平台分成利率1是平台,2是商家')),
('fadanpingtai', models.CharField(max_length=10, null=True, verbose_name='订单所属平台,(商家或平台)')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'lilubiao',
},
),
migrations.CreateModel(
name='Ptliushui',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('zonge', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='收取总金额')),
('zhichuzonge', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='支出总金额')),
('zongshouyi', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='总收益')),
('rizonge', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='日收取')),
('rizhichu', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='日支出')),
('rishouyi', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='日收益')),
('zongshoucishu', models.IntegerField(default=0, verbose_name='总收取次数')),
('rishoucishu', models.IntegerField(default=0, verbose_name='日收取次数')),
('zongzhichucishu', models.IntegerField(default=0, verbose_name='总支出次数')),
('rizhichucishu', models.IntegerField(default=0, verbose_name='日支出次数')),
],
options={
'db_table': 'ptliushui',
},
),
migrations.CreateModel(
name='Chufajilu',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dashouid', models.CharField(db_index=True, max_length=7, null=True, verbose_name='被罚打手ID')),
('qingqiuid', models.CharField(db_index=True, max_length=7, null=True, verbose_name='请求处罚ID')),
('chuliid', models.CharField(db_index=True, max_length=7, null=True, verbose_name='处理处罚ID')),
('cfliyou', models.TextField(blank=True, null=True, verbose_name='处罚理由')),
('sqzhuangtai', models.IntegerField(blank=True, default=0, null=True, verbose_name='处罚申请状态:0待处理,1成功,2驳回')),
('bhliyou', models.TextField(blank=True, null=True, verbose_name='驳回处罚理由')),
('jifen', models.IntegerField(default=0, verbose_name='扣除打手积分')),
('dingdan_id', models.CharField(db_index=True, max_length=32, null=True, verbose_name='订单ID')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'chufajilu',
'indexes': [models.Index(fields=['dashouid'], name='chufajilu_dashoui_07aac0_idx'), models.Index(fields=['qingqiuid'], name='chufajilu_qingqiu_ac160e_idx'), models.Index(fields=['chuliid'], name='chufajilu_chuliid_cd63ac_idx'), models.Index(fields=['dingdan_id'], name='chufajilu_dingdan_b8f0c2_idx')],
},
),
migrations.CreateModel(
name='Dashoutupian',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, null=True, verbose_name='订单ID')),
('dashou', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='接单打手ID')),
('tupian', models.CharField(blank=True, max_length=500, null=True, verbose_name='打手提交图片URL')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'dashoutupian',
'indexes': [models.Index(fields=['dashou'], name='dashoutupia_dashou_7de8bd_idx'), models.Index(fields=['dingdan_id'], name='dashoutupia_dingdan_97c685_idx')],
},
),
migrations.CreateModel(
name='Dingdan',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, unique=True, verbose_name='订单ID')),
('zhuangtai', models.IntegerField(blank=True, db_index=True, default=1, null=True, verbose_name='订单状态')),
('fadan_pingtai', models.IntegerField(blank=True, null=True, verbose_name='发单平台')),
('jine', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='订单金额')),
('dashou_fencheng', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='打手分成')),
('jiedan_dashou_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='接单打手ID')),
('dashou_liuyan', models.TextField(blank=True, null=True, verbose_name='打手留言')),
('zhiding_id', models.CharField(blank=True, max_length=32, null=True, verbose_name='指定ID')),
('shangpin_id', models.IntegerField(blank=True, null=True, verbose_name='商品ID')),
('leixing_id', models.PositiveIntegerField(blank=True, null=True, verbose_name='商品类型ID')),
('tupian', models.CharField(blank=True, max_length=500, null=True, verbose_name='商品图片URL')),
('yaoqiuleixing', models.PositiveIntegerField(blank=True, null=True, verbose_name='抢单要求类型')),
('huiyuan_id', models.CharField(blank=True, max_length=6, null=True, verbose_name='会员ID')),
('yongjin', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='佣金要求')),
('jieshao', models.TextField(blank=True, null=True, verbose_name='订单介绍')),
('beizhu', models.TextField(blank=True, null=True, verbose_name='订单备注')),
('nicheng', models.CharField(blank=True, max_length=50, null=True, verbose_name='游戏昵称')),
('user1_id', models.CharField(db_index=True, max_length=30, null=True, verbose_name='用户1标识')),
('user2_id', models.CharField(db_index=True, max_length=30, null=True, verbose_name='用户2打手标识')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '订单',
'verbose_name_plural': '订单',
'db_table': 'dingdan',
'indexes': [models.Index(fields=['zhuangtai'], name='dingdan_zhuangt_2febe8_idx'), models.Index(fields=['dingdan_id'], name='dingdan_dingdan_83dcb6_idx'), models.Index(fields=['jiedan_dashou_id'], name='dingdan_jiedan__921bfa_idx')],
},
),
migrations.CreateModel(
name='Liaotian',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False, verbose_name='主键ID')),
('user1_id', models.CharField(db_index=True, max_length=30, verbose_name='用户1标识')),
('user2_id', models.CharField(db_index=True, max_length=30, verbose_name='用户2标识')),
('dingdan_id', models.CharField(max_length=32, unique=True, verbose_name='订单ID')),
('zhuangtai', models.IntegerField(choices=[(1, '开启中'), (0, '已关闭')], db_index=True, default=1, verbose_name='聊天状态')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'liaotian',
'indexes': [models.Index(fields=['user1_id'], name='liaotian_user1_i_6be6cd_idx'), models.Index(fields=['user2_id'], name='liaotian_user2_i_9f61a4_idx'), models.Index(fields=['zhuangtai'], name='liaotian_zhuangt_5e8be5_idx')],
},
),
migrations.CreateModel(
name='Pingfen',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dashou', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='接单打手ID')),
('zongfen', models.PositiveIntegerField(default=0, verbose_name='总分')),
('cishu', models.PositiveIntegerField(default=0, verbose_name='评分次数')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '评分表',
'db_table': 'pingfenbiao',
'indexes': [models.Index(fields=['dashou'], name='pingfenbiao_dashou_f62f10_idx')],
},
),
migrations.CreateModel(
name='Tuikuanjilu',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(max_length=32, unique=True, verbose_name='订单ID')),
('dashouid', models.CharField(max_length=7, null=True, verbose_name='接单打手ID')),
('qingqiuid', models.CharField(max_length=7, null=True, verbose_name='请求用户ID')),
('chuliid', models.CharField(db_index=True, max_length=7, null=True, verbose_name='处理人ID')),
('liyou', models.TextField(blank=True, null=True, verbose_name='理由')),
('sqzhuangtai', models.IntegerField(blank=True, db_index=True, default=0, null=True, verbose_name='申请状态:0待处理,1成功,2驳回')),
('bhliyou', models.TextField(blank=True, null=True, verbose_name='驳回理由')),
('jine', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='订单金额')),
('dashou_fencheng', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='打手分成')),
('jieshao', models.TextField(blank=True, null=True, verbose_name='订单介绍')),
('beizhu', models.TextField(blank=True, null=True, verbose_name='订单备注')),
('nicheng', models.CharField(blank=True, max_length=50, null=True, verbose_name='游戏昵称')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'tuikuanjilu',
'indexes': [models.Index(fields=['chuliid'], name='tuikuanjilu_chuliid_0b0f16_idx'), models.Index(fields=['sqzhuangtai'], name='tuikuanjilu_sqzhuan_d89dc9_idx')],
},
),
migrations.CreateModel(
name='DingdanPingtai',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('laoban_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='老板ID')),
('laoban_pingjia', models.TextField(blank=True, null=True, verbose_name='老板评价')),
('dingdan', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='pingtai_kuozhan', to='orders.dingdan', verbose_name='订单')),
],
options={
'verbose_name': '平台订单扩展',
'verbose_name_plural': '平台订单扩展',
'db_table': 'dingdan_pingtai',
'indexes': [models.Index(fields=['laoban_id'], name='dingdan_pin_laoban__d55e6f_idx')],
},
),
migrations.CreateModel(
name='DingdanShangjia',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('shangjia_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='商家ID')),
('shangjia_pingjia', models.TextField(blank=True, null=True, verbose_name='商家评价')),
('cfliyou', models.TextField(blank=True, null=True, verbose_name='商家处罚理由')),
('sqzhuangtai', models.IntegerField(blank=True, default=0, null=True, verbose_name='处罚申请状态:0待处理,1成功,2驳回')),
('bhliyou', models.TextField(blank=True, null=True, verbose_name='驳回商家处罚理由')),
('sjnicheng', models.CharField(max_length=50, null=True, verbose_name='商家昵称')),
('dingdan', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='shangjia_kuozhan', to='orders.dingdan', verbose_name='订单')),
],
options={
'verbose_name': '商家订单扩展',
'verbose_name_plural': '商家订单扩展',
'db_table': 'dingdan_shangjia',
'indexes': [models.Index(fields=['shangjia_id'], name='dingdan_sha_shangji_64d28b_idx')],
},
),
]
# Generated by Django 4.2.27 on 2026-06-17 16:31
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Chufajilu',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dashouid', models.CharField(db_index=True, max_length=7, null=True, verbose_name='被罚打手ID')),
('qingqiuid', models.CharField(db_index=True, max_length=11, null=True, verbose_name='请求处罚ID')),
('chuliid', models.CharField(db_index=True, max_length=11, null=True, verbose_name='处理处罚ID')),
('cfliyou', models.TextField(blank=True, null=True, verbose_name='处罚理由')),
('ssliyou', models.TextField(blank=True, null=True, verbose_name='打手申诉理由')),
('sqzhuangtai', models.IntegerField(blank=True, default=0, null=True, verbose_name='处罚申请状态:0待处理,1成功,2驳回')),
('bhliyou', models.TextField(blank=True, null=True, verbose_name='驳回处罚理由')),
('jifen', models.IntegerField(default=0, verbose_name='扣除打手积分')),
('dingdan_id', models.CharField(db_index=True, max_length=32, null=True, verbose_name='订单ID')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'chufajilu',
},
),
migrations.CreateModel(
name='Chufatupian',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, null=True, verbose_name='订单ID')),
('yonghuid', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='用户ID')),
('tupian', models.CharField(blank=True, max_length=500, null=True, verbose_name='证据图片URL')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'chufatupian',
},
),
migrations.CreateModel(
name='Dashoutupian',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, null=True, verbose_name='订单ID')),
('dashou', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='接单打手ID')),
('tupian', models.CharField(blank=True, max_length=500, null=True, verbose_name='打手提交图片URL')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'dashoutupian',
},
),
migrations.CreateModel(
name='Dingdan',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, unique=True, verbose_name='订单ID')),
('zhuangtai', models.IntegerField(blank=True, db_index=True, default=1, null=True, verbose_name='订单状态')),
('fadan_pingtai', models.IntegerField(blank=True, null=True, verbose_name='发单平台')),
('jine', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='订单金额')),
('dashou_fencheng', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='打手分成')),
('guanshi_fencheng', models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, null=True, verbose_name='管事分成')),
('jiedan_dashou_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='接单打手ID')),
('dashou_liuyan', models.TextField(blank=True, null=True, verbose_name='打手留言')),
('zhiding_id', models.CharField(blank=True, max_length=32, null=True, verbose_name='指定ID')),
('shangpin_id', models.IntegerField(blank=True, null=True, verbose_name='商品ID')),
('leixing_id', models.PositiveIntegerField(blank=True, null=True, verbose_name='商品类型ID')),
('tupian', models.CharField(blank=True, max_length=500, null=True, verbose_name='商品图片URL')),
('yaoqiuleixing', models.PositiveIntegerField(blank=True, null=True, verbose_name='抢单要求类型')),
('huiyuan_id', models.CharField(blank=True, max_length=6, null=True, verbose_name='会员ID')),
('yongjin', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='佣金要求')),
('jieshao', models.TextField(blank=True, null=True, verbose_name='订单介绍')),
('beizhu', models.TextField(blank=True, null=True, verbose_name='订单备注')),
('nicheng', models.CharField(blank=True, max_length=50, null=True, verbose_name='游戏昵称')),
('user1_id', models.CharField(db_index=True, max_length=30, null=True, verbose_name='用户1标识')),
('user2_id', models.CharField(db_index=True, max_length=30, null=True, verbose_name='用户2打手标识')),
('auto_task_id', models.CharField(blank=True, default='', max_length=255, verbose_name='延时任务ID')),
('auto_expire_at', models.DateTimeField(blank=True, null=True, verbose_name='计划过期时间')),
('pending_dispatch', models.BooleanField(db_index=True, default=False, verbose_name='待调度标记')),
('status_8_time', models.DateTimeField(blank=True, null=True, verbose_name='状态变为8的时间')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('clkf', models.CharField(db_index=True, max_length=20, null=True, verbose_name='处理客服')),
('tkly', models.CharField(blank=True, max_length=500, null=True, verbose_name='退款/拒绝理由')),
('wechat_transaction_id', models.CharField(blank=True, db_index=True, max_length=64, null=True, verbose_name='微信支付订单号')),
],
options={
'verbose_name': '订单',
'verbose_name_plural': '订单',
'db_table': 'dingdan',
},
),
migrations.CreateModel(
name='DingdanPeihu',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, unique=True, verbose_name='订单ID')),
('zhudashou_id', models.CharField(db_index=True, max_length=32, verbose_name='主打手ID')),
('peihu1_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='陪护1打手ID')),
('peihu2_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='陪护2打手ID')),
('zhuangtai', models.IntegerField(default=1, verbose_name='陪护订单状态')),
('peihu_xuqiu_shuliang', models.IntegerField(default=1, verbose_name='陪护需求数量')),
('yongjin_yaoqiu', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='抢单佣金要求')),
('peihu1_dengji_xuqiu', models.PositiveIntegerField(blank=True, null=True, verbose_name='陪护1等级需求(称号ID)')),
('peihu2_dengji_xuqiu', models.PositiveIntegerField(blank=True, null=True, verbose_name='陪护2等级需求(称号ID)')),
('peihu1_zhadan_danze', models.CharField(blank=True, max_length=10, null=True, verbose_name='陪护1炸单担责比例')),
('peihu2_zhadan_danze', models.CharField(blank=True, max_length=10, null=True, verbose_name='陪护2炸单担责比例')),
('peihu1_fenhong', models.CharField(blank=True, max_length=10, null=True, verbose_name='陪护1分红比例')),
('peihu2_fenhong', models.CharField(blank=True, max_length=10, null=True, verbose_name='陪护2分红比例')),
('zhiding_peihu1', models.CharField(blank=True, max_length=32, null=True, verbose_name='指定陪护1 ID')),
('zhiding_peihu2', models.CharField(blank=True, max_length=32, null=True, verbose_name='指定陪护2 ID')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '陪护订单',
'verbose_name_plural': '陪护订单',
'db_table': 'dingdan_peihu',
},
),
migrations.CreateModel(
name='DingdanPingtai',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('laoban_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='老板ID')),
('laoban_pingjia', models.TextField(blank=True, null=True, verbose_name='老板评价')),
('jjjs_biaoshi', models.IntegerField(default=0, verbose_name='拒绝结算标记(1表示拒绝结算)')),
('pingtai_shouyi', models.DecimalField(blank=True, decimal_places=2, default=0.0, max_digits=10, null=True, verbose_name='平台收益')),
('dianpu_shouyi', models.DecimalField(blank=True, decimal_places=2, default=0.0, max_digits=10, null=True, verbose_name='店铺收益')),
('dianpu_id', models.PositiveIntegerField(blank=True, db_index=True, null=True, verbose_name='所属店铺ID')),
('shangji_dianpu_id', models.PositiveIntegerField(blank=True, db_index=True, null=True, verbose_name='该订单的上级店铺ID')),
('shangji_fenhong', models.DecimalField(blank=True, decimal_places=2, default=0.0, max_digits=10, null=True, verbose_name='上级分红金额')),
],
options={
'verbose_name': '平台订单扩展',
'verbose_name_plural': '平台订单扩展',
'db_table': 'dingdan_pingtai',
},
),
migrations.CreateModel(
name='DingdanShangjia',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('shangjia_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='商家ID')),
('shangjia_pingjia', models.TextField(blank=True, null=True, verbose_name='商家评价')),
('cfliyou', models.TextField(blank=True, null=True, verbose_name='商家处罚理由')),
('sqzhuangtai', models.IntegerField(blank=True, default=0, null=True, verbose_name='处罚申请状态:0待处理,1成功,2驳回')),
('bhliyou', models.TextField(blank=True, null=True, verbose_name='驳回商家处罚理由')),
('sjnicheng', models.CharField(max_length=50, null=True, verbose_name='商家昵称')),
('shangyige_dingdan_id', models.CharField(blank=True, max_length=32, null=True, verbose_name='上一个订单ID')),
],
options={
'verbose_name': '商家订单扩展',
'verbose_name_plural': '商家订单扩展',
'db_table': 'dingdan_shangjia',
},
),
migrations.CreateModel(
name='Fadan',
fields=[
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增主键')),
('beichufa_id', models.CharField(db_index=True, max_length=20, verbose_name='被处罚用户ID')),
('shenqing_chufa', models.CharField(blank=True, max_length=20, null=True, verbose_name='申请处罚者ID')),
('shenfen', models.IntegerField(choices=[(1, '打手'), (2, '管事'), (3, '商家'), (4, '组长')], default=1, verbose_name='被处罚者身份')),
('chufaliyou', models.TextField(blank=True, null=True, verbose_name='处罚理由')),
('fakuanjine', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='罚款金额')),
('guanliandingdan_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='关联订单ID')),
('zhuangtai', models.IntegerField(choices=[(1, '待缴纳'), (2, '已缴纳'), (3, '申诉中'), (4, '已驳回')], db_index=True, default=1, verbose_name='罚单状态')),
('yingxiang_qiangdan', models.IntegerField(choices=[(1, '影响抢单'), (0, '不影响抢单')], db_index=True, default=1, verbose_name='是否影响抢单')),
('shensuliyou', models.TextField(blank=True, null=True, verbose_name='申诉理由')),
('tongyi_chufaliyou', models.TextField(blank=True, null=True, verbose_name='同意处罚理由')),
('bohuiliyou', 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='更新时间')),
('shenqingren_shenfen', models.IntegerField(choices=[(1, '客服'), (2, '售后'), (3, '管理员'), (4, '店铺'), (5, '商家')], default=1, verbose_name='申请处罚人身份')),
('chulizhe_shenfen', models.IntegerField(choices=[(1, '客服'), (2, '售后'), (3, '管理员')], default=2, verbose_name='处理者身份')),
('chulizhe', models.CharField(blank=True, max_length=20, null=True, verbose_name='处理者')),
('shenqingren_fenhong_jine', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='申请人分红金额')),
],
options={
'verbose_name': '罚单',
'verbose_name_plural': '罚单',
'db_table': 'fadan',
},
),
migrations.CreateModel(
name='FadanFenhongLilv',
fields=[
('shenfen', models.IntegerField(choices=[(1, '客服'), (2, '售后'), (3, '管理员'), (4, '店铺'), (5, '商家')], primary_key=True, serialize=False, verbose_name='申请处罚人身份')),
('lilv', models.DecimalField(decimal_places=4, default=0.0, max_digits=5, verbose_name='分红费率')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '罚款分红费率配置',
'verbose_name_plural': '罚款分红费率配置',
'db_table': 'fadan_fenhong_lilv',
},
),
migrations.CreateModel(
name='Lilubiao',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('lilu', models.DecimalField(decimal_places=4, max_digits=5, null=True, verbose_name='平台分成利率1是平台,2是商家')),
('fadanpingtai', models.CharField(max_length=10, null=True, verbose_name='订单所属平台,(商家或平台)')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'lilubiao',
},
),
migrations.CreateModel(
name='Ptliushui',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('zonge', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='收取总金额')),
('zhichuzonge', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='支出总金额')),
('zongshouyi', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='总收益')),
('rizonge', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='日收取')),
('rizhichu', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='日支出')),
('rishouyi', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='日收益')),
('zongshoucishu', models.IntegerField(default=0, verbose_name='总收取次数')),
('rishoucishu', models.IntegerField(default=0, verbose_name='日收取次数')),
('zongzhichucishu', models.IntegerField(default=0, verbose_name='总支出次数')),
('rizhichucishu', models.IntegerField(default=0, verbose_name='日支出次数')),
],
options={
'db_table': 'ptliushui',
},
),
migrations.CreateModel(
name='Tuikuanjilu',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(max_length=32, unique=True, verbose_name='订单ID')),
('dashouid', models.CharField(max_length=7, null=True, verbose_name='接单打手ID')),
('qingqiuid', models.CharField(max_length=7, null=True, verbose_name='请求用户ID')),
('chuliid', models.CharField(db_index=True, max_length=11, null=True, verbose_name='处理人ID')),
('liyou', models.TextField(blank=True, null=True, verbose_name='理由')),
('sqzhuangtai', models.IntegerField(blank=True, db_index=True, default=0, null=True, verbose_name='申请状态:0待处理,1成功,2驳回')),
('bhliyou', models.TextField(blank=True, null=True, verbose_name='驳回理由')),
('jine', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='订单金额')),
('dashou_fencheng', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='打手分成')),
('jieshao', models.TextField(blank=True, null=True, verbose_name='订单介绍')),
('beizhu', models.TextField(blank=True, null=True, verbose_name='订单备注')),
('nicheng', models.CharField(blank=True, max_length=50, null=True, verbose_name='游戏昵称')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'tuikuanjilu',
'indexes': [models.Index(fields=['chuliid'], name='tuikuanjilu_chuliid_0b0f16_idx'), models.Index(fields=['sqzhuangtai'], name='tuikuanjilu_sqzhuan_d89dc9_idx')],
},
),
migrations.CreateModel(
name='Pingfen',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dashou', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='接单打手ID')),
('zongfen', models.PositiveIntegerField(default=0, verbose_name='总分')),
('cishu', models.PositiveIntegerField(default=0, verbose_name='评分次数')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '评分表',
'db_table': 'pingfenbiao',
'indexes': [models.Index(fields=['dashou'], name='pingfenbiao_dashou_f62f10_idx')],
},
),
migrations.CreateModel(
name='OrderDashouHistory',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, verbose_name='订单ID')),
('dashou_id', models.CharField(db_index=True, max_length=7, verbose_name='打手ID')),
('times', models.PositiveSmallIntegerField(verbose_name='第几次接单从1开始')),
('operator', models.CharField(max_length=11, verbose_name='操作客服ID')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
],
options={
'verbose_name': '订单打手变更历史',
'verbose_name_plural': '订单打手变更历史',
'db_table': 'order_dashou_history',
'indexes': [models.Index(fields=['dingdan_id'], name='order_dasho_dingdan_1e79ab_idx'), models.Index(fields=['dashou_id'], name='order_dasho_dashou__0a637c_idx')],
},
),
migrations.CreateModel(
name='Liaotian',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False, verbose_name='主键ID')),
('user1_id', models.CharField(db_index=True, max_length=30, verbose_name='用户1标识')),
('user2_id', models.CharField(db_index=True, max_length=30, verbose_name='用户2标识')),
('dingdan_id', models.CharField(max_length=32, unique=True, verbose_name='订单ID')),
('zhuangtai', models.IntegerField(choices=[(1, '开启中'), (0, '已关闭')], db_index=True, default=1, verbose_name='聊天状态')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'liaotian',
'indexes': [models.Index(fields=['user1_id'], name='liaotian_user1_i_6be6cd_idx'), models.Index(fields=['user2_id'], name='liaotian_user2_i_9f61a4_idx'), models.Index(fields=['zhuangtai'], name='liaotian_zhuangt_5e8be5_idx')],
},
),
migrations.CreateModel(
name='FadanShensuTupian',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('beichufa_id', models.CharField(db_index=True, max_length=7, verbose_name='被处罚用户ID')),
('tupian_url', models.CharField(max_length=500, verbose_name='图片相对URL')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('yongtu', models.IntegerField(choices=[(1, '处罚证据图片'), (2, '申诉图片')], default=2, verbose_name='图片用途')),
('fadan', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='shensu_tupians', to='orders.fadan', verbose_name='关联罚单')),
],
options={
'verbose_name': '罚款申诉图片',
'verbose_name_plural': '罚款申诉图片',
'db_table': 'fadan_shensu_tupian',
},
),
migrations.CreateModel(
name='FadanFenhong',
fields=[
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增主键')),
('fenhongzhe_id', models.CharField(db_index=True, max_length=20, verbose_name='分红者ID')),
('zonge', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='分红总额')),
('ketixian_fenhong', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='可提现分红')),
('shenfen', models.IntegerField(choices=[(1, '商家'), (2, '客服'), (3, '平台管理者'), (4, '店铺'), (5, '售后')], default=1, verbose_name='分红者身份')),
('fenhong_cishu', models.IntegerField(default=0, verbose_name='分红次数')),
('is_individual_rate', models.BooleanField(default=False, verbose_name='是否单独开启分红利率')),
('yingde_lilv', models.DecimalField(decimal_places=4, default=0.0, max_digits=5, verbose_name='分红应得利率')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '罚款分红',
'verbose_name_plural': '罚款分红',
'db_table': 'fadan_fenhong',
'indexes': [models.Index(fields=['fenhongzhe_id'], name='fadan_fenhong_zhe_idx'), models.Index(fields=['shenfen'], name='fadan_fenhong_sf_idx')],
},
),
migrations.AddIndex(
model_name='fadan',
index=models.Index(fields=['beichufa_id', 'yingxiang_qiangdan', 'zhuangtai'], name='fadan_qiangdan_check'),
),
migrations.AddIndex(
model_name='fadan',
index=models.Index(fields=['guanliandingdan_id'], name='fadan_dingdan_idx'),
),
migrations.AddField(
model_name='dingdanshangjia',
name='dingdan',
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='shangjia_kuozhan', to='orders.dingdan', verbose_name='订单'),
),
migrations.AddField(
model_name='dingdanpingtai',
name='dingdan',
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='pingtai_kuozhan', to='orders.dingdan', verbose_name='订单'),
),
migrations.AddIndex(
model_name='dingdanpeihu',
index=models.Index(fields=['zhudashou_id'], name='dingdan_pei_zhudash_583f4e_idx'),
),
migrations.AddIndex(
model_name='dingdanpeihu',
index=models.Index(fields=['peihu1_id'], name='dingdan_pei_peihu1__728279_idx'),
),
migrations.AddIndex(
model_name='dingdanpeihu',
index=models.Index(fields=['peihu2_id'], name='dingdan_pei_peihu2__77e45e_idx'),
),
migrations.AddIndex(
model_name='dingdanpeihu',
index=models.Index(fields=['zhuangtai'], name='dingdan_pei_zhuangt_22eaf6_idx'),
),
migrations.AddIndex(
model_name='dingdan',
index=models.Index(fields=['zhuangtai'], name='dingdan_zhuangt_2febe8_idx'),
),
migrations.AddIndex(
model_name='dingdan',
index=models.Index(fields=['dingdan_id'], name='dingdan_dingdan_83dcb6_idx'),
),
migrations.AddIndex(
model_name='dingdan',
index=models.Index(fields=['jiedan_dashou_id'], name='dingdan_jiedan__921bfa_idx'),
),
migrations.AddIndex(
model_name='dingdan',
index=models.Index(fields=['wechat_transaction_id'], name='dingdan_wechat__278b79_idx'),
),
migrations.AddIndex(
model_name='dashoutupian',
index=models.Index(fields=['dashou'], name='dashoutupia_dashou_7de8bd_idx'),
),
migrations.AddIndex(
model_name='dashoutupian',
index=models.Index(fields=['dingdan_id'], name='dashoutupia_dingdan_97c685_idx'),
),
migrations.AddIndex(
model_name='chufatupian',
index=models.Index(fields=['yonghuid'], name='chufatupian_yonghui_71e585_idx'),
),
migrations.AddIndex(
model_name='chufatupian',
index=models.Index(fields=['dingdan_id'], name='chufatupian_dingdan_ce0dd4_idx'),
),
migrations.AddIndex(
model_name='chufajilu',
index=models.Index(fields=['dashouid'], name='chufajilu_dashoui_07aac0_idx'),
),
migrations.AddIndex(
model_name='chufajilu',
index=models.Index(fields=['qingqiuid'], name='chufajilu_qingqiu_ac160e_idx'),
),
migrations.AddIndex(
model_name='chufajilu',
index=models.Index(fields=['chuliid'], name='chufajilu_chuliid_cd63ac_idx'),
),
migrations.AddIndex(
model_name='chufajilu',
index=models.Index(fields=['dingdan_id'], name='chufajilu_dingdan_b8f0c2_idx'),
),
migrations.AddIndex(
model_name='fadanshensutupian',
index=models.Index(fields=['fadan_id'], name='fadan_shens_fadan_i_78fab9_idx'),
),
migrations.AddIndex(
model_name='fadanshensutupian',
index=models.Index(fields=['beichufa_id'], name='fadan_shens_beichuf_59748e_idx'),
),
migrations.AddIndex(
model_name='dingdanshangjia',
index=models.Index(fields=['shangjia_id'], name='dingdan_sha_shangji_64d28b_idx'),
),
migrations.AddIndex(
model_name='dingdanpingtai',
index=models.Index(fields=['laoban_id'], name='dingdan_pin_laoban__d55e6f_idx'),
),
migrations.AddIndex(
model_name='dingdanpingtai',
index=models.Index(fields=['dianpu_id'], name='dingdan_pin_dianpu__9fbe27_idx'),
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 4.2.27 on 2026-01-17 15:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='dingdan',
name='auto_expire_at',
field=models.DateTimeField(blank=True, null=True, verbose_name='计划过期时间'),
),
migrations.AddField(
model_name='dingdan',
name='auto_task_id',
field=models.CharField(blank=True, default='', max_length=255, verbose_name='延时任务ID'),
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 4.2.27 on 2026-01-17 16:26
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0002_dingdan_auto_expire_at_dingdan_auto_task_id'),
]
operations = [
migrations.AddField(
model_name='dingdan',
name='pending_dispatch',
field=models.BooleanField(db_index=True, default=False, verbose_name='待调度标记'),
),
migrations.AddField(
model_name='dingdan',
name='status_8_time',
field=models.DateTimeField(blank=True, null=True, verbose_name='状态变为8的时间'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-01-17 23:57
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0003_dingdan_pending_dispatch_dingdan_status_8_time'),
]
operations = [
migrations.AlterField(
model_name='tuikuanjilu',
name='chuliid',
field=models.CharField(db_index=True, max_length=11, null=True, verbose_name='处理人ID'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-01-20 19:23
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0004_alter_tuikuanjilu_chuliid'),
]
operations = [
migrations.AlterField(
model_name='chufajilu',
name='chuliid',
field=models.CharField(db_index=True, max_length=11, null=True, verbose_name='处理处罚ID'),
),
]

View File

@@ -1,28 +0,0 @@
# Generated by Django 4.2.27 on 2026-02-07 19:42
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0005_alter_chufajilu_chuliid'),
]
operations = [
migrations.CreateModel(
name='Chufatupian',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, null=True, verbose_name='订单ID')),
('yonghuid', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='用户ID')),
('tupian', models.CharField(blank=True, max_length=500, null=True, verbose_name='证据图片URL')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'db_table': 'chufatupian',
'indexes': [models.Index(fields=['yonghuid'], name='chufatupian_yonghui_71e585_idx'), models.Index(fields=['dingdan_id'], name='chufatupian_dingdan_ce0dd4_idx')],
},
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-02-08 00:59
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0006_chufatupian'),
]
operations = [
migrations.AddField(
model_name='chufajilu',
name='ssliyou',
field=models.TextField(blank=True, null=True, verbose_name='打手申诉理由'),
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 4.2.27 on 2026-02-14 18:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0007_chufajilu_ssliyou'),
]
operations = [
migrations.AddField(
model_name='dingdan',
name='is_cross',
field=models.IntegerField(default=0, verbose_name='是否跨平台订单(0否,1是)'),
),
migrations.AddField(
model_name='dingdan',
name='partner_order_id',
field=models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='对方平台订单ID'),
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 4.2.27 on 2026-02-21 14:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0008_dingdan_is_cross_dingdan_partner_order_id'),
]
operations = [
migrations.AddField(
model_name='dingdanpingtai',
name='clkf',
field=models.CharField(db_index=True, max_length=20, null=True, verbose_name='处理客服'),
),
migrations.AddField(
model_name='dingdanpingtai',
name='jjjs_biaoshi',
field=models.IntegerField(default=0, verbose_name='拒绝结算标记(1表示拒绝结算)'),
),
]

View File

@@ -1,22 +0,0 @@
# Generated by Django 4.2.27 on 2026-02-21 16:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0009_dingdanpingtai_clkf_dingdanpingtai_jjjs_biaoshi'),
]
operations = [
migrations.RemoveField(
model_name='dingdanpingtai',
name='clkf',
),
migrations.AddField(
model_name='dingdan',
name='clkf',
field=models.CharField(db_index=True, max_length=20, null=True, verbose_name='处理客服'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-02-21 17:15
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0010_remove_dingdanpingtai_clkf_dingdan_clkf'),
]
operations = [
migrations.AddField(
model_name='dingdan',
name='tkly',
field=models.CharField(blank=True, max_length=500, null=True, verbose_name='退款/拒绝理由'),
),
]

View File

@@ -1,22 +0,0 @@
# Generated by Django 4.2.27 on 2026-02-22 12:38
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0011_dingdan_tkly'),
]
operations = [
migrations.AddField(
model_name='dingdan',
name='wechat_transaction_id',
field=models.CharField(blank=True, db_index=True, max_length=64, null=True, verbose_name='微信支付订单号'),
),
migrations.AddIndex(
model_name='dingdan',
index=models.Index(fields=['wechat_transaction_id'], name='dingdan_wechat__278b79_idx'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-02-22 19:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0012_dingdan_wechat_transaction_id_and_more'),
]
operations = [
migrations.AlterField(
model_name='chufajilu',
name='qingqiuid',
field=models.CharField(db_index=True, max_length=11, null=True, verbose_name='请求处罚ID'),
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 4.2.27 on 2026-03-24 17:34
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0013_alter_chufajilu_qingqiuid'),
]
operations = [
migrations.AddField(
model_name='dingdan',
name='dispatch_type',
field=models.IntegerField(choices=[(1, '我方派单'), (2, '对方派单')], default=0, verbose_name='派发情况'),
),
migrations.AddField(
model_name='dingdan',
name='partner_club_id',
field=models.CharField(blank=True, db_index=True, max_length=6, null=True, verbose_name='对方俱乐部ID'),
),
]

View File

@@ -1,73 +0,0 @@
# Generated by Django 4.2.27 on 2026-04-01 09:22
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0014_dingdan_dispatch_type_dingdan_partner_club_id'),
]
operations = [
migrations.CreateModel(
name='PreSettlement',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, unique=True, verbose_name='我方订单ID')),
('partner_order_id', models.CharField(db_index=True, max_length=32, verbose_name='对方订单ID')),
('partner_club_id', models.CharField(db_index=True, max_length=6, verbose_name='对方俱乐部ID')),
('dashou_id', models.CharField(db_index=True, max_length=7, verbose_name='接单打手ID')),
('amount', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='打手应分金额')),
('order_amount', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='订单原金额')),
('status', models.SmallIntegerField(choices=[(0, '待结算'), (1, '已结算'), (2, '已拒绝')], default=0, verbose_name='结算状态')),
('process_time', models.DateTimeField(blank=True, null=True, verbose_name='处理时间')),
('operator', models.CharField(blank=True, default='', max_length=32, verbose_name='操作人')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '预结算表',
'verbose_name_plural': '预结算表',
'db_table': 'pre_settlement',
'indexes': [models.Index(fields=['dingdan_id'], name='pre_settlem_dingdan_4f3541_idx'), models.Index(fields=['partner_order_id'], name='pre_settlem_partner_45b29e_idx'), models.Index(fields=['partner_club_id'], name='pre_settlem_partner_d2c44c_idx'), models.Index(fields=['dashou_id'], name='pre_settlem_dashou__d5fe7c_idx'), models.Index(fields=['status'], name='pre_settlem_status_0aa711_idx')],
},
),
migrations.CreateModel(
name='OrderDashouHistory',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, verbose_name='订单ID')),
('dashou_id', models.CharField(db_index=True, max_length=7, verbose_name='打手ID')),
('times', models.PositiveSmallIntegerField(verbose_name='第几次接单从1开始')),
('operator', models.CharField(max_length=11, verbose_name='操作客服ID')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
],
options={
'verbose_name': '订单打手变更历史',
'verbose_name_plural': '订单打手变更历史',
'db_table': 'order_dashou_history',
'indexes': [models.Index(fields=['dingdan_id'], name='order_dasho_dingdan_1e79ab_idx'), models.Index(fields=['dashou_id'], name='order_dasho_dashou__0a637c_idx')],
},
),
migrations.CreateModel(
name='CrossPlatformOrderData',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, unique=True, verbose_name='我方订单ID')),
('partner_order_id', models.CharField(db_index=True, max_length=32, verbose_name='对方平台订单ID')),
('partner_club_id', models.CharField(db_index=True, max_length=6, verbose_name='对方俱乐部ID')),
('partner_order_status', models.IntegerField(default=0, verbose_name='对方平台订单状态')),
('partner_dashou_id', models.CharField(blank=True, default='', max_length=32, verbose_name='对方平台接单打手ID')),
('partner_amount', 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='更新时间')),
],
options={
'verbose_name': '跨平台订单扩展',
'verbose_name_plural': '跨平台订单扩展',
'db_table': 'cross_platform_order_data',
'indexes': [models.Index(fields=['dingdan_id'], name='cross_platf_dingdan_498d08_idx'), models.Index(fields=['partner_order_id'], name='cross_platf_partner_5d5615_idx'), models.Index(fields=['partner_club_id'], name='cross_platf_partner_1054e1_idx')],
},
),
]

View File

@@ -1,22 +0,0 @@
# Generated by Django 4.2.27 on 2026-04-04 15:10
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0015_presettlement_orderdashouhistory_and_more'),
]
operations = [
migrations.AlterField(
model_name='presettlement',
name='dingdan_id',
field=models.CharField(db_index=True, max_length=32, verbose_name='我方订单ID'),
),
migrations.AlterUniqueTogether(
name='presettlement',
unique_together={('dingdan_id', 'dashou_id')},
),
]

View File

@@ -1,32 +0,0 @@
# Generated by Django 4.2.27 on 2026-04-23 14:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0016_alter_presettlement_dingdan_id_and_more'),
]
operations = [
migrations.AddField(
model_name='dingdanpingtai',
name='dianpu_id',
field=models.PositiveIntegerField(blank=True, db_index=True, null=True, verbose_name='所属店铺ID'),
),
migrations.AddField(
model_name='dingdanpingtai',
name='dianpu_shouyi',
field=models.DecimalField(blank=True, decimal_places=2, default=0.0, max_digits=10, null=True, verbose_name='店铺收益'),
),
migrations.AddField(
model_name='dingdanpingtai',
name='pingtai_shouyi',
field=models.DecimalField(blank=True, decimal_places=2, default=0.0, max_digits=10, null=True, verbose_name='平台收益'),
),
migrations.AddIndex(
model_name='dingdanpingtai',
index=models.Index(fields=['dianpu_id'], name='dingdan_pin_dianpu__9fbe27_idx'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-04-30 02:36
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0017_dingdanpingtai_dianpu_id_and_more'),
]
operations = [
migrations.AddField(
model_name='dingdanshangjia',
name='partner_yonghu_id',
field=models.CharField(blank=True, max_length=32, null=True, verbose_name='对方平台用户ID'),
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 4.2.27 on 2026-05-05 10:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0018_dingdanshangjia_partner_yonghu_id'),
]
operations = [
migrations.AddField(
model_name='dingdanpingtai',
name='shangji_dianpu_id',
field=models.PositiveIntegerField(blank=True, db_index=True, null=True, verbose_name='该订单的上级店铺ID'),
),
migrations.AddField(
model_name='dingdanpingtai',
name='shangji_fenhong',
field=models.DecimalField(blank=True, decimal_places=2, default=0.0, max_digits=10, null=True, verbose_name='上级分红金额'),
),
]

View File

@@ -1,58 +0,0 @@
# Generated by Django 4.2.27 on 2026-05-06 11:28
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0019_dingdanpingtai_shangji_dianpu_id_and_more'),
]
operations = [
migrations.CreateModel(
name='FadanFenhong',
fields=[
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增主键')),
('fenhongzhe_id', models.CharField(db_index=True, max_length=20, verbose_name='分红者ID')),
('zonge', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='分红总额')),
('ketixian_fenhong', models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='可提现分红')),
('shenfen', models.IntegerField(choices=[(1, '商家'), (2, '客服'), (3, '平台管理者')], default=1, verbose_name='分红者身份')),
('fenhong_cishu', models.IntegerField(default=0, verbose_name='分红次数')),
('yingde_lilv', models.DecimalField(decimal_places=4, default=0.0, max_digits=5, verbose_name='分红应得利率')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '罚款分红',
'verbose_name_plural': '罚款分红',
'db_table': 'fadan_fenhong',
'indexes': [models.Index(fields=['fenhongzhe_id'], name='fadan_fenhong_zhe_idx'), models.Index(fields=['shenfen'], name='fadan_fenhong_sf_idx')],
},
),
migrations.CreateModel(
name='Fadan',
fields=[
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='自增主键')),
('beichufa_id', models.CharField(db_index=True, max_length=20, verbose_name='被处罚用户ID')),
('shenqing_chufa', models.CharField(blank=True, max_length=20, null=True, verbose_name='申请处罚者ID')),
('shenfen', models.IntegerField(choices=[(1, '打手'), (2, '管事'), (3, '商家'), (4, '组长')], default=1, verbose_name='被处罚者身份')),
('chufaliyou', models.TextField(blank=True, null=True, verbose_name='处罚理由')),
('fakuanjine', models.DecimalField(decimal_places=2, default=0.0, max_digits=10, verbose_name='罚款金额')),
('guanliandingdan_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='关联订单ID')),
('zhuangtai', models.IntegerField(choices=[(1, '待缴纳'), (2, '已缴纳'), (3, '申诉中'), (4, '已驳回')], db_index=True, default=1, verbose_name='罚单状态')),
('yingxiang_qiangdan', models.IntegerField(choices=[(1, '影响抢单'), (0, '不影响抢单')], db_index=True, default=1, verbose_name='是否影响抢单')),
('shensuliyou', models.TextField(blank=True, null=True, verbose_name='申诉理由')),
('tongyi_chufaliyou', models.TextField(blank=True, null=True, verbose_name='同意处罚理由')),
('bohuiliyou', 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='更新时间')),
],
options={
'verbose_name': '罚单',
'verbose_name_plural': '罚单',
'db_table': 'fadan',
'indexes': [models.Index(fields=['beichufa_id', 'yingxiang_qiangdan', 'zhuangtai'], name='fadan_qiangdan_check'), models.Index(fields=['guanliandingdan_id'], name='fadan_dingdan_idx')],
},
),
]

View File

@@ -1,30 +0,0 @@
# Generated by Django 4.2.27 on 2026-05-07 11:15
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('orders', '0020_fadanfenhong_fadan'),
]
operations = [
migrations.CreateModel(
name='FadanShensuTupian',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('beichufa_id', models.CharField(db_index=True, max_length=7, verbose_name='被处罚用户ID')),
('tupian_url', models.CharField(max_length=500, verbose_name='图片相对URL')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('fadan', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='shensu_tupians', to='orders.fadan', verbose_name='关联罚单')),
],
options={
'verbose_name': '罚款申诉图片',
'verbose_name_plural': '罚款申诉图片',
'db_table': 'fadan_shensu_tupian',
'indexes': [models.Index(fields=['fadan_id'], name='fadan_shens_fadan_i_78fab9_idx'), models.Index(fields=['beichufa_id'], name='fadan_shens_beichuf_59748e_idx')],
},
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 4.2.27 on 2026-05-07 16:18
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0021_fadanshensutupian'),
]
operations = [
migrations.AddField(
model_name='fadan',
name='partner_club_id',
field=models.CharField(blank=True, db_index=True, max_length=6, null=True, verbose_name='对方俱乐部ID'),
),
migrations.AddField(
model_name='fadan',
name='shenqingren_shenfen',
field=models.IntegerField(choices=[(1, '客服'), (2, '售后'), (3, '管理员')], default=1, verbose_name='申请处罚人身份'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-05-07 17:03
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0022_fadan_partner_club_id_fadan_shenqingren_shenfen'),
]
operations = [
migrations.AddField(
model_name='fadanshensutupian',
name='yongtu',
field=models.IntegerField(choices=[(1, '处罚证据图片'), (2, '申诉图片')], default=2, verbose_name='图片用途'),
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 4.2.27 on 2026-05-07 19:41
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0023_fadanshensutupian_yongtu'),
]
operations = [
migrations.AddField(
model_name='fadan',
name='chulizhe',
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='处理者'),
),
migrations.AddField(
model_name='fadan',
name='chulizhe_shenfen',
field=models.IntegerField(choices=[(1, '客服'), (2, '售后'), (3, '管理员')], default=2, verbose_name='处理者身份'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-05-10 00:31
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0024_fadan_chulizhe_fadan_chulizhe_shenfen'),
]
operations = [
migrations.AlterField(
model_name='fadan',
name='shenqingren_shenfen',
field=models.IntegerField(choices=[(1, '客服'), (2, '售后'), (3, '管理员'), (4, '店铺')], default=1, verbose_name='申请处罚人身份'),
),
]

View File

@@ -1,37 +0,0 @@
# Generated by Django 4.2.27 on 2026-05-10 17:40
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0025_alter_fadan_shenqingren_shenfen'),
]
operations = [
migrations.CreateModel(
name='FadanFenhongLilv',
fields=[
('shenfen', models.IntegerField(choices=[(1, '客服'), (2, '售后'), (3, '管理员'), (4, '店铺'), (5, '商家')], primary_key=True, serialize=False, verbose_name='申请处罚人身份')),
('lilv', models.DecimalField(decimal_places=4, default=0.0, max_digits=5, verbose_name='分红费率')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '罚款分红费率配置',
'verbose_name_plural': '罚款分红费率配置',
'db_table': 'fadan_fenhong_lilv',
},
),
migrations.AlterField(
model_name='fadan',
name='shenqingren_shenfen',
field=models.IntegerField(choices=[(1, '客服'), (2, '售后'), (3, '管理员'), (4, '店铺'), (5, '商家')], default=1, verbose_name='申请处罚人身份'),
),
migrations.AlterField(
model_name='fadanfenhong',
name='shenfen',
field=models.IntegerField(choices=[(1, '商家'), (2, '客服'), (3, '平台管理者'), (4, '店铺'), (5, '售后')], default=1, verbose_name='分红者身份'),
),
]

View File

@@ -1,42 +0,0 @@
# Generated by Django 4.2.27 on 2026-05-22 15:53
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0026_fadanfenhonglilv_alter_fadan_shenqingren_shenfen_and_more'),
]
operations = [
migrations.CreateModel(
name='DingdanPeihu',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('dingdan_id', models.CharField(db_index=True, max_length=32, unique=True, verbose_name='订单ID')),
('zhudashou_id', models.CharField(db_index=True, max_length=32, verbose_name='主打手ID')),
('peihu1_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='陪护1打手ID')),
('peihu2_id', models.CharField(blank=True, db_index=True, max_length=32, null=True, verbose_name='陪护2打手ID')),
('zhuangtai', models.IntegerField(default=1, verbose_name='陪护订单状态')),
('peihu_xuqiu_shuliang', models.IntegerField(default=1, verbose_name='陪护需求数量')),
('yongjin_yaoqiu', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='抢单佣金要求')),
('peihu1_dengji_xuqiu', models.PositiveIntegerField(blank=True, null=True, verbose_name='陪护1等级需求(称号ID)')),
('peihu2_dengji_xuqiu', models.PositiveIntegerField(blank=True, null=True, verbose_name='陪护2等级需求(称号ID)')),
('peihu1_zhadan_danze', models.CharField(blank=True, max_length=10, null=True, verbose_name='陪护1炸单担责比例')),
('peihu2_zhadan_danze', models.CharField(blank=True, max_length=10, null=True, verbose_name='陪护2炸单担责比例')),
('peihu1_fenhong', models.CharField(blank=True, max_length=10, null=True, verbose_name='陪护1分红比例')),
('peihu2_fenhong', models.CharField(blank=True, max_length=10, null=True, verbose_name='陪护2分红比例')),
('zhiding_peihu1', models.CharField(blank=True, max_length=32, null=True, verbose_name='指定陪护1 ID')),
('zhiding_peihu2', models.CharField(blank=True, max_length=32, null=True, verbose_name='指定陪护2 ID')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '陪护订单',
'verbose_name_plural': '陪护订单',
'db_table': 'dingdan_peihu',
'indexes': [models.Index(fields=['zhudashou_id'], name='dingdan_pei_zhudash_583f4e_idx'), models.Index(fields=['peihu1_id'], name='dingdan_pei_peihu1__728279_idx'), models.Index(fields=['peihu2_id'], name='dingdan_pei_peihu2__77e45e_idx'), models.Index(fields=['zhuangtai'], name='dingdan_pei_zhuangt_22eaf6_idx')],
},
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-05-29 17:23
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0027_dingdanpeihu'),
]
operations = [
migrations.AddField(
model_name='dingdanshangjia',
name='shangyige_dingdan_id',
field=models.CharField(blank=True, max_length=32, null=True, verbose_name='上一个订单ID'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-05-31 22:34
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0028_dingdanshangjia_shangyige_dingdan_id'),
]
operations = [
migrations.AddField(
model_name='fadanfenhong',
name='is_individual_rate',
field=models.BooleanField(default=False, verbose_name='是否单独开启分红利率'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-06-01 00:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0029_fadanfenhong_is_individual_rate'),
]
operations = [
migrations.AddField(
model_name='fadan',
name='shenqingren_fenhong_jine',
field=models.DecimalField(decimal_places=2, default=0.0, max_digits=12, verbose_name='申请人分红金额'),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.27 on 2026-06-12 01:29
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0030_fadan_shenqingren_fenhong_jine'),
]
operations = [
migrations.AddField(
model_name='dingdan',
name='guanshi_fencheng',
field=models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, null=True, verbose_name='管事分成'),
),
]

View File

@@ -1,43 +0,0 @@
# Generated by Django 4.2.27 on 2026-06-15 01:42
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('orders', '0031_dingdan_guanshi_fencheng'),
]
operations = [
migrations.DeleteModel(
name='CrossPlatformOrderData',
),
migrations.DeleteModel(
name='PreSettlement',
),
migrations.RemoveField(
model_name='dingdan',
name='dispatch_type',
),
migrations.RemoveField(
model_name='dingdan',
name='is_cross',
),
migrations.RemoveField(
model_name='dingdan',
name='partner_club_id',
),
migrations.RemoveField(
model_name='dingdan',
name='partner_order_id',
),
migrations.RemoveField(
model_name='dingdanshangjia',
name='partner_yonghu_id',
),
migrations.RemoveField(
model_name='fadan',
name='partner_club_id',
),
]

View File

@@ -15,7 +15,8 @@ import logging
# 导入模型 - 确保路径正确
from orders.models import Dingdan
from users.models import UserMain, UserDashou, UserShangjia
from users.models import UserDashou, UserShangjia
from gvsdsdk.models import User
from utils.celery_utils import safe_decimal_operation, log_task_execution, rollback_on_failure
from gvsdsdk.fluent import db, func, FQ
@@ -64,7 +65,7 @@ def process_expired_order(self, dingdan_id):
if dashou_id:
try:
# 查询打手用户主表
dashou_user = UserMain.query.filter(yonghuid=dashou_id).first()
dashou_user = User.query.filter(yonghuid=dashou_id).first()
if dashou_user:
# 获取打手扩展表
dashou_profile = getattr(dashou_user, 'dashou_profile', None)
@@ -93,7 +94,7 @@ def process_expired_order(self, dingdan_id):
shangjia_id = shangjia_kuozhan.shangjia_id
if shangjia_id:
# 查询商家用户
shangjia_user = UserMain.query.filter(yonghuid=shangjia_id).first()
shangjia_user = User.query.filter(yonghuid=shangjia_id).first()
if shangjia_user:
shangjia_profile = getattr(shangjia_user, 'shop_profile', None)
if shangjia_profile:

View File

@@ -62,7 +62,8 @@ from orders.models import (
Lilubiao, Pingfen, Tuikuanjilu
)
from products.models import Shangpin, ShangpinLeixing, Huiyuangoumai
from users.models import UserMain, UserDashou, UserShangjia, UserBoss
from users.models import UserDashou, UserShangjia, UserBoss
from gvsdsdk.models import User
from rank.models import DashouBiaoxian, Chenghao, DingdanBiaoqian, YonghuChenghao
from config.models import (
Szjilu, ShangjiaLianjie
@@ -240,7 +241,7 @@ class WechatPayNotifyView(APIView):
if hasattr(dingdan, 'pingtai_kuozhan'):
laoban_id = dingdan.pingtai_kuozhan.laoban_id
if laoban_id:
user_main = UserMain.query.filter(yonghuid=laoban_id).first()
user_main = User.query.filter(yonghuid=laoban_id).first()
if user_main and hasattr(user_main, 'boss_profile'):
boss = user_main.boss_profile
boss.zonge = (boss.zonge or 0) + (dingdan.jine or 0)
@@ -524,7 +525,7 @@ class PaymentVerifyView(APIView):
# 更新老板扩展表
laoban_id = dingdan.pingtai_kuozhan.laoban_id if hasattr(dingdan, 'pingtai_kuozhan') else None
if laoban_id:
user_main = UserMain.query.filter(yonghuid=laoban_id).first()
user_main = User.query.filter(yonghuid=laoban_id).first()
if user_main and hasattr(user_main, 'boss_profile'):
boss = user_main.boss_profile
boss.zonge = (boss.zonge or 0) + (dingdan.jine or 0)
@@ -710,7 +711,7 @@ class CreateOrderView(APIView):
zhiding_id_value = None
if zhiding:
# 查询主表中是否存在该打手
zhiding_user = UserMain.query.filter(
zhiding_user = User.query.filter(
yonghuid=zhiding,
#user_type='dashou'
).first()
@@ -1348,7 +1349,7 @@ class JiedanView(APIView):
# 7. 更新打手扩展表如果有打手ID和分成
if jiedan_dashou_id and dashou_fencheng > 0:
# 查询打手用户
dashou_user = UserMain.query.filter(yonghuid=jiedan_dashou_id).first()
dashou_user = User.query.filter(yonghuid=jiedan_dashou_id).first()
if dashou_user:
# 查询打手扩展表
@@ -1511,7 +1512,7 @@ class DingdanXiangqingView2(APIView):
jiedan_time = ''
tijiao_time = ''
if jiedan_dashou_id:
dashou_user = UserMain.query.filter(yonghuid=jiedan_dashou_id).first()
dashou_user = User.query.filter(yonghuid=jiedan_dashou_id).first()
if dashou_user:
dashou_touxiang = dashou_user.avatar or ''
try:
@@ -1660,7 +1661,7 @@ class JiedanView2(APIView):
# 9. 更新打手收益与状态
if jiedan_dashou_id and dashou_fencheng > 0:
dashou_user = UserMain.query.filter(yonghuid=jiedan_dashou_id).first()
dashou_user = User.query.filter(yonghuid=jiedan_dashou_id).first()
if dashou_user:
try:
dashou_ext = dashou_user.dashou_profile
@@ -1915,11 +1916,11 @@ class ShangjiaPaifaView(APIView):
zhiding_dashou = None
if zhiding_uid:
try:
zhiding_user = UserMain.query.get(yonghuid=zhiding_uid)
zhiding_user = User.query.get(yonghuid=zhiding_uid)
zhiding_dashou = zhiding_user.dashou_profile
if zhiding_dashou.zhanghaozhuangtai != 1:
return Response({'code': 400, 'msg': '指定打手状态异常'})
except UserMain.DoesNotExist:
except User.DoesNotExist:
return Response({'code': 400, 'msg': '指定用户不存在'})
except UserDashou.DoesNotExist:
return Response({'code': 400, 'msg': '指定用户不是打手'})
@@ -2221,7 +2222,7 @@ class ShangjiaDingdanXiangqingView(APIView):
dashou_nicheng = ''
dashou_avatar = ''
if dashou_yonghuid:
dashou_user = UserMain.query.filter(
dashou_user = User.query.filter(
yonghuid=dashou_yonghuid
).select_related('dashou_profile').first()
if dashou_user:
@@ -2425,9 +2426,9 @@ class ShangjiaJiesuanView(APIView):
# ========== 本地订单正常结算给打手 ==========
# 查询打手信息
try:
dashou_user = UserMain.query.get(yonghuid=jiedan_dashou_id)
dashou_user = User.query.get(yonghuid=jiedan_dashou_id)
dashou = dashou_user.dashou_profile
except (UserMain.DoesNotExist, UserDashou.DoesNotExist):
except (User.DoesNotExist, UserDashou.DoesNotExist):
return Response({
'code': 8,
'msg': '接单打手不存在或信息不完整',
@@ -2767,7 +2768,7 @@ class ShangjiaTuikuanShenqingView(APIView):
# ====== 原有功能:更新打手状态 ======
if dingdan.jiedan_dashou_id:
try:
dashou_main = UserMain.query.filter(
dashou_main = User.query.filter(
yonghuid=dingdan.jiedan_dashou_id
).first()
if dashou_main and hasattr(dashou_main, 'dashou_profile'):
@@ -2850,9 +2851,9 @@ class ShangjiaChufaShenqingView(APIView):
with transaction.atomic():
# 验证打手身份
try:
dashou_user = UserMain.query.get(yonghuid=dashou_id)
dashou_user = User.query.get(yonghuid=dashou_id)
dashou = dashou_user.dashou_profile
except UserMain.DoesNotExist:
except User.DoesNotExist:
return Response({
'code': 5,
'msg': '打手用户不存在',
@@ -3028,7 +3029,7 @@ class DashouDingdanHuoquView(APIView):
zhiding_ids = {item['zhiding_id'] for item in dingdan_list if item.get('zhiding_id')}
zhiding_info = {}
if zhiding_ids:
dashou_query = UserMain.query.filter(
dashou_query = User.query.filter(
yonghuid__in=zhiding_ids
).select_related('dashou_profile').annotate(
nicheng=F('dashou_profile__nicheng')
@@ -3078,10 +3079,10 @@ class DashouDingdanHuoquView(APIView):
if sj['shangjia_id']:
yonghuid_set.add(sj['shangjia_id'])
# 将 yonghuid 字符串转换为 UserMain 的主键 id
# 将 yonghuid 字符串转换为 User 的主键 id
user_id_map = {}
if yonghuid_set:
users = UserMain.query.filter(yonghuid__in=yonghuid_set).values('id', 'yonghuid')
users = User.query.filter(yonghuid__in=yonghuid_set).values('id', 'yonghuid')
for u in users:
user_id_map[u['yonghuid']] = u['id']
@@ -3346,8 +3347,8 @@ def send_group_message(
def check_user_permission(identity_type, uid, order):
"""验证用户身份、账号状态、以及是否属于该订单"""
try:
user = UserMain.query.get(yonghuid=uid)
except UserMain.DoesNotExist:
user = User.query.get(yonghuid=uid)
except User.DoesNotExist:
return False, '用户不存在'
if identity_type == 'dashou':
@@ -4672,11 +4673,11 @@ class AdGengHuanDaShou(APIView):
# 8. 验证新打手ID是否存在并且是打手身份
try:
new_dashou_user = UserMain.query.get(
new_dashou_user = User.query.get(
yonghuid=new_dashou_id,
#user_type='dashou'
)
except UserMain.DoesNotExist:
except User.DoesNotExist:
return Response(
{'code': 404, 'message': '打手不存在或不是打手身份', 'data': None},
status=status.HTTP_404_NOT_FOUND
@@ -4767,7 +4768,7 @@ class AdGengHuanDaShou(APIView):
if old_dashou_id:
try:
# 查询原打手主表
old_dashou_user = UserMain.query.get(
old_dashou_user = User.query.get(
yonghuid=old_dashou_id,
#user_type='dashou'
)
@@ -4781,7 +4782,7 @@ class AdGengHuanDaShou(APIView):
old_dashou_profile.save()
logger.info(f"成功更新原打手{old_dashou_id}状态")
except UserMain.DoesNotExist:
except User.DoesNotExist:
# 原打手不存在,继续执行不影响更换
logger.warning(f"原打手{old_dashou_id}不存在,跳过更新")
except AttributeError:
@@ -4911,7 +4912,7 @@ class AdQiangZhiJieDan(APIView):
if jiedan_dashou_id:
try:
# 查询打手用户主表
dashou_user = UserMain.query.get(
dashou_user = User.query.get(
yonghuid=jiedan_dashou_id,
#user_type='dashou'
)
@@ -4938,7 +4939,7 @@ class AdQiangZhiJieDan(APIView):
dashou_profile.save()
logger.info(f"强制结单成功,打手{jiedan_dashou_id}结算分成:{dashou_fencheng}")
except UserMain.DoesNotExist:
except User.DoesNotExist:
# 打手用户不存在,记录日志但不影响强制结单
logger.warning(f"强制结单:打手{jiedan_dashou_id}不存在,跳过打手结算")
except AttributeError:
@@ -4954,7 +4955,7 @@ class AdQiangZhiJieDan(APIView):
if shangjia_id:
# 查询商家用户主表
shangjia_user = UserMain.query.get(
shangjia_user = User.query.get(
yonghuid=shangjia_id,
#user_type='shop'
)
@@ -4971,7 +4972,7 @@ class AdQiangZhiJieDan(APIView):
except DingdanShangjia.DoesNotExist:
# 商家订单扩展表不存在,跳过商家更新
logger.warning(f"强制结单:订单{dingdan_id}商家扩展表不存在,跳过商家更新")
except UserMain.DoesNotExist:
except User.DoesNotExist:
# 商家用户不存在,跳过商家更新
logger.warning(f"强制结单:商家{shangjia_id}不存在,跳过商家更新")
except AttributeError:
@@ -5087,7 +5088,7 @@ class AdJuJueTuiKuan(APIView):
if jiedan_dashou_id:
try:
# 查询打手用户主表
dashou_user = UserMain.query.get(
dashou_user = User.query.get(
yonghuid=jiedan_dashou_id,
#user_type='dashou'
)
@@ -5114,7 +5115,7 @@ class AdJuJueTuiKuan(APIView):
dashou_profile.save()
logger.info(f"拒绝退款成功,打手{jiedan_dashou_id}结算分成:{dashou_fencheng}")
except UserMain.DoesNotExist:
except User.DoesNotExist:
# 打手用户不存在,记录日志但不影响操作
logger.warning(f"拒绝退款:打手{jiedan_dashou_id}不存在,跳过打手结算")
except AttributeError:
@@ -5130,7 +5131,7 @@ class AdJuJueTuiKuan(APIView):
if shangjia_id:
# 查询商家用户主表
shangjia_user = UserMain.query.get(
shangjia_user = User.query.get(
yonghuid=shangjia_id,
#user_type='shop'
)
@@ -5147,7 +5148,7 @@ class AdJuJueTuiKuan(APIView):
except DingdanShangjia.DoesNotExist:
# 商家订单扩展表不存在,跳过商家更新
logger.warning(f"拒绝退款:订单{dingdan_id}商家扩展表不存在,跳过商家更新")
except UserMain.DoesNotExist:
except User.DoesNotExist:
# 商家用户不存在,跳过商家更新
logger.warning(f"拒绝退款:商家{shangjia_id}不存在,跳过商家更新")
except AttributeError:
@@ -5318,7 +5319,7 @@ class AdTongYiTuiKuanShangJia(APIView):
if jiedan_dashou_id:
try:
# 查询打手用户主表
dashou_user = UserMain.query.get(
dashou_user = User.query.get(
yonghuid=jiedan_dashou_id,
#user_type='dashou'
)
@@ -5332,7 +5333,7 @@ class AdTongYiTuiKuanShangJia(APIView):
dashou_profile.save()
logger.info(f"同意退款成功,打手{jiedan_dashou_id}退款订单+1")
except UserMain.DoesNotExist:
except User.DoesNotExist:
# 打手用户不存在,记录日志但不影响操作
logger.warning(f"同意退款:打手{jiedan_dashou_id}不存在,跳过打手更新")
except AttributeError:
@@ -5343,7 +5344,7 @@ class AdTongYiTuiKuanShangJia(APIView):
if shangjia_id:
try:
# 查询商家用户主表
shangjia_user = UserMain.query.get(
shangjia_user = User.query.get(
yonghuid=shangjia_id,
#user_type='shop'
)
@@ -5360,7 +5361,7 @@ class AdTongYiTuiKuanShangJia(APIView):
shangjia_profile.save()
logger.info(f"同意退款成功,商家{shangjia_id}退款订单+1余额增加{jine}")
except UserMain.DoesNotExist:
except User.DoesNotExist:
# 商家用户不存在,记录日志但不影响操作
logger.warning(f"同意退款:商家{shangjia_id}不存在,跳过商家更新")
except AttributeError:
@@ -5528,25 +5529,25 @@ class AdTongYiTuiKuanPingTai(APIView):
# 14. 更新打手扩展表
if jiedan_dashou_id:
try:
dashou_user = UserMain.query.get(yonghuid=jiedan_dashou_id)
dashou_user = User.query.get(yonghuid=jiedan_dashou_id)
dashou_profile = dashou_user.dashou_profile
dashou_profile.zhuangtai = 1 # 打手状态设为空闲
dashou_profile.tuikuanliang += 1
dashou_profile.save()
except (UserMain.DoesNotExist, AttributeError):
except (User.DoesNotExist, AttributeError):
logger.warning(f"平台退款:打手{jiedan_dashou_id}不存在或扩展信息缺失,跳过")
# 15. 更新老板扩展表
if laoban_id:
try:
laoban_user = UserMain.query.get(yonghuid=laoban_id)
laoban_user = User.query.get(yonghuid=laoban_id)
laoban_profile = laoban_user.boss_profile
laoban_profile.alltui += 1
laoban_profile.zonge -= jine
if laoban_profile.zonge < 0:
laoban_profile.zonge = 0
laoban_profile.save()
except (UserMain.DoesNotExist, AttributeError):
except (User.DoesNotExist, AttributeError):
logger.warning(f"平台退款:老板{laoban_id}不存在或扩展信息缺失,跳过")
# 16. 更新收支记录表id=1
@@ -5864,12 +5865,12 @@ class AdJuJueJieSuan(APIView):
# 8. 更新打手扩展表
try:
dashou_user = UserMain.query.get(yonghuid=jiedan_dashou_id)
dashou_user = User.query.get(yonghuid=jiedan_dashou_id)
dashou_profile = dashou_user.dashou_profile
dashou_profile.zhuangtai = 1 # 打手状态设为正常
dashou_profile.tuikuanliang += 1 # 退款订单总量+1
dashou_profile.save()
except (UserMain.DoesNotExist, AttributeError) as e:
except (User.DoesNotExist, AttributeError) as e:
logger.warning(f"拒绝结算:打手{jiedan_dashou_id}信息更新失败 - {str(e)}")
return Response({'code': 0, 'message': '拒绝结算成功', 'data': None})
@@ -5946,12 +5947,12 @@ class AdZhuanYiDaTing(APIView):
# 如果有接单打手,更新其扩展表
if jiedan_dashou_id:
try:
dashou_user = UserMain.query.get(yonghuid=jiedan_dashou_id)
dashou_user = User.query.get(yonghuid=jiedan_dashou_id)
dashou_profile = dashou_user.dashou_profile
dashou_profile.zhuangtai = 1
dashou_profile.tuikuanliang += 1
dashou_profile.save()
except (UserMain.DoesNotExist, AttributeError) as e:
except (User.DoesNotExist, AttributeError) as e:
logger.warning(f"转移大厅:打手{jiedan_dashou_id}信息更新失败 - {str(e)}")
return Response({'code': 0, 'message': '转移大厅成功', 'data': None})
@@ -6224,12 +6225,12 @@ class ZxsjghdsView(APIView):
# 6.2 释放打手
if dashou_id:
try:
dashou_user = UserMain.query.get(yonghuid=dashou_id)
dashou_user = User.query.get(yonghuid=dashou_id)
dashou_profile = dashou_user.dashou_profile
dashou_profile.tuikuanliang = (dashou_profile.tuikuanliang or 0) + 1
dashou_profile.zhuangtai = 1 # 空闲
dashou_profile.save(update_fields=['tuikuanliang', 'zhuangtai'])
except (UserMain.DoesNotExist, ObjectDoesNotExist):
except (User.DoesNotExist, ObjectDoesNotExist):
logger.warning(f"打手 {dashou_id} 不存在或扩展表缺失,跳过更新")
# 6.3 更新退款记录