models.py 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. #coding=utf-8
  2. from django.db import models
  3. from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, Group, PermissionsMixin
  4. from django.utils import timezone
  5. from django.conf import settings
  6. from apps.exceptions import CustomError
  7. from apps.foundation.consts import CONTENT_TYPE_SORTING, MENU_TO_MODEL
  8. from apps.foundation.models import BizLog
  9. class Branch(models.Model):
  10. name = models.CharField(max_length=200, verbose_name=u"名称")
  11. tel = models.CharField(max_length=50, verbose_name=u"电话")
  12. address = models.CharField(max_length=200, verbose_name=u"地址")
  13. enabled = models.BooleanField(verbose_name=u"在用", default=True)
  14. create_time = models.DateTimeField(verbose_name=u"添加时间", auto_now_add=True, editable=False)
  15. @staticmethod
  16. def getById(id):
  17. try:
  18. id = int(id)
  19. except:
  20. raise CustomError(u'无效的门店')
  21. instance = Branch.objects.filter(pk=id).first()
  22. if not instance:
  23. raise CustomError(u'未找到相应的门店')
  24. return instance
  25. class Meta:
  26. db_table = "branch"
  27. ordering = ['-id']
  28. verbose_name = u"门店管理"
  29. class Member(models.Model):
  30. branch = models.ForeignKey(Branch, verbose_name=u"门店", on_delete=models.PROTECT, null=True, blank=True)
  31. nickname = models.CharField(max_length=200, verbose_name=u"名称")
  32. tel = models.CharField(max_length=50, verbose_name=u"电话")
  33. create_time = models.DateTimeField(verbose_name=u"添加时间", auto_now_add=True, editable=False)
  34. class Meta:
  35. db_table = "member"
  36. ordering = ['-id']
  37. verbose_name = u"会员管理"
  38. class Activity(models.Model):
  39. branch = models.ForeignKey(Branch, verbose_name=u"门店", on_delete=models.PROTECT)
  40. title = models.CharField(max_length=200, verbose_name=u"标题")
  41. describe = models.TextField(verbose_name=u'活动介绍')
  42. end_date = models.DateField(verbose_name=u"截止日期")
  43. amount = models.FloatField(verbose_name=u"费用", default=0)
  44. rebate = models.FloatField(verbose_name=u"返利", default=0)
  45. check_status = models.PositiveSmallIntegerField(choices=settings.CHECK_STATUS_CHOICES, verbose_name=u"审核",
  46. editable=False, default=settings.DEFAULT)
  47. branch_name = models.CharField(max_length=200, verbose_name=u"门店名称", null=True, blank=True)
  48. branch_tel = models.CharField(max_length=50, verbose_name=u"门店电话", null=True, blank=True)
  49. branch_address = models.CharField(max_length=200, verbose_name=u"门店地址", null=True, blank=True)
  50. create_time = models.DateTimeField(verbose_name=u"添加时间", auto_now_add=True, editable=False)
  51. enabled = models.BooleanField(verbose_name=u"在用", default=True)
  52. delete = models.BooleanField(verbose_name=u"删除", default=False)
  53. class Meta:
  54. db_table = "activity"
  55. ordering = ['-id']
  56. verbose_name = u"活动管理"
  57. class Order(models.Model):
  58. DEFAULT = 0
  59. FINISH = 1
  60. STATUS_CHOICES = (
  61. (DEFAULT, u'待付款'),
  62. (FINISH, u'已完成'),
  63. )
  64. branch = models.ForeignKey(Branch, verbose_name=u"门店", on_delete=models.PROTECT)
  65. activity = models.ForeignKey(Activity, verbose_name=u"活动", on_delete=models.PROTECT)
  66. member = models.ForeignKey(Member, verbose_name=u"会员", on_delete=models.PROTECT)
  67. amount = models.FloatField(verbose_name=u"费用", default=0)
  68. status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u"状态", default=DEFAULT, editable=False)
  69. model = models.CharField(max_length=200, verbose_name=u"车型", null=True, blank=True)
  70. tel = models.CharField(max_length=100, verbose_name=u"电话", null=True, blank=True)
  71. number = models.CharField(max_length=50, verbose_name=u"车牌号", null=True, blank=True)
  72. create_time = models.DateTimeField(verbose_name=u"添加时间", auto_now_add=True, editable=False)
  73. delete = models.BooleanField(verbose_name=u"删除", default=False)
  74. class Meta:
  75. db_table = "order"
  76. ordering = ['-id']
  77. verbose_name = u"订单管理"
  78. class Coupon(models.Model):
  79. FIXED_DATE = 0
  80. RECEIVE_TIMING = 1
  81. OFF_TYPE_CHOICES = (
  82. (FIXED_DATE, u'固定日期'),
  83. (RECEIVE_TIMING, u'领取计时'),
  84. )
  85. branch = models.ForeignKey(Branch, verbose_name=u"门店", on_delete=models.PROTECT)
  86. name = models.CharField(max_length=200, verbose_name=u"名称")
  87. off_type = models.PositiveSmallIntegerField(choices=OFF_TYPE_CHOICES, verbose_name=u"核销方式", default=FIXED_DATE)
  88. end_date = models.DateField(verbose_name=u"截止日期", null=True, blank=True)
  89. end_days = models.IntegerField(verbose_name=u"截止天数", null=True, blank=True)
  90. create_time = models.DateTimeField(verbose_name=u"添加时间", auto_now_add=True, editable=False)
  91. enabled = models.BooleanField(verbose_name=u"在用", default=True)
  92. class Meta:
  93. db_table = "coupon"
  94. ordering = ['-id']
  95. verbose_name = u"优惠券"
  96. class MemberCoupon(models.Model):
  97. member = models.ForeignKey(Member, verbose_name=u"会员", on_delete=models.PROTECT)
  98. coupon = models.ForeignKey(Coupon, verbose_name=u"优惠券", on_delete=models.PROTECT)
  99. receive_date = models.DateField(verbose_name=u"领取日期", null=True, blank=True)
  100. end_date = models.DateField(verbose_name=u"有效期至", null=True, blank=True)
  101. write_off = models.BooleanField(verbose_name=u"核销", default=True)
  102. write_off_time = models.DateTimeField(verbose_name=u"核销时间", editable=False, null=True, blank=True)
  103. class Meta:
  104. db_table = "member_coupon"
  105. ordering = ['-id']
  106. verbose_name = u"会员优惠券"
  107. class ActivityCoupon(models.Model):
  108. activity = models.ForeignKey(Activity, verbose_name=u"活动", on_delete=models.PROTECT)
  109. coupon = models.ForeignKey(Coupon, verbose_name=u"优惠券", on_delete=models.PROTECT)
  110. class Meta:
  111. db_table = "activity_coupon"
  112. ordering = ['-id']
  113. verbose_name = u"活动优惠券"