66 lines
2.7 KiB
Python
66 lines
2.7 KiB
Python
"""模块:子服务器数据模型
|
|
模拟一个真实子服务器的业务数据结构。"""
|
|
|
|
from django.db import models
|
|
|
|
|
|
class BusinessUser(models.Model):
|
|
"""业务用户——模拟子服务器的本地用户数据"""
|
|
|
|
UserID = models.AutoField(primary_key=True, verbose_name='用户ID')
|
|
Username = models.CharField(max_length=64, unique=True, verbose_name='用户名')
|
|
Nickname = models.CharField(max_length=128, default='', verbose_name='昵称')
|
|
OGMMappingID = models.CharField(max_length=128, default='', db_index=True, verbose_name='OGM映射ID')
|
|
JoinTime = models.DateTimeField(auto_now_add=True, verbose_name='加入时间')
|
|
UserStatus = models.SmallIntegerField(default=1, verbose_name='用户状态')
|
|
|
|
class Meta:
|
|
db_table = 'sub_business_user'
|
|
verbose_name = '业务用户'
|
|
verbose_name_plural = '业务用户'
|
|
|
|
def __str__(self):
|
|
return self.Username
|
|
|
|
|
|
class BusinessOrder(models.Model):
|
|
"""业务订单——模拟子服务器的本地订单数据"""
|
|
|
|
OrderID = models.AutoField(primary_key=True, verbose_name='订单ID')
|
|
OrderCode = models.CharField(max_length=64, unique=True, db_index=True, verbose_name='订单编号')
|
|
User = models.ForeignKey(
|
|
BusinessUser, on_delete=models.CASCADE, related_name='orders',
|
|
verbose_name='用户',
|
|
)
|
|
Amount = models.DecimalField(max_digits=18, decimal_places=4, verbose_name='金额')
|
|
OrderStatus = models.SmallIntegerField(default=0, verbose_name='订单状态')
|
|
OGMMappingID = models.CharField(max_length=128, default='', db_index=True, verbose_name='OGM映射ID')
|
|
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
|
|
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
|
|
|
|
class Meta:
|
|
db_table = 'sub_business_order'
|
|
verbose_name = '业务订单'
|
|
verbose_name_plural = '业务订单'
|
|
|
|
def __str__(self):
|
|
return self.OrderCode
|
|
|
|
|
|
class SyncLog(models.Model):
|
|
"""同步日志——记录与主服务器 MSYNC 通信的事件"""
|
|
|
|
LogID = models.AutoField(primary_key=True, verbose_name='日志ID')
|
|
EventType = models.CharField(max_length=64, verbose_name='事件类型')
|
|
EventDetail = models.JSONField(default=dict, verbose_name='事件详情')
|
|
EventStatus = models.SmallIntegerField(default=1, verbose_name='事件状态')
|
|
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
|
|
|
|
class Meta:
|
|
db_table = 'sub_sync_log'
|
|
verbose_name = '同步日志'
|
|
verbose_name_plural = '同步日志'
|
|
ordering = ['-CreateTime']
|
|
|
|
def __str__(self):
|
|
return f'{self.EventType}@{self.CreateTime}' |