123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- #coding=utf-8
- import json
- import datetime
- from django.db import models
- from django.utils import timezone
- from django.conf import settings
- from utils.exceptions import CustomError
- from utils.format import strftime, strfdate
- class Option(models.Model):
- USED_VEHICLE_BRAND = 0
- MAINT_TYPE = 1
- PRODUCT_CATEGORY = 2
- TYPE_CHOICES = (
- (USED_VEHICLE_BRAND, u'二手车品牌'),
- (MAINT_TYPE, u'服务类型'),
- (PRODUCT_CATEGORY, u'商品类别'),
- )
- type = models.PositiveSmallIntegerField(choices=TYPE_CHOICES, verbose_name=u"类别")
- name = models.CharField(max_length=100, verbose_name=u"名称")
- notes = models.CharField(max_length=500, verbose_name=u"备注",blank=True,null=True)
- enable = models.BooleanField(verbose_name=u"在用", default=True)
- delete = models.BooleanField(verbose_name=u"删除", default=False)
- @staticmethod
- def getTypeText(type):
- return Option.TYPE_CHOICES[type][1]
- @staticmethod
- def getById(id):
- try:
- id = int(id)
- except:
- raise CustomError(u'无效的自定义项ID')
- instance = Option.objects.filter(pk=id).first()
- if not instance:
- raise CustomError(u'未找到相应的自定义项')
- return instance
- @staticmethod
- def getByName(name, type):
- option = Option.objects.filter(name=name,type=type).first()
- if not option:
- raise CustomError(u'未找到[%s]为[%s]的自定义项' % (Option.getTypeText(type),name))
- return option
- class Meta:
- db_table = "system_option"
- verbose_name = u"自定义项管理"
- ordering = ('-id', )
- index_together = (
- 'name',
- )
- default_permissions = ()
- class BizLogManager(models.Manager):
- def addnew(self, user, type, description, data=None):
- def default(o):
- if isinstance(o, datetime.datetime):
- return strftime(o)
- elif isinstance(o, datetime.date):
- return strfdate(o)
- row = self.model(user=user, type=type, description=description, create_time=timezone.now())
- if data:
- row.data = json.dumps(data, default=default)
- row.save()
- return row
- class BizLog(models.Model):
- INSERT = 1
- UPDATE = 2
- DELETE = 3
- CHECK = 4
- EXPORT = 5
- PRINT = 6
- IMPORT = 7
- TYPE_CHOICES = (
- (INSERT, u'添加'),
- (UPDATE, u'修改'),
- (DELETE, u'删除'),
- (CHECK, u'审核'),
- (EXPORT, u'导出'),
- (PRINT, u'打印'),
- (IMPORT, u'导入'),
- )
- user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, null=True, blank=True)
- type = models.PositiveSmallIntegerField(choices=TYPE_CHOICES, verbose_name=u"类别")
- description = models.CharField(max_length=1000, verbose_name=u"内容")
- data = models.TextField(verbose_name=u"数据", null=True, blank=True)
- create_time = models.DateTimeField(verbose_name=u"添加时间", auto_now_add=True, editable=False)
- objects = BizLogManager()
- class Meta:
- db_table = "system_log"
- ordering = ['-id']
- verbose_name = u"日志管理"
- default_permissions = ()
- class Config(models.Model):
- KEY_WECHAT_APPID = "wechat_appid" #小程序appid
- KEY_WECHAT_SESSION_KEY = "wechat_session_key" #小程序密钥
- KEY_ABUTMENT_XGJ = "abutment_xgj" # 对接销管佳
- KEY_XGJ_SESSION_KEY = "xgj_session_key" # 销管佳密钥
- KEY_XGJ_IP = "xgj_ip" # 销管佳地址
- property = models.CharField(max_length=100, verbose_name=u'属性')
- value = models.TextField(verbose_name=u'值')
- class Meta:
- db_table = "system_config"
- verbose_name = u"基础设置"
- index_together = (
- 'property',
- )
- default_permissions = ()
- permissions = [
- ('browse_config', u'查看'),
- ('set_config', u'设置'),
- ]
- @staticmethod
- def getConfigValue(property):
- try:
- row = Config.objects.get(property=property)
- return row.value
- except:
- return ''
|