Files
SMANAGE/ATestCServer/apps/sub_server/models.py
T

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}'