yzk_wechat_event/apps/qc/models.py

207 lines
11 KiB
Python
Raw Normal View History

2023-12-14 13:22:07 +08:00
import uuid
from .choices import *
2023-12-19 16:03:02 +08:00
from ..warning.models import WarningSetting
2023-12-14 13:22:07 +08:00
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')
2023-12-14 18:43:01 +08:00
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,
}
2023-12-14 13:22:07 +08:00
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='同组进粉差()人时报警')
2023-12-19 16:03:02 +08:00
warning_setting = models.ForeignKey(WarningSetting, on_delete=models.DO_NOTHING, db_constraint=False,
verbose_name='报警配置', related_name='qrcodes', null=True, blank=True)
2023-12-14 13:22:07 +08:00
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")
2023-12-21 17:20:03 +08:00
uid = models.IntegerField(verbose_name="用户id", null=True, blank=True, default=0)
2023-12-14 13:22:07 +08:00
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="删除时间")
2023-12-14 18:43:01 +08:00
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)
2023-12-14 13:22:07 +08:00
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'