yzk_wechat_event/apps/qc/models.py

207 lines
11 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import uuid
from .choices import *
from ..warning.models import WarningSetting
class QcCorpinfo(models.Model):
id = models.AutoField(primary_key=True)
uid = models.IntegerField(verbose_name='用户id')
corpname = models.CharField(max_length=128, verbose_name='自建应用名称')
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid')
agentid = models.CharField(
max_length=128, verbose_name='自建应用agentid', null=True, blank=True)
appsecret = models.CharField(max_length=128, verbose_name='自建应用密钥', null=True, blank=True)
token = models.CharField(verbose_name='客户联系回调配置token',
max_length=128, null=True, blank=True)
encodingaeskey = models.CharField(
max_length=128, verbose_name='客户联系回调配置EncodingAesKey', null=True, blank=True)
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
callbackstatus = models.IntegerField(
verbose_name='客户联系回调验证状态', choices=QcCorpInfoCallbackStatusChoices.choices,
default=QcCorpInfoCallbackStatusChoices.UN_VALIDATE)
callback_validate_time = models.DateTimeField(null=True, blank=True, verbose_name='回调验证时间')
business_type = models.IntegerField(
verbose_name='业务类型', choices=QcCorpInfoBusinessTypeChoices.choices)
taggroupid = models.CharField(
max_length=32, verbose_name='标签组id', null=True, blank=True)
settletaggroupid = models.CharField(
max_length=32, verbose_name='结算标签组id', null=True, blank=True)
class Meta:
db_table = 'pb_corpinfo'
verbose_name_plural = 'Qc Corpinfo'
ordering = ['-ctime']
unique_together = ('agentid', 'corpid', 'uid', 'business_type')
def to_dict(self, fields=None):
if fields:
return {
field: getattr(self, field)
for field in fields
}
return {
'id': self.id,
'uid': self.uid,
'corpname': self.corpname,
'corpid': self.corpid,
'agentid': self.agentid,
'appsecret': self.appsecret,
'token': self.token,
'encodingaeskey': self.encodingaeskey,
'ctime': self.ctime,
'utime': self.utime,
'callbackstatus': self.callbackstatus,
'callback_validate_time': self.callback_validate_time,
'business_type': self.business_type,
'taggroupid': self.taggroupid,
'settletaggroupid': self.settletaggroupid,
}
class QcQrcodes(models.Model):
id = models.BigAutoField(primary_key=True)
uid = models.IntegerField(verbose_name='用户Id')
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid')
agentid = models.CharField(
max_length=128, verbose_name='自建应用agentid', null=True, blank=True)
name = models.CharField(max_length=64, verbose_name='名称')
configid = models.CharField(max_length=64, verbose_name='企微二维码配置id')
qrcodeurl = models.CharField(max_length=128, verbose_name='二维码地址')
skipverify = models.IntegerField(verbose_name='自动通过验证', default=0)
isautoremark = models.IntegerField(verbose_name='自动打标签', default=0)
remark = models.CharField(
max_length=128, verbose_name='备注模板', null=True, blank=True)
userids = models.JSONField(verbose_name='活码成员')
checkminutes = models.IntegerField(verbose_name='检测间隔分钟')
lastchecktime = models.DateTimeField(
verbose_name='最近检测时间', null=True, blank=True)
isneedwelcome = models.IntegerField(verbose_name='是否需要欢迎语', default=0)
welcomecontent = models.JSONField(verbose_name='欢迎语模板', null=True, blank=True)
state = models.CharField(max_length=50, verbose_name='二维码自定义参数,回调唯一标识')
isautotag = models.IntegerField(verbose_name='自动打标签')
tags = models.JSONField(verbose_name='标签', null=True, blank=True)
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
offlinechecknum = models.IntegerField(verbose_name='同组进粉差()人时报警')
warning_setting = models.ForeignKey(WarningSetting, on_delete=models.DO_NOTHING, db_constraint=False,
verbose_name='报警配置', related_name='qrcodes', null=True, blank=True)
class Meta:
db_table = 'qc_qrcodes'
verbose_name_plural = 'Qc Qrcodes'
ordering = ['-ctime']
class QcQrcodesEditLog(models.Model):
id = models.BigAutoField(primary_key=True)
uid = models.IntegerField(verbose_name='用户Id')
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid')
agentid = models.CharField(
max_length=128, verbose_name='自建应用agentid', null=True, blank=True)
qrcodeid = models.BigIntegerField(verbose_name='二维码表主键')
type = models.IntegerField(
verbose_name='类型0=手动1=自动', choices=QcQrcodesEditLogTypeChoices.choices)
content = models.CharField(
max_length=255, verbose_name='修改内容', blank=True, null=True)
detail = models.JSONField(verbose_name='详情说明', blank=True, null=True)
userid = models.CharField(max_length=50, verbose_name="企业用户id")
operatetime = models.DateTimeField(verbose_name='操作时间', auto_now_add=True)
operatetype = models.IntegerField(
verbose_name='操作类型', choices=QcQrcodesEditLogOperateTypeChoices.choices)
class Meta:
db_table = 'qc_qrcodes_editlog'
verbose_name = 'qc_qrcodes_editlog'
verbose_name_plural = 'qc_qrcodes_editlogs'
ordering = ['-operatetime']
class QcWechatbizeventAddcontact(models.Model):
id = models.BigAutoField(primary_key=True, verbose_name="ID")
uid = models.IntegerField(verbose_name="用户id")
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid')
agentid = models.CharField(
max_length=128, verbose_name='自建应用agentid', null=True, blank=True)
fromusername = models.CharField(
max_length=20, verbose_name="此事件该值固定为sys表示该消息由系统生成")
createtime = models.BigIntegerField(verbose_name="消息创建时间")
msgtype = models.CharField(max_length=50, verbose_name="消息的类型此时固定为event")
event = models.CharField(
max_length=50, verbose_name="事件的类型此时固定为change_external_contact")
changetype = models.CharField(
max_length=50, verbose_name="此时固定为add_external_contact")
userid = models.CharField(max_length=50, verbose_name="企业服务人员的UserID")
externaluserid = models.CharField(
max_length=50, verbose_name="外部联系人的userid")
state = models.CharField(max_length=50, verbose_name="state参数")
welcomecode = models.TextField(verbose_name="欢迎语code")
ctime = models.DateTimeField(verbose_name="创建时间")
isdelete = models.IntegerField(default=QcWechatbizeventAddcontactIsDeleteChoices.NOT_DELETE,
verbose_name="是否删除", choices=QcWechatbizeventAddcontactIsDeleteChoices.choices)
deletetime = models.DateTimeField(null=True, verbose_name="删除时间")
qrcodeid = models.IntegerField(verbose_name='二维码id', default=0)
# hook_starttime = models.DateTimeField(null=True, verbose_name="hook最近一次启动时间", blank=True)
# hook_wstime = models.DateTimeField(null=True, verbose_name="hook最近一次websocket首发消息时间", blank=True)
# hook_connecttime = models.DateTimeField(null=True, verbose_name="hook最近一次通信时间", blank=True)
# isfirststart = models.BooleanField(verbose_name="是否首次启动", null=True, blank=True)
class Meta:
db_table = 'qc_wechatbizevent_addcontact'
ordering = ['-ctime']
class QcWechatbizuserinfo(models.Model):
id = models.BigAutoField(primary_key=True)
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid')
userid = models.CharField(max_length=50, verbose_name='UserId')
username = models.CharField(
max_length=50, verbose_name='用户名', null=True, blank=True)
alias = models.CharField(
max_length=64, verbose_name='别名', null=True, blank=True)
department = models.JSONField(verbose_name='部门ID集合')
maindepartment = models.IntegerField(verbose_name='主部门ID')
telephone = models.CharField(max_length=20, verbose_name='座机')
position = models.CharField(max_length=64, verbose_name='职位')
external_position = models.CharField(max_length=64, verbose_name='对外职务')
direct_leader = models.JSONField(verbose_name='直属上级userid')
is_leader_in_dept = models.JSONField(
verbose_name='表示在所在的部门内是否为部门负责人,数量与department一致')
status = models.IntegerField(
verbose_name='激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业',
choices=QcWechatbizuserinfoStatusChoices.choices)
ctime = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
limitaddusercount = models.IntegerField(
verbose_name='每天限制加好友人数', null=True, blank=True, default=0)
totallimitaddusercount = models.IntegerField(
default=0, verbose_name='总限制加好友人数')
class Meta:
db_table = 'qc_wechatbizuserinfo'
ordering = ['-ctime']
class QcSendCorpMedia(models.Model):
id = models.BigAutoField(primary_key=True)
uid = models.IntegerField(verbose_name='用户Id')
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid')
agentid = models.CharField(
max_length=128, verbose_name='自建应用agentid', null=True, blank=True)
corpid = models.CharField(max_length=32, verbose_name='企业微信corpid')
url = models.CharField(max_length=128, verbose_name='文件地址')
media_id = models.CharField(max_length=128, verbose_name='媒体文件id')
utime = models.DateTimeField(verbose_name='更新时间', auto_now=True)
media_type = models.IntegerField(
verbose_name='媒体文件类型', default=QcSendCorpMediaTypeChoices.IMAGE,
choices=QcSendCorpMediaTypeChoices.choices)
sendtype = models.IntegerField(
verbose_name='发送类型', choices=QcSendCorpMediaSendTypeChoices.choices)
sourcetype = models.IntegerField(
verbose_name='发送类型', choices=QcSendCorpSourceTypeChoices.choices)
class Meta:
db_table = 'qc_sendcorpmedia'